HNHacker News
TopNewBestAskShowJobs

neild

1,247 karma · joined December 18, 2009

submissionscomments
neild··on What Python developers need to know before migrating to Go
> Python somehow magically slices unicode strings without chopping characters in half.

Well, that rather depends on what you mean by "character" and "in half".

    >>> s = u're\u0301sume\u0301'
    >>> print s
    résumé
    >>> len(s)
    8
    >>> for i in xrange(len(s)):
    ...     print s[i]
    ... 
    r
    e
    
    s
    u
    m
    e

    >>> print ' '.join(s)
    r e ́ s u m e ́
neild··on San Francisco, I Love You But You’re Bringing Me Down
I live in Fremont. It's boring suburbia. Lots of identikit housing, no good restaurants, not much to do. On the positive side, it's relatively inexpensive and is 30 minutes from Mountain View, San Jose, or Berkeley outside of commute hours.

If you care about living somewhere hip and exciting, Fremont is not for you. If you're okay with suburbia that's outside the heart of Silicon Valley, but still reasonably close, it's worth considering.

neild··on Getting by in a technical industry without a degree
I work for Google. My highest degree is a high school diploma.
neild··on Little Nemo in Google-land
It doesn't translate well into Japanese.
neild··on Go Bloviations
Too much can be made of the idea of sharing state via channels. If it's simpler to express a piece of code using a mutex, use a mutex. A thread-safe set is one such situation. Don't feel bad about doing so; there is nothing non-idiomatic about using locks in Go.

When using channels, the choice between buffered and unbuffered depends on the situation. There are cases where a buffered channel is required to avoid deadlocks. For example, consider the case where you start N goroutines and use a channel to collect the results. If you return before collecting all results, the remaining goroutines will block forever trying to write to an unbuffered channel. Using a buffered channel with size N avoids this possibility.

neild··on Why couldn't MAC addresses be used instead of IPv4|6 for networking?
That's pretty much exactly what IPv6 with stateless autoconfig does--network address in the upper 64 bits, MAC address (slightly modified) in the lower 64.
neild··on Apple gives itself passing EPEAT grade for Retina MacBook Pro
Yes. It costs a bit more than other models ($200), but they also have a larger battery.
neild··on Apple gives itself passing EPEAT grade for Retina MacBook Pro
Given that any Apple store can replace the battery while you wait, it obviously can't be that hard to do.
neild··on City of San Francisco Will No Longer Buy Apple Products
I just picked a random laptop off of Dell's small business site: The M4600[1]. Dell will sell you a replacement 97Whr battery for $170[2]. The M4600 gets 3.5 hours of life with the larger battery[3].

Apple will replace the 95Whr battery in a Retina MacBook Pro for $200[4]. $30 more than Dell charges for a similar-capacity battery, but this does include labor and the MPB gets 7+ hours of life with it[5].

I do not believe your assertion of "exorbitant fees" is supportable.

[1] http://www.dell.com/us/soho/p/precision-m4600/fs

[2] http://accessories.us.dell.com/sna/category.aspx?c=us&l=...

[3] http://www.notebookreview.com/default.asp?newsID=6400&re...

[4] http://www.apple.com/support/macbookpro/service/battery/

[5] http://arstechnica.com/apple/2012/07/retina-macbook-pro-maxi...

neild··on I can’t believe I’m praising Tcl
Tcl most certainly does have hash tables--Tcl arrays are implemented as hashes and can have arbitrary keys.
neild··on Why I Left Google
Not even close.

I'd say Go is, though.

neild··on Google Shares Experience of Using Ubuntu in their Offices
Developers have root on their workstations. Google doesn't believe in treating developers like the enemy.
neild··on Java.sun.com is down again - breaking bad apps across the land
Sadly, if you use Python's batteries-included XML tools, this is virtually impossible to do. See http://bugs.python.org/issue2124 for some discussion.
neild··on Ingo Molnar on what ails the Linux desktop
Python 3 does not reuse the unadorned name "python". It installs itself as "python3" by default. The decision to have "python" be Python 3 was solely Arch's.
neild··on How the Boehm Garbage Collector Works
I once worked on a project that used the Boehms collector for a long-running server process.

About once a year, we'd lose a week or two to tracking down a memory issue. While the root cause was never a GC bug, the GC would make it dramatically more difficult to figure out what the real problem was.

The closest we had to an actual GC bug was a leak involving a data structure containing a list of IP addresses that was incorrectly interpreted as containing pointers. It took forever to figure out what had happened, since the issue only appeared if you worked with a specific set of IP addresses--and even after we had a replication case, the GC made it extremely difficult to determine why memory was growing rapidly. The fix was simple once we identified the precise problem--flag that memory as "atomic" (i.e., guaranteed not to contain pointers)--but finding the precise data structure that was holding memory live was a nightmare.

We eventually ran into a slow memory growth issue that we couldn't figure out. After much debugging, one developer became fed up with the situation and tore the GC out. It took him about two weeks to produce a version of the codebase that leaked less than the GC-enabled one, and another couple weeks to eliminate virtually all memory leaks. We continued to find minor leaks for another several months, none of which were difficult to correct. (We used a debugging malloc library that flagged leaked memory on exit, so we always knew exactly where the leak had originated.)

Not only did the GC-less version leak less, it used about 40% less memory.

I would strongly recommend against using the Boehm collector for any long-running processes. The tradeoffs may be more acceptable in short-term processes where slow leakage over time is unimportant.

neild··on What It’s Really Like to Work at Google
Speaking as a fairly recent Google hire: No, this is not what it's really like to work at Google.

I considered writing more, but really, what else is there to say? Working at Google is not defined by the presence of cafeterias, alcoholism is not a way of life, and overwork is no more prevalent than any other Silicon Valley company I've worked at.

neild··on The Type of Companies That Publish Future Concept Videos
A concept video is the polar opposite of a tech demo.

A tech demo is a demo. It's real. You can use it, you can see how well it works, and you can get a feel for whether it can be developed into something real or not. Making a tech demo is an exercise in putting your money where your mouth is.

A concept video, in contrast, is just a bunch of special effects. It exists free of any constraints. You can make a concept video for something which is impossible to make--time machines, faster-than-light spaceships, cars that run on water.

neild··on The Just-Buy-Our-Devices Model
Aha! I misread the parent's "she" as referring to Siri, not as to the person using the phone. Apologies.
neild··on The Just-Buy-Our-Devices Model
It doesn't talk out loud if you hold the phone up to your ear. To use Siri with minimal noise (aside from your own speech):

Push the power button to turn on the screen. Hold the phone to your ear. Wait for the be-beep sound, played quietly through the ears-only speaker. Speak. Keep the phone against your ear. Siri will respond through the ears-only speaker.

neild··on Why I’m scared of the post-PC era.
The children of the post-PC future will only have access to iPads. Or Kindle Fires, as pure a consumption device as I can imagine.

Why would you think that would happen?

And while I'm at it, why is "consumption device" an insult? Books are consumption devices. Nobody sneers at a child with a book.

neild··on Why I’m scared of the post-PC era.
My first computer booted into a BASIC interpreter. That was pretty awesome, and gave me an early window into programming. On the other hand, it didn't have a lot of things. It didn't have a text editor. It didn't have anything other than a BASIC interpreter. I knew that the games I played on that machine weren't written in BASIC, but I didn't know where to go to learn how they were made.

My current computer, made by Apple, comes with interpreters for several languages, all more powerful than BASIC. It comes with text editors. And, best of all, it comes connected to an Internet from which I can not only download interpreters and compilers for all sorts of languages, but find extensive documentation on how to use them.

A child today has access to so much more in the way of programming tools than I did. We live in a glorious golden age of hobbyist programming.

neild··on What a Developer Job Posting Should Look Like
How many people don't know about their preexisting conditions? If their preexisting conditions are serious, why are they letting their coverage lapse?

If you look up the cost of individual medical coverage and the amount of money provided by unemployment insurance, you may find yourself with the answer to that question.

neild··on Why Apple employees avoid getting in the elevator with Steve Jobs
A flop? The name may have changed, but NeXTSTEP has been a remarkable success in its new incarnation as OS X and iOS.
neild··on Report: Best Buy tells HP to take back its TouchPads
Amazingly infuriating to watch company after company claim to want to be a player in the mobile/tablet space, and fail continuously against Apple. It's far less that Apple's doing so much right, but everyone else keeps getting it so wrong, even with successful competitors to copy (this isn't revolutionary groundbreaking stuff any more, launching a tablet).

It isn't easy to make a successful tablet. Apple made it look easy, but it really isn't.

Apple came into the tablet market with:

- A core OS that's had over 20 years of work put into it.

- A touch UI layer with five years of development.

- A large developer ecosystem primed and ready to start making software for the new platform.

- A worldwide online software store with a gigantic existing customer base. (Do not estimate the difficulty of making it possible for developers anywhere in the world to sell software to customers anywhere in the world without forcing anyone to jump through the hoops of international tax law!)

- An online media store selling music, movies, and TV shows.

- A brand new ebook store.

- A worldwide network of physical stores to demo and sell the new devices.

You can't build that overnight. Apple has spent over a decade making smart decisions and putting themselves into the position where they are today.

neild··on I don't know how to IE6
Harald, by David Friedman. (There are a number of notable David Friedmans. This is the anarcho-capitalist-son-of-Milton-Friedman one.)

Harald is quite good, IMO, but there isn't a lot of overt economics so it may not be what you're looking for.

neild··on Forget Acquisitions: Apple control the Supply Lines
A few examples of the singular "they", courtesy of Wikipedia:

Eche of theym sholde ... make theymselfe redy. — Caxton, Sonnes of Aymon (c. 1489)

Arise; one knocks. / ... / Hark, how they knock! — Shakespeare, Romeo and Juliet (c. 1595)

'Tis meet that some more audience than a mother, since nature makes them partial, should o'erhear the speech. — Shakespeare, Hamlet

I would have everybody marry if they can do it properly. — Austen, Mansfield Park (1814)

That's always your way, Maim—always sailing in to help somebody before they're hurt. — Mark Twain, Adventures of Huckleberry Finn (1884)

Caesar: "No, Cleopatra. No man goes to battle to be killed." / Cleopatra: "But they do get killed". — Shaw, Caesar and Cleopatra (1901)

The singular "they" has extensive precedent. Some proscriptive grammarians feel that it should be disallowed, but given the usefulness of a neutral pronoun and the venerable history of the usage, I think they may be safely ignored.

neild··on Poll: How much do you make as a programmer?
You can't maintain the same level of housing no matter where you are. That's what my example comparing my home town (backwoods Connecticut) with San Francisco is about--it simply doesn't make any sense at all to compare a hundred acres in rural farmland with the equivalent housing situation in a major metropolis. Cost doesn't really enter into it.

The type of housing you can afford is a quality of life issue as much or more than it is a cost of living issue. If you live in San Francisco or New York, you accept a smaller living space than you'd get elsewhere. In return, you get access to nightlife, concert venues, and other amenities that can only be had in a densely-populated area.

If living on a hundred acres of woodland is important to you, you will not live in San Francisco. If being able to bike to work is important to you, you will not live in Los Angeles. If staying out of the cold is important to you, you will not live in Minneapolis. Money won't buy you any of these things.

At some levels, it may seem that it's just an issue of money. You can, of course, buy a detached, single-family house in San Francisco. It'll cost you millions, but you can do it if you're rich enough. Attempting to paint this as a difference in cost of living, however, is simply disingenuous--the detached home in San Francisco is the local equivalent of a mansion in my home town. It's not equivalent, any more than hiring Michael Franti to make a personal trip out to Connecticut to play for you would be equivalent to catching a show at a local concert hall.

And, finally, it's important to remember that unless you're living entirely hand-to-mouth, not all of your income goes to living expenses. If you're in the well-paid engineer club, then hopefully only a relatively small portion of your income goes to living expenses. Moving from a cheap location to an expensive one may increase that portion, but it doesn't make any sense at all to multiply your current income by a constant factor to determine the "equivalent" in a different location. That's what that calculator does, and it's deceptive and wrong.

neild··on Poll: How much do you make as a programmer?
That calculator is making a very common and yet very fundamental error: It assumes that cost of living adjustments should apply linearly across a salary range.

It costs more to live in San Francisco that it does to live in Detroit. However, that additional cost is largely static: You'll pay a lot more for housing, you'll probably pay noticeably more for food, and you may pay somewhat more for clothing and other items. You won't pay more for a car (if you have one), you won't pay more for the items you buy from Amazon, and you won't pay more for your Netflix subscription.

If you earn $30,000/year, the difference in cost of living between San Francisco and Detroit will be dramatic. You may not be able to afford a place to live in San Francisco at all on that salary.

If you earn $300,000/year, the difference will be almost negligible, since your living expenses will be a trivial portion of your income. (The one kicker will be housing--you'll probably need to settle for a smaller living space.)

It doesn't make any sense to apply a cost of living adjustment as a strict multiplier, which that calculator does. It claims that someone making $30,000 in Detroit will need an $80,000 salary in San Francisco to be equivalent, while someone making $300,000 will need $800,000.

That's clearly ludicrous. It does not cost an additional $500,000 annually to live in San Francisco.

Determining equivalent cost of living is a complex question, and will always be imprecise. There are things that simply can't be converted--on my current salary, I could afford to buy a house with a hundred acres of surrounding woodland near my home town. There is no amount of money in the world that will buy that in San Francisco. Equally, there are many things available in San Francisco and its environs that can't be had for love or money in my home town.

neild··on The story of the Gömböc
The article states that the machines are accurate to that tolerance, but not whether that level of precision is required.
neild··on Ask HN: At what point does being a loyal early hire become a poor choice?
Loyalty is a wonderful thing. You should demonstrate your loyalty by giving your company a full two weeks notice when you leave.

You're being taken advantage of, and you know it or you wouldn't have posted this. You're taking an under-market salary and no benefits, which means you're probably making about 50% of what you should be when you count health care, 401k and so forth. You have no equity, which is the traditional tradeoff at a startup: Accept a reduced salary for the possibility of a large payoff at the end.

Right now, your best case scenario is that the company is wildly successful, the founders go on to fame and fortune, and if you're very, very lucky, they might just decide to throw you a bone. Which they won't.

Leave.

← PreviousPage 3 of 6Next →