Hacker Newsnew | past | comments | ask | show | jobs | submit | 2012-03-06login
Stories from March 6, 2012
Go back a day, month, or year. Go forward a day, month, or year.
31.Financial Software Projects (C++) - NYU Fall 2011 (nyu.edu)
90 points by zura on March 6, 2012 | 26 comments
32.What the iPad 3 really needs: fewer stupid articles about the iPad 3 (reverttosaved.com)
89 points by huskyr on March 6, 2012 | 37 comments
33.Why the Raspberry Pi will save the UK (petenelson.co.uk)
87 points by husky on March 6, 2012 | 121 comments
34.CSS4 Preview – Selectors (davidwalsh.name)
87 points by dkd903 on March 6, 2012 | 34 comments
35.SQL.js: SQLite Compiled to JavaScript via Emscripten (badassjs.com)
84 points by nthitz on March 6, 2012 | 20 comments
36.Akka 2.0 released (Scala and Java concurrency library) (akka.io)
80 points by vladev on March 6, 2012 | 12 comments
37.On Keeping Busy and Staying Sane in Startups (paulstamatiou.com)
77 points by PStamatiou on March 6, 2012 | 10 comments
38.LED's efficiency exceeds 100% (physorg.com)
76 points by brianl on March 6, 2012 | 40 comments
39.Raspberry Pi interview: Eben Upton reveals all (linuxuser.co.uk)
74 points by cpeterso on March 6, 2012 | 19 comments
40.Programming Languages Class - Build a Web Browser (Free Class) (udacity.com)
72 points by carlsednaoui on March 6, 2012 | 8 comments
41.How to Divide any number By 9, 90, 900 and so on in just 5 seconds (mathema-tricks.blogspot.com)
69 points by mquaes on March 6, 2012 | 29 comments
42.Big Data + Machine Learning = Scared banks (pandodaily.com)
71 points by magoghm on March 6, 2012 | 11 comments
43.What is 'Space' expanding into? (reddit.com)
67 points by sun123 on March 6, 2012 | 42 comments
44.CoffeeScript and Progress (peterlyons.com)
65 points by focusaurus on March 6, 2012 | 24 comments

John D Cook has a lot to say about this: [1]

"One of the marks of a professional programmer is knowing how to organize software so that the complexity remains manageable as the size increases. Even among professionals there are large differences in ability. The programmers who can effectively manage 100,000-line projects are in a different league than those who can manage 10,000-line projects. ... Writing large buggy programs is hard. ... Writing large correct programs is much harder."

Jeff Atwood's metrics will help you filter out engineers whose complexity ceiling is <1k lines -- StackOverflow answers, whoopee -- but that's not a terribly hard thing to interview for. Much harder to interview for the very best, the mythical 10x productivity programmers[2], those who can handle 100k LOC, 1M, or more. Perhaps this is the difference between an experienced non-expert and a real expert[3].

In my experience not a lot of employers care about this, perhaps because their challenges aren't those of complexity-in-scale, or perhaps because complexity hasn't bit them hard enough yet, or perhaps because they are "unconsciously incompetent"[4]. About the only hiring signal I've identified for this is interest in functional programming -- languages like Clojure and Scala exist precisely to raise the ceiling of complexity a human can handle[6] -- and as such I'm trying to learn this stuff and trying to find people via the community who care to hire engineers with these skills. Unfortunately my own bias may be blinding me, you never know which side of Dunning-Kruger[5] you're on until it's too late.

If you care about these things: I'd love to know who you are and what you're working on, email me.

[1] http://www.johndcook.com/blog/2008/09/19/writes-large-correc... [2] I am not one of these, but I strive to be one someday. [3] http://www.dustingetz.com/how-to-become-an-expert-swegr [4] http://en.wikipedia.org/wiki/Four_stages_of_competence [5] http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect [6] Clojure creator Rich Hickey talking about complexity: http://www.infoq.com/presentations/Simple-Made-Easy

edit: man, this got 2 downvotes in 2 minutes, cmon guys i put a lot of thought into this!


As much as people like to deride #1 (here and elsewhere) it's one of the most useful filters (in terms of filter value for effort spent). It's not a positive filter (in that a candidate who passes won't necessarily be a great programmer) but it is a great negative filter (a candidate who fails almost certainly isn't).

#2 I have mixed feelings about. A lot of people work on things where the source code (even the product) isn't visible. Having an SO profile is semi-useful but lack of one doesn't really mean anything. Github only makes sense if you work on open source (and frankly I'm tired of the incredibly naive "Github is the new CV" postings that pop up every few weeks).

#5 is what I really object to. At least in this case you've gone through the initial filters. Some companies use an audition project as an initial filter before you've ever spoken to anyone (you know, to see if you'd be a cultural fit and so on). I have zero time for this.

The problem with an audition project is that anyone truly good won't have to jump through those kinds of hoops. They'll have their pick of offers as is. Job seeking through a traditional (non-network) route is relatively low percentage such that there's only so much time worth investing in any particular position.

I'm happy to prove to you know I have a solid enough foundation in data structures and algorithms, I can program my way out of a paper bag and I can problem solve and communicate effectively but as soon as you ask me to spend a week--even a day--on some audition project, forget it.

Honestly, hiring isn't that hard. You just need people who are good at hiring to do it. I've done 10 or so "lunch interviews" at Google this year. This isn't an interview per se. It's simply taking someone to lunch in between their onsite interviews. It's a chance for the candidate to unwind, ask some questions, etc. But there is no feedback element to the process.

Of the 10 after 10 minutes I predicted 8 wouldn't get hired, 1 would and 1 I wasn't sure about. Turns out the "yes" declined an offer and the "maybe" didn't get one and I was otherwise right. And this is simply from going to lunch with them.

My formula is:

1. Filter early. "Hello world" and other simple programming tests;

2. Establish technical foundation and problem-solving ability (with one algorithm-related question that should be coded); and

3. Otherwise ascertaining personality/cultural fit. This you should get just from talking to someone for 10-15 minutes.

It's really not that hard. You just need someone who can actually do it to do it.


I'm a bit behind the curve here - but now that I'm caught up, I'm concerned. When I saw the title of this article, I immediately logged into my Basecamp. Hmm, it looked the same. So I went and found their upgrade instructions. Then I learned that it's not a straight 1:1 upgrade, it's a different product. And they've dropped support for some quite important features, like, time-tracking.

My work runs on Basecamp. We chose it for two reasons, first because it did (nearly) everything we needed it to do, second, because it was being developed by a company we loved.

Now, it's completely integrated into our days to day production. We depend on it. If I walked in to work today and Basecamp was down, I might as well turn around and head home. We've let 37Signals premiere product become essential to us.

As of today, we're using their formerly premiere product. And if we wanted to upgrade to their premiere product, we'd lose completely essential feature.

Yes, they can say that Basecamp Classic will be the same great product it's always been, but it won't. Part of that greatness was innovation, and I don't think anyone believes that 37Signals will continue to innovate with a product that has "Classic" in its name.

The solution isn't hard. 37Signals just needs to be clear.

Will critical features like Time Tracking be in a future version of Basecamp, or will that requirement make us, forever, second class users? Because, I'd rather be a 1st class user at one of Basecamp's competitors than a 2nd class user at the service I've been using for the past 4 years.


A few quick thoughts (am about to go into a meeting):

1. Lawyers are not immune from market forces. This is easily seen at the micro level: a new practitioner with no established reputation can charge $800 per hour and see where that gets him (of course, precisely nowhere). On the macro level, law has been a boom business ever since at least the 1960s when expansive liability theories came to be widely adopted by the legislatures and the courts. So, what used to be regarded as a dispute over garbage at the local dump becomes a massive environmental enforcement action by which dozens of parties face multi-million dollar liabilities; what used to be a distribution chain in which only the end-point seller typically bore liability to the consumer becomes massive product liability suits going back to the manufacturers and imposing strict liability on them in ways that can ruin a multi-billion business; what used to be the $.25 that a cab driver overcharged you because of some shifty trade practice becomes a major class action in which all the vendors in the area are swept in to face a protracted legal fight and potentially substantial damage exposure; etc., etc., etc. The point being: the legal landscape has changed dramatically and, for example, the Big Law firm that I worked at in the early 1980s grew from 23 lawyers in 1965 to about 250 in 1980 and is today over 1,000 lawyers. Demand is up in a huge way over the decades and law remains a boom business in this respect (certainly Big Law remains so) notwithstanding the recent economic calamities that have beset us all. That is the main reason why the very high fees are charged: because businesses are willing to pay them (when they are not, overt or disguised discounting occurs with great regularity).

2. That said, I am no fan of the Big Law model and have expressed my criticisms at some length elsewhere (see, e.g., http://news.ycombinator.com/item?id=1648342). I also have stated in some detail why I think the large firms have been left reeling from the recent economic shock and how this has caused a general revulsion against the billable fee structure used in these firms (see http://news.ycombinator.com/item?id=1649507).

3. In reality, the legal field is pretty diverse and price does matter for those who consume legal services (why shouldn't it?). The providers of those services who remain stuck in old ways will need to adapt to the short-term problems but they obviously hope to keep the old structures in place in hopes that the good old days will return. For the broader legal market, however, there is already wide variety in the range of services and pricing offered. As a consumer, you need to do your due diligence and shop around. In the broader market, lawyers want your business and will adapt as needed to get it.


People fret over language syntax too much. In most sane languages including Objective-C you simply forget about the syntax after a few months. What’s much more important is the conceptual complexity: the number of language features and the way they fit together. A second important thing is the standard library. Objective-C is a pleasant language by both these metrics, since there are just a few language constructs above the C level, they fit together well without creating dark corners, and Cocoa is a very mature and well thought-out framework. The iOS Objective-C ecosystem does take some time to master, but so does every modern SDK, since the libraries are always huge. Programming is hard and if somebody is scared by minus signs in front of method names, evil spirits will suck his soul out by the time he gets to thread synchronization.

As someone who found four compiler bugs in three weeks - in a five-nines fault-tolerant OS, yet! - and who found a PostgreSQL optimizer bug within weeks of learning SQL, I think the key to being "that guy" is playing five-whys with every single bug you encounter.

I work with some very talented developers who, when they try something and it doesn't work, try something else. I am fundamentally incapable of that. If it doesn't work, I MUST KNOW WHY. Even if that requires building a debug version of my entire stack, adding all sorts of traces, and wolf-fence debugging until I have a minimal fail case.

It's a real limitation; if I hit an undebuggable brick wall, I have no ability to attack the problem from a different angle. Luckily, there are few things that are fundamentally undebuggable.

51.Show HN: web-based music player built with Node and CoffeeScript (github.com/superjoe30)
53 points by AndyKelley on March 6, 2012 | 8 comments

I know that there is probably conflict between Google Wallet/Checkout - but they need to get on this issue like last YEAR -

GIFT CARDS!

It just implies that they don'y know anything about who is using Android phones in the U.S. I only have my gut to back this up (after observing who carries Android for the past 2 1/2 years or so) but Android devs will be able to make so much more money once Google starts selling gift cards in retail stores.

Why? Metro PCS, Boost Mobile, and teenagers. My guess is that they're a large part of the Android user base that is very unlikely to link up a credit card to their account. They would however be great candidates to use gift cards bought for them on birthdays/holidays.

I swear if they don't do this soon, it'll only keep more and more developers from releasing apps on Android. /rant


Before we talk too much about why lawyers are so expensive, it's worth checking out how much they actually get paid. It's the weirdest salary chart you'll ever see:

http://www.nalp.org/salarydistrib

Basically it's the sum of two separate curves -- a bell curve centered around $45,000 a year, and a sharp, sharp peak up at $160,000.

What's going on here? Well law is two separate markets -- the bell curve is the 90% of lawyers who compete on cost in a more or less normal market, and the sharp peak is the 10% of lawyers who work at BigLaw firms that march in lockstep at $160,000 for new associates.

So for the 90%, the answer is that law is a highly competitive market. You're paying $150,000 in tuition to get a job that averages $45k a year when you start, and won't go up too fast. You're doing largely hard, boring work, it sucks to do without support staff, and it's time-consuming to do right. If the product costs a lot, it's not because the lawyer is overpaid -- it's because that's how much it costs to produce. Lawyers who drop below that price go out of business.

For the 10%, they're in a weird parallel universe where the cost of their service is almost totally irrelevant to their clients. They're handling international mergers, billion-dollar divorces, and Federal indictments of entire financial firms. The question of whether the lawyers charge $300 or $600/hr is like the question of whether your parachute costs $50 or $100 before you jump out of a plane. If there's the slightest chance that the $100 parachute is safer, you go for it. That's why the starting salaries march in lockstep -- no BigLaw firm can afford to let people think that the cream of the crop from Harvard Law is being hired by their competitors. They'd lose all their business if anyone else had a clear edge. But this only relates to a small minority of lawyers.

...

To disclose my own bias, this article/conversation is strange to me because I took a big pay cut to go from programming (which I could do before I graduated from college) to law (where most of my lower salary goes to student loans). I knew I would. I didn't join the BigLaw 10% (which I would have hated), but I'm getting to work on things that matter to me, and I'm proud I made that call. But to see a bunch of programmers talk about why lawyers have it so good ... yeesh.

This isn't to say that law can't get easier or cheaper. There are huge wins to be had from automation here, and I always turn into the resident tools guy wherever I work. I've had to get pretty good at VBA of all things, and 1000 curses on that misbegotten tongue. (Jashkenas, are you listening? Need a project after CoffeeScript?) I also think law school needs to get a lot cheaper -- like college tuition in general, it's been growing at twice inflation for decades, and that can't be right.

One other thought -- the bar is indeed a protected guild, and I'm not sure where I stand on that, but there are reasons for it. First and foremost, you will never know whether your lawyer has done a good job. If you hire a programmer, there may be problems behind the scenes, but you can more or less tell whether they've done what you hired them to do. If you hire a lawyer, and you lose your case, you will often have not the slightest idea whether they were competent -- there's just not enough signal for most laypeople to analyze in most cases. Even my own supervisors often have no idea whether I've done my job right. They ask me a question, I answer it, and without repeating the work I did they have no way of telling whether I'm right or how long it should have taken to complete.

Requiring education, examination and licensing is one way to address that problem. It definitely raises the price. In theory it also lowers the chances that you're buying snake oil. Something to consider anyway.

54.Google Raised Android Market App Size Limit From 50MB to a Whooping 4GB (techieapps.com)
50 points by websagir on March 6, 2012 | 26 comments
55.At the restaurant of the future, tablets take your order (theatlantic.com)
46 points by bremac on March 6, 2012 | 58 comments

There are all sorts of reasons, but first and foremost is the lack of transparency in all things legal. This is why I'm working on PlainSite (http://www.plainsite.org). The opacity creates the illusion of difficulty, the need for (arbitary) specialized knowledge, and uncertainty as to the real price because so many factors are hidden from view.

For example: you're expected to follow the law even without knowing what the law says. When you want to find out what the law says, it's not easy--it's certainly not available in a standardized format. When you want to interpret what you find, assuming you find it, that's not easy either. Courts interpret things in new ways all the time.

The federal court system charges you to access public information contained in court proceedings, with limited exceptions--that is, if you even know where to look for it. See http://www.thinkcomputer.org/20120209.pacer.pdf. The interface is terrible and hard to use. The way in which you write lawsuits is obscure, counterintuitive, and creates additional needless work.

In addition to all of these factors, and perhaps because of them, lawyers (especially at big firms) have institutionalized fraud. It's taken for granted that legal billing is often fraudulent. If you charge $500 per hour and your system only resolves to the tenth of an hour, that means if you spent four minutes writing an e-mail, you can charge for 0.1 hours, or $50. But really you only did $33.33 of work. That's a nice cushion. But what actually happens is that an attorney might do 45 minutes of work and round it up to an hour--even though that work is formatting in Microsoft Word that the client could have done; or printing out a Word document in order to scan it in as a PDF. Still seem worth $500 per hour?

For those lawyers not at large firms, they're covering expenses (such as law school) that are enormous. High rates are a necessity, and who would charge far lower than market rates anyway? It might be interpreted as a signal that something is wrong.

Of course, don't for a minute think that paying $800 per hour will get you a better lawyer than paying $300 per hour. It might. Either way, you'll be paying someone in a staggering number of cases to unscientifically guesstimate What The Government Might Do, when the answer is, "who knows?". That doesn't mean all lawyers are the same; some are definitely better than others. But it has nothing to do with price.

More lawyers could afford to charge reasonable market rates, and not work for large firms, if it weren't for the ABA mandating that you have to attend a law school (that results in huge piles of debt) or clerk for years (four in California) in order to join the bar. See http://www.nytimes.com/2011/10/25/opinion/are-law-schools-an....

Lawyers know, too, that you can't get rid of them (also thanks to the ABA), and so you're locked in. There's a monopoly on business representation, for example. See http://www.plainsite.org/issues/index.html?id=137. It's absurd.


I was about to scream about #5 until I saw this:

"This should be a regular consulting gig with an hourly rate, and a clearly defined project mission statement."

I interviewed with a YC company about a year ago and was asked to do #5 except without pay. It's a long story, but in short I let my guard down because it was a YC company only to find myself having wasted a week. The part that really pissed me off is that they came back _months_ later and pretended that no time had passed at all (obviously their hire didn't work out) and asked me to jump through more interviewing hoops. When I rightfully just told them to put money where mouth is they actually insulted me and the free work I had done (written in an email no less).

The point I'm making is that if you need this many hoops for a candidate to jump through you shouldn't be the one hiring. Find someone else with a business-tuned intuition and ability to judge character. If you act like you're the world's greatest company which people will waste hours and even days trying to impress you're going to miss the best people out there.

Also #2:

"Show me a Stack Overflow profile where I can see what kind of communicator and problem solver you are. Link me to an open-source code repository of your stuff."

Kinda cheesy for Jeff to say the first part. I absolutely agree with supporting both info sharing sites and open source. But as a self-taught programmer that ships products and does very well financially, I can tell you that there are effective people out there that don't rely on SO to get things done and therefore probably don't contribute to it.

I do absolutely support open source software but I also don't have a lot of free time. I've written a raster to vector conversion library that I'd love to clean up a bit and open source. But I literally don't have time to do so. Does that make me a second class programmer? Having hired many people over the years I know that I would look very seriously at someone who has shipped a lot of products but doesn't follow programmer community trends like SO. I guess it could mean they're truly horrible programmers with no knowledge to share. It could also mean they're too busy meeting their own (or some company's) targets. It could also mean they like to unplug once in a while and lead a normal life.

I understand why companies like Google take a hardline approach to hiring. They just deal with too many people. But if you're reading Jeff's essay on hiring you're not running Google. If you're a small company you need to look at the outliers first since that where you're likely to find overlooked talent. That's where you're going to find the people who don't jump through hoops but who actually get shit done on a daily basis.


Oh Fox News. Even when reporting on something legitimately interesting and out of the ordinary, they have to use very un-journalistic phrases like "...allegedly commanded a loosely organized, international team of perhaps thousands of hackers..."

"Perhaps thousands"? Perhaps millions! Perhaps five. Ugh.


They always tell you when you are interviewing you should never bitch or gossip about your old job. Articles like this are the inverse of that, the employeer is subtly bitching about every bad hire they've ever made. This is a giant red flag that whoever is doing the hiring sucks at their job.

I've had a few interview process that have included some or all of these 6 steps, and I've turned down every one of their offers at the end. Not because I don't have the time to work on a sample project,or because I can't cobble together and isolate some sample code for them to take a look at, and not because I don't know how to play the interview game.

It is because your interview process takes too damn long. One or more phone screens, one or more in person interviews, then a request for a sample project or source code, then a request for references, then a meeting with team, etc. That takes months, with weeks of down time in between.

If you can't figure out if a person is a good fit socially and is a competent programmer in less time that, you suck at hiring and shouldn't be doing it.


I think you might want to rename the post to: "Why the cloud isn't for my startup"

Seriously, people need to stop telling other people what to do. I very appreciate your input and in fact, I am exactly in that situation, but when you tell me what to do, it's less likely I am listening closely to what you say.

On topic: Sure I could learn how to do sysadmin stuff. But for some people and maybe me, the opportunity costs outweight the economic benefits of rolling out without PaaS


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: