Hacker Newsnew | past | comments | ask | show | jobs | submit | 2009-03-23login
Stories from March 23, 2009
Go back a day, month, or year. Go forward a day, month, or year.
31.TwitterAuth: Plugin for Near-Instant Twitter Rails Apps (intridea.com)
31 points by mbleigh on March 23, 2009 | 3 comments
32.Tips for the Sophisticated Fugitive (nytimes.com)
30 points by robg on March 23, 2009 | 12 comments

It's refreshing to see such care taken to avoid conflating correlation with causation. Even when faced with such a complex system, you can chip away at the mystery if you apply some discipline.

Although I am a little curious about some of the less-mainstream theories: "Other hypotheses were untestable at best, such as claims that the bees were being abducted by aliens." With our pride, we always _assumed_ the aliens would _naturally_ want to abduct us!

34.Failure is overrated, a redux (37signals.com)
29 points by johns on March 23, 2009 | 13 comments

How does your request relate to this part of the Hacker News guidelines?

"Don't abuse the text field in the submission form to add commentary to links. The text field is for starting discussions. If you're submitting a link, put it in the url field. If you want to add initial commentary on the link, write a blog post about it and submit that instead."

http://ycombinator.com/newsguidelines.html


I'm glad to see people talking about one of the four stages of optimization:

1. Do we have to optimize this? Time is never free, and opportunity cost in terms of engineering effort is usually very significant.

2. Can we do less work? (this article)

3. What's the bottleneck? CPU, FP, memory bandwidth, lock contention?

4. How do we squeeze out better performance? Assembly, loop unrolling, etc.

I usually cringe when I hear about people talking about #4, as very few of them have asked #1, #2, or #3 yet.

And usually, you just hear people talking about doing what the compiler's already doing (writing it in assembly? /The compiler already does that/), usually doing a pretty reasonable job at high optimization levels. They just exchange maintainability for the warm fuzzy feeling that they've been as macho as needed.

37.College Prestige "Lies" (overcomingbias.com)
28 points by quizbiz on March 23, 2009 | 25 comments

Profile, Profile, Profile!

Use the 80-20 rule. 80% of your code's time is spent in 20% of the code.

Optimizing without good profiling is like painting a portrait blindfolded.

Pre-optimizing by coding your system to be "fast" before you get to profile it is like starting to paint a portrait before your model is even sitting.

When Kent Beck came in to optimize the Chrysler C3 payroll system, he discovered that one of the biggest time-sinks in the system was string concatenation!

It's also useless to optimize before you have a system that runs correctly. Kent also asked how he could validate the C3 system so he could optimize it. He was told it wasn't even producing correct results yet. He replied: "In that case I can make it run really fast!"


Unfortunately, this advice falls into a very common category: Simple, obvious in hindsight, and completely wrong.

Modern CPUs do not "execute a fixed number of instructions per second"; even leaving aside the fact that certain instructions are faster than others, factors such as the order in which you access memory locations and the predictability of branches can easily result in a tenfold difference in performance.

In many cases, code can be made faster by executing more instructions; I recently dealt with some code where changing a (theoretically) O(N) algorithm to an O(N log N) algorithm and increasing the number of operations by a factor of 10 nevertheless resulted in the code running twice as fast. Now, this was an extreme case -- the code went from accessing completely random memory locations to accessing completely sequential memory locations -- but it demonstrates the importance of memory access patterns.

40.Online Backup Company Carbonite Loses Customers’ Data, Blames And Sues Suppliers (techcrunch.com)
27 points by peter123 on March 23, 2009 | 9 comments
41.Ask HN: Could stackoverflow.com work for other fields?
26 points by erictobia on March 23, 2009 | 27 comments

Exactly, I am sure a large number of the YC guys use free software on their servers and workstations, yet how many have given monetary support to the FSF in the form of donations or anything ? I won't be surprised to know the answer will be too few.

Anyway, just give the man some respect, he is somewhat an extremist, but if it weren't for this guy you wouldn't be starting all these startups on shoestring budgets and I know that everyone in their heart of hearts knows that the world is a better place because of RMS.

43.It’s easy to make something incredible. (unalone.tumblr.com)
26 points by dhotson on March 23, 2009 | 14 comments
44.The Nasty Exploding Term Sheet (techcrunch.com)
25 points by vaksel on March 23, 2009 | 1 comment

He's already accomplished a very great deal, exactly by doing things in the way you say will prevent him from accomplishing anything. Of course, you may believe that this is incidental.

(YC asks people to decide that day whether or not to accept an offer from us, but we do this because at that point they already know all they need to, not to pre-empt other offers. There is no other seed firm that decides after us.)

If another seed firm did set its decision date a few days or weeks after, would you then give teams more time to decide?

That would be incredibly gracious of YC -- indeed beyond what I would expect of the category leader. But that seems to be the implication of your parenthetical.

47.Do You Really Need a College Degree to Get a Programming Job? (javaworld.com)
23 points by estherschindler on March 23, 2009 | 37 comments

If you think that this advice applies only to CPU-intensive applications, you're missing the point. Unfocus your programmer brain and look past the fact that he said anything about some processor being able to perform a fixed number of instructions per second, and absorb the larger message: to go fast, do less. This could include IO, this could include retabulating some statistic just when it's needed instead of on every insertion, this could include handling special cases ahead outside of a loop body, etc. CPU-level optimization should usually be one of the very last things you care about (and yes, this depends, and again, if you already know the exceptions, you don't need this advice).

And Python and Ruby both have excellent C bindings, you can rewrite CPU-intensive portions of your application pretty much anytime you need to.

49.Who Really Rules? (aaronsw.com)
23 points by twampss on March 23, 2009 | 10 comments
50.Jungledisk has been down since Saturday - Mosso Cloud Files Fail (jungledisk.com)
22 points by pmikal on March 23, 2009 | 13 comments
51.Ask YC: Where do you advertise online?
22 points by epi0Bauqu on March 23, 2009 | 11 comments
52.Nobel Economist: Now Is No Time to Give Up on Markets (wsj.com)
22 points by jwb119 on March 23, 2009 | 25 comments
53.Who's Your Arch-Enemy? (codinghorror.com)
22 points by bdfh42 on March 23, 2009 | 8 comments
54.Do nations go to war over water? (nature.com)
22 points by robg on March 23, 2009 | 24 comments

If you're using a higher-level language like Python or Ruby, worrying about things like locality should be pretty low on your performance checklist.

If you're using Python or Ruby for CPU-intensive applications, you probably don't have a performance checklist.


Who decided a tag cloud was a good idea? Who used tag clouds enough to decide to put it on their web site? A tag cloud is one of those Internet Things where seeing it on a web site makes me lose some respect for the site maker.
57.Hulu Gains 10 Million Viewers In February, Now No. 4 Video Site In U.S. (techcrunch.com)
20 points by vaksel on March 23, 2009 | 12 comments

That may be the answer eventually. The situation now is getting out of control. It's not just us people are trying to pre-empt. They're all trying to pre-empt one another. The result is that they end up setting their deadlines in roughly inverse order of quality, creating a cascade of stressful decision points for the best applicants. And the more new YC-like things people start, the worse it will get.

I don't think there would need to be a common application, but there may have to be a common deadline.

59.For HN: Polls chart bookmarklet (and GreaseMonkey script)
20 points by bd on March 23, 2009 | 7 comments

"Also as always, the more faddish features such as tag clouds exhibit major usability problems. "

This is worth taking note of. Particularly if your users aren't very web-savvy.


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

Search: