hacker news with inline top comments    .. more ..    10 Apr 2011 Best
home   ask   best   8 years ago   
Using prime numbers to make better backgrounds designfestival.com
932 points by jimsteinhart 2 days ago   52 comments top 17
141 points by BrandonM 2 days ago 2 replies      
This is the perfect Hacker News article. I learned something new and mathematically-interesting about the natural world, the author came up with a clever hack to enliven backgrounds, and we learn how to apply that to improve our own designs.
94 points by nadam 2 days ago 2 replies      
Cool, but these numbers don't have to be primes. They just have to be coprimes (like (8,9)).

The least common multiple of two coprimes 'a' and 'b' is a*b.


14 points by mullr 2 days ago 2 replies      
They're also useful for reverb effects, in very much the same way. See http://www.npr.org/2010/08/03/128935865/queens-brian-may-roc... under "On The 'Stomp-Stomp-Clap' Section Of 'We Will Rock You'")

Also, I think the technique will work as long as the numbers are relatively prime, which may be a bit easier to design around.

23 points by IDisposableHero 2 days ago 3 replies      
This is very well explained, but not all that novel. Brian Eno used to generate long soundscapes like this, using loops of mutually prime lengths of time.

Edit: See also -



4 points by SeanLuke 2 days ago 2 replies      
What's wrong with the "cicada theory"

1. The most common cicadas come out every year or every other year.

2. The 17-year cicadas (for example) don't come out once every 17 years -- they come out every single year. Just in different broods (groups differing by phase). Some broods are much bigger than others of course, and broods are often located in different parts of the country, but many broods can and do overlap.

So I dunno. I'm guessing they're 13 and 17 year cicadas because that's how long it takes to develop.

4 points by Nate75Sanders 2 days ago 0 replies      
While not the same thing, the concept of increasing the degree of realism/getting away from things that are too regular reminded me of Perlin Noise: http://en.wikipedia.org/wiki/Perlin_noise
3 points by jws 2 days ago 1 reply      
I won't get a chance to write this up, but in a similar vein, if you split the grain/texture off of an image, you can scale and stretch the image as needed, then drop a fairly small, tiled grain texture back on top. I think it is nicer to do two grain textures, one for lighter and one for darker. Make the grain image be solid white or black and put the grain in the alpha channel.
11 points by granite_scones 2 days ago 0 replies      
"This example uses the simplest possible set of prime number " 1, 3, and 7."

1 is not a prime number. Also, the "simplest" possible set of primes would be 2, 3, and 5.

3 points by harshpotatoes 2 days ago 1 reply      
And some people still question the value of pure math. These design tricks would anger some of my design friends, who still believe you can be left brain OR right brain.
4 points by mcdaid 2 days ago 0 replies      
Brilliant interesting article about a very simple but clever idea. I am not sure if I would use this css background technique, but the lego example is brilliant.

Some articles trigger lots of ideas in my mind, this was one of them.

1 point by joubert 1 day ago 0 replies      
Reminds me of a section in The Blind Watchmaker on cicadas and convergence in evolution - http://books.google.com/books?id=sPpaZnZMDG0C&pg=PA100&#...
1 point by jeberle 12 hours ago 0 replies      
Why is it that "design" sites have the worst design? Yes, please be sure to destroy the page margins, and set a min width on the page so that I have to scroll horizontally to read the end of lines. Classic.
3 points by hydrazine 2 days ago 0 replies      
Gonna try this with pseudo-random opacity styling for even more variations.
2 points by mikesurowiec 2 days ago 2 replies      
Wow, very impressive! I will definitely be trying this out. It reminded me of my discrete mathematics class, so now I'm wondering if there are any other cool principles that can be applied to design
3 points by thascales 2 days ago 0 replies      
Simple, elegant, effective. I know how I'm spending my evening...
1 point by exch 2 days ago 1 reply      
There's a typo in the title of the second 'chapter'.

"That's great. But wa/s/ has all this got to do with web design?"

Facebook open sources its servers and data centers gigaom.com
516 points by arithmetic 2 days ago   98 comments top 17
42 points by flyt 2 days ago 2 replies      
Get all the CAD files and other specifications here: http://opencompute.org
66 points by beagledude 2 days ago 2 replies      
say what you want about Facebook but I give them props for open sourcing so much code to the community. Cassandra, Thrift, Scribe,Hive, etc...
34 points by codex 2 days ago 4 replies      
This is a strategic attack on Google. A proliferation of scalable data centers hurts Google a lot more than Facebook by enabling Google's competitors. Cheap computation matters much more to search engines than social networking sites.
8 points by corin_ 2 days ago 2 replies      

  Sorry ARM.

Have ARM actually done more than announce that they will be moving into servers? If they have then I missed the announcement. Either way, seems like a fairly stupid dig at ARM, can't really expect companies like Facebook to have moved onto ARM servers this quickly, even if it is the direction they intend to go in.

14 points by whakojacko 2 days ago 1 reply      
Link to an article in James Hamilton's blog with actual pdfs of various designs:
6 points by michaelbuckbee 2 days ago 2 replies      
I'd be very interested in hearing from someone with more experience in running their own hardware what portions (if any) of what Facebook has announced today is applicable at the small scale of say having a couple of co-located racks in some datacenter. Maybe the base server designs?
4 points by yanw 2 days ago 5 replies      
Not sure how many startups built their own servers anymore, this event seems like a response to the Greenpeace accusations of Facebook's environmental responsibility or wherever.

Edit: I agree it's a good thing, it's just that hosting a press event rather than just making the announcement through a blog post suggests other motives as well.

4 points by rbanffy 2 days ago 3 replies      
I don't get the AC PSUs on the servers (http://opencompute.org/servers/). Any reason why those are being used when each 6-rack group has a UPS (and batteries) connected to them? Going DC would get rid of the inverter on the UPS out and the 200 or so PSUs on each server.
3 points by tallanvor 2 days ago 4 replies      
I'm sure they've done a lot of tests, but running servers in an environment with 65% humidity just doesn't sound good for them.
6 points by iloveponies 2 days ago 1 reply      
One thing I've found interesting: The decision to have batteries not per server like Google, or per data centre, but per group of racks.
1 point by skorgu 2 days ago 0 replies      
What are the chances of these being commercially available anytime soon? Is a single consumer (even if it's facebook-sized) enough to jumpstart a B2C supply chain? It's hard to see this catching on with anyone not building green field unless it can come in at least on-par with a Dell/HP/Supermicro quote.
7 points by budwin 2 days ago 0 replies      
This is a great talent acquisition play.
1 point by ignifero 2 days ago 1 reply      
Shall we expect Google, Amazon, Microsoft et. al. to start posting their energy efficiency stats from tomorrow?
1 point by jacques_chester 2 days ago 0 replies      
Ah, economies of scale, is there anything you can't improve?
2 points by lrcg 2 days ago 1 reply      
Ethernet-powered LED lighting :D
-4 points by amitraman1 2 days ago 0 replies      
-4 points by davidpitkin 2 days ago 2 replies      
Facebooks attempts at openness make me wonder what they are trying to hide... misdirection?
Chinese Infinite Magical Hard-Drive jitbit.com
505 points by jitbit 2 days ago   111 comments top 22
55 points by aik 2 days ago replies      
Here's my sad Chinese sd card experience. The state of things there depresses me:

When I was in Beijing I went to a regular store to buy an SD card for my camera. I asked them to let me try the cards in my camera before purchasing, so I did that. As I put a card in, all looked well, however when I proceeded to format the card, the issues arose. Regardless of the size of the card, 2, 4, or 8gb, the card would then instead read as 128mb. I mentioned this fact to them and they said sorry and let me try a new card. About 4 cards later the owner was nearly in tears and I was very frustrated. At that point the owner went to the back stockroom and gave me yet another card. This time it formatted fine and I purchased that one.

It was such a sad experience. I felt very embarrassed and sorry for this owner. I don't know if the owner knew that they were scamming people, or if they were just being scammed themselves.

32 points by elliottcarlson 2 days ago 3 replies      
While I know these fake drives exist - wouldn't running the last 5 minutes of a video file utterly fail as it wouldn't have any of the header/codec/video envelope data since that's at the beginning? Have a feeling the story is more anecdotal than anything...
15 points by pmjordan 2 days ago replies      
A couple of years ago, some USB sticks with a similar "flaw" made it onto the European market. The capacity difference wasn't quite as drastic as this example, which almost makes matters worse: you have to fill it with e.g. 1GB of data and read it back before you notice anything.

My friend said they're still trying to figure out how did the Chinese do that. Because the drive reports "correct" file sizes and disk-capacity. And the "overwriting" doe not touch the other files present on the drive.

I suspect they treat the first N megabytes correctly to preserve file system data structures. For anything above that (the remaining "capacity"), they just let it loop by cutting off the top bits of the offset.

17 points by qjz 2 days ago 2 replies      
I love the extra hardware glued inside to give it some weight. Nice attention to detail!
12 points by ck2 2 days ago 0 replies      
This is an old trick. Ebay is flooded with 16gb and 32gb flash sticks, SD, microSD chips that are only a few gb in reality. Complaints and warnings in the feedback forum go back for years.

They seem to format correctly but you have to copy that much in content to prove it's real.

Stick to newegg, etc. for that kind of purchase.

15 points by makeramen 2 days ago 4 replies      
Anyone have experience writing or know the source of the software (firmware) that does this? If not just for the hax, it would make an epic April fools joke.
6 points by mberning 2 days ago 1 reply      
I love the inclusion of the two end nuts. How do you know if something is expensive and built well? It feels heavy/and or dense. You definitely get that feeling when you pick up something like an iPad or a good digital SLR.
7 points by millerc 2 days ago 0 replies      
IIRC from my time playing with Norton Utilities back when it was a real hacker tool, you only need to format the disk as usual then hand-modify the disk size in the MSDOS (2nd, logical drive's) boot sector. The FAT will contain all the entries needed for keeping parts of the file in correct order, and Windows will happily report the drive size from that field. Assuming the flash drive's firmware/circuit doesn't report errors but rather uses the low bits to address the sectors (laziest way to build a flash controller), explains how "only the last part of the file" gets preserved (i.e. not overwritten).

For the FAT to stay non-corrupt I would assume that Windows writes a full copy from its cache right after writing the file, that would not be an unreasonable assumption.

All in all: extremely easy to reproduce, no special controller needed. Probably just a guy that realized how Windows behaves after changing a couple bytes on the disk, and another that said "hey, we can make money off that!"

3 points by VladRussian 2 days ago 0 replies      
>he had bought in a Chinese store across the river, for an insanely low price.

and who would say after that that there is no venture investors in Russia? The guy took the risk and it just didn't pan out. :)

2 points by dfranke 2 days ago 1 reply      
Something about this story doesn't seem to add up. An SSD's firmware presents the raw flash to the OS as a block device. The filesystem is at a higher level of abstraction, above that block device. If the device is handling data that doesn't fit by wrapping back around to the beginning of the file, how is it figuring out where that file begins when all it sees is a bunch AHCI requests?
3 points by afterburner 2 days ago 0 replies      
Lots of fake 32GB microSDs are also on the eBay market, and function in a similar fashion. I've bought a fake hard drive, I know a few others who have bought hard drives or microSDs... someone musta written a how-to! They're getting tricky with pulling eBay/PayPal accounts and setting up Dutch auctions to throw wrenches in the system to slow it down before the money transfers are reversed/released.
3 points by alizaki 2 days ago 0 replies      
When I was still in college a few years ago, I fell for this on a trip to Guangzhou. I believe those were supposedly 8GB flash drives with 32MB of real memory, selling for less than 5 bucks each. Being the immaculate hustler I am, I bought a sackful of those to haul back home to sell, only to learn that if it's too good to be true...
2 points by yason 1 day ago 0 replies      
It's just like spam: it's not the one who asks but he who pays...

It's not about the Chinese magically managing to screw everyone: it's about enough people buying these fakes and not coming back with an angry look on their face and a pickaxe in their hands. That's what keeps this scheme profitable.

2 points by hardy263 2 days ago 0 replies      
Not as extreme, but when I bought my 1.5 terabyte hard drive, I thought that I would be seeing 1.5TB when viewing its properties. I saw 1.36TB instead. So where did the other 0.14TB go? I thought I got scammed.

Then I looked at the number of bytes on the hard drive, and it listed as exactly 1,500,299,264,000 bytes, and I realized that computers and manufacturers use different metrics.

7 points by dvfer 2 days ago 0 replies      
I have seen a USB flash drive with only a USB connector on it... inside is empty, and yes, I'm Chinese. I don't know I should laugh or not.
4 points by folkster 2 days ago 3 replies      
At Least you get a WORKING hard drive
check this http://www.walyou.com/img/fake-usb-flash-drive.jpg
1 point by jcromartie 2 days ago 1 reply      
What if (this sort of) Chinese electronics designers spent their (obviously impressive) technical skills on not ripping people off?
4 points by joejohnson 2 days ago 0 replies      
The best part about the article was the really racist comments at the bottom. People don't like Chinese business practices, I guess.
1 point by ginkgo 2 days ago 2 replies      
How could a program work that can detect such scam-drives? As long as we don't care about crashing the formatting, at least.

It could work by writing a specific pattern in the first few bytes of the device and then reading/writing in 2^n steps to check if the pattern cycles.

I think I have some counterfeit thumb-drives lying around. Maybe I will try writing something like that..

1 point by killerdark 2 days ago 1 reply      
"He works at a hard-drive repair center". Ah? A hard-drive repair center yes? What do they do there? Take the drives apart, polish the platters and bolt them back together? Must be a Russian thing no?
1 point by aashpak1 1 day ago 0 replies      
so whats the most efficient way to detect such 'infinite' storage drives programmatically ?! :
0 points by hammock 2 days ago 0 replies      
This just made my day. Thank you.
Crash Course: Design for Startups paulstamatiou.com
455 points by PStamatiou 1 day ago   31 comments top 15
13 points by nsfmc 23 hours ago 1 reply      
i don't know, i'm a little conflicted here because really, really, i know this is gonna sound stupid but the best way to get good is to make a lot of shit and then, after you don't feel weird about what you made, you show it to people who have taste (or that you value) and get critique.

I think you should design the way that you ______. Do you code? Apply that mindset to your design. Do you just hammer something out or do you try to improve it? Do you look for inspiration from other projects on github? Do you look for inspiration in orthogonal things like architecture or nature or industrial design or _____. Apply that to your design. Apply the same standards from something you're passionate about to your budding design work, it'll show. The more you make this your process the more your design will be your design.

as with all other things, there's a whole lot of cargo cult design where you toss in a grid and you dutifully build up some crazy type hierarchy or you use appropriate fonts or just plop down a müller-brockman layout or a tschichold page proportion or three sizes, two weights of helvetica neue, etc. You can convince yourself this is "correct," but sometimes you're just going through the motions. I've made a ton of absolute crap but sometimes i make something and i'm like "oh wow, that's an actually appropriate use for a grid, man what a total cock up that other project was."

It's very easy to make and parrot the current zeitgeist (just look at forrst), but it's hard to go out on a limb and try to make something that comes from you. It's even harder to make it something that other people will see and say "oh neat, i like that even though it's a little weird," and that's what practice does to you, but it doesn't come overnight, it takes effort, like anything worth doing, like programming or cooking or sports or _____.

The things that make you great in design are the things that make you great in any other field: passion, curiosity, exploration, failure, practice, communication and critique. all in great quantity. this is the moral you see on hn a lot, so it's like preaching to the choir, but go outside your comfort zone and try to make what's in your brain; it's a humbling and rewarding path.

i don't want to knock the post, it's fine, but also keep in mind that not everything needs to look like a startup website. I'm tired of friendly blue all the time, i want to see new designs, i want to see people going on a limb. I guess what i'm saying is: this is design for conversion sake, not for design's sake, and those are two totally different pots of gold.

6 points by kmfrk 1 day ago 0 replies      
Mark Boulton's posts really are some of the best typography eye-openers. Especially his "Five Steps" posts[1][2] were what got me into design and made me "get" it. And it didn't take a lot of time to read through them. I recommend that people skip his book and read these two pieces instead.

Bear in mind that the grid guide is more of an intro piece; you probably won't be able to create grid-based websites after reading it (I know I wasn't).

Another good resource is Typography for Lawyers[3]. I'm actually very surprised (and disappointed!) that Paul didn't mention it. It's recently undergone a redesign, which has rendered all its former links broken, and it seems a little harder to navigate and browse for fun, but you must flip through the digital pages. It's probably the best typography resource for newcomers along with Boulton's 5-step guides.

I also just combed through my bookmarks to see if Boulton had anything else, and a great presentation popped up[4]. It, too, is great to get you into the typographic mindset.

These are really the best way to get someone into typography, and they are quick to read; no resounding THUMP from dumping seemingly insurmountable literature on your desk.

Of course, once you've got the bug, it'll never leave you, and a lot of the world will look a lot worse and be more painful for it. Educate yourself at your own risk.

[1]: http://www.markboulton.co.uk/journal/comments/five-simple-st...

[2]: http://www.markboulton.co.uk/journal/comments/five-simple-st...

[3]: http://www.typographyforlawyers.com/?page_id=1876

[4]: http://webtypography.net/sxsw2007

NB! At some point, Boulton has changed his site, which has rendered the links to the other parts invalid. To remedy this, replace the underscores (_) in the links with dashes (-).

16 points by nopal 1 day ago 2 replies      
I've seen several of these on HN in the past few months, and this one is definitely my favorite.

This post is well-written and covers a huge range of topics. I found the information detailed enough to point me in the right direction without going over my head. I also appreciate the tips on which design resources the author found valuable. Good stuff!

4 points by gbog 11 hours ago 0 replies      
If I can take an opposite view, I think this article on design is far from useful. It is stuffed with unproven generalizations (like, why the hell should plain edges be "boring"? why should we "adjust opacity"?). Better read Jacob Nielsen on this.
5 points by bradya 1 day ago 2 replies      
Using LittleSnapper (or equivalent tool) to take and archive screenshots of well-done page designs is a really good way to enhance brainstorming.

After months or years of doing this, you build up an asset that has real value to you and other designers.

You should consider posting your screenshot library - I'm sure quite a few designers would be interested in it (or at least links to the pages, to avoid any copyright issues). New webapp idea?

3 points by Dramatize 1 day ago 0 replies      
Something I find helpful is to start coding the basic outline in a browser, then take a screenshot and cut up the design in Photoshop.

It's then really quick to experiment with different layouts and adjustments.

3 points by rgrieselhuber 1 day ago 0 replies      
I've been wanting someone to write a post like this for the longest time. Thanks very much, Paul.
1 point by d_r 1 day ago 0 replies      
What an excellent post. If nothing else, and you're a coder who wants to spend the bare minimum amount of time improving your designs, I highly recommend grabbing "The non-designer's designer book" mentioned in the text.
1 point by JoelSutherland 1 day ago 1 reply      
You need to bring back your logo! I thought it was well designed and memorable. It wasn't until I scrolled down and saw it in a previous design that I realized that this new design was your site.
1 point by fuzzythinker 19 hours ago 0 replies      
Wow, this is the damn best design blog post I've seen. Down to earth explanations, plenty of examples & resources, can't ask for more, thank you so much for taking the time to write & share this!
2 points by mcdowall 1 day ago 1 reply      
If that's your stencil in that pic, any idea of where I can get a hold of one, would be great for my notebook mockups
1 point by farout 1 day ago 1 reply      
I would add Logo Design Love to your excellent reading list!

Thank you for putting this together. I am going to use your checklist this weekend to fine-tune my latest creation, cardealerquotes.org. Maawaaahhaha :)

1 point by rits 1 day ago 0 replies      
I know the hacker's absolute weapon for testing quality of web design.
Just make a screenshot of your site. And try to write a program that can recognize on this picture all the important stuff (headings, paragraphs, links, phones, keywords...) and determine the UI elements and other stuff (headers, footers, menus, buttons, ADs, etc). If writing such program would be easy deal, then your design is good enough.
1 point by AndyNemmity 1 day ago 2 replies      
That's a ton of information, and the more I read it, the more confused I feel.

I run a website called http://deeproute.com

It's a football general manager website with fake players. It's a full game. Take just the front page. There are all sorts of theoretical things to do, but I just want people to join.

Should I chop it up, and put jquery picture viewers all over the place with any half way relevant picture towards the game?

Maybe buy some stock photos of attractive, diverse people looking excited, which surely would be about any topic other than this game.

I don't know. I get lost in all the options, and a huge post like this doesn't help.

1 point by vitorbal 1 day ago 1 reply      
sorry if this is completely OT, but as seen on footnote 4, holy shit, they are making mib 3 ? thats awesome!
Before I Die... candychang.com
439 points by Dysiode 3 days ago   68 comments top 23
28 points by corin_ 3 days ago 1 reply      
Photo #5 shows a man writing "tried for pi" and I badly wanted to know what the ending was. Hilarious that it was "tried for piracey" (as shown in #9), given he is genuinely dressed as a pirate.

Awesome overall idea, too.

14 points by iamwil 3 days ago 3 replies      
It's not inspiring unless it moves people to action. I hope those that wrote on there are on their way to figuring out some way to make their dreams and goals come true.
11 points by staunch 3 days ago 1 reply      
...begin receiving life extension therapy? ;-)
11 points by Kilimanjaro 3 days ago 2 replies      
Hmm, great idea for a web project that can go viral real quick.
4 points by mgkimsal 3 days ago 0 replies      
Found this - not quite as good, but lots of pics: http://www.beforeidieiwantto.org/usa_other.html
20 points by s00pcan 2 days ago 0 replies      
This is the least scary way you could write "Die" on a wall 81 times.
3 points by jrockway 2 days ago 2 replies      
Everyone has hopes and aspirations. What's troubling is realizing that you have an aspiration that you will never be able to fulfil.

I want to fly a fully-loaded 777. I want to sleep with every member of my favorite all-female band. These things are never going to happen. Does that mean my life is a failure?

6 points by sagarun 2 days ago 0 replies      
Another interesting social project from the same person http://candychang.com/post-it-notes-for-neighbors-2/
9 points by zarprey 3 days ago 0 replies      
What a great use of a neglected space. Really inspiring project. It'd be great to do a timelapse of people writing on the wall. The variety of people would be interesting to see.
1 point by InfinityX0 2 days ago 1 reply      
The less I sit and ponder about the meaning of life and what I'm doing and what to do in the future, the happier I am.

Before I die, I don't want to contemplate what I want to do before I die. Not to say I'm not achievement-oriented, because I am, I just associate "before I die" type statements with similar "what if?" personalities - although obviously "what if?" is a concrete statement while "before I die" still leaves room for change, which can inspire hope - although it most often won't inspire action.

4 points by spencerfry 3 days ago 2 replies      
This is genius. Need this in every city.
2 points by nhangen 3 days ago 0 replies      
Fantastic project, and it's also a fascinating social experiment. Many people talk of changing bad situations, but this is a case of using art and engineering to make a solid attempt.
2 points by gcr 3 days ago 0 replies      
This is exactly the kind of thing my art professor would love. Interesting!
3 points by ksullenberger 2 days ago 1 reply      
Interesting to come across this shortly after watching a video of Steve Jobs's commencement speech to Stanford students.

"For the past 33 years, I have looked in the mirror every morning and asked myself: “If today were the last day of my life, would I want to do what I am about to do today?” And whenever the answer has been “No” for too many days in a row, I know I need to change something."

3 points by mrleinad 2 days ago 2 replies      
How long 'til someone creates a cool site with this idea? I bet less than a week..
1 point by mhb 2 days ago 0 replies      
1 point by rokhayakebe 3 days ago 1 reply      
I found this project a few weeks back and loved it. Almost posted it here. I would love to see a web version of it or at least aggregating tweets with a hashtag like #b4id
2 points by wicknicks 2 days ago 0 replies      
Totally liked the "Before I Die... Make a difference" message.
1 point by hammock 3 days ago 0 replies      
I did come across this a few days ago and thought it was cool. Would not have expected something like this to make the front page of HN.
2 points by sharmajai 2 days ago 0 replies      
I think the biggest reason that draws people to the board is the anonymity of the response.
1 point by testingisageek 2 days ago 1 reply      
Wish we had this in our city pluse I like the idea the othe guy said about having a time lapse that would be really neat great work.
1 point by topijo 2 days ago 0 replies      
Before I Die... I want to have truly lived.
1 point by zelandpanther 2 days ago 0 replies      
Before I die I want to have a great life.
Jason Fried: Why I Run a Flat Company inc.com
428 points by duck 3 days ago   178 comments top 42
33 points by jwr 2 days ago 1 reply      
I've started companies that grew from 1 to 50 people. I find that business advice from 37signals is often quite naïve and I hope people treat it as a data point, not as a set of guidelines.

Managing a company below 25 people is relatively easy. You can still talk to most people every day, you can gather them all in one room, information flow is unrestricted. But staying under 25 people means for most companies that you are stifling growth.

Once you get above the magical 25 people threshold, you'll find that it is simply impossible to manage the company effectively using a completely flat structure. Also, you'll discover a lot of new problems you never suspected existed before: you'll need internal PR, for instance, as people in one part of the company won't know what people in other parts are doing. There will be myths to dispel, growing animosities, lack of direction. And there is simply no way you can keep your pretty flat structure with 45 people.

I know that 37signals' advice resonates with people. They are the cool kids. But keep in mind they are an exceptional company, in every sense of the word.

28 points by tptacek 3 days ago 2 replies      
This really resonated for me because we have almost exactly the same company dynamics at play (we're of roughly the same size).

I'm not sure we have similar answers, but one response to the problem of not being able to afford people who don't do real work is to make sure everyone is doing real work. We're primarily a services firm, and everybody in that org, including Dave, our President, is billable. It's something I tell people in interviews, and that I'm sort of proud to be able to say; everyone's grounded in the actual work that our actual people are actually doing for actual clients.

In that spirit, one way to address this problem might be to have team leads instead of managers.

I feel like Joel wrote about this a few years ago too, and while I'm probably wrong about this, off the top of my head it feels like their answer to this is that when they have too many senior people, they think about new products. Isn't the highest level on their comp ladder (not a fan of that thing) reserved for people who can run products?

Would love to hear more about what people in the 20-40 employee bracket are doing here.

10 points by ChuckMcM 3 days ago 6 replies      
"Even as we've grown, we've remained a lean organization. We do not have room for people who don't do the actual work."

That is a priceless comment. It exposes Jason's huge blind spot. Worse, it is on this undefended flank that great future pain may be inflicted. I look forward to the post-learning article.

The underlying premise/assumption is that a 'manager' is not only not doing 'the' work, but they aren't really doing 'any' work. Its a very common meme in engineers, "The company makes money on the code I write, it makes no money at all on this guy telling me what do, it just costs them money."

Let's reason about this using a fairly simple analogy. We will start by positing that we are all rats in a maze. Our maze is, unfortunately, filled with rat dung. We further stipulate that walking on dung would kill us so the only way we can move through the maze is by shoveling the dung in front of us, to the pile behind us and then moving into the space we opened up. All the shoveling burns up calories, if we don't eat we will eventually starve to death. Finally, we add that there is a cheese somewhere in the maze, and once any rat makes its way to the cheese, everyone gets to eat of the cheese. That resets the rat's hunger level, after the the cheese is located the maze resets around all the rats and process begins again.

Now in our analogy our engineers are the rats. And writing code is shoveling rat dung. And the cheese is a monetizable opportunity. Eating the cheese is collecting money from the opportunity.

In a small company, having everyone shovel as fast as they can, is a great strategy for finding the cheese(s). Some mazes have more than one cheese in them, sadly some mazes have no cheese in them. A manager, whether its the founder/CEO, or someone in that role, is given the opportunity to stand above the maze and see if there is a cheese nearby or in the distance, by seeing both the maze and where the cheese is relative to where in the maze rats are, they can direct rats that have the best chance of getting to the cheese quickly in the direction they should turn, otherwise each rat would be following his/her internal idea of the best way to find a cheese in a maze like ‘always follow the left wall' or ‘alternate left and right turns' or ‘leave marks in the dung piles of parts of the maze you have already passed through so that you can pick new passages the next time.'

So the leadership role of management in any technology company, is measured by their ability to get teams to the cheese while shoveling the least amount of rat dung. Good leadership will understand that there are many cheeses (and flavors of cheese, some more nourishing than others) and be able to evaluate the choice of going further for a very nourishing cheese vs going out of the way to munch a nearby, but less satisfying, cheese.

So back to the comment tail … “who don't do the actual work.” briefly.

It is pretty easy for an engineer to recognize a problem in one of their colleagues, even though their colleague is ‘doing' a “lot” of work, that work is inefficient and thus ‘poor'. Someone checking in version after version of a subroutine, trying to get it correct, when that subroutine is doing something that is provided by the underlying operating system. Lots of ‘work', lots of ‘check ins', but someone who had a bit more breadth might have done in a couple of hours what this loser is taking a week to do. As an engineer, one can easily appreciate that this person is taking up an employee spot that could be put to more efficient use by a better quality engineer.

And yet it may be hard for that same engineer to understand that a manager is helping him, and his colleagues, be more efficient by working excellently on a component that will get them to a good cheese, versus working excellently on a component or a technology that does not proportionally have the business value they need to pay their own salaries.

A real world example was a shopping cart company that had, at one time, all of its engineers working on a universal language independent component for presenting product descriptions in over 100 languages and nobody on the team was working on making the shopping cart code play nice with various payment services. Which is the more nourishing cheese? English only and you accept any kind of payment, or any language but you have to have one type to payment card from one vendor ? The engineers were all writing excellent code, using all the latest best practices and the language support module they came up with was best in class, but product was a shopping cart and the “high order bit” for a shopping cart implementation is “can it take money from customers and put it in the bank?”

So when an engineer makes a comment like Jason's about valuing ‘doing' over ‘directing', it can sound like the oarsmen in a galley complaining that he should be accorded higher status than the navigator since without him the boat wouldn't go anywhere. But the reality is that without the navigator the boat wouldn't arrive anywhere. Considered in the larger context, the navigator's role is both more stressful and more important to the overall success of the trip than the oarsmen.

What Jason's comment misses, and it sounds like a blind spot, is the understanding that you cannot successfully navigate and row at the same time.

54 points by mhp 3 days ago 4 replies      
Fog Creek and 37Signals are probably more alike than either of us would care to admit (ha!) and I could see Joel writing a very similar article a few years ago when we had 20some people at the company. But what works there, or at FC, is not a one size fits all answer.

Having managers when there are 10 people are at your company makes no sense. The hierarchy starts out flat, you add a few more people and you're at 20, and the idea of making someone a manager seems like a waste and something a 'BigCo' would do. "We need people who get stuff done, not people who sit around doing nothing but managing", you think. Then you get to 50 people and everything breaks down. You wonder why people are frustrated they can't get things done, while other people are doing things that embarrass your company or compete with other things you are doing. And you realize your company isn't a special little gem that is wholly unlike every other company in existence. You need management.

Just make sure you give the devs a professional ladder and compensation structure that doesn't involve moving to management, because managing isn't something everyone is good at or even wants to do. And make sure that management knows their job is a support role to the people at the company who are making things happen, not the other way around.

31 points by michaelchisari 3 days ago 1 reply      
I really appreciate the idea of having a career path that doesn't involve moving "up" to management. I'm a developer because I love development, and my own personal hell is managing a team and never getting to code.
9 points by hapless 3 days ago 1 reply      
"The fairest rules are those to which everyone would agree if they did not know how much power they would have."

This quote really, deeply bothered me. One of the major differences between alpha males and the rest of the population is that they will always assume they'll end up in the top spot. Your prototypical alpha male won't even consider the odds of being on the bottom in that lottery.

To push it further, those same aggressive types will have the passion and voice to draw support for their views, no matter the substance. A "flat" structure overvalues the opinions of the loud and aggressive, with little room for more pensive contributors, especially women.

In other words, if you leave the authorship of the social contract to the loudest people, you may end up with a rather oppressive outcome. This is a universal rule, often overlooked by the alpha males who spend their time talking to Inc. Magazine.

9 points by dansingerman 3 days ago 2 replies      
While I totally buy what this espouses, I think it is probably incredibly hard to scale. They are doing well if they keep things flat(ish) for 26 employees. I can't really see it working at all for > 50.

And while they may not have anyone with the job title CTO, I'd be very surprised if DHH was anything other than the de facto CTO.

13 points by tom_b 3 days ago 2 replies      
Love the idea of rotating "managerial" or "lead" person in a small group.

I'm on a small team within a larger organization that we support (in dev and tool usage). A challenge for us is that people in the larger org are used to having a manager to route their requests to.

I may give a rotational approach a whirl. But right now, one of my primary roles is as s&!t umbrella and I don't want to overly burden my real producers.

8 points by ssharp 3 days ago 0 replies      
37signals can do this because of their hiring practices. They need to be extremely picky with the type of employee they hire. Their hires need to be able to function within their unconventional structure.

This type of information doesn't translate well to most other companies. I hope 37signals' audience gets that. For software startups, many of their ideas are exceptional and it's fantastic to see real-world examples. For already-established companies and companies that can't be as picky as 37s, testing this type of structure seems unnecessarily risky. I believe 37s has addressed this in the past, and Jason has in his Inc. writings. I just hope people are paying attention.

7 points by rosenjon 3 days ago 1 reply      
The thing I've always liked about Jason's writing and approach to business is that he isn't afraid to say that they might not have the exact right answer. At the same time, they refuse to accept the "conventional wisdom" as being the correct answer; I think too often we believe that because most companies do things a certain way, that all companies should be run that way.

The takeaway for me is that you should be constantly questioning whether there is a different way to run things that enhances the performance of your organization as a whole. I have personally been privy to how the people with the most impressive titles frequently have the least connection to what's going on in the business. Some of the methods taken at 37Signals seem to be aimed at fixing this problem, which I think is commendable.

At the same time, it seems a shame to have to let go of a good employee because they want to take on more responsibility. If their view on more responsibility is simply a bigger title, then perhaps they weren't the right fit for 37Signals. However, in my opinion, ambition and competence should be rewarded, so it seems like there may have been a better way to handle the situation than choosing between staying in the same role and leaving the organization.

9 points by ibejoeb 3 days ago 6 replies      
It's unrealistic to not promote people. If you run a "flat" organization, you're telling your employees "I don't care that your resume indicates no progression." That's a real career limiter, and it can be perceived as an underhanded way to retain talent.

Also, more pragmatically, how realistic is it to have 30 direct reports?

6 points by tomlin 3 days ago 3 replies      
What Jason Fried is expressing is something I've been pondering for a while. And I think we'll (hopefully) see more of it (sorry, manager-types).

In my experience, managers in most departments have essentially taken the role of sheep-herders. So, I started to ask myself: why do I need a manager when I work well on my own, making smart, educated decisions that are based upon the ideals and successes of other smart, educated and passionate people?

After all, I'm being hired for my prowess, no? If I am, do I need a manager? And shouldn't you always hire people who have these sensibilities?

I think the message I find within this rubble of contemporary and progressive ideologies is: Hire smart. If you have a good team who understand their roles and how it pertains to the goals of the company, you don't need managers - not for a small or mid-sized company, anyway. Basecamp has been the best PM I've ever worked with - alive or binary. Software has already begun to facilitate the role perfectly for me.

7 points by sreitshamer 3 days ago 0 replies      
I like that he mentioned in 2 places how he/they supported people in the best way for those people even when it was clear they weren't going to work for 37signals anymore. (In one case they helped someone find another job, in another they helped someone start her own thing.)

It's important to set other people up for success, whether it's success at your firm or at someone else's. They're not "human resources", they're people!

17 points by antidaily 3 days ago 1 reply      
Looks like Sarah has started her own thing: http://cosupport.us/
3 points by vacri 3 days ago 1 reply      
Skimming the comments, it seems a lot of people are missing a significant point - the employee is in customer service. Customer service is a dead-end job. It doesn't take long to get on top of your game, and there's really nowhere to go.

Managers and marketers get new products and changing business conditions to keep them interested, developers get new tech to explore and tech debt to resolve.

Customer service... is easy to master and once done there's no new fields to conquer. It's ultimately boring. Fine if you want a job to show up to and just do, but if you want to be interested in developing/advancing skills, it's not going to happen in customer service.

I actually find it a little insulting that the tone of the article is a little "well, the developers can handle 'not advancing', why can't the customer support person?".

The professional development tree for customer support looks like a stump.

8 points by abbasmehdi 3 days ago 1 reply      
I would like to commend Jason Fried on establishing a source of free and recurring advertising in a massively distributed publication that has had his target audience cornered for years. Not only is this free advertising, but it is the highest quality of advertising congratulating small and medium size business on being flat (which they usually are because in a small army, even the Generals are on the front lines) and reassuring them about the benefits of being so (imagine you're a 6-person company where everyone does everything and you have just read this article: now decide between buying MS Project and 37 Signals' Basecamp for your PM needs - cloud over your head says "Jason gets me, man!"). Jason, if you're reading this I know you're smiling - you have my vote for strategy!

There is a PR lesson in this for all of us!

3 points by sili 3 days ago 3 replies      
I like the idea of keeping people closer to what they are good at. However I'm afraid this strategy will backfire on your employees if they are forced to leave to another company for whatever reason. In an environment where every company does not have this flat hierarchy it is strange to see a person who has spent 10 years in one place and has not advanced to some managerial position. New employer will think that he is unfit in some way (even though the opposite is the case) and will probably not even give the person a chance to explain themselves.
6 points by abuzzooz 3 days ago 2 replies      
Jason seems to imply that managers are useless when he says "We do not have room for people who don't do the actual work".

I think this is very naive of him, and a little selfish. He's enjoying the title of "President" which, to me, is a purely managerial position. I doubt if he considers himself useless, but he's happy to label other managers useless. I might be wrong, but it seems that he's either too selfish to see other people take away some of his control or he's afraid to tackle the problem of a growing company. Both of these will have negative consequences in the future.

Just for the record, over my 14+ years in a technical field, I have been a manager for 5+, and have given up that title twice before to focus on more technical work.

7 points by grimlck 3 days ago 1 reply      
What about creating a career path that doesn't involve moving people into management? One that involves more prestigious titles (e.g.: sun had a 'sun fellow' title), and significant salary growth (20% here and there isn't significant, imho)

As the organization grows, i can't see a totally flat structure working - you're going to end up with people who have been there 5 years, wake up one day and realize they have the same role and similar salary to what they had where they started, realize they have no career path with their current employer, and will move on.

3 points by stevenj 3 days ago 0 replies      
There's a saying in team sports along the lines of, "Players play the game; Coaches coach."

Employees play the game (ie do the work), but I think a good manager/leader can make a big difference.

Sure, Michael Jordan was a great basketball player who had good teammates, but Phil Jackson must be doing something right in order to extract the talent out of his players in just the right way to win year in and year out. And that is hard.

Perhaps there's just not very many good coaches or managers, which is why there's such distaste for "management."

But every good team, organization, or company has a great "manager" or "managers".

In the case of 37signals, it seems that person is Jason Fried (he is the CEO).

2 points by Murkin 3 days ago 1 reply      
Appears there are two types of people,

The 37Signal employees:
* Like their field and want to be 'hands-on'
* Don't mind staying in the same company for 10X years.

The supposed norm:
* Prefer to advance to other positions vertically
* Like moving between companies (for challenge/change).

Makes me wonder what is the difference between the two types of personalities and how those affect the organization.

For example, is there more or less innovation in 37Signals ? Are people more ready to step up and fix/report problems outside their immediate responsibilities ?

1 point by nikcub 3 days ago 2 replies      
"Besides being small, 37signals has always been a flat organization."


"We've experimented with promoting a few people to manager-level roles."

So they are flat, with no chief anything, but they have 'manager-level roles'? Am I missing something or is there a contradiction in his description?

Edit: Got it, 'experimented' meaning that they tried, didn't work, and they went back to flat. Thanks for the responses.

Besides that I find that even with no job titles or formal roles, people within a company tend to self-organize and take on de facto roles. The only difference is that it isn't formalized, and people who end up managing aren't being paid manager salaries or getting manager options.

2 points by terryjsmith 3 days ago 1 reply      
There seems to be a rift here between what people are good at/what they want to do now and what they want to do later. I consider myself a good programmer, but it's not where I want to be forever. I have always wanted to branch out and learn multiple facets (management, service, sales, etc.) and this seems like it would be limiting in that regard. I guess I just wouldn't be the target of 37signals?

Without wanting to sound snide, do you look for people who want to stay in the same role forever? It surprises me that people's ambitions to branch out and take on more responsibility haven't caused this to come up before. A salary bump, more benefits, and more vacation time wouldn't help me placate my desire to learn about other skill sets.

6 points by mmcconnell1618 3 days ago 2 replies      
I believe some sociologists found that personal relationships begin to break down at about 150. Beyond that it is very difficult to maintain meaningful interaction in person. Online relationship numbers are much higher so maybe a distributed team like 37Signals can get away with this for a while longer.
2 points by adaml_623 3 days ago 0 replies      
I think it's a good thing that a potential employee of Jason's can read his blog and be warned or at least aware of what kind of company he's running and potential future careers there. Personally as a developer I'm looking forward to gaining more managerial experience as I can see how you can make bigger more exciting things as you have more people contributing.
Incidentally I work for a company twice as big as 37 signals although growing quite fast in comparison and I can see that the people in the nontechnical roles quite enjoy the possibilities (and realities) of progressing to different and managerial roles. It makes me happy that they can stick around and don't have to leave when they might otherwise stagnate.
3 points by imbriaco 3 days ago 0 replies      
I was one of those experiments, as the Operations Manager, and I like to think it went pretty well. As many people here have rightly pointed out, though, being hands-on is the key. I continued to do a lot of the day-to-day technical work.

The main difference between what I did, and what the rest of my team did, was that I had the added responsibility for dealing with partners and vendors, negotiating contracts, scheduling hardware installations, and the like. The rest of the team was able to remain completely focused on the system administration issues that we cared about while I split my time.

For our team, it made good sense. For the other development/design teams, the way they're run makes sense. It all depends on context.

1 point by slee029 3 days ago 0 replies      
While I completely agree that flat vs a vertical hierarchy should be assessed from organization to organization, I tend to prefer flat structures mainly because they allow for the culture to mold perception of progression over an existing structure itself. What I mean by this is that if you have a structured way for internal progression (usually vertical) people mold their perceptions around that ladder no matter how much you try convincing them otherwise.

You can clearly see this being played out within the big 4 accounting firms (I recruited for them and from them). Within the firms its extremely vertical in that progression is dictated largely by how long you stayed until you hit partnership where its strictly vacancy. Thus, you're basically looking at steady yearly promotions until you reach being a senior manager after 6-8 years within the firm.

This is where I was able to take the most senior people usually in a seasonal manner pretty easily. This is because after being a senior manager you really have only two trajectories within the firm, associate partner or partner. The AP is basically a position they created to please senior managers who sounded too old and weren't good enough to be partners. So what you generally see is 3-4 hotshot senior managers all vying for the 1 partnership position that will be available that season/year. Inevitably I'll have 3/4 partner potential senior managers leaving because they know they're better off leaving the firm and going to an industry position or worse a competitive firm. They already know the stigma of being an AP.

Thus, you don't simply see attrition at the top level, but the attrition of the very best at the top level and the rest being APs. What's worse is those guys who are the best usually have a loyal following within the firm. Well guess who gives me a call after placing that senior manager as a hiring manager where they're building a team? Now you see an attrition of even better people who you were probably underpaying at junior positions leaving the firm for better pay and better hours. The only guiding light there is you're hoping that senior manager becomes their client in the future.

Thus, you see a system where the highly vertical nature of the structure led to a culture where attrition was the norm. While it might be naive to think so, I think being a flat structure might give a better chance for the culture to shape that perception of the promotion and have them "feel" it rather than perceive it.

2 points by orev 3 days ago 0 replies      
This is a lot of BS, spoken by a Founder with no understanding of employee needs. Employees do not have their eyes set on always staying where they are. They are not reaping the monetary rewards the way a Founder is. To an employee, EVERY job is a stepping stone to the next one, eventually. This Founder is completely self-absorbed.

Job titles are free and it helps the employee along on their career. No, they shouldn't be inflated, but they shouldn't be held back either. Eventually the employee needs to put that job on their resume and if it looks like they were an entry level person because the Founder was a jerk about titles, it's better if the employees leave now instead of later.

1 point by Uchikoma 2 days ago 0 replies      
My view on managers: Turn your org chart 180°. All managers are supporting those "above" them, this is their primary goal. Usually companies have this the other way round. This also means there is no problem with "useless" middle management (Scrum calls this manager type ScrumMaster).
1 point by daemin 1 day ago 0 replies      
Since you run a fairly flat organisation, do you ever promote the exceptional people that have worked with you for many years into the 'partnership' area of your company?

I read somewhere that David was originally a contractor and then became a partner, but has this occurred for any other significant contributors to the company. I'm thinking 10+ years, has a solid and respected reputation within the company, etc.

2 points by rishi 3 days ago 1 reply      
"And because we don't have a marketing department, we don't have a chief marketing officer."

37 signals is amazing at marketing. Their blogs. Their books. Video Lectures. Mission statements. Guest posts.

1 point by trailrunner 2 days ago 0 replies      
This "flat" system sounds very nice, and I really like this rotation of responsibilities and "managerial positions" to all members. I wonder though, if the same principle is applied to the CEO and Business Owners positions as well (both in respect of decisions and profits). If not it doesn't seem that flat to me.

So preaching "flat" while being a business owner sounds a little suspicious, because you are preaching everybody about flat while standing above them.

I hope 37signals is truly different (I cannot judge since I don't know crucial details), because if at some point after ten years the business is sold to a big corp, and everyone finds himself trapped below ten levels of management, without a career path, 4 day workweeks during the summers of youth will sound like a bad joke.

1 point by raheemm 3 days ago 0 replies      
That idea about rotating leadership within the customer service team is brilliant! I wonder if changing it every week is too frequent though - what about doing it biweekly?
1 point by MrMan 3 days ago 0 replies      
The only way to solve management issues with a high degreee of confidence is to stay small enough to avoid management. The NASA analogies are problematic, however, because large organizations do indeed manage to manage themselves while completing critical projects. Which is more interesting? Large-scale management, or head-in-the-sand? I could personally never work in a large-scale organization, but how can we all avoid these issues and still create a highly functioning economy, which produces both critical and lifestyle goods and services?
1 point by skrebbel 3 days ago 0 replies      
Why don't you just split into two little 37signalses when the time comes?

In all the proposals / solutions mentioned here for dealing with growth while maintaining a flat culture, this is one approach I haven't seen yet. It worked well for a Dutch consultancy firm called BSO, which reached over 6000 people in the 90's, all organised into near-independent little companies of 50-ish people each, all targeting a different market, but each with the same culture and values. The firm itself was a flat company of these little companies (called "cells"), so effectively there were just 2 to 3 layers of management.

(http://www.extent.nl/articles/entry/origins-original/ if you care about the details)

2 points by mcdowall 3 days ago 2 replies      
I find it outstanding that they have 5m users and only 5 support staff!. I would love to know how they manage that.
1 point by shn21 3 days ago 0 replies      
In many companies the managerial titles are invented incentives, not necessarily they "manage" people. They exist as part of the incentive package, and certain companies attract certain personalities who would be happy with titles. Management position gives one probably a different satisfaction, "doing better than the other guy", and assumed better pay above the managed is all that is needed. It's a kind of a distraction. It is not bad unless it kills nurturing leadership environment. The best case is that laders become chosen managers by their peers. The worst case is that those who can not manage become assigned leaders (managers) by "the management".
1 point by clarebear 2 days ago 0 replies      
Sarah Hatter, who is the employee described in this story, left an insightful comment that unfortunately showed up as a child of aless insightful comment and is therefore buried. Check it out here: http://news.ycombinator.com/item?id=2417278
1 point by mayutana 2 days ago 0 replies      
How does such a model work for tasks where you need to perform long term planning? Similar to national elections, such a model could result in policies being changed every time a new manager is in place.
1 point by fletchowns 3 days ago 0 replies      
Four day work week in the summer? Holy cow that sounds awesome.
0 points by ck2 3 days ago 1 reply      
Way to reward the one critical person who actually has to do the hard work of interacting with your customers AFTER they've been sold and paid you money.

That's the hard part because it's only dealing with problems and never "great to have to call you".

I guess customer service these days is disposable and easily replaceable.

1 point by hpux 3 days ago 0 replies      
But what if a young startup company want to use this approach. consider a programming team which its developers are not in the same level of expertise and ability. Is it possible for this team that the manager rotate among team members? Doesn't it lower the performance of the members and the self-management of total team?
Larry Page Begins Major Google Reorg: Engineers, Not Managers, In Charge allthingsd.com
408 points by citizenkeys 4 days ago   152 comments top 29
74 points by SoftwareMaven 4 days ago 3 replies      
I question the title. It doesn't sound like engineers are in charge, instead, it sounds like smaller operating units will be in charge. That is a very different thing from having the inmates running the asylum.

I have yet to see a large company that successfully treats software as a creative endeavor instead of a production line that still manages to be able to focus on solving customer problems. I really hope that Larry figures this out because, if he does, that will (IMO) be his greatest legacy.

What I think will happen, though, is Google will focus even more on technology and care even less about actual users.

53 points by CoffeeDregs 4 days ago 5 replies      
This is a big story. I'm both an engineer and a manager (to which engineers will say "management!" and managers will say "developer!"), and I haven't seen this pendulum swing back and forth so much as be ripped in half and pulled in opposite directions. Google's obviously got very smart folks in both engineering and management, so it's going to be very interesting to see how this is handled.

I can't imagine a Microsoft, Sun, Oracle, etc going through this exercise, so I'm seriously rooting for Google. It'd be lovely for this change to produce some real knowledge on how to run a modern, big, high-speed tech company without getting trapped in the argument over engineering-vs-management.

8 points by 6ren 4 days ago 0 replies      
It's also similar to how Berkshire Hathaway is run; and how Christensen advocates nurturing disruptive businesses - smaller units can get excited about smaller sales that are a rounding error to Big Google (new markets start small); independent units are free to customize their business model and how they do things to what fits the opportunity (instead of fitting in with the parent's model and processes - which has compelling economies, but only early).

e.g. it seems highly unlikely that advertising is the ideal revenue model for every business Google is in. The appropriate fit might be sales, renting, monthly charge, pay-per-use, royalty, per-developer, per-other-metric. It's not necessarily about extracting more money from customers, but revenue that makes sense for customers - that they prefer, that makes sense in the competitive set, that motivates the business to improve along the right dimensions.

9 points by blinkingled 4 days ago replies      
This got me thinking about role of managers in a modern org (to simplify things let's say it's a Tech company).

It certainly needs a CEO/Visionary, it most likely needs HR and front/back office folks, it certainly needs PR and marketing people. But in a world where people communicate rarely in person, have their own management and economics 101 abilities, are smart enough to not work against their own interests (and look after the org's interests) - what's the role of the future manager?

It sounds inevitable that senior Engineers will double up as managers for their group as and when required (working with marketing etc.) instead of it being a dedicated managerial position.

16 points by joebadmo 4 days ago replies      
It's awesome to see a fundamentally engineer-driven company like Google and a fundamentally designer-driven company like Apple become so successful. It has always seemed to me that management is an important but overemphasized skill (as a fundamental trait of the way large organizations work) and it's really refreshing to see this happening.
6 points by microcentury 4 days ago 0 replies      
The reality of a large corporation like Google is nowhere near as simple an engineer-vs-manager dichotomy as many of the comments on this thread would make it. Products need to be developed, but they need to be supported and sold too. Which of these functions is most important depends on your world view and your tolerance for angels-on-a-pinhead debate, but it's undoubted that each of them are crucial.

An engineering mindset of automation and solution-by-algorithm gives us the miserable customer service that Google is famous for; a realisation that people are tricky and messy gives us something more like Zappos. The people who are good at support and managing support teams are not like engineers, and the people running sales are an entirely different breed. Rare is it to find someone who can successfully manage all three. Indeed, I would go out on a limb and say - as an engineer myself - that it's easier to find a non-technical person who can make a positive impact in product development than it is to find an engineering who can significantly improve sales or support.

22 points by aridiculous 4 days ago 3 replies      
Can someone who works at Google chime in with what the organizational temperature is like at Google? Does this whole 'party time's over for the managers' thing we're hearing about have any real weight to it?
4 points by drawkbox 3 days ago 1 reply      
Seems to work pretty well for Honda. They innovate and everyone still copies their designs and products, but they also have great financial results magically with innovative products. http://www.forbes.com/forbes/2006/0904/112.html [2006]

I hope this is a trend in America, Google can set a great example (as all companies early on do) on keeping innovators in charge with a startup culture/meritocracy.

Before the recent change in CEO, I felt Google was getting too suits focused and simply competing on a byline/reactionary technique. Bring it back Google.

5 points by sabat 4 days ago 0 replies      
Certainly, Rosenberg has been crucial to Google's success, so his exit has come as a shock to pretty much everyone to whom I've spoken.

That said, its timing seems quite convenient, particularly in relationship to what looks very much like a significant reorg that is currently underway at Google, said sources familiar with the situation.

Note first that Rosenberg's replacement wasn't immediately named and it's not clear whether Page even feels one is needed.

Maybe Rosenburg helped Google do great things. Maybe I'm about to over-simplify. But weren't the things that made Google a true powerhouse created long before guys like this were hired -- back when the company was more engineer-driven?

It seems to me that Larry Page's frustration has been growing as he watched MBAs take credit for the success the engineers had created years before. If that's the case then I wish him success in changing the company's structure.

2 points by ramanujan 4 days ago 1 reply      
This may finally lead to outright combat between the ChromeOS and Android groups.

Chrome the browser itself is fairly successful, as are Android phones. But Chrome OS vs. Android...that is a huge showdown. ChromeOS is a minimalist OS, whereas Android is a fat client. Philosophies are totally different.

Attitude within Google right now is "let the market decide". Only a company with the free cash flow of Google could build two operating systems intended for mobile devices and take that kind of approach.

I'll get my popcorn.

13 points by asknemo 4 days ago 2 replies      
Ever since "management" and the dedicated "manager" were invented, we have been told, increasingly in recent decades, that they, rather than talents in other roles, are the key to business success. With the increasing importance and accelerating pace of innovations in our time, it's time to test if to what degree such doctrine would still hold true. Good job Larry. That's some risk worth taking.
3 points by clistctrl 4 days ago 0 replies      
I think this is a great direction for Google, but it certainly is not a direction most other companies with equivalent growth can pursue. I think one of the unique aspects of Google, is the type of engineer they pursue.
2 points by endlessvoid94 4 days ago 1 reply      
I'm really interested in seeing how companies grow; I hadn't realized quite how large of a role non-engineers played in Google's structure.

Glad to see it's moving in the right direction.

2 points by rwmj 4 days ago 1 reply      
So here's a question for potential HN entrepreneurs:

If your company got as big as Microsoft or Google, would you split it up, spinning off subdivisions as separate companies?

And (in the case of MSFT/Google) why haven't they done that?

3 points by spydertennis 4 days ago 1 reply      
I hope this doesn't create a Microsoft like situation where its very difficult for departments to work together.
3 points by dennisgorelik 4 days ago 2 replies      
GOOG is 3% down today (while market overall is about the same).
I personally like Larry's change, but average investor seems to be skeptical.
1 point by jay_kyburz 4 days ago 1 reply      
I don't think they should be letting Managers or Engineers run things. I think they need to have... I'm not sure of the title... lets call them Vision Carriers. In the video game industry we call these people Creative Directors.

These vision carriers need to understand the product they are building and the people who will use it.

They don't need to be good a managing people or budgets, they don't need to write code. They need to understand what is good and what is bad and they need to be able to clearly communicate it to the team.

1 point by teyc 4 days ago 0 replies      
No, I don't think this will solve anything.

The problem with Google is that it is sized to deliver big brands, big scale and big projects.

First. Google today cannot deliver small brands because failure is very expensive. Every Wave, Buzz, Knol costs Google because future enterprises are less likely to want to try their products.

Startup culture could no longer exist in Google, because the salary means that the people will be taking risk with other people's money, and it doesn't work for early stage projects.

Secondly, Google cannot deliver small projects. I can relate this to my past history working at a large mining company, there are some mineral deposits that they may not develop but sell off because it is too small for a company their concern. The management overhead is simply too big.

Finally, to deliver large projects require specialist departments. The functional structure is there to deliver this. The alternative would be a matrix structure where there will be a lot of confusion as to who reports to whom, or serious duplication.

1 point by abbasmehdi 4 days ago 0 replies      
This is such a good move! It gives Google the nimbleness, hunger, and guerilla mentality of a start-up in new areas it wants to explore through these small mostly-autonomous teams, while simultaneously allowing it to defend the already captured beachheads (search, gmail etc.) - all funded by the deep, deep, Google pockets.

In any innovation-oriented org, curious engineers and inventors need to be able to play and push the boundaries, but even large organizations with strong financial backs are so defensive when it comes to innovation, so afraid to fail, or waste resources on experimenting. Google has always been okay with this "waste". If you go back before year 2k and try pitching to a goliath sw company to let 20% of dev time be spent on employees' projects of choice you'd get assaulted by the CFO. Google was okay with this "waste", because they knew if you let the right players roll the dice, every now and then you'd hit jackpot. And they did! Many of their most successful products came out of the 20% project.

Organizations today have split the vision and execution aspects of building something. The vision comes from management and the execution from engineers " this is straight from the defensive playbook - ‘engineers can execute with minimum risk, and managers are close to the customer therefore know what will sell for sure'. This kind of thinking will work when you want to improve marginally (like Henry Ford said something along the lines of 'If I asked my customers what they wanted they'd say a faster horse'), or if you are the market leader, but it will never cause disruption or let you make headway in uncharted territory. It is very important to know when to play offence and when to play defense.

2 points by pdaviesa 3 days ago 0 replies      
I'm beginning to worry about Google. Companies don't make these types of changes when everything is going great.
1 point by akkartik 4 days ago 0 replies      
Seems to fit the playbook at http://news.ycombinator.com/item?id=2369445 a teensy bit, but not the one at http://news.ycombinator.com/item?id=2405198.
1 point by donnyg107 4 days ago 0 replies      
I love when companies move back to their purer roots. I don't know where this puts Google's progress as a company over the next few years, but it definitely means we won't be seeing the innovation slowdown that Microsoft experienced after their years of explosion. As long as our tech superstars arn't just turning into company gobbling monsters, but rather are constantly iterating, innovating, and developing their product line like a company should.
2 points by noamsml 4 days ago 0 replies      
I wonder if part of this is the result of growing competition from the engineer-driven Facebook.
1 point by sunstone 3 days ago 0 replies      
This brings to a head the interesting situation of the modern tech company. Unlike companies in almost all other industries, the average developer at Google (and a lot of other companies) needs to be much smarter to do the job than the manager.

So the skill pyramid is actually inverse compared the "military corporation" model. It's also true that many, perhaps even a majority, of the deveopers would be "even better" at management, marketing and strategy etc, than those normally filling these roles.

This situation really does beg for a solution beyond what the typical corporation/MBA paradigm has come up with so far. Kudos to Mr. Page for taking a shot at it.

0 points by pdaviesa 3 days ago 0 replies      
There is a big difference between a manager and a leader. A manager takes the credit for things that go well and looks for people to blame when they don't. A leader understands that they are only successful if their team succeeds. A manager worries about how the team might screw things up. A leader thinks about how the team can exceed their goals. A manager tries to consolidate their power and protect their turf at all costs. A leader knows that the team follows them out of a sense of mutual respect and understands that if they can no longer effectively lead the team than it may be time to step aside. Leaders are not just found at the top of an organization.
1 point by dr_ 4 days ago 0 replies      
Like I've stated before, this would be the perfect time for Microsoft to take Gundotra back and make him CEO.
They desperately need the same type of change at the executive level.
1 point by elvirs 4 days ago 0 replies      
I wonder if this change will result in Google focusing and releasing more hard core technology products or more social products.
1 point by swixmix 3 days ago 0 replies      
I mistakenly thought Larry Wall was the new Google CEO. It seemed a little odd at first, but then I thought it was very cool. Now it doesn't seem quite as interesting.
-3 points by hobb0001 4 days ago 1 reply      

  That jibes well with Page's push to whittle down Google's
manager bureaucracy, eliminate politicking and rekindle its
start-up spirit.

I first read that as "pot-licking" and thought, WTF is that? A new managerial term like dogfooding?

Show HN: my weekend project, Gumroad gumroad.com
366 points by sahillavingia 5 days ago   202 comments top 58
70 points by sahillavingia 5 days ago replies      
Over this past weekend I had the idea to build a sort of link shortener but with a payment system built-in. There have been many times in the past where I wanted to share a link - on Twitter or just through IM with a few friends - but did not want to go through the overhead of setting up a whole store.

So I built Gumroad. I coded/designed from 12PM -> 11PM on Saturday and 8AM -> 11PM on Sunday. There are still tons of features missing (I'm working on AJAX file uploading next!) but I think it's reached that - buzzword alert! - MVP stage where I want to see if anyone's actually going to use the darn thing (I'm thinking about taking a 30% cut).

Here's an example Gumroad link: http://www.gumroad.com/l/hjbaod - I use Stripe for payments. Here are some screenshots I took while making it: http://letscrate.com/gumroad/gumroad-progress - I didn't use Photoshop so no crazy time-lapses!

I think it has some potential. What do you guys think?

34 points by JoshTriplett 5 days ago 7 replies      
Interesting idea, but I see two main issues with this.

First, anyone who pays and gets to the resulting link can trivially share that link; of course, you can always ask them nicely not to do so, and in some contexts that will work, but in general the security model just doesn't work unless you authenticate each paid user at the destination. You need to come up with an answer to this.

Second, if you market this as a link shortener which requires payment, I think you'll get backlash from people who currently use link shorteners to share links on Twitter and similar; from that perspective it feels like the kind of thing you'd see used by Twitter spammers/scammers. Suggested fix: flip it around, and present it as an astonishingly simple payment system based on URLs, which happens to behave like a shortener.

66 points by bhousel 5 days ago 3 replies      
17 points by jasonlotito 5 days ago 2 replies      
Things you have to look at fast.

* Money laundering. Cap fees now.

* You are using Stripe, but you're still collecting CC data. Are you PCI compliant?

* Does Stripe allow you to do this? Really? Basically, you're acting as a third party processor, an IPSP. People can sell anything through your service (Think adult content)

I'm really interested if Stripe is aware of what you are doing and fine with it.

14 points by Xk 5 days ago 0 replies      
You have an XSS on the login form. I create a page which posts to the login page with the name

" onclick="alert('do evil here')" onfocus="alert('do evil here')" foo="

It errors out, and my javascript is now in the input box. They click the name and then it runs my javascript.

It's great you've escaped < and >, but you need to do more.

15 points by btmorex 5 days ago 3 replies      
What do you plan on doing about fraud? Seems like it would be way too easy to move money around with stolen credit cards.
7 points by kqueue 5 days ago 1 reply      
Traceback (most recent call last):

  File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/__init__.py", line 634, in __call__

File "/base/data/home/apps/gumroad/1.349472656690944858/main.py", line 60, in get
if is_logged_in():

File "/base/data/home/apps/gumroad/1.349472656690944858/main.py", line 110, in is_logged_in
s = sessions.Session()

File "/base/data/home/apps/gumroad/1.349472656690944858/appengine_utilities/sessions.py", line 562, in __init__
self.session = _AppEngineUtilities_Session.get_session(self)

File "/base/data/home/apps/gumroad/1.349472656690944858/appengine_utilities/sessions.py", line 142, in get_session
ds_session = db.get(str(session_key))

File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/db/__init__.py", line 1422, in get
keys, multiple = datastore.NormalizeAndTypeCheckKeys(keys)

File "/base/python_runtime/python_lib/versions/1/google/appengine/api/datastore.py", line 180, in NormalizeAndTypeCheckKeys
keys = [_GetCompleteKeyOrError(key) for key in keys]

File "/base/python_runtime/python_lib/versions/1/google/appengine/api/datastore.py", line 2339, in _GetCompleteKeyOrError
key = Key(arg)

File "/base/python_runtime/python_lib/versions/1/google/appengine/api/datastore_types.py", line 364, in __init__
raise datastore_errors.BadKeyError('Invalid string key %s.' % encoded)

BadKeyError: Invalid string key agdndW1yb2FkciMLEhtfQXBwRW5naW5lVXRpbGl0aWVzX1Nlc3Npb24Y.

18 points by mgkimsal 5 days ago 2 replies      
As with many ideas I see floated and mvp'd on HN, I'm jealous. Great idea, good execution. I'd agree with others that the 30% is too high. 5-10% would be acceptable.
9 points by retube 5 days ago 4 replies      
How does this work for art though? I mean you want to see the icon/graphic/design/whatever before you pay for it.

Also - once you've been redirected to the page, what's to stop you taking the link and sharing it yourself?

Also also: if I've got something to sell, can't I just bung it on ebay?

10 points by petercooper 5 days ago 0 replies      
Loving the simplicity of the idea. The simplicity is worth a higher cut (though maybe not 30% ;-)) and makes it a lot more attractive to use in small situations. One thing you need to beware of, though, is the filing requirements.. you might have to start issuing tons of 1099s and that process will cost you.
11 points by fizx 5 days ago 1 reply      
Please put a video on the homepage. If I'm on the fence, I'd rather watch a video than create an account.
4 points by donnyg107 5 days ago 0 replies      
If this becomes a high traffic site, it could really help fight internet piracy. If I have a high demand, hard to find video, I'm far more likely to try to sell it than just give it away. And even if I can't because the site is closely watched by the actual copywriter holders, the idea that money can be made off any online property can give internet knowledge and assets the feeling of physical worth, to the degree that people may grow hesitant to just give away their video and music files. It also has potential to detract from the information free-for-all of the internet, as people may also grow hesitant to share in general, but that would only be for sellable things, so blogs and general information are basically out. If successful, this site could make major change in the attitude of the internet. In essence, conflict exists between copyright holding companies, who believe their intellectual property should be paid for, and the general population of the internet, who freely share information constantly. This conflict could seriously benefit from a general shift toward the resounding feeling that information and online assets are worth something and should be bought and sold. That could be of serious detriment to the culture of the internet, but the communities could also gradually adjust. After all, the feeling that assets have monetary value is the way we live in the real world, its only a matter of time before the internet starts to follow.
5 points by kloncks 5 days ago 1 reply      
The copy on the re-direct page is bothering me a bit. Anyone else?

You're being shared Gumroad!

With the "You're being shared". Sounds confusing.

7 points by jcapote 5 days ago 1 reply      
If the payment fails, will you still redirect to the link?

If you only redirected based on successful payments, you could use this as a simpler paypal for charging clients on your site using unique gumroaded links.

4 points by barredo 5 days ago 2 replies      
Is the redirect-link unique in any way? I mean.

If anyone buys the access to a a non-unique-link (ie: http://mybook.com/book.pdf), and then shares the redirected URL to a third person, this third person could load the link without paying, right?

10 points by evoltix 5 days ago 4 replies      
Seriously? I'm not sure I could take anyone seriously that tried to sell me a link of "value." Why not just share the link for free like people have been doing since the beginning of time?

Don't get me wrong. You did a great job getting this rolled out over a weekend and it looks nice. I must need some enlightening because I really don't get it.

3 points by dools 5 days ago 0 replies      
I'm already giving this away for free with a PayPal donate link at http://pickdropapp.com/ but what the hell: http://gumroad.com/l/cvhhwi
11 points by suking 5 days ago 1 reply      
Nice - how about this as a feature: # of downloads allowed. This would allow people to sell just 1 copy or set up something like a groupon-esque clone. First 50 people get 50% off. Then after 50 people say you're too late. Just an idea.
4 points by rokhayakebe 5 days ago 0 replies      
This may just be the simplest way to sell digital goods.

I think all content should be uploaded to your servers otherwise if someone gets to the final link they can just send others to it.

18 points by cavilling_elite 5 days ago 1 reply      
This looks like a really expensive way to get Rick Roll'd :)
2 points by bryanh 5 days ago 0 replies      
Brilliant little idea, I think the big selling point is speed and ease of use. I might create a similar product to this for BitBuffet.com (a similar file selling service I created), as I think the process can be further streamlined.

Digital sale processes still need streamlining for everyday users (especially one-off users) and I can see a service like this taking off.

3 points by tezza 5 days ago 0 replies      
Seems good.

How long until exact clones appear? What makes GumRoad the micro-paywall of choice?

How long until shortened<-->lengthened websites appear which reduces how many people pay up?

5 points by mtw 5 days ago 0 replies      
Are you collecting taxes? if it's a company registered in the US

Also how do you deal with chargebacks?

2 points by nyellin 5 days ago 1 reply      
You can tell clients to check the http referrer for your domain. That would (mostly) stop people from posting now-useless destination URLs online.

http referrers are easily spoofed, of course, but it'll be enough to prevent most people from sharing secret urls on twitter. You could also pivot and allow people to upload files to your own server, but that's a different story.

4 points by aquark 5 days ago 0 replies      
Interesting concept -- how do you deal with the legalities?

If I buy something am I buying it from you or from the original owner?

How long do you hold onto the funds to deal with any potential chargebacks?

2 points by hugh3 5 days ago 1 reply      
I'd work on the name. Gumroad? What does it mean?

To me it brings up an image of a road, covered with gum. I'm trying to get where I want to go, but there's all this gum on the road slowing me down. It's a huge and annoying obstacle. And that is a bad mental image, given that what you're selling is a sort of obstacle.

It's not too late for a different name.

3 points by kloncks 5 days ago 1 reply      
Is this what you've been working on in SF, Sahil :) ?
2 points by eddieplan9 5 days ago 0 replies      
Nice product!

Feature request: use the top half of the screen to show a preview of the linked page rendered as a PNG. Use the other half of the screen for soliciting payment. I want to know what I would get with the payment. How much of the target page is shown should of course be configurable by the page owner.

5 points by schwabacher 5 days ago 1 reply      
I really like you color pallette. How did you come up with it?
2 points by icco 5 days ago 0 replies      
Seems cool. I wish you'd render the about text box for products with Markdown or something though so the links were clickable.
2 points by tlrobinson 5 days ago 0 replies      
I already dislike URL shorteners, there's no way I'm going to give my credit card info to one.
1 point by franze 4 days ago 0 replies      
i love the idea, i hate the new "We have a tiered system for pricing:" basically it says: if you earn less, we will take even more. so basically if - lets say - earn 2 dollars (casual user who sold a psd template for 1$) this service now takes 2$ - 230c = 1.40$ - (1.40$ 0.3) = 98c

this tool should encourage casual use
it makes a perfectly simple product complicated.

please overthink your pricing-strategy. make it as simple as possible, iterate from there.

1 point by primigenus 5 days ago 0 replies      
There's some potential for gamification here. Here's a Gumroad URL which, when paid for, unlocks some kind of challenge that you must solve in order to find a new Gumroad URL. Which unlocks another challenge that leads to another Gumroad URL, continuing for n steps until you unlock the final reward. Each step costs less than a dollar.

How would this have played out if eg. Dropbox had run their challenge on top of Gumroad?

3 points by lux 5 days ago 1 reply      
What are your fees? Didn't see that anywhere on the homepage.
4 points by mgeraci 5 days ago 1 reply      
I like the simplicity of the home page, but I would want to see what a user would see when supplied with a gumroad'd link before singing up.
1 point by suprafly 5 days ago 0 replies      
Traceback (most recent call last):
File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/__init__.py", line 634, in __call__
File "/base/data/home/apps/gumroad/1.349472656690944858/main.py", line 60, in get
if is_logged_in():
File "/base/data/home/apps/gumroad/1.349472656690944858/main.py", line 110, in is_logged_in
s = sessions.Session()
File "/base/data/home/apps/gumroad/1.349472656690944858/appengine_utilities/sessions.py", line 562, in __init__
self.session = _AppEngineUtilities_Session.get_session(self)
File "/base/data/home/apps/gumroad/1.349472656690944858/appengine_utilities/sessions.py", line 142, in get_session
ds_session = db.get(str(session_key))
File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/db/__init__.py", line 1422, in get
keys, multiple = datastore.NormalizeAndTypeCheckKeys(keys)
File "/base/python_runtime/python_lib/versions/1/google/appengine/api/datastore.py", line 180, in NormalizeAndTypeCheckKeys
keys = [_GetCompleteKeyOrError(key) for key in keys]
File "/base/python_runtime/python_lib/versions/1/google/appengine/api/datastore.py", line 2339, in _GetCompleteKeyOrError
key = Key(arg)
File "/base/python_runtime/python_lib/versions/1/google/appengine/api/datastore_types.py", line 364, in __init__
raise datastore_errors.BadKeyError('Invalid string key %s.' % encoded)
BadKeyError: Invalid string key agdndW1yb2FkciMLEhtfQXBwRW5naW5lVXRpbGl0aWVzX1Nlc3Npb24Y.
1 point by mekarpeles 4 days ago 0 replies      
Traceback (most recent call last):
File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/__init__.py", line 636, in __call__
File "/base/data/home/apps/gumroad/1.349498677539326613/main.py", line 292, in post
File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/db/__init__.py", line 1491, in delete
datastore.Delete(keys, config=config)
File "/base/python_runtime/python_lib/versions/1/google/appengine/api/datastore.py", line 516, in Delete
keys, multiple = NormalizeAndTypeCheckKeys(keys)
File "/base/python_runtime/python_lib/versions/1/google/appengine/api/datastore.py", line 178, in NormalizeAndTypeCheckKeys
keys, multiple = NormalizeAndTypeCheck(keys, (basestring, Entity, Key))
File "/base/python_runtime/python_lib/versions/1/google/appengine/api/datastore.py", line 157, in NormalizeAndTypeCheck
(types, val, typename(val)))
BadArgumentError: Expected one of (<type 'basestring'>, <class 'google.appengine.api.datastore.Entity'>, <class 'google.appengine.api.datastore_types.Key'>); received None (a NoneType).
2 points by yoshyosh 5 days ago 0 replies      
Am I missing something or could you just employ a download method rather than link? Maybe something like how istockphoto does it. Although the link leads to a purchase terminal, if they make the purchase it would prompt a download rather than a link they could share.

Also link shorteners + asking for credit card information immediately can get iffy in terms of trust and fraud. I understand that it is an mvp though. Later you might be able to employ a buy credits system like istockphoto does.

3 points by fuscata 5 days ago 1 reply      
I get a broken lock icon, and "Connection partially encrypted" message. You need to make sure all externally linked resources on the page use SSL. Specifically: change http://fonts.googleapis.com/css?family=Cabin:regular,bold to https://...
2 points by ojilles 5 days ago 0 replies      
sahillavingia, your personal site looks awesome too!
1 point by jimminy 5 days ago 1 reply      
First off, I like the idea, but there are some noticeable flaws, many which have been brought up.

One interesting one for me, which is more an oversight, is that anyone can make money off of the sale of a link. There is no way to validate that the person posting the link, is the owner of the content. So someone could sell links to a page on HN, Reddit, Techcrunch, etc. at no expense to them.

If this did occur, I think it would cause a quite negative view of Gumroad links, as being scammy. In which case, people would begin to avoid them, reducing their effectiveness as a possible sales medium. Without oversight, as to who is selling a link, this might end up smothering itself out.

1 point by ck2 5 days ago 0 replies      
Just a caution, if you are taking in money via paypal and then paying out via paypal, paypal will probably shut you down within a month. They don't like competition.
3 points by mizerydearia 5 days ago 0 replies      
2 points by bokonon 5 days ago 0 replies      
I saw it mentioned here already, but the idea of a "Name your Price" option would be really cool. Just like how Bandcamp does it. I'm always more motivated to support artists that chose this option.
1 point by erikch 5 days ago 0 replies      
I've been thinking about this exact problem for a few weeks now. I have gone as far as buying a domain for it (epayfiles.com) and I just started coding. I think I'll continue on with my project I'll just focus on a different payment niche.

After doing some quick research I found five or six sites with similar ideas. Most of them focus on selling digital files not links. The link idea sounds novel. The presentation is also very clean. Looks good.

1 point by bauchidgw 5 days ago 0 replies      
please tell us when the first (real) vc are knocking on your door ... this is just awesome and has more potential then the most startups covered by techcrunch and co
1 point by Noleli 3 days ago 0 replies      
I saw this post the other day, then came across Pulley. Is there a difference? http://pulleyapp.com/
2 points by jorangreef 5 days ago 0 replies      
Well done this is brilliant.
1 point by livejamie 5 days ago 0 replies      
I like it, there's a lot of functionality missing, as you said but tons of possibilities.

I'd like to see a "pay as much as you'd like" feature, where you can set a minimum amount (like radiohead and girl talk do) but still allow them to pay more.

1 point by potomak 4 days ago 0 replies      
This is my daily fail: http://potomak.tumblr.com/post/4361901296/developer-business...

Developer ≠ Businessman

2 points by tommoor 5 days ago 0 replies      
I think it's a great idea, and really well implemented so far.

Best of luck with it!

2 points by caioariede 5 days ago 0 replies      
If the value is zero the user is being redirected to home, after accessing the link url.
1 point by ddkrone 5 days ago 0 replies      
There is no way to stop re-selling of the content once somebody has bought it short of implementing some horrendous DRM system.
1 point by DrOkter 5 days ago 1 reply      
Why wouldn't stripe just implement this themselves? Since their payment processing service (and API?) is 99% of the project, seems like they'd make their own and cut you off if this gained any traction.
1 point by huge_ness 5 days ago 0 replies      
So it's funny that this happens today: http://news.ycombinator.com/item?id=2407969
1 point by Flam 5 days ago 0 replies      
How do I know that, when I pay, I am actually getting what I am paying for?
How do you handle chargebacks etc..
1 point by dps 4 days ago 0 replies      
Great idea. Your email address matching is case sensitive, you might want to fix that.
1 point by woodall 4 days ago 0 replies      
Really neat way to sell vulnerabilities.
Physics Engines for Dummies wildbunny.co.uk
359 points by twodayslate 2 days ago   14 comments top 8
30 points by crux_ 2 days ago 2 replies      
Here's an A+ reference/tutorial for anyone looking for a "not for dummies" version of rigid body dynamics:


(Had to google for a fresh link; unfortunately this doesn't seem to be nearly as widely mirrored as I believe it deserves.)

Things I liked about it:

- The author continually explains, compares, & contrasts alternative approaches throughout.

- It builds up a full actual system, including a lot of discussion of what other references may dismiss as mere software engineering.

- The author starts with the fundamentals and goes from there, usually fairly thoroughly.

8 points by flyosity 2 days ago 0 replies      
Here's another great game physics reference by Glenn Fiedler. It's a must-read for beginner (and not-so-beginner) game programmers and has helped me immensely.


7 points by chipsy 2 days ago 0 replies      
This is excellent.

Also check out the speculative contacts post: http://www.wildbunny.co.uk/blog/2011/03/25/speculative-conta...

Even if your physics algorithms are wholly fake, you need quality contact resolution, or strange behavior will appear in collision responses, since any collision response is predicated on having correct contact information. (The consequence of bad contact quality, seen in lesser physics engines, is major errors where shapes can "squeeze through" other shapes or jitter against each other, gaining energy and eventually exploding.)

4 points by lutorm 1 day ago 1 reply      
If I remember correctly from when I read about this 10 years ago, enforcing constraints by adding restoring forces/impulses is a bad way of doing it, because it gives very stiff equations. It works decently for soft constraints, like springs, but if you want to rigidly enforce a constraint, you need very large forces which are applied very suddenly, and to integrate such a system you need a very small time step. My impression was that it was much better to design your constraints into the equations of motion such that you reduce the number of degrees of freedom of the system and solve directly for the "constrained" motion. But that was research papers. Do real game engines use the method described here? Maybe the difference is the degree of "realism" required.
8 points by jules 2 days ago 0 replies      
Excellent. This is the kind of stuff that I'd love to see return to HN more often. Take a look at the rest of his blog, it's excellent too: http://www.wildbunny.co.uk/blog/
1 point by Tichy 17 hours ago 0 replies      
Does anybody know how to calculate torque? Like if two billard balls collide, I suppose part of the impact translates into new velocities, and part into spin. How much spin, that is the question.

Another example: in the C64 game Thrust, a rocket drags a ball which is attached with a stick. The ball is like a pendulum, hanging from the rocket. Now if the rocket accelerates, how will the pendulum swing, and where will it pull the rocket? Another way to view this is a big ball with a rocket on it's skin, that can accelerate in any direction. How much of the acceleration will turn into velocity and how much into spin?

Maybe I should be able to figure out the latter case by simply drawing vectors, but last time I tried my knowledge of physics was insufficient.

2 points by barrettcolin 1 day ago 0 replies      
Another excellent resource is the archive of Erin Catto's GDC presentations (Erin is the author of Box2D). Box2D was first presented in 2006; the 2005 presentation is about an iterative method for constraint solving in 3D.

Zips are here: http://code.google.com/p/box2d/downloads/list

2 points by suhair 1 day ago 0 replies      
And here's the book for the "pragmatics" http://www.amazon.com/Foundation-Actionscript-3-0-Animation-.... i found this one cool
Birth and Death of Microsoft Bing myprasanna.posterous.com
310 points by domino 1 day ago   117 comments top 24
47 points by raganwald 1 day ago 8 replies      
Perhaps a bit OT, but... The post seemed to be riddled with formatting and grammar errors. This rubbed my old-school English sensibilities at first, but then I began to enjoy its rough feel.

After all, it's a post about how people who worked tirelessly to bring a product to market were shipping things while the rest of Microsoft slept. The story very clearly describes a dichotomy in Microsoft's culture between process/rules/superficial quality on the one hand and relentlessly shortening the ship/fix cycle on the other.

This post is not just about shortened ship/fix cycles, it is itself an example of a shortened write/fix cycle.

When that struck me, the style of post suddenly "clicked:" It was as if I was reading an email that was furiously blasted out to Posterous while the author's compiler worked, and thereafter there was no time for extensive editing and proofing by a circle of reviewers. What mattered was to get the idea out and to start the conversation, editing and polish would follow later.

Great stuff!

25 points by InclinedPlane 1 day ago 2 replies      
I don't know that Bing has "failed" yet, but I highly doubt it'll be anything other than one amongst many in the pack in 5 years.

Microsoft has always been good at the pivotal turnaround. Recognizing when a key moment was on the wind, mustering together a tremendous effort, making a good number of smart decisions and putting out a solid anchor product that (re)cements their position in the industry and reinvigorates the brand in doing so. Windows 95 and Windows 7 are perfect examples. IE4 (yes really), Bing, and Windows Phone 7 are also good examples. One of the big problems with Microsoft is that its organization and its culture are extremely tied to the traditional 3-ish year ship cycle. A hugely successful diving catch every other ship cycle or so is rapidly becoming less and less feasible as a means to hang on to or acquire a market. Microsoft does not seem to get the web at a fundamental level, it doesn't seem to have the capacity to release software at a pace of yearly, monthly, or continuously.

And that will ultimately be the undoing of Bing and the Windows Phone. The only way MS knows how to crank out releases faster is the deathmarch, and that is a certain route to doom.

Worse yet, since Gates left MS has no real technical or managerial leadership, it's bureaucracy all the way up and down. This has been affecting the culture at Microsoft little by little, also partly coupled to the stock price having plateaued. More and more talented devs are finding that MS lacks the excitement and the reward of cutting edge development, so they are moving elsewhere. Also, without that talent around fewer good projects are pushed forward, fewer projects succeed, people become less satisfied with their jobs, etc. (think about the movie "It's a Wonderful Life" only translate the bad stuff, on a corporate level, to hundreds and then thousands of George Bailey's going away). This makes the environment that much less rewarding for everyone else who remains, so yet more people leave. And slowly but surely the creep of a more rigid and bureaucratic corporate culture and organization fills in the gaps left by the people who had the most clout in the company, causing yet more and more talent to evaporate away.

It's a self-reinforcing cycle that will lead to the rapid diminution of the company and its prospects over time and the examples the article provides of the process as it happened at Bing have played out throughout the company. Nobody young with high prospects seriously considers Microsoft as a destination anymore, and increasingly the older devs are either retiring on their massive earnings from the glory days or they're just looking for somewhere else to be that's a better use of their time and talent.

MS continues to make a crap-ton of money from its core products, but it will be institutionally ham-strung in responding to the threats that will steal away that revenue (such as mobile-heritage operating systems). Because those threats will grow at a rate MS is incapable of competing with.

10 points by enjo 1 day ago 1 reply      
This is tangential, but somehow related:

My level of frustration Redmond has reached epic levels. My company spends thousands of dollars a week managing advertising campaigns on Adcenter. They have an API which has been nothing but issues, but given the breadth of our advertising base it's absolutely necessary that we use it.

Today we have entered day number FIVE of an outage in which the API (at least one critical portion of it) simply errors out no matter what call you make. So for five days we've been unable to pause campaigns, change bid prices, or otherwise do anything to effectively manage our campaigns.

It's nuts. This is the second major outage in the last couple of weeks. The part that KILLS me is that nobody in Redmond seems to give a damn. They announced that they had a problem two days after I brought it to their attention. They are apparently working on some sort of fix that may or may not be pushed sometime in the last three days.

Meanwhile we are absolutely blowing through cash because of the things that we can't adjust. We're tens of thousands of keywords spread out over more than a thousand campaigns. We don't employ anybody to manage these by hand...

29 points by Matt_Cutts 1 day ago 1 reply      
"They [Bing] had weekly release cycles - faster than Google back then"

Hmm. I'm gonna have to disagree with that part. :)

24 points by mattmanser 1 day ago 2 replies      
The whole article seems to be back to front.

As far as I knew Live search was essentially failing then they made it Bing and it's started to succeed.

Am I missing something here or what?

I'm no expert on the history but it seems to me that the opposite of what the author is saying actually happened!

30 points by latch 1 day ago 4 replies      
The OP seems to attribute the "failure" of bing to common problems associated with Microsoft (in specific) and large companies (in general). With a specific point that it all started wonderfully, then got corporatized. I'm happy believing that this was the main problem.

But...as an end user i don't think Bing was/is ever as as close to Google as the OP seems to think.

8 points by athom 1 day ago 0 replies      
"The report of my death was an exaggeration." -- Mark Twain

I was having a look at Terabyte drives in Best Buy yesterday, and while wondering how well a model might work with Linux, I realized, now the display computers actually have internet capability, I should be able to look it up right there in the store! So, I wander over to a convenient laptop, kick it out of screensaver mode, start up the browser, and plug in the product name. Only after I hit the search button did I notice WHAT service I was using. Added bonus: Google was NOT an option.

I'll believe that Bing is dead when it isn't the default search engine in the default browser on the default operating system at the default computer store.

6 points by jdp23 1 day ago 0 replies      
Interesting perspectives. I was there in 2006-2007 when they made the decision to throw resources at the problem and challenge Google head-on in algorithmic search. The strategy at the time was to become #2 in a duopoly by investing at a level that Yahoo! couldn't compete with, and focus on the most valuable searches (travel, shopping, etc.), and leverage Microsoft Research a lot more.

From an abstract business perspective it's worked remarkably well. But if so many motivated and talented people are leaving, then there's something fundamentally flawed. And there were a lot of other much-less-expensive approaches they could have taken instead (or in addition, if they wanted to shoot for the moon) that would have also created a lot more opportunities for growth and excitement for younger engineers in particular. Ah well.

13 points by hanifvirani 1 day ago 1 reply      
Strange. To me, as an outsider, it looks like Bing has just started to get good enough to be considered as a threat to Google. Of course, they have a long long way to go. But it appears as a rapidly emerging product rather than a dying product.
6 points by rorrr 1 day ago 1 reply      
> Bing was extremely lavish in compensation, making offers to the best hackers for $90K/year

Is this a joke?

3 points by rufugee 1 day ago 0 replies      
Bing was extremely lavish in compensation, making offers to the best hackers for $90K/year when the adjacent teams were making $75K/year offers.

This is what really stood out to me. I'm in tech management these days...I pay my good developers close to $90K, and I'm no Google or Microsoft. What's wrong with this picture? Bing was created what...four years ago? Is this really a realistic salary for the best hackers?

5 points by scorpion032 1 day ago 1 reply      
The biggest problem that comes in the way is the condescending attitude of the "grown ups". It is very important for the "management" to realize that they are actually only facilitating what is "happening" and they should let the system handle itself and get out of the way than get into and disturb the existing norm.
3 points by jeremydavid 1 day ago 1 reply      
Just thought I'd let you know your text rendered very small on my browser, and the light grey quotes were almost unreadable.
3 points by fferen 1 day ago 2 replies      
For all the people saying X search engine is better, here's a tool to compare Google and Bing (and Yahoo) results without bias. It simply shows you three columns of results, you click on the one with the best results, and it reveals which ones came from which search engines.


Note: I am not affiliated with this site in any way.

1 point by arihant 14 hours ago 0 replies      
But what if Bing uses Microsoft's Facebook ties to bring social to search? Isn't that the root of "Google is scared by social" thing that's going on?

A lot of times when things seem to be dead, they are on the edge of killing everything else.

9 points by tocomment 1 day ago 1 reply      
Bing is dead?
1 point by RyanMcGreal 1 day ago 1 reply      
> They totally din't see Google as a threat, till it had a huge market cap. (Don't be evil, was a joke?)

Does having a huge market cap automatically make a company evil?

0 points by TheCondor 1 day ago 0 replies      
A buddy and I were drinking months back, and for whatever reason (most likely several beers was the reason) he misinterpreted the Bing and Facebook arrangement that was made for "Facebook is buying Bing."

Completely un-Microsoft, I can't see it happening but if it did.. Damn that could make things interesting.

Bing is interesting, it's a great attempt. The problem is Microsoft, so long as they're running it and setting the "standard" for it, it's going to be a failure. It's not going to knock Google off their perch. It's just not. And anything less than that will be a failure. Cut that team and product free, hand it over to like a facebook? IBM went through some similar stuff, MS should be spinning stuff out, if their current phone effort fails again to live up to their hype, they should just cut that group free too, let them go and be successful. that stuff creates new industries which in turn create new opportunities for everybody, including MS. Let Bing or Bing + FB cultivate an army of guys that want to get rich and can control their own destiny, the output will be far more interesting

2 points by wightnoise 1 day ago 0 replies      
The only value I ever had for Bing was their cashback shopping engine, and they've gotten rid of that.

Birth and Death of Jellyfish.com


1 point by rebelidealist 1 day ago 0 replies      
Would you consider likealittle.com a startup?

The definition of a startup is company with a limited operating history and a company is an organization aimed at making profits.

1 point by rjhackin 1 day ago 0 replies      
I am not sure about the death of Bing, Bing has momentum and they should take it forward and not lose ground. Competition is important to bring the best out of technology.
1 point by tedsbardella 1 day ago 0 replies      
The web site he is promoting is very creepy.
-3 points by franklindholm 1 day ago 0 replies      
Is this written in English?
-4 points by dvfer 1 day ago 1 reply      
Bing is not really providing anything more than google's service. It only shows "big company's" routine of trying to drive others out of business. Death for Bing.
Why Some People Can Run on Little Sleep and Get So Much Done wsj.com
282 points by pkarbe 4 days ago   124 comments top 38
43 points by jasongullickson 4 days ago 6 replies      
I'm glad that I finally have something (albeit thin) to point people to when they feel the need to lecture me about my sleeping habits.

As long as I can remember I've been happy with a mix of 4 and 6 hour sleeping sessions, two or three days of 4 followed by one night of more sleep (typically 6 hours) and then back to 4 hours again.

Under the recommendation of my peers and physicians I have attempted to do 8 hour nights but the results are that I feel worse in the morning, and each night I attempt to sleep 8 hours waking up gets harder and harder.

Over the years I've developed a few theories as to why I need less sleep than is recommended and someday when I get around to finishing my EEG project I'll gather some data to back them up, but for now I'm just making the most out of the extra time I have the same way someone with a different biological advantage might.

I will also mention that (as mentioned elsewhere here) there are definitely people at the other end of this curve who's performance is shockingly better if they get more than the "required" 8 hours of sleep per night, and I believe that we could all benefit by recognizing this fact and adjusting our cultural expectations to accommodate these patterns as well. I think with a little flexibility on both ends we'd see a significant increase in overall productivity and quality of life.

In other words "When hungry, eat. When tired, sleep." - http://users.rider.edu/~suler/zenstory/whentired.html

40 points by michaelcampbell 4 days ago 2 replies      
This reminds me of the studies not too long about how some very small percentage of the population actually CAN multitask well. Then a very large percentage of the population used that as "evidence" to justify their existing habits. I see it here already.
92 points by bound008 4 days ago 3 replies      
I emailed the researcher, whose address was at the end of the article with the appropriate gene data (BHLHE41 on Chromosome 12) to see if my DNA is a match. The article said its a mutation, but maybe those with the mutation exhibit a certain codon pair. Its an amazing time when you can read an article about such a thing, and then cross check your DNA in a matter of seconds. Articles will have to start posting the raw DNA for results.
8 points by tokenadult 4 days ago 0 replies      
"A few studies have suggested that some short sleepers may have hypomania, a mild form of mania with racing thoughts and few inhibitions. 'These people talk fast. They never stop. They're always on the up side of life,' says Dr. Buysse."

Reduction in sleep is a known symptom of abnormally elevated mood, whether hypomania (elevated mood without psychotic symptoms) or mania (elevated mood with psychotic symptoms). For most normal subjects, as has been demonstrated by studies of unusual sleep patterns in armed forces personnel, reduced hours of sleep or disrupted daily sleep cycles seriously degrade performance of many tasks involving judgment or multitasking--without the subject of the experiment being aware of the degraded performance.


Note that controlled reduction of sleep has been shown experimentally to elevate the mood of depressed persons. In other words, if a person has had a prolonged period of depressed mood, and begins reducing hours of sleep (especially if a light box turns on to help the person wake up on time in the morning), that can bring the person closer to normal mood.


Following up on the interesting comment posted first by mechanical_fish, there surely is a range of variation of "natural" human need for sleep, with most people concentrated in a band of needing approximately seven to eight hours of sleep a night, and some few needing significantly less, and some few needing significantly more. But social pressure and environmental conditions for sleep induction (electric lights in the evening) in current society probably result in most people getting less sleep than what they need to perform at their best when awake and to maintain good health.

38 points by silverbax88 4 days ago 3 replies      
I think it's obvious what we must do next. According to every science fiction film or book I've ever read, we must capture them, confine them and study them in an attempt to learn their secrets and duplicate it in everyone else.
15 points by lkozma 4 days ago 1 reply      
It's a false dichotomy, on a lot of hard problems progress is a step function, and you often "get much done" while sleeping. I.e. when you wake up well rested you see things from a different angle. If it's something like chopping wood, sure, the less you sleep the more wood you chop, within reasonable limits, but I don't think that is what these articles aim for. I think it's wrong to look at sleep as a waste of time the same way time spent thinking about something is not wasted either.

Here's some information I mostly agree with:

24 points by Roritharr 4 days ago 2 replies      
As someone whose blanket feels like its made out of lead every morning after 7 hours sleep i have to say: unfair. :(
9 points by mbateman 4 days ago 0 replies      
I've always wondered if this was mostly a psychological issue.

There are two circumstances in which I get less than 7 hours of sleep a night: if I'm really stressed about getting something done, or if I'm really excited about getting something done.

In the first place the lack of sleep exacerbates the stress and really starts to weigh on me. But in the second case it doesn't seem to have much negative effect.

Now if only I could continuously keep my motivation up...

4 points by shawnee_ 4 days ago 0 replies      
Christopher Jones, a University of Utah neurologist and sleep scientist who oversees the recruiting, says there is one question that is more revealing than anything else: When people do have a chance to sleep longer, on weekends or vacation, do they still sleep only five or six hours a night? People who sleep more when they can are not true short sleepers, he says.

The article didn't mention this, but the ability to wake up regularly without an alarm clock is probably another commonality short sleepers have. Although < 7 hours isn't something I can do regularly, I can't stay in bed, even if I'm a little tired, much past 6 AM on any day of the week.

"People need less sleep as they get older" is something I've heard a lot, but don't know. Sleep patterns seem pretty ingrained, and people with weird sleeping patterns tend to be either hardcore early birds (me) or unapologetic night owls.

7 points by kls 4 days ago 1 reply      
There has been a link to depression and too much sleep so much so that sleep deprivation is used as a treatment for depression where other treatments fail. It actually puts the patient into a manic episode.

It was peculiar to note that people who are short-sleepers also share a slight manic trait in their personality. While the article makes short-sleep cycles out to look like all sunshine and roses it is not all it is cracked up to be. I get between 2 and 4 hours sleep a night and on a good night I get 6. I have to monitor the sleep I am getting because if I allow myself to fall into a cycle of 2 hours for an extended time I start to have problems with my heart and abnormal rhythms. If the > 4 hours cycle goes on for more than a week I have to start taking medicine to sleep to ensure that my body is receiving an adequate amount of sleep. I see no negative effects if I get 4-6 a night, but it is probably safe to assume that short-sleep cycles rides the line between good and bad health. I never considered myself a short sleeper I just figured I have insomnia but never worried too much about it because I feel no different if I get 4 or 8 hours of sleep a night (if I can get 8) and the fact that my father and grandfather shares the trait and are healthy (grandfather is almost 90) . On the plus side, I experience more life and get more done which are really the only benefits to sleeping less.

7 points by mironathetin 4 days ago 0 replies      
I am 46 now and I still need more than 8 hours a night.
I tried less, but that does not work: thinking is a torture then, sports too.

If I get enough sleep, I feel great, I get 3 times as much done and I run and swim like a champ (still).

I love to get enough sleep!!!! It simply feels great.

6 points by olliesaunders 4 days ago 3 replies      
Damn you, science! I've read so many studies saying there's absolutely no way you can get by without at least 7 hours sleep and now you tell me that that completely doesn't apply to 1-3% of the population?! That's actually not that small of a percentage. How big were the sample sizes of all the other studies? Did nobody encounter at least one of these low-sleep requiring people? Maybe they were just eliminated as being an anomaly.

I've met some of these people who insisted they didn't need much sleep before and now I seem like an idiot for telling them that it they would probably feel better if they got more.

This is fantastic research, I just wish it had been around 10 years ago.

10 points by Vivtek 4 days ago 4 replies      
Candidate number two for gene surgery (my current #1 being that color vision y'all talk about so much).
15 points by codedivine 4 days ago 1 reply      
The article is mostly content-free.
4 points by Tycho 4 days ago 2 replies      
Is this few-hours sleep business feasible when you need to think deeply about abstract things during the day, eg. programming? I can see it working if your success is tied to being energetic, on the ball, constantly negotiating, acting on information or leading lots of people. But what if you need to do the analysis yourself?
3 points by mzl 4 days ago 0 replies      
I used to know one of these short sleepers. He had never felt the need to sleep more than about two hours per night, and did so for his whole life (which was respectably long, no noticeable side-effects from the exceptionally short sleep). He used a lot of the extra time to run a small local business, interact with customers during the day and do the administration during the night.
1 point by Swizec 4 days ago 3 replies      
Not saying that I'm one of the sleepless elite, but I seem to function best on 6 hours of sleep a day. Whenever I try to sleep more I just feel tired all day and when I sleep less ... well that depends on how much less.

For optimum energivity I find an hour of sleep is best, just enough to reset your cycle. But you can't do this more than once at a time, the next day the whole 6 hours are needed.

Don't have any idea why I'm like this, but I'm told that even as a baby I would often lie in bed for hours before finally falling asleep and as a toddler I would wake up at 5am because I was put to bed so early. Nowadays a healthy 4am to 10am schedule seems best.

Oh and anyone who doesn't want to sleep as much as they should, meditation is a great way of doing it. I managed to shave 2 hours off of my daily sleep need with 10 minutes of meditation ... so essentially I averaged 4 hours a day, for something like 5 years before I got out of the meditating habit for varying reasons.

3 points by keyle 4 days ago 1 reply      
Lucky buggers. Technically since time is money, that could make them 16% richer than most of us (assuming they sleep 2 hours less).
1 point by kenjackson 4 days ago 0 replies      
I think I could sleep 20 hours if given the chance, but I routinely will sleep until 7am regardless of when I go to bed. If its 10pm or 4am. I just wake up at 7am, I'm super sleepy still, but more hungry. So I have to wake up, make some cereal and then I'm up.

Not sure what that is, but I've never met anyone else who shares this trait.

1 point by ComputerGuru 4 days ago 0 replies      
Hmmm.. Something I would think I could relate to, but we all know (a) how easy it is to convince yourself/diagnose yourself with something, and (b) how we would all love to consider ourselves from this group. So I'll just let this make me smile a little and leave it that :)
2 points by jcl 4 days ago 1 reply      
Given that the trait is genetic and extremely advantageous, why doesn't a much larger portion of the population have it? Is there a significant downside?
1 point by gwern 4 days ago 0 replies      
> Out of every 100 people who believe they only need five or six hours of sleep a night, only about five people really do, Dr. Buysse says. The rest end up chronically sleep deprived, part of the one-third of U.S. adults who get less than the recommended seven hours of sleep per night, according to a report last month by the Centers for Disease Control and Prevention.
1 point by aycangulez 4 days ago 0 replies      
The primary function of sleep is to permanently store the things learned during the day (long-term potentiation). Although different people need different amounts of sleep, those who need less usually find that they sleep longer if they learn challenging new material (e.g. a new language). That is the reason why babies sleep the most. Their brains are empty sponges constantly absorbing new information.
1 point by daimyoyo 4 days ago 0 replies      
I think the level of sleep I need depends on what I'm working on. When I was working on a business with my friends, I'd only sleep for 4 hours or so a day. Whereas when I was working a job I hated, I was exhausted unless I slept 9-10 hours a night. I think sleep requirements are a function of brain activity and engagement. It's just a theory but it seems to be true, at least in my case. Another theory I have relates to the sleep schedules of people. I'm nocturnal. I have been since I was 8 years old. And when I was working with my friends, it was at night. So I wonder if nite people need more sleep to function during the day like morning people need more to work nights?
2 points by pstack 4 days ago 0 replies      
No sleep is a feat I could pull off regularly when I was younger. It was no problem to go 48-72 hours without more than just a catnap or two. That was a decade ago. In my early thirties, I struggle beyond the sixteenth hour, except for rare occasions.

Fortunately, I think it's a sort of bell curve. From what I understand, I'm only about fifteen or twenty years away only getting a couple hours of sleep per night. How productive sleepless nights full of trips to the bathroom will be, I have no idea. I guess I'll finally catch up on all that damn reading.

1 point by Semiapies 3 days ago 0 replies      
My boss is exactly like this - sleeps a tiny bit, has ridiculous amounts of energy and enthusiasm, and loves to deal with the world in a flurry of stimuli and decisions.

Me, I'm just an insomniac.

1 point by semerda 4 days ago 0 replies      
I sleep 2am to 7am most days and keep myself busy so much that I sometimes go to 3:30am before forcing myself to sleep. Sleep time happens within 3-5 mins after going to bed - according to my WakeMate.

I think alot of this is due to a busy lifestyle. I find myself doing multiple things at the same time in the evening and being very productive in getting stuff done. While on holidays where I actually disconnect from work I find I sleep long hours each day.

An afternoon 20 min powernap is an amazing recharge! Everyone should do it. Using Paul McKenna's audio helps with the powernap. There's something weird about the hypnotic audio. Instantly puts me to sleep.

Finally, supposedly the need to nap in the afternoon is normal and every animal in the kingdom does it. Humans has largely forgotten about this clock due to the "working culture". In the book Brain Rules, this is described in more detail: http://www.brainrules.net/sleep

My 2c's worth.

1 point by nhangen 4 days ago 0 replies      
Jon Gruden, former NFL coach and Monday Night Football analyst is one of these. He goes to bed late and gets up as early as 3-4 AM.
2 points by maxcho 4 days ago 0 replies      
Read the actual paper, take a look at the hypomania test: figure out things about yourself. http://cl.ly/313A0x2k011t400C3N3C
1 point by megaframe 4 days ago 0 replies      
I question how much "work" someone that fits this really gets accomplished. I can run on limited sleep for weeks at a time and am more energized, but throw me at something mentally challenging like Quantum Physics or Solving some Linear Systems model, and it's like my brain says it needs time to process everything, so I end up sleeping absurd amounts. (I also find I make significant headway the next day after that kind of sleep)
1 point by doki_pen 4 days ago 0 replies      
I used to need very little sleep. Unfortunately, it was because my thyroid was overactive. As soon as I went to a doctor and got it taken care of, I became a normal sleeper.
1 point by Tharkun 4 days ago 0 replies      
I have to admit that I'm a bit confused here. 7-9 hours seems to be the "normal recommended" range, and under 6 hours puts you in the short sleepers category. What does 6-7 make you? Irrelevant to the research?

Many people make the mistake of oversleeping on the weekend and undersleeping on working days. I try to average 6.5hrs every night, weekend or no weekend. Just being consistent really helps in keeping the energy levels up imo.

3 points by dvfer 4 days ago 2 replies      
If they cannot find any "actual" short sleepers, how do they it's 1-3% of population...Oh science you are scary...
1 point by alexhektor 4 days ago 0 replies      
Arianna Huffington (and me) certainly are no natural "short sleepers" :)


1 point by palguay 4 days ago 0 replies      
This is a talk given at google about sleep http://www.youtube.com/watch?v=IK1nMQq67VI
-4 points by soapdog 4 days ago 1 reply      
red bull?
-1 point by Herwig 4 days ago 0 replies      
A majority of us here are wanna be short sleepers. And we make do with that
-4 points by paylesworth 4 days ago 0 replies      
Leave it to the WSJ to exemplify the behavior of people with an erratic gene variation as something "Elite" (or L33t, lol).
If you applied to YC this cycle, please put your email address in your profile
279 points by pg 2 days ago   35 comments top 15
26 points by rottencupcakes 2 days ago 3 replies      
If you want to live chat about applications and acceptances with prior YC founders and other applicants, you can do so in the Convore (a YC W2011 company)


11 points by bmelton 2 days ago 2 replies      
Better -- just put your email address in your 'about' section as well. If not, you are probably missing out on contact from other HNers.
4 points by cdr 2 days ago 1 reply      
pg: Can you add a note to the profile settings page that the email field isn't publicly visible? This still confuses people all the time.
4 points by astrofinch 2 days ago 1 reply      
Has the idea of adding a field to the application itself for a founder's email address already been discussed?
7 points by abtinf 2 days ago 1 reply      
You can also chat about applications over at the wompt chat room - we've been going strong all night!


3 points by chrismanfrank 2 days ago 1 reply      
They will send all the emails at once "something this evening CA time".


2 points by kirillzubovsky 2 days ago 0 replies      
My co-founder (@peterkchen) and I ended up building a private prototype over the last two weeks, in case we get an interview, but after working on it all last night and crafting a bunch of cool new ideas, I am pretty confident that we are going full speed forward either way. Being with YC would just help to be make the product even better. Alright, we'll know soon enough where the road goes. Good luck folks!
1 point by nkassis 2 days ago 1 reply      
It would be cool to have an in HN messaging system. I know it's a lot to ask :) Just a proposal.
2 points by prayag 2 days ago 0 replies      
The letters have started coming in. Good luck to everyone. :)
2 points by josselind 1 day ago 0 replies      
i still didn't get the email...anyone same ?
1 point by lien 2 days ago 0 replies      
I just realized there's a question to our application that I didn't see until now. I just responded to it and also emailed Harj.
1 point by deosaa7 2 days ago 0 replies      
ah, slightly nervous that pg & co. have had no questions regarding us. ah well - the anticipation builds.
6 points by acconrad 2 days ago 0 replies      
There's nothing wrong with gmail, he's saying don't write your email as "name at gmail dot com" as some people do this to prevent automatic spam bots. Instead, write it as "name@gmail.com" so it's easier to email/copy+paste.
1 point by DarrenLyman 2 days ago 0 replies      
Thanks for the follow up post pg, we are looking forward to hearing from you!
-4 points by gihan 2 days ago 1 reply      
Writing Clear, Concise, Sentences wisc.edu
268 points by Panoramix 4 days ago   71 comments top 26
56 points by grellas 4 days ago 3 replies      
The principles listed here are sound and helpful. If you follow them, your writing style will undoubtedly improve.

But do not adhere to them as rigid rules or you will suffer in your ability to express yourself. Passive voice exists for a reason. Long words can add variety, rhythm, and color to your prose. Elongated sentences can help give your writing a flow that a mere parade of short sentences can never hope to achieve, not even after a thousand rewrites. Or not. All such items can be misused as well, and the books are replete with bloated forms of expression used by lawyers, politicians, educators, administrators, and the like who would not know a simple word or sentence even if it stood before them doing somersaults. The key is to know sound principles for clear and concise writing and then to apply them with a rhythmic ear for balance in your forms of expression. That means, yes, use passive voice, long words, and flowing sentences as needed to add grace to your prose but always with the baseline in mind: that is, to communicate in ways that are clear and concise and that people will readily understand for your stated purpose (formal style for formal settings, casual for casual, and whatever fits for anything in between).

I note all this because, years ago, I consciously and diligently set about to attempt to master writing and stumbled upon the rock of "simplicity" during such stretches in my learning process where I had assumed that all one could do was follow such rules. Any attempt to apply such rules one-dimensionally is a mistake, and you will regret trying it. Follow sound principles, by all means, but not dogmatically.

The other major keys to good writing are depth of language skills and extensive reading. No one will read your work unless you have something helpful to say. You get this by working hard to develop your skills, and lots of writing (and reading) is vital to this process.

61 points by sp332 4 days ago 9 replies      
I'm positive the second comma shouldn't be there. (I wouldn't normally comment on commas, but it seems on-topic...)
20 points by SlyShy 4 days ago 5 replies      
Some of the comments I've read seem to misunderstand the purpose of this page. This isn't the objectively best writing style, this is a concise writing style. No, it might not be the most pleasant to read, because extremely to-the-point short sentences sound blunt. The guidelines provided for writing short and concise sentences are very useful, if that's the style you are aiming for.
16 points by tptacek 4 days ago 2 replies      
This advice seems to mimic much of what's in _Style: Towards Clarity and Grace_, which I found out about from Richard Gabriel (achievement unlocked: LISP connection) and which is probably the most hacker-friendly writing book ever written.
6 points by SoftwareMaven 4 days ago 0 replies      
Personally, I really like George Orwell's "Politics and the English Language"[0] as a writing guide.

[0] http://www.mtholyoke.edu/acad/intrel/orwell46.htm

9 points by synnik 4 days ago 0 replies      
Keep these points in mind when generating error messages to your end users.
8 points by bdesimone 4 days ago 2 replies      
If you get the chance, read Orwell's "Politics and the English Language."

    Never use a metaphor, simile, or other figure of speech which you are used to seeing in print.
Never us a long word where a short one will do.
If it is possible to cut a word out, always cut it out.
Never use the passive where you can use the active.
Never use a foreign phrase, a scientific word, or a jargon word if you can think of an everyday English equivalent.
Break any of these rules sooner than say anything outright barbarous.


3 points by xtacy 4 days ago 1 reply      
One of the most cited books for better writing: Elements of Style: http://www.bartleby.com/141/. It's available for free.

There are many "manuals of style" available as well like: http://www.chicagomanualofstyle.org/home.html.

2 points by xal 4 days ago 0 replies      
Are there any software packages or web services that help with this? Writing is a huge part of my job but because I'm english second language I'm lacking the intuitive sense for such rules. Especially since I learned most of my english in my formative years on internet forums...
3 points by grannyg00se 4 days ago 2 replies      
A lot of this information is presented as a consistent methodology when in fact it is very subjective. For example, one of the suggestions is that "you should try to avoid using inflated diction if a simpler phrase works equally well." Unfortunately, it is not clear when a simpler phrase works equally well. I may want to 'use' a certain phrasing in one scenario, but feel it is more appropriate to 'utilize' another phrasing in a different scenario. There is no simple rule that can be applied to determine whether one is more appropriate than the other.
1 point by telemachos 3 days ago 0 replies      
This topic seems to have legs, so I'll recommend another book in this area: Clear and Simple as the Truth: Writing Classic Prose[1] (by Francis-Noel Thomas and Mark Turner).

They are far more thoughtful about style (what it is and how to teach it) than most writing guides. They acknowledge that there is not one best or ideal style for all occasions and that the style they describe and teach is one among many. It's an eye opening book in many ways. (Note: I see that there's a second edition just out. I haven't read that. I read the original in the late 90s. I doubt they've ruined it, but just in case.)

[1] http://classicprose.com/ with excerpts from the book here: http://classicprose.com/csx.html

3 points by NHQ 4 days ago 2 replies      
You have to break rule number one to be a politician, corporation, or spokesperson for either. Passive voice is what you use to acknowledge that something fucked up, without placing the responsibility.

"There was a failure of communication."

1 point by billybob 3 days ago 1 reply      
Clear writing is difficult because it requires clear thought. This makes it worthwhile, even if no one reads it, because it shows the writer whether he or she understands the subject matter.

Muddy writing, by contrast, is generally meant to impress and not convey information. The intended reaction is "I don't understand what you said, so you must be smart." This, unfortunately, seems to work for businesspeople and academics. But I hope that geeks can see through it.

3 points by jaywhy 4 days ago 0 replies      
I agree with the article that good writing is concise and clear, but don't conflate clear and concise with simplistic and short, thinking the only good sentence is a short sentence, as if we should all write like Hemingway in a hurry.

"Vigorous writing is concise...this requires not that the writer make all sentences short, or avoid all detail and treat subjects only in outline, but that every word tell."
- Strunk and White "The Elements of Style"

1 point by syaz1 4 days ago 0 replies      
Stephen Fry ranting on language nazis:
Season 2, Episode 3: Language: http://www.stephenfry.com/category/media/audio/

I don't really know who he is, but he make some very convincing arguments.

1 point by syaz1 4 days ago 0 replies      
Also related, feeling lazy? Use Steve Hanov's word-removal tool to remove unnecessary words from your sentences: http://stevehanov.ca/blog/index.php?id=52
1 point by lifefundr 4 days ago 0 replies      
I agree this is a very useful resource for writing in a concise manner. It is something I am attempting to implement in my daily writing. Even though it is old news the best advice I have come across is to write your content. Let it sit for an hour or more. Come back and read it out loud to yourself. This technique is underused and underrated in my opinion. Thanks for pointing out this resource. Bookmarked!
1 point by discreteevent 4 days ago 0 replies      
Its kind of an object oriented style isn't it? That doesn't mean that it transfers well to programming where there are other concerns apart from communication. (You don't have to worry about controlling state in your paragraphs). Anyway, for me the laziest way to improve my composition is to just read Hemingway and let the style rub off.
1 point by Ythan 4 days ago 0 replies      
If you want to improve the clarity of your writing, I also recommend StyleWriter (http://www.stylewriter-usa.com). It's a bit expensive, but the functionality is unique and helpful.
2 points by kruegerb 4 days ago 0 replies      
It would be wise to refer to these guidelines while filling out an application for YC.
1 point by thorin 3 days ago 0 replies      
Link to my friend's blog. He consults on these matters http://www.thomasheath.tv/blog/
1 point by portentint 4 days ago 0 replies      
Your best bet: Write every single day for at least 15 minutes. Writing isn't a talent, it's a skill.
1 point by samevisions 3 days ago 0 replies      
Very interesting, especially for people like me ( English is not my mother language ) these basics are useful to build a strong knowledge about Writing.
1 point by seewhat 4 days ago 0 replies      
Similar guidelines from the UK's Plain English Campaign:-


-1 point by drv 4 days ago 0 replies      
It's amusing that the "Avoid unnecessarily inflated words" section misspells "implement" as "impliment."
-2 points by Ruudjah 4 days ago 1 reply      
> Writing Clear, Concise, Sentences

With a title like this, I won't even read the thing. So many things are wrong with this first sentence.
1. Why The Capitals For Each Word? That screws with my human word recognition algorithm.
2. The title implies three things: Writing clear, do something concise and something with sentences. That's all but clear to me. "Writing clear": you mean writing the word clear? Does not sound interesting to me. What do you want with "Sentences" and "Concise"? Not clear at all to me.
3. Probably, the author meant something like "How to write clear & concise sentences". That gives the sentence instantly another meaning.

The Montessori Mafia wsj.com
255 points by danielvnzla 3 days ago   151 comments top 24
57 points by ladon86 3 days ago replies      
I went to a Waldorf/Steiner school, which shares some of these traits such as the lack of a focus on assessment and grading and the emphasis on creativity.

We weren't taught the alphabet until the age of about 6-7 and basic arithmetic at 7-8. We did begin learning foreign languages at age 6, however. In practice my older brother taught me to read and count well before the Steiner curriculum did, but I still think that the education was very valuable.

I think that creativity in adults is often stifled because they don't want to "get it wrong". People are afraid of trying their hand at a new skill or taking a risk on a new idea because they are "realistic" about their chances of success. Children just do it anyway. I think that Steiner schools encourage this attitude, and no doubt Montessori schools do the same.

There's a reason the really big hitters are often first-time entrepreneurs - they are naive enough to try. Creativity works the same way.

44 points by timr 3 days ago 4 replies      
"When Barbara Walters, who interviewed Google founders Messrs. Page and Brin in 2004, asked if having parents who were college professors was a major factor behind their success, they instead credited their early Montessori education"

Ahem. I spy a latent variable in this correlation. Can you find it?

Hint: Montessori education may or may not have advantages. But unless you control for educational background and income of the family, your analysis has a problem.

16 points by brlewis 3 days ago 1 reply      
I have children aged 13, 10 and 5. The oldest spent 1 year in a traditional preschool, but they've gone exclusively to Montessori school since that time.

What strikes me about this article is its characterization of Montessori schooling as largely unstructured and free. I think it must be comparing it to a much over-structured methodology, perhaps like the public schooling I got growing up.

Styles vary somewhat among Montessori schools, but what I've seen is that in the early years, the age Montessori is most known for, there are specific materials children work with and specific ways they're expected to work with them. A child may not get out a work he/she hasn't been shown how to use. He must return the work to its proper place before selecting another one. The materials aren't tools for self-discovery. They're tools for letting self collide with reality until such time as the applicable real concepts are understood.

However, the one simple freedom of being able to choose a work does make it a sharp contrast from the lock-step style of education I grew up with. I hear public schools aren't always this way, according to relatives who sent kids to public school in Lexington, MA.

In higher grades the emphasis on materials fades, but the basic idea of letting children work within a structure remains. For example, in upper elementary (grades 4-6) the students develop their own classroom code of conduct. They're given some structure about how to do it, though. I see Montessori as a balanced methodology on the freedom/structure dimension, not an extreme.

25 points by ziadbc 3 days ago 5 replies      
I really like the idea of Montessori, and if I have the cash I'd like to send my future kids there someday.

That being said, I see correlation here, not causation.

To be a little bit tongue and cheek, I could write the headline:

"99% of successful people do not attend Montessori schools"

14 points by bediger 3 days ago 3 replies      
Why does this result surprise anyone? Traditional US schools exist not to cultivate individuality, and make people more expressive and creative, but rather for different reasons.

Grade school is designed to teach people enough to read The Bible, and enough writing and arithmetic to not get cheated by the fancy, downtown shop keepers.

High school is designed to teach the bulk of the citizenry to work according to a fixed schedule, probably in a factory, along with a faceless mass of similary trained people.

It sounds inflammatory, but it's true.

17 points by realitygrill 3 days ago 2 replies      
This is just confirmation bias. Page credits "part of that training of not following rules and orders, and being self-motivated, questioning what's going on in the world, doing things a little bit differently." As a Montessori kid myself, I could see myself having differing opinions depending on how the future turned out.

Successful: go back and credit Montessori for making me a rebellious, curious nonconformist.

Unsuccessful: go back and partially blame Montessori for those same values, that make navigating this world of rules and structures difficult.

PG's writings would make me think that he leans more towards the Montessori side of things, and probably a lot of HNers are the same. I'm glad jsavimbi spoke about his need for strong discipline.

11 points by damla 3 days ago 0 replies      
Maria Montessori lived in Italy a 100 years ago, and no doubt she was a reformist. She was the first woman doctor, she worked with children with mental disabilities when children was not considered humans, and she noticed that, her approach is applicable to all children. She invented very useful methods and tools for teaching preschoolers. She made wonderful toys which are now called "Montessori Materials". Her method is spread to US, and "adapted".

Montessori teachers are certified largely by two centers in the world, in Italy (http://www.montessori-ami.org/), and in US (http://www.amshq.org/). As far as I know AMI sees itself as the "original" Montessori, rejects others, and more strict in many ways, like they don't allow any toys in classrooms, they don't have any books (just lapbooks produced by teachers or children).

I have real problems with strict, spiritual Montessori. Why would we be against to toys? Maria Montessori crafted wonderful toys for her students, and now they are called "Montessori Materials". What's wrong with Lego's? I think if Maria Montessori had Lego, she would use them.

Montessori, Waldorf, Reggio Emilia, all have different methods to inspire for raising kids and even for start-ups (http://digitalcommons.unl.edu/cgi/viewcontent.cgi?article=10...). But, none is magic.

7 points by Terretta 3 days ago 2 replies      
Only if your education differed from the so-called basket of techniques lumped together as "the Montessori method".

It's been my experience that a home environment with parents who read and care about expanding horizons will tend to offer the children guided "self-directed" learning, observation and indirect teaching, and productive routines of "focused" activities versus idle play, and these children will tend to outperform peers without that same desire to constantly learn instilled in them -- regardless of the formal education they acquire.

4 points by speleding 3 days ago 1 reply      
My kids (4 & 7) just moved from a traditional school to a Montessori school last summer because we moved house. I wasn't completely sold on the philosophy yet but my kids LIKE going to school a lot more now and it seems to work really well. Happy kids, learning a lot.

But it is very counterintuitive for the engineer in me who wants to measure progress by how much of the alphabet they know. It takes a lot of trust in the somewhat nebulous and touchy feely Montessori philosophy, if you read the wikipedia page about it you'll see that even the educators can't agree on what it is exactly. (Montessori did use scientific methods to arrive at her recommendations, but interpretations differ). There's things the type of educators in such schools do that makes us rational people cringe (kids are not allowed artificial flavoring in their lunch food...). But, well, it works (for my kids at least).

Since I am too rational to give up on measuring I conclude we are probably not measuring progress the right way by testing how much letters in the alphabet they know.

7 points by phren0logy 3 days ago 1 reply      
Is this even correlation? Is there any evidence to suggest that Montessori students are over-represented among the successful? Or are they simply proportionate?
5 points by jsavimbi 3 days ago 1 reply      
I can't speak for the higher end of Montessori as I only attended when I was just starting out my career in education, but I found it to be rewarding for someone with a wandering mind, more so than the strict rote-based Catholic-influenced education I was subjected to further on. I also experienced British private school, and that was definitely better than public but without the scientific approach that I saw at Montessori.

It depends on the kid, I guess. I have an independent, creative side to me that also needs strong discipline to get anything done, so I'm grateful to have experienced both worlds. As far as current prices go, my divorced and randomly employed mother was sending both my sister and I there until we opted for the local public school as it fit better with our social lives, and I know there were some kids there in the same boat as us, but overall it was a good mix back then with the benefit of being in the hippy Cambridge of the '70s.

My advice would be to buy the best education for your kids that your money can buy, and unless your local school system is the pits, I wouldn't home-school them. There's a lot to be said for socializing at an early age and teaching the kids subjects in addition to the regular curriculum isn't against the law either. If the kids are smart, they'll put the regular coursework behind them and need the extra teaching anyways.

If the child is a dullard, don't waste too much money on them as you'll need it for later on for when they really fuck up.

3 points by bryanwb 2 days ago 0 replies      
I am pretty skeptical of the Montessori approach.

Take kids from wealthy, well-educated families and put them in small groups with educators that also happen to be very well-educated and very passionate and you will get great results whatever the pedagogy.

Contrast this w/ poor kids whose parents had low educational attainments, stuck in giant classes with poorly-paid teachers.

If you put 6 well-off kids with 1 passionate, well-educated teacher, you will get good results almost every time.

Montessori approach may have its merits but I find it very hard to separate them from the demographics of its students and teachers. The study in Milwaukee does not seem sufficient to establish a link. Those passionate about teaching are probably more likely to be attracted to the Montessori school than the regular public schools because it has a distinctive approach and probably more liberal management.

I would love to love to know if the Montessori schools in teh Milwaukee school had the same teacher/student ratio as the other schools in the study. I am betting they didn't.

5 points by slay2k 3 days ago 4 replies      
I've been thinking about how I'd educate my own kids, and currently it's a tossup between the Harkness approach a la Phillips Exeter, the entirely home-schooled approach, and something like this which seems like a hybrid.

If anyone has experience with any of the above, I'd love to hear about it.

3 points by kloncks 3 days ago 2 replies      
Fascinating insight. But isn't this a classic case of of correlation, not causation?
2 points by billmcneale 3 days ago 0 replies      
I have no problem with the Montessori method but if you're going to throw the names of a few very successful people as examples, you also need to show the full picture, i.e. for all these Montessori kids that became so successful, how many other successful people did not got to Montessori?

If anything, the fact that they only list 4-5 names tells me that at best, the kind of education you receive at that age is not that important after all (I think your parents and your environment are probably bigger factors) and at worst, the Montessori school doesn't really work that well after all.

2 points by VladRussian 3 days ago 2 replies      
what type of people would be developed by combined approach of Montessori and Tiger Mom? :)
2 points by jsulak 3 days ago 1 reply      
Interesting article, but what about Steve Jobs? Warren Buffet? Bill Gates? It's easy to pick a few examples of anything, but it doesn't make it a real trend.
3 points by ILIKECAKE 3 days ago 1 reply      
I went too Montessori and I am sitting behind a damn desk administering systems...looks like I missed the awewsomness bus
1 point by gevertulley 2 days ago 0 replies      
Perhaps what is required here is a re-examination of the fundamental goals of what we refer to as "education." Is the purpose of school to teach a set of curriculum or to inculcate the habits necessary to become courageous explorers of the world and inventors of our own destinies? Montessori is just one alternative, but now, in a time of rapid change, is the time to begin and support multiple experiments. We need to explore the full range of functional pedagogies and see what new ways of teaching and learning can be developed. Looking for one "best" context or approach for learning is probably never going to work - the fundamental assumption is wrong.

An educational monoculture suffers the same vulnerabilities that a biological monoculture does. We should foster a diversity of approaches, supporting the sharing of techniques, approaches, and contexts.

This is why we are starting a new K-12 school, based on some new ideas (Tinkering School, and A Curious Summer) and incorporating some really old ideas (apprenticeship and mastery). We call it Brightworks (http://sfbrightworks.org). Have a look at our approach, share your ideas, join us at the edge of innovation in education.

0 points by softbuilder 3 days ago 0 replies      
"Questions are the new answers" -- Socrates, 429 B.C.
1 point by jtraffic 3 days ago 0 replies      
I have a hunch (definitely not an assertion) that even if there are effects from Montessori school early on, they wash out over time, and the major factors afterward are socioeconomic status and habits of parents, and subsequent education (K-12). I guess I'm paraphrasing Freakonomics.
1 point by karolisd 3 days ago 1 reply      
Are all of the examples male? Do Montessori schools help females too?
0 points by mmcconnell1618 3 days ago 0 replies      
Perhaps creative minded people fit in better in Montessori schools and therefore credit the school with love of learning. Where's the proof that the Montessori method created the effect?
-2 points by jhuckestein 3 days ago 1 reply      
"What is 10 plus 1?"


"I'm sorry M'a'm, your son is an idiot"

Meet news:yc, the open source Hacker News client for your iPhone. newsyc.me
253 points by news-yc 4 days ago   52 comments top 14
29 points by metachris 4 days ago 2 replies      
Thanks for releasing it as free software. https://github.com/newsyc/newsyc
5 points by aaronbrethorst 4 days ago 0 replies      
I ran across this earlier today and added a small feature to it[1]. The author is very receptive to pull requests, so I highly recommend forking away!

If you're interested in contributing and stumped for things to add or fix, check out the included TODO file.

[1] https://github.com/newsyc/newsyc/commit/01bc7bf30c10a2abd8f0...

4 points by kloncks 3 days ago 2 replies      
Here's a question. Love the app, but can I login to my account? I don't have a normal YC-account, but rather one through Open-ID with my Google Id.
3 points by lloeki 3 days ago 1 reply      
With all the effort going into that app and the other web wrappers mentioned around here, I may be missing something but why is there no media query in HN CSS to adapt itself to iPhone, iPad and other (WebKit-based at least) mobile devices. I weight it to about ten lines of CSS at most, setting font scale, body width and vote up image size. I am on the verge of creating a bookmarklet to load such additional CSS and sync it to my devices but couldn't resort to that yet because of it being a total hack that I'd need to call on each HN page load.
18 points by Joshim5 4 days ago 3 replies      
Upvoted for multiple reasons:
1) The app itself looks pretty good.
2) Open-source
3) You're a high school student too. (What year?)
1 point by zefhous 3 days ago 3 replies      
This is great, thank you!

Took me a while to figure out how to get signed in with instapaper... Turns out it's in the Settings app. I wish Apple provided an API to link from an app to its settings page, and back to the app from the settings.

4 points by davidcann 4 days ago 0 replies      
Nice work, this is the new best HN iPhone client.
2 points by nathanwdavis 4 days ago 2 replies      
I've been pretty happy with the Hacker News app by Michael Grinich, but this looks promising and competition is a wonderful thing.
2 points by chrishenn 4 days ago 1 reply      
Looks awesome, I'll happily buy it for $5 once it hits the store.

It's also nice that it's open source. Contributing to an actual iOS app could be a nice way to get a taste of iOS development without having to start a whole project from scratch (if you have no previous experience.)

1 point by _frog 3 days ago 1 reply      
Wait, are you chpwn by any chance? Because you quite extensively use the slide-behind header trick from his last post on http://chpwn.com/blog/
4 points by reustle 4 days ago 3 replies      
No Android love?
1 point by EGreg 4 days ago 0 replies      
This is cool. Oh, you're a high school student? Awesome.
1 point by tobiasbischoff 3 days ago 0 replies      
Writing this comment with the app from my phone, thanks alot.
-4 points by nabaraj 4 days ago 0 replies      
where is the android version??
Introducing Pow, a zero-configuration Rack server for Mac OS X pow.cx
240 points by wlll 2 days ago   132 comments top 24
25 points by tptacek 2 days ago replies      
This is a great web page, but I think it's borderline irresponsible to keep using this gimmick:

  curl get.pow.cx | sh

for installation. Yes, it's easy and slick. Yes, you'd have to read the code itself to make sure Pow didn't own your machine up after a secure install. Yes, you can just read the shell script. But 0.0001% of people playing with Pow will do that. Why make things easier for attackers at all?

This is an idea that I think started with Ximian back in 2000 and I think we're ready for it to die. It'd be neat if the authors of Pow were cool enough to strike it from their (otherwise amazing) front page.

(I'd also be happier if the thread where the guy explains how Pow works and what it's components are were voted higher than this comment.)

70 points by sstephenson 2 days ago 2 replies      
Pow is a Node.js app written in CoffeeScript. It includes an HTTP and a DNS server and runs Rack apps by way of Josh Peek's Nack library: https://github.com/josh/nack

The screencast shows how it works and why we made it: http://get.pow.cx/media/screencast.mov

If you're interested, you can read the annotated source code, written in literate style and generated with the wonderful Docco: http://pow.cx/docs/

16 points by stephth 1 day ago 2 replies      
I love this. You simply create a symlink to your app, and boom, the app works at nameofthesymlink.dev. Even after a system restart. And pow is clever enough to only start workers if the app is accessed and shut them down when idle.

This is a blessing if you usually need multiple local apps running.

It also means you can now elegantly use local ruby webapps as personal desktop applications. Say you'd like to build a simple journal or expenses app to use on your desktop for personal use. You can now quickly build it with - say - Sinatra, Datamapper and SQLite. And no need to launch or quit it. Beautiful.

9 points by marcomonteiro 2 days ago 0 replies      
Ok, we get it, some people are paranoid and afraid of running a "random script" and having to sudo to install it. Can we please have a discussion on the merits of the actual application. I just installed it - I trust 37signals enough to give them the benefit of the doubt - and love how simple it is to access different apps I'm working on at the same time without having to worry about configuration. Thanks 37signals.
31 points by mef 2 days ago 1 reply      
Pow uses an interesting trick to get the *.dev urls resolving to localhost: it adds /etc/resolver/dev which acts as a resolv.conf for the .dev domain, and points to the nameserver at port 20560. The Pow server binds to that port and acts like a nameserver for .dev domains.
4 points by bradgessler 2 days ago 1 reply      
A gem distribution of this would have been nice... simply so that instead of:

  $ curl get.pow.cx | sh
$ cd ~/.pow
$ ln -s /path/to/myapp

We could have:

  $ gem install pow
$ pow /path/to/myapp

8 points by Timothee 2 days ago 1 reply      
Not important, but why the ".cx" TLD? Is this intended to be pronounced a certain way?
8 points by mickeyben 2 days ago 4 replies      
gem install passenger

passenger start

no preference panes to install. No Apache configuration files to update. And Passenger eliminates the need to edit /etc/hosts. To get a Rack app running, just type a single command.

4 points by jpcx01 1 day ago 2 replies      
Pretty awesome. It took a restart to get it to work, but it's great now.

As a minor aside, is there a way to get Chrome to treat .dev domain the same as .com? Whenever I type in my .dev app name, it tries to google search for it.

5 points by whalesalad 2 days ago 3 replies      
What the hell it's written in node.js and coffeescript. Color me impressed. I'm now motivated to tackle this for python.
8 points by mjijackson 2 days ago 1 reply      
Hooray! No more mucking around in /etc/hosts, .rvmrc, or .profile! Now you can muck around in ~/Library/Application Support/Pow/Hosts, .powrc, and .powenv instead!

Thanks but no thanks. Do yourself a favor and learn how to install rack and nginx. It's already dirt simple, and you'll save yourself having to go back and learn it when it's time to deploy your app somewhere other than your laptop.

3 points by kunley 1 day ago 0 replies      
I don't see any connection between being "super-hero" and a mindset when you don't know how your code works inside.
2 points by tvon 2 days ago 0 replies      
A shell function to add directories to ~/.pow:

    function pow {
if [ -d "`cd $1; pwd`" ]; then
ln -s "`cd $1; pwd`" ~/.pow/

1 point by bonaldi 2 days ago 1 reply      
Installation wasn't easy or slick here:

  *** Installing local configuration files...

/Users/bonaldi/Library/Application Support/Pow/Versions/0.2.2/lib/command.js:50
throw err;
Error: EACCES, Permission denied '/Users/bonaldi/Library/LaunchAgents/cx.pow.powd.plist'

2 points by jarin 2 days ago 0 replies      
Let's take an informal poll: how many people grousing about the installation method were actually planning to install and use this?
5 points by weehuy 2 days ago 1 reply      
How much of this is OSX specific since it's a node.js app? Other than the launchctl and plist stuff could this be ported to linux?
2 points by koenigdavidmj 2 days ago 6 replies      
I do not much like this 'curl $random_url | sh' installation method. I am not going to be running some random script without looking long and hard at it first.
4 points by brndnhy 2 days ago 1 reply      

This is very nice documentation. Is it generated using a freely available tool?

3 points by matthewsinclair 2 days ago 1 reply      
As an aside, does anyone know what was used to generate the "Annotated Source" code listings? They look absolutely beautiful. Were they generated from the underlying source, or put together by hand?
2 points by chrisledet 2 days ago 1 reply      
Maybe it's just me but I can not seem to get any application to work. Chrome just says "Server Not Found". I tried to check the logs in ~/Library/Logs/Pow but the directory doesn't even exist. Didn't know if it was something silly before I created a ticket on Github.
1 point by tvon 2 days ago 0 replies      
That x86_64 node executable doesn't play nice with Core Duo Mac's.
1 point by xtacy 2 days ago 0 replies      
It would be nice if there were an easy way to start/stop pow when needed.
2 points by josefrichter 2 days ago 0 replies      
I have no f*kin'idea how you did this, guys. But the result is amazing even for us, casual weekend spaghetti coders ;-)
1 point by Frozzare 2 days ago 0 replies      
Great stuff!
Why Can't Developers Estimate Time? patchspace.co.uk
234 points by ashleymoran 1 day ago   126 comments top 51
100 points by charlief 1 day ago 1 reply      
Lt. Commander Geordi La Forge: Look, Mr. Scott, I'd love to explain everything to you, but the Captain wants this spectrographic analysis done by 1300 hours.

[La Forge goes back to work; Scotty follows slowly]

Scotty: Do you mind a little advice? Starfleet captains are like children. They want everything right now and they want it their way. But the secret is to give them only what they need, not what they want.

Lt. Commander Geordi La Forge: Yeah, well, I told the Captain I'd have this analysis done in an hour.

Scotty: How long will it really take?

Lt. Commander Geordi La Forge: An hour!

Scotty: Oh, you didn't tell him how long it would really take, did ya?

Lt. Commander Geordi La Forge: Well, of course I did.

Scotty: Oh, laddie. You've got a lot to learn if you want people to think of you as a miracle worker.

32 points by PaulHoule 1 day ago 2 replies      
A big part of the problem is that management often isn't interested in honest estimates.

You can certainly find better practices in some organizations, but in many organizations, a certain team gets tasked with completing a certain assignment by an arbitrary deadline and no attempt is made to reconcile the triple constraints with reality.

In a context like that, developers may not be asked to make estimates, and if they do make estimates they don't believe that they'll be taken seriously. So they never develop the chance to learn how to estimate.

The accuracy of estimation also depends on the context.

If, for some reason, I had to fix a difficult-to-reproduce bug in a large system written in COBOL that runs on a mainframe, I'd have very little idea of how long it would take me to learn COBOL, understand the codebase, figure out the tools, and track the problem down. A COBOL jock would obviously do better.

On the other hand, I've worked on greenfield well-specified business CRUD apps based on a correctly aligned framework where I could estimate that something would take 21.25 hours and I'd really get it done in 19.75 or 22.50.

I've met developers who will absolutely refuse to estimate anything but I think more often developers don't believe their estimates will be listened to.

The good news for both developers and managers is that estimation is a learnable skill. If you get in the habit of making estimates and testing them, you'll get better amazingly fast. See the classic book


55 points by ThomPete 1 day ago 3 replies      
Time estimations is an industrial way of thinking applied to a post-industrial world.

In the post industrial world time isn't the problem but rather project definition and scoping.

In the industrial world the problem was already solved (machine was built, market often established and output depended on a few factors that could be adjusted. Need more output add more of X)

In the post industrial world every project is about problem solving and scoping.

To put it into comparison.

If we apply post-industrial thinking to an industrial world. It means that each time a product needed to be done if not the factory, then the machines would have to be developed.

It will take many many years before time estimation will die, but it will happen.

20 points by michaelcampbell 1 day ago 3 replies      
There are 2 sides to this, one of which is detailed in most comments below, and I see it from a lot of devs I work with but mainly the less experienced ones, and that is the eternal optimism issue. That's been covered a lot already, so no point in belaboring that.

The OTHER side is that, at least given my experience in the financial software domain, managers don't WANT accurate estimates. They absolutely abhor them. And developers are punished for giving them. So they aren't given.

An accurate estimate, such that one can be made, is usually around a 70%-80% confidence interval. It includes many specifically unforeseen, but generally known issues such as problems with the environment, lacking specifications and time required to get them, including "making $#@! up" fudge factors, technical hurdles, cogitation and exploration time, etc.

But managers can't hear that. All they want to hear is something they can sell to their superiors, which is often the customer. An accurate estimate is almost always going to be larger than that, so they won't accept it. So, the development staff is forced to skimp on quality or features to make an artificial date. But that's ok! Why?

Well, it's partially an organization's willingness to accept "there's never enough time to do it right, but there's always enough time to do it twice" (or more), but that's not even half of the issue. The larger part is that NO ONE WANTS IT RIGHT THE FIRST TIME. I've seen this time after time.

It's a win/win to provide sub-par product. Why? It makes a manager look great to give low estimates (win), hold the developers to that, and deliver a product with less-than-promised quality, or scope, or both. That provides customers something to gripe about (which EVERY customer wants; it makes them appear "tough" or "thorough"; win), and it gives the managers something to "fix" and appear reactive to the customers' needs (win).

Who's holding the bag for all this win? The devs, and support. There are inevitable promises of being able to go back and fix things, but that never happens; once something is in production, no matter how crappy, it has the almighty momentum. If it's "working", almost no matter how fragile it is, there's no appetite to change something that works so that it can work better. That provides no revenue, and does impart considerable risk (with limited or no QA, having moved on to the next thing) and/or cost (keeping your QA around to regress fixes).

Although that mindset infuriates me, I don't honestly know that it's not the best way. It seems to have evolved, and companies that do it seem to do ok, so maybe it's the Darwinian process at work.

7 points by Maro 1 day ago 1 reply      
There are human timescale factors involved.

If you give an estimate that's too far out, it'll be outside your client's planning scale. That means it's so far out, she doesn't know what will happen by then, she won't do the project. In my experience, this is scale is roughly 9-12 months, unless you're dealing with a MegaCorp.

So most estimates end up at 6-9 months, which then slip into 9-12 territory, and hopefully not much further =)

In my experience, coding time is usually easy to estimate, and that's what most estimates coming from developers should be taken to estimate. But then you have integration (nothing works), testing (everything is broken), and then realizing what the client meant when she said X (solved the wrong problem, optimized for wrong features), those are the tough ones.

You should take the estimate for coding time (coming from the developer), and multiply that at least by 2x. Of course, going back to my original point, that estimate may be outside the "human timescale", so you may not be able to tell the client that...

So, to answer your original question, developers can estimate primary development time up-front pretty well, but they suck at estimating integration, testing and shipping time.

A related thing I noticed is that if you ask a developer during the late(r) stages of the project when she'll be finished with the "next stable version", the answer usually hovers around "in 2 weeks", even if the actual answer is more like 3 months. The developer isn't lying, she genuinely believes that it can be done in 2 weeks.

That's why you want experienced engineers and not fresh college grads leading teams and giving estimates. They've gone through these experiences, have a lot of soft data metrics in their heads, and can come up with good multiplicative factors. I'd be curious if orgs like Google have a database of project data to aid planning.

22 points by joezydeco 1 day ago 1 reply      
Because estimates are not committments.


"If you ask Fred, “When will you be done?” have you asked for an estimate or a commitment? What does Fred think you asked for? If Fred says, “Two weeks from today,” has he given an estimate or a commitment? What might happen if you want a commitment and Fred thinks you want an estimate? What might happen if you want an estimate and Fred thinks you want a commitment? How could you make it crystal clear whether you're asking for an estimate or for a commitment? How could you make it crystal clear whether Fred is giving an estimate or a commitment?"

12 points by larsberg 1 day ago 1 reply      
I'd say that people can't estimate time because it's an acquired skill and most people don't try to acquire it.

When I managed a team, I had people put their initial estimates in the tracking tool, and when closing out the item they'd also fill in how long it actually took. Then, some of the report generation tools would let them see how accurate they were. There were no review metrics associated with being accurate, but I found that within a couple of months in a new area, individuals started getting much more accurate without just lamely padding out schedules (their teammates would have called them out, and even I wasn't pointy-haired enough to be fooled that easily). An unexpected bonus is that people also got a lot better at describing their work and investigating the risky bits before throwing something onto the schedule for the sprint.

But, we didn't do this for purely investigative or experimental work (i.e. "try out a new immutable text region design in the editor"). We'd just timebox work like that and evaluate progress to decide whether to keep going or not.

10 points by NY_USA_Hacker 1 day ago 1 reply      
Once a developer has done a project, he can give a good estimate of how long it would take for him to do that project again!

Really, it's easy for developers to estimate time much the same way plumbers, carpenters, auto body shop workers, general contractors, dentists, etc. do: When a developer has done a very similar project more than 10 times recently, they can give a good estimate for how long it will take to do the project once more.

This situation is quite general in engineering and other work of wide variety.

Similarly, in general, when some project is being done for the first time, with no prior experience with comparable projects, then time estimates are tough to give.

In particular, for 'developers', now they work heavily with 'parts, pieces, and tools' from others, and working with these for the first time encounters standard problems: (A) How to use the parts, etc., needs good documentation rarely available. (B) Newer parts, etc. commonly have strange behavior or actual bugs that have to be encountered, diagnosed, and worked around. So a developer does not know how much time will be spent mud wrestling with (A) and (B).

17 points by btilly 1 day ago 2 replies      
I prefer to take my advice from someone who has demonstrated the ability to repeatedly run projects and estimate them in advance to surprisingly high accuracy. I therefore recommend Software Estimation by Steve McConnell, available at http://www.amazon.com/Software-Estimation-Demystifying-Pract....
7 points by sunchild 1 day ago 0 replies      
It is always a mistake to ask: "how long will this take you?"

I've spent my career as a lawyer dealing with this problem.

The solution is to choose a price that represents the value proposition of the output (whether it's code or contracts). As part of that price, you will bring a comprehensive process to the table " one that is very clear about what the client is expected to provide.

I have gathered a huge amount of timekeeping data from lawyers, and crunched it up, down, left, right and center over the years. Here is what I learned:

1. If a task can be defined, it has a predictable price.

2. Tasks should not be measured by how long they take start to finish, but rather by how much time is actually required to complete them.

3. A clearly defined task always takes just about the same amount of time. The start to finish time is variable because:

(a) the client is faster or slower at providing resources or information; and

(b) your other client work is causing bottlenecks in your own availability.

4. You can solve for (a) and (b) above. I'll leave it to your imagination how. That's my secret. ;)

15 points by allenp 1 day ago 1 reply      
It's because developers are eternally optimistic. How else can you explain someone hitting a "compile" button a hundred times a day, hoping each time to get no errors?
8 points by hammock 1 day ago 1 reply      
The author makes the point nicely at the front: "because the nature of the work is creating."

I'm not a developer but I can confidently say that it's not just developers - NO ONE can estimate time when it comes to creative work. I use the term creative loosely, it could be anything from developing a business strategy, to crafting a story, to art directing an original visual, to writing code for a novel problem.

The problem is the same one that makes it difficult to say "when will we have a cure for Parkinson's," "when will we have fusion power," "when will we discover a viable alternative energy"? You often see estimates like 20 years, 40 years, 50 years - but properly interpreted, these aren't actual estimates of the amount of time it will take, but rather like a proxy for a much more probabilistic, uncertainty-oriented notion.

14 points by hsmyers 1 day ago 1 reply      
Nicely complicated--- useful if the boss or client wants verbiage. If asked directly though, I usually say "If I've done it before, I know how long it takes; if not then not."
4 points by d4nt 1 day ago 1 reply      
Pure coding is easy to estimate accurately. If you asked a developer to estimate how long it would take to hand write a class for every HTTP status code in v1.1 of the standard (and gave them a copy of the standard), they could probably give you an accurate figure.

Of course, most development projects are not like that. The pure coding part of it is interspersed with countless decisions about how the app should work, with each decision requiring input from lots of people, plus a bit of experimentation and rework. The process of getting to a decision is hard to estimate and the amount of development that each decision will create is impossible to know until the decision has been made.

Estimating a software project is like estimating the length of time it takes to get a law passed. It's not a computer science or even an engineering matter, its a political/ psychological one.

5 points by bsaunder 1 day ago 2 replies      
Almost all bad estimates are due to a lack of information. In software development, the information that tends to be missing are the particulars of the task being estimated (which code needs to be modified, in what way). This missing information is highly unique and not to generally transitive from one programing assignment to the next. Additional information about the process is usually not the problem. Things like CMM tend to focus on the process information rather than the particulars of the coding problem at hand. Which, leads many developers to think: "You're doing it wrong."
2 points by bugsy 1 day ago 1 reply      
Accurate estimation is certainly possible and is practiced by professionals, I do it myself. It's a skill though and it requires ground work in advance. Those interested may find discussion of some methods in McConnell's "Software Estimation: Demystifying the Black Art". Humphrey's PSP materials are an earlier but useful source of information.

The skill is irrelevant in most workplaces though. In most cases time to do an estimation is forbidden, and in the rare cases where an accurate estimation is produced, it is replaced with management's wishful-thinking estimate instead, which insecure developers are often strong-armed into "agreeing" to.

Replacing an accurate estimate with wishful thinking and whipping the slaves to go faster does not mean accurate estimates are impossible. It means that there is a problem with endemic management incompetence and unprofessionalism throughout this industry. If you have not established a track record of accurate estimates, you shouldn't be managing in any capacity at all. I don't expect this to happen though. I fully expect incompetent unprofessional management to continue to be the rule throughout most of the industry because there is little sincere interest in fixing things compared to maintaining empires ruled by fools. The preferred system is of blaming developers for bad estimates that were forced upon them by management, or that were produced by people who have no idea how to estimate and who are given no tools or training in how to do so.

What a relief it is not to be working for such incompetent management and be on my own. To those whose bosses are bullying them into giving bogus estimates and then blamed when things go wrong, you have my sympathies.

4 points by Hominem 1 day ago 0 replies      
I am asked to give estimates all the time, sometimes based on something like "A guy down the hall says it crashed, how long will it take you to fix." or "Bob wants a portal site". So I've come up with a method that works for me. Add together hours based on what things I will need to fiddle with to get it to work.

•Involves strange business practice I will have to figure out or gleen from area experts +5h

•I didn't write the code +5h

•Involves something like wcf or msmq +3h

•It is a "it is too slow" bug +3h

•Involves stored procedures +2h

•Involves 3rd party UI component +10h
and so on, and so on.

5 points by madaxe 1 day ago 0 replies      
Estimates are unimportant. Why? Because most conversations about estimates go thusly:

Client: "How long will it take?"

Dev: "Approximately three weeks."

Client: "We need a firm date."

Dev: "Fine, April 29th."

Client: "Unacceptable. We require this functionality by April 10th."

Dev: "I could only possibly do it by April 10th by having the entire team work day and night until then."

Client: "Excellent. We look forward to launching on the tenth."

And then, they're pissed off when you pull off the incredible and deliver a three week build in three days.

Fuck everything about this business.

3 points by mbesto 1 day ago 0 replies      
This goes for everything in life. Humans suck at planning.

EDIT: http://book.personalmba.com/planning-fallacy/

“Hofstadter's Law: it always takes longer than you expect, even when you take into account Hofstadter's Law.” " Douglas Hofstadter, cognitive scientist and Pulitzer Prize"winning author of Gödel, Escher, Bach: An Eternal Golden Braid

1 point by nlawalker 1 day ago 0 replies      
I think the main thrust of the article is factually correct (you can't estimate the creation of something new), but I don't think that's a very satisfying answer because you can't do anything about it.

In my opinion, the single biggest problem with developers doing estimates is that they think they're being asked for a commitment, or they are being asked for a commitment but the asker is calling it an estimate. This creates a large number of problems in expectations and communication, and it causes the whole project to break down.

There are some things that can be done on a project to help improve communication about estimates, commitments and targets:

- Ensure that estimates, commitments, and goals are understood to be three separate things.

- Ensure that everyone knows the benefits and uses of estimates, commitments and goals, as well as the non-uses. This is doubly true for estimates: many people treat them as commitments, but in reality they are supposed to be indicators that can be used to help control a project and make it successful.

- Encourage people to put effort into their estimates. Developers often don't like working on estimates because every minute they spend working on them (or on other stuff like timesheets and status reports) is a minute they could have spent thinking, designing and coding. Ensure that everyone knows that spending time on estimates and other activities is truly valuable to the project and the group, and helps ensure success.

- Do everything possible to remove stress and pressure around estimates. Reinforce the idea that estimates are used to help steer the project to success, not to hold peoples' feet over the fire (if a PM is trying to shrink estimates or pointing to estimates after a project has started and saying "tasks x, y and z are late," they're doing it wrong).

- Make it known that estimates are supposed to have some uncertainty. Don't accept or expect single-point estimates, and make sure the people delivering the estimates aren't pressured to do so.

3 points by k7d 1 day ago 2 replies      
That's why we were using complexity estimates in points (say 1 to 5) instead of actual time estimates in my last startup. Once you have some worklog, it's easy to calculate how many points the team can get done in a week (or whatever your estimation cycle is). This little abstraction made estimates much more reliable.

I guess some "agile" methodologies propose a similiar approach, but we didn't really follow any specific one, just figured out what works best as we moved along and kept the process as lean as possible.

5 points by Lozzer 1 day ago 1 reply      
I estimate by considering an optimistic, pessimistic and normal value for each task. I then have a spreadsheet that does a modicum of statistical analysis to give you times against probability that the task will be finished.

Some of the benefits I find are:

1. Getting into the pessimistic mindset helps produce better estimates

2. Tasks with a large spread are things you aren't really clear about, and are an obvious target to be attempted first

3. Giving a range of values to the person asking for the estimate seems to help them remember it is an estimate.

1 point by dpcan 1 day ago 0 replies      
It's because programming is as much an art as it is a science.

You don't ask a painter how many hours it will take to complete a masterpiece. Nor do you ask a composer how long it will take to write the next great hit. Or an author how long it will take to finish a great book.

Sure, we can ask an artist to be done by "next Tuesday", or in 20 hours. And the artist will say, no problem, but there is no guarantee of quality.

Programming is no different. Yes, there is a method, a science, to getting things done, but when it comes to creating a finished work of art, it is not a time oriented task.

If you want quality, don't put us on the clock.

4 points by knodi 1 day ago 1 reply      
I find that only bad managers ask "how long will this take you?" and idiot manager will take what ever time you give them and try to cut that short or judge time for the developers or engineers; like "this should be easy and will only take few day".

Good manager that have "developed" before will ask "how much work is left?" and "What are some of the out standing problems that need to be resolved?"

Look for the good ones avoid the idiots.

1 point by RyanMcGreal 1 day ago 1 reply      

> It's not just developers that are bad with estimates either. Everyone at some point is just winging it because it's something they've never done before and won't be able to successfully make a judgement until they have.

When my manager asks, "How long will this take," about half the time my honest answer is, "I don't know."

2 points by aycangulez 1 day ago 0 replies      
The author refers to Don Reinertsen who is a proponent of kanban in software development. For a brief explanation of kanban and how it can help improve estimation, see: http://flow.io/how-kanban-can-help-you-increase-your-teams-c...
5 points by codelion 1 day ago 1 reply      
May be because software development is a creative process or the same reason why Artists won't tell you how long they will take to finish a painting or Authors repeatedly miss publisher deadline for books.
2 points by iaskwhy 1 day ago 0 replies      
When I needed to estimate a new project at my previous job I used to pretty much always say "3 months". I made sure clients knew I was talking about a MVP even if they were thinking about making something like Microsoft Excel in-house. Then we would just build on top of that, one block at a time, never more than 3 months for each block.
5 points by clawoo 1 day ago 0 replies      
From an older Slashdot comment on the subject: I multiply all time estimates by pi, to account for running around in circles.
6 points by ukaszg 1 day ago 0 replies      
because they actually try to give truthful answers, instead of making up numbers like everyone else.
1 point by patja 1 day ago 0 replies      
Developer estimation improves when the developer is estimating the time for a task that is repeatable and they have experience or data on how much time the task took in the past. Substitute any title for "developer" in the previous statement and it remains true: civil engineer, drywall installer, plumber, etc.

The challenge is that relatively few developer tasks are highly repeatable, and very few developers are disciplined about collecting data on how long similar tasks required in the past. Also high performing developers get bored easily and frequently want to chase the new shiny tool/framework, where they have no past experience or data to rely on for estimating.

A first question in asking a developer about their estimate is "have you done this type of task before with the same technology you are planning to use". If no, disregard any estimates.

You can get good estimates for high volume of task teams, like maintenance or break/fix teams where the technology remains relatively static from one work iteration to the next, and the work items can be bucketed into meaningful and consistent sizes (T shirt sizing or what have you). Those are typically where you have your junior (or offshore) developers staffed as they pay their dues, and they can benefit greatly from having discipline around collecting data on their actual experience and using that data to reduce variance in estimates vs actuals in the future. This is also a great space for a new dev lead or manager to cut their teeth on managing the consistent collection and application of this data to reduce variance to plan.

For the really fun work though, where your high performing developers want to be operating so they can thrive and experience self-actualization (see Maslow), forget about the estimating angst and just timebox them or go agile -- build something, release it, refactor it, repeat. Don't waste your time creating the illusion of certainty about the future when you have nothing but optimistic gut feel as input to the estimating machine.

5 points by JoeCortopassi 1 day ago 0 replies      
Because developers don't work in a vacuum. The second you estimate the project, the client starts changing it...
1 point by pmb 1 day ago 0 replies      
Because they are doing something that has never been done before. The unknown is exactly that - unknown. You can make guesses, but they will never be anything but guesses until the problem has been solved a few times.

However, once a problem is solved, it does not need to be re-solved, and so the attention of the company turns to a new unknown problem.

2 points by DanielRibeiro 1 day ago 0 replies      
Because not all of them read Agile Estimating and Planning[1]

[1] http://www.mountaingoatsoftware.com/books/1-agile-estimating...

1 point by jdp23 1 day ago 0 replies      
Wait a second. In the right environment, good developers can estimate time fairly well on most things, even for tasks they haven't done before. I'm as prey to the "eternal optimism" factor as anybody else, but it's easy enough to work around: start by doubling your own estimate, and over time learn what multiple is right for you.
1 point by motters 1 day ago 0 replies      
The problem is that most software development is novel, so there are zero previous data points from which estimates can be derived.
1 point by TimLangley 1 day ago 1 reply      
Good post Ash (good to see the discussion being consolidated)

IMHO - it's usually due to the lack of "up front planning" by Managers / Analysts.

If you compare building software to more general "building endeavors" (for example building the Olympic stadium) then, IMHO, developers are really the "construction workers" (the people actually doing the work). However no intelligent Olympic committee would countenance starting work without (for example) an architect making an incredibly detailed plan (and even a working replica model).

IMHO the problem we suffer from as developers is most often diving in too fast because:
a) we're the construction workers
b) when we do use Architects they are "construction workers too" (as opposed to being a trained with 'different but complimentary skills - it would be hard to imagine Sir Norman Foster laying bricks)

1 point by scotty79 19 hours ago 0 replies      
I have a maze drawn at this A4 sheet of paper. How long it will take you to get out of this maze?
4 points by gulbrandr 1 day ago 0 replies      
I think no one can estimate time, not just developers.
1 point by rch 1 day ago 0 replies      
It is easier to estimate time for repetitive tasks, and (ideally) programming is not a repetitive task.

once something becomes predictable, it is probably also script-able.

1 point by michaelpinto 1 day ago 0 replies      
Because most developers are optimists and because most clients don't think they'll need any changes...
2 points by Muchi 1 day ago 0 replies      
You don't know the problems/limitations you will run into until you begin working on your project. We have immersed ourselves in a culture where it's expected to estimate the unknown.
2 points by jospehcanto 1 day ago 1 reply      
Want to hire the most experienced programmer out of a group of candidates? Ask them to estimate a programming task, then pick the one that gives the longest estimate.
0 points by MartinCron 1 day ago 0 replies      
I am great at estimating time. I can tell you within 15 seconds plus-or-minus how long it will take to copy files from one server to another.

That's where any valid comparisons to construction or manufacturing end.

1 point by richieb 1 day ago 0 replies      
Which part of the meaning of the work "estimate" are we missing:

"an approximate judgment or calculation, as of the value, amount, time, size, or weight of something."


1 point by oceanician 1 day ago 1 reply      
It's because developers are rubbish for not being pyshic ;) I'm always suprised how few estimates take account of environmental contributions!!
1 point by SpaceAcer 1 day ago 0 replies      
Classic line... the better question is: "Why can't developers see into the future?"

Programming is one of the worst jobs for dealing with people. Managers assume you have no life and work you 12 hours a day for a software product, telling you that it might save your job. It's all a ruse; once they get what they want, why pay for an expensive developer to support your new site or application?

If anyone asks me if they should be a professional developer I tell them 'Run away!'. I don't wish the experience on anyone.

1 point by br1 1 day ago 0 replies      
I can't stand the rubbish advise to 'just double the estimate'. It just means you'll get an estimate 2^n times the size of the original guess from the guy n steps away from you.
1 point by known 13 hours ago 0 replies      
You cannot estimate debugging time.
0 points by planetmcd 1 day ago 0 replies      
Time is not a fixed unit of measure. I may be going closer to the speed of light than a project manager, so one week to me, might be like 5 years to them.
Must Read CS Books For Self Self-Taught Programmers
228 points by stefanve 3 days ago   61 comments top 30
15 points by nikcub 3 days ago 3 replies      
I am also self-taught, although I dropped out of University two years into a CompSci/Engineering double major, so I will recommend some resources to you that helped me immensely. Each of these books has an associated MIT course with lecture video, notes, etc. available online.

First is Structure and Interpretation of Computer Programs[1], which you can read online, and the associated course at MIT, which is 6.001[2]

Second is the famous 'Dragon Book', Compilers: Principals, Techniques and Tools[3] and the associated course which is 6.035[4]

Extras would be the Python book 'How to think like a Computer Scientist'[5]. MIT course 6.00[6] uses the book as a reference, and the courseware is again available online.

Other than that - the usual suspects on learning C (K&R), UNIX (TAOUP[7]), the bash shell along with grep, sed, awk, more algorithms(CLRS[8]), functional programming and machine learning. Take your time, it takes years to build the relevant experience and knowledge and you are never done.

I love the MIT courses. Work and learn at your own rate. I feel that it is important to implement all the code yourself even if it looks easy in a lecture - there are little things you pick up as you write algorithms out.

Even though I had worked through SICP I still watched all the lectures again and implemented all the examples with benchmarks and unit tests. I usually set aside one day on the weekend to work on study, and usually an extra evening or two mid-week to read papers and books. Once you get into the routine it is great.

It might be the best approach to set yourself a timetable and weekly schedule, just like in UNI (ie. every Saturday plus Tuesday and Thursday nights) and work through the MIT courseware and associated books in order (6.00, 6.001, 6.035). The more advanced MIT courseware is an excellent bonus.

[1] http://xrl.us/sicp

[2] http://xrl.us/6001

[3] http://xrl.us/dragonbook

[4] http://xrl.us/6035

[5] http://xrl.us/thinkcs

[6] http://xrl.us/6000

[7] http://xrl.us/artunix

[8] http://xrl.us/clrs

10 points by T-R 3 days ago 5 replies      
It really depends on what you feel you're missing and what you're hoping to do (definitions of "daily work" vary widely). If you're looking to get up on theory by doing your own program of sorts, you could do worse than start with these (in roughly this order):

Structure and Interpretation of Computer Programs - Abelson, Sussman, and Sussman

Introduction to Algorithms - Cormen, Leiserson, Rivest, and Stein

The Art of Assembly Language - Hyde

a digital logic book (not sure which is most recommended), and an architecture book (see reply by tftfmacedo)

Modern Operating Systems - Tanenbaum

Introduction to the Theory of Computation - Sipser

Compilers: Principles, Techniques, and Tools - Aho, Lam, Sethi, and Ullman (a.k.a. "Dragon Book")

Programming Language Pragmatics - Scott

A database design book (one that covers Relational Algebra, not just a book on SQL), and maybe a book on Networks. Also, Roy Fielding's paper on REST is both academic and applicable (and more approachable than you'd expect of a Ph.D paper). If you want to go all the way, an undergraduate program usually also has Calculus, Discrete Math, Linear Algebra, and Statistics. Some schools would also require Physics and Differential Equations. I'm sure I'm missing some topics, too, particularly electives.

If you can get through those and the associated problem sets, you'll have a better foundation than most.

6 points by stevelosh 3 days ago 1 reply      
My vote goes for The Little Schemer. It's short (but don't read it all in one sitting), entertaining, and will teach you some important concepts.


5 points by dragonquest 3 days ago 0 replies      
Over the years I've found the following CS books helpful, but only a minority in my day-to-day work. Your mileage may vary, as would the utility of these to you.

Algorithms -> Algorithms + Data Structures = Programs by Wirth (worth its weight in gold if you can get past the Pascal syntax)

OS -> Operating System Concepts by Silberschatz et al (The dinosaur book)

CS Theory -> Introduction to Automata Theory, Languages, and Computation by Hopcroft, Ullman

Programming Languages Theory -> Programming languages: design and implementation by Pratt et al

Database Theory -> Database Design by Wiederhold

Architecture -> Structured Computer Organization by Andrew S Tanenbaum

9 points by samdalton 3 days ago 1 reply      
While not strictly a CS book, "Godel, Escher, Bach" by Douglas Hofstadter definitely has strong roots in the area. It's not a text book, nor anything even close, however, there is a reasonable amount of mathematics and programming language design which make it educational as well as inspirational (particularly formal logic systems, around which the premise of the book is built).

The book is somewhat life changing, in the questions that it asks. You might find yourself thinking about things differently, such as what it is to be conscious, can we ever achieve artificial intelligence, is there such a thing as fate, how was J.S. Bach able to produce such stunning compositions, etc.

It's quite heavy going however, but there's a slightly more succinct, terse version which he wrote a few years ago, called "I Am a Strange Loop". This book takes the point he was trying to make in the first book, and expands on it while adding clarification. It does lack a lot of story that the original contained, so it's not a complete replacement however.

While I think of it, there's also Operating System Concepts by Silberschatz, Gagne and Galvin - http://www.amazon.com/Operating-System-Concepts-Windows-Upda....
It's an extremely detailed look at how operating systems work, down to the lowest level, and it explains a large number of things that we interact with on a daily basis.

5 points by metra 3 days ago 0 replies      
Along with the usual classics, I highly recommend Computer Systems: A Programmer's Perspective by Randal E. Bryant and David R. O'Hallaron of Carnegie Mellon. The authors wrote it after teaching a class on the subject. It's extremely readable and gives you an excellent introduction of machine level code, processor architecture and memory as well as a solid foundation of higher level concepts including networking and concurrency. If you're considering programming as a career, I'd say this book (or something similar, probably spread across multiple books) is a must-read. It's used by CMU, Stanford, Caltech, UIUC, Harvard and dozens of other schools.


6 points by wicknicks 3 days ago 1 reply      
Programming is more about thinking in a certain way than algorithms or data structures (those are the tools). You should check out the book Structure and Interpretation of Computer Programs -- I found it "enlightening"
4 points by kamechan 3 days ago 4 replies      
functional stuff is making a comeback. haskell can be daunting in its pure-ness sometimes, requiring monads for seemingly anything useful. but it's a wonderful language/lifestyle choice. this online book broaches the subject pretty well: http://learnyouahaskell.com/chapters
2 points by danieldk 3 days ago 1 reply      
The standard for computational grammars and parsers in natural language processing is:

Prolog and Natural-Language Analysis - Fernando C. N. Pereira and Stuart M. Shieber

The PDF is available from the publisher:

It also serves as a great introduction to Prolog and logics programming.

2 points by svag 3 days ago 0 replies      
You can find some resources in a similar discussion here http://news.ycombinator.com/item?id=297289

You can find some resources, mostly books, in the following links



2 points by dlo 3 days ago 0 replies      
What I often find to be the case is that a course in college only loosely follows the assigned book. Professors like to navigate through the subject material in a very personal way, which will often not be the way that it is covered in the book... if it is covered in the book at all!
For this experience, I would suggest going through lecture notes and, when necessary, supplementing them with a book.

While books are certainly valuable in someone's education, I think we are forgetting about the projects. It is very instructive, not to mention very satisfying, to implement an operating system, a compiler, or a transport layer (that interoperates with real TCP!). Moreso than reading the books of a college course, I recommend doing its projects.

To get started, I recommend the Pintos operating system, designed for Stanford's operating systems course, CS 140, traditionally thought to one of the more difficult programming courses in their undergraduate curriculum.

Some links.


4 points by dytrivedi 3 days ago 0 replies      
Godel, Escher, Bach


Art of Computer Programming

C Programming Language

Introduction to Algorithms

Land of Lisp

-- Extracted from my wishlist - http://flipkart.com/wishlist/dhavaltrivedi

2 points by jollyjerry 3 days ago 0 replies      
3 books that I helped me tie my daily work back to more abstract computer science concepts are:

- Ruby Best Practices
- Javascript, the Good Parts
- Higher Order Perl

I recommend picking these up after you've done work in the languages they're about. They assume that you're already comfortable with the language, but then go back to show how that language uses CS concepts. They highlight how functional programming, and other classic introductory CS concepts, but stays practical. None of them are long reads, and there are clear take aways that make you better at programming.

2 points by mbesto 3 days ago 0 replies      
How to Think Like a Computer Scientist - Python Version


2 points by rshepherd 3 days ago 0 replies      
This response is late that I doubt will even be read by the poster, but I will throw this out there anyway.

I was (am?) a self-taught programmer, I guess I am transitioning away of that label. I am a bit less than halfway through the MSCS program at the moment. I really cannot recommend it enough.

I think I was a pretty good software engineer prior to getting some formal education, but I cannot tell you how often in class the light from heaven just shines right down.. "oh so that's why x is y". If you enjoy the work, its a real pleasure (albeit a painful amount of work at times).

So finally I get to the point. I can see that you have already received a lot of good recommendations. I think most of them are quite good. However, I have a couple of observations about specific books.

Intro to Algorithms - Cormen etc.
If you feel you need a discrete math course, then this book is probably not a good place to start with algorithms. It is a rigorous treatment of the subject. However, if you lack mathematical sophistication, this book can be tough. I aced my discrete course prior to taking an algorithms course taught with this book, and I struggled mightily to get an A-. I found the proofs in the book difficult to understand on many occasions.

Modern Operating Systems - Tannenbaum
This book is very easy to understand and provided me with so many "A HA!" moments. A real pleasure. I am not sure what your current work is, but the only pre-req on this book is a modest amount of C/C++ programming. The reason I say this is because I found that having that, this book allowed me to finally understand what is happening from compile time down to the CPU at runtime. A really rewarding journey.

1 point by cpeterso 2 days ago 0 replies      
Eric Evans' "Domain-Driven Design: Tackling Complexity in the Heart of Software" blew my mind. Domain modeling gets to the heart of object-oriented programming. The book is a bit academic and long-winded, but very deep and complete. This is an immediate classic and required reading for any serious engineer.
2 points by saurabhsharan 3 days ago 0 replies      
Two suggestions:

Elements of Programming (by Alexander Stepanov and Paul McJones) takes a mathematical approach to programming. Since its only prerequisite is a basic understanding of high school algebra, the book is very accessible and easy to follow.

Digital Design and Computer Architecture (by David Harris and Sarah Harris) is a great book on computer architecture that starts with digital logic design (i.e. gates and transistors) and ends with a subset of the MIPS instruction set. Though, it probably won't help you much in 'daily work'.

4 points by stefanve 3 days ago 0 replies      
Updated list: (still unsorted)


4 points by rohitarondekar 3 days ago 1 reply      
Can anybody recommend a good book or resource for learning discreet mathematics?
2 points by jdj 3 days ago 1 reply      
One book that I would suggest to anyone is Introduction to Automata Theory, Languages, and Computation - HMU. It is very approachable and presents some very interesting topics (so you won't write a regex for matching HTML and will learn what P vs NP means). On a more practical side, I think that a must read for machine learning is Tom Mitchell - Machine Learning . Another book that from what I've heard is easier to digest is Data Mining: Practical Machine Learning Tools and Techniques.
1 point by mynegation 3 days ago 0 replies      
Previous HN thread on a similar topic: http://news.ycombinator.org/item?id=2262527
1 point by iqster 3 days ago 0 replies      
Peopleware - This isn't a programming book, but I feel that every professional programmer (and certainly every manager) should have read it. It is about the human aspect of programming. Programmers are people too!
2 points by Tinned_Tuna 3 days ago 1 reply      
I can't remember who said it, but

"If you can write a compiler, you can write any program."

Hence, I'd get compiler books. Modern Compiler Implementation in Standard ML, SICP has a couple of sections on compilation, there's a computational theory book that I don't have on hand which would be useful to this end too.

1 point by netaustin 3 days ago 0 replies      
Patterns of Enterprise Application Architecture by Martin Fowler helped me make the jump from small systems built for myself to large, sophisticated systems built for others.

The Mythical Man Month by Fred Brooks really helped me learn to think about large projects from a personnel and planning perspective. There are some ideas there that have become part of the CS canon; "no silver bullet" and the slightly sexist but accurate metaphor for throwing more people at an overdue project, "nine women can't make a baby in one month." The Mythical Man Month was written in 1975, but it holds up remarkably well.

1 point by thekevan 3 days ago 0 replies      
I'd like to hear HN's opinion on the quality of this list:


1 point by gharbad 3 days ago 0 replies      
Knuth's Art of Computer Programming

Aside from that, there are typically only 1-2 extremely well regarded books in any given area. If you're going to be doing something specific, grab the appropriate book.


Compilers - Dragon Book

AI - Russel/Norvig's Artificial Intelligence: A Modern Approach

Oh.. everyone needs a whiteboard, as well - they're quite useful

2 points by tmachinecharmer 3 days ago 0 replies      
The Annotated Turing by Charles Petzold
0 points by cema 3 days ago 0 replies      
FYI, you have listed several books twice (SICP, Intro to Algorithms).
1 point by known 3 days ago 0 replies      
2 points by garethdown44 3 days ago 0 replies      
Programming Paradigms - stanford course, available on iTunesU.
Why T-shirts matter at tech companies adamnash.com
229 points by rondevera 1 day ago   140 comments top 36
30 points by srean 1 day ago 2 replies      
This brings fun memories. Are Google t-shirts still a sought after commodity at Googleplex ?

The way the distribution worked was that a small cabinet used to be replenished by some 50 odd t-shirts at some random time in the week. Those who wanted a t-shirt (definitely all interns, but not sure if it was limited to them alone. More on this shortly) ran a manual poll or a select loop on that cabinet. If the word spread that the cabinet has been replenished there would a mad rush. It was not that the t-shirts were like no other, but the artificial scarcity made it fun to get one. We interns definitely fought for it like a trophy. The more prized ones were the Ts for women. Good gift for your girlfriend. My personal favorite was the Wienberger T. It was not Googly enough to attract unwarranted attention.

The vibe the t-sirts created was quite opposite of "here we all wear Google Ts". It was more like, "I got one and you didn't", a fun competition to humor each other with.

Soon some Googler figured out that one could set up a webcam to monitor that cabinet. The ip address of that cam was publicly distributed. I suspect a fair number of people really wanted these t-shirts because the cam would always clog up on the traffic, to the point of being almost useless. That's a shame because someone wrote an application to compare consecutive frames from that cam so that it will send out a message once it detected a change. Its a bit tricky, you do not want it to trigger whenever someone walked passed that cabinet. Particularly so because it was right on the way to the cafeteria. So one had to average out the frames so that any change that persisted roughly for the amount of time that is required to stuff the cabinet triggered the system but not others. A low-pass filter for t-shirt stuffing.

Not sure if anyone wrote a predictive model to figure out when that t-shirt cabinet will be stuffed. But I would not be surprised if anyone did. The culture inside seemed just right for these kind of things.

32 points by powdahound 1 day ago replies      
Shirts are also great PR, prize rewards, and 'thank you' gifts for users who run into nasty bugs. We've had a lot of success and fun with our HipChat shirts. Our tips for others:

    1. Buy high-quality shirts (American Apparel)
2. Buy small and women's sizes
3. Show some attitude, not company boilerplate
4. Buy from a local shop
5. Have a few different designs - people love having a choice
6. Make sure the shop saves the screens (cheaper to re-order in the future)
7. Quadruple check the spelling and capitalization :)

Full post: http://blog.hipchat.com/2010/08/19/7-tips-for-making-company...

23 points by nagrom 1 day ago 5 replies      
I work in a university with a bunch of late-20s, early-30s. All of my group wear, unfailingly, collared shirts and sweaters or sports coats or suits. We wear those because we like looking, and feeling, like independent adults - we're not teenagers and don't want to look like them. (Partly, we also don't want to be confused with students, I guess.)

When the professor bought us t-shirts for one particular project, it felt a bit like we were being put in our places - "Hey kids!". None of us have worn them to work. Nor will we; a formal shirt looks and feels better than a t-shirt, regardless of the quality of the t-shirt.

I think that the "t-shirts stick-it-to-the-man" attitude is pretty sad. No organization ever felt threatened by a subordinate wearing a t-shirt. Try wearing a better suit than your boss, try wearing a tailored shirt or better shoes. Rather than dressing like a rebellious teenager, try dressing like his/her boss. T-shirts seem like a rather poorly-thought-through immature act of rebellion to me.

Interestingly, the older guys in the group (40+) all wear (occasionally stained) t-shirts and claim to be completely uninterested in how they look. They also spend a lot of time taking the piss out of those of us who wear smarter clothes, telling us that we don't have to wear them. They also spend quite a bit of time (somewhat) desperately trying to convince us to dress down.

The head of the group, the professor, unfailingly wears a formal shirt and sports coat, of course.

7 points by onan_barbarian 1 day ago 2 replies      
Frankly I'd almost rather wear what Neo wears as a 'slave to the man', if it was all a matter of symbolism (a hot climate makes suits impractical).

But seriously, celebrating the fact that we dress like 22 year olds might have a teeny tiny bit to do with the fact that programmers are typically PAID like 22 year olds.

The false consciousness is epic. We'd do a lot better if we put on a suit and admitted that we're going to a place where we work. We'd do a lot better if we demonstrated on a regular basis that we have no real problem putting on a suit and walking out the damn door into a bank if pay or conditions go to shit. We'd do a lot better if we demonstrated that we think we're going to a place of work rather than a place to hang out with friends and do 'cool stuff'. We'd do a lot better if we conveyed regularly to our employers that paying us properly and treating us well is more important to us than playing stupid 'tribal identification' mind games (this stuff should come organically from below, not be created by management).

Apparently we're celebrating our individuality and difference on one hand with our tshirts, while also having 'tribal cohesion' and advertising our company in our spare time. We're showing how flat our organization is in one way, while collecting t-shirts as merit badges on the other.

It's all a bit eyerolling. Combine all this with the non-existent standards for programmer qualification, and the vocal minority of GPL people who claim that it's actually _immoral_ to be writing closed-source software, and I feel like I'm working in a field that has a 'anti-guild' (that works in the reverse direction from a traditional guild, ensuring that its members are paid less and treated worse than their qualifications should imply).

11 points by zach 1 day ago 3 replies      
T-shirts are achievement badges for tech employees, with the interesting restriction that you can only wear one at a time.

This is why every programmer has about 5-10 times as many t-shirts as years of work experience.

I would love to see a photo essay about the story told by the "t-shirt timeline" of a programmer or other tech figure. Definitely more colorful than a resume.

In fact, that would make a great site. I remember there used to be a great site cataloging the early shirts of Apple. I would love to use a site where I can catalog, compare and (yes) show off my tech t-shirt collection without having to actually wear them daily. Maybe others would want to catalog their rare rock band shirts. And everyone is curious about the black YC shirt, right? You could easily monetize with promoted orderable designs. Pleeease, LazyHN?

15 points by andrewvc 1 day ago 3 replies      
TFA seems to think wearing t-shirts helps you keep the man down which is weird.

I'm not so sure I'm fighting the power while working in my my nice office in a good part of town in an engineering job. The fact that this guy works at linked in, a business built around yuppies networking, makes that assertion even more cringe-worthy.

Not to knock linked in, but they aren't exactly 'rebels'.

20 points by zachallaun 1 day ago 0 replies      
This is an oddly compelling case for something that I would have written off as superfluous. I love the little things you learn here on HN.
10 points by alex_c 1 day ago 2 replies      
Want the t-shirt from the 2007 company picnic? You had to be there to get one.

T-shirts as badges, or achievements (as in gaming). Never thought of it that way.

11 points by farout 1 day ago 2 replies      
I always hated wearing the company T-shirt - I felt like a drone. Also at Sun they never gave women sizes - 8 years - not once. Tons and tons of night shirts for me.

Plus the damn logo is right across the chest - yeah that is exactly where I want people to look when talking to me.

My husband wears his as yardwork clothes especially the long sleeve ones since they are made of poor material and look crappy after several washings.

At another company the receptionist (a woman) bought extra tight shirts for the women - all 3 of us decided to throw them away - no way in hell were we wearing that. It was degrading. Then we were taunted by everyone why we were not showing company spirit.

If you want to give swag - give something useful like a electrostatic-free strap. That always comes in handy.

For something to display - how about a baseball hat. Sun gave jean jackets and other jackets - all too big - can not wear but at least it was different. I love the PR suggestion - put your benefit statement and then your logo and your URL.

8 points by michaelchisari 1 day ago 4 replies      
I don't like wearing t-shirts with logos on them. Bands, brands, companies, nothing like that.
5 points by icegreentea 1 day ago 0 replies      
T-Shirts work for -everything-. Non-crappy t-shirts (if they're actually witty even better!) will boost the morale of almost any group. See the group of grumbling engineering students. Now see them happily putting on and wearing their purple engineering t-shirts, temporarily forgetting the tortures that the faculty unleashes on them. They might even -like- the faculty for a while. If only so they can make sure they'll never -ever- be confused for an arts student.
7 points by GiraffeNecktie 1 day ago 0 replies      
Witty, off-beat, beautiful, thoughtful t-shirts can be a lift to morale. The fact that you settled for just slapping the crappy product logo on a t-shirt with fabric that feels like ass wipe and was probably made by child-labour in a Latin American dictatorship doesn't motivate me nearly so much.
6 points by pitdesi 1 day ago 0 replies      
For us, the PR value is more important than any of these reasons...

FeeFighters wore shirts at SXSW that had "YOU are getting RIPPED OFF on your credit card processing" on the back

This led to a number of fantastic leads, including some huge companies that we were able to help.

We also got several requests for shirts including from some notable folks... we came with extra and sent them out!

1 point by natemartin 7 hours ago 0 replies      
T-shirts were one of the ways that I could tell the culture at Apple was changing.

When I started interning there, there would be a new T-shirt for every new project we would ship. The engineers in my group would all where T-shirts from projects past.

By the time I started full time,and my entire tenure there, the T-shirt culture was over (at least in hardware). Whenever someone would bring it up, or request one for the project we were working on, the answer would be "That's not a priority any more" or "We just don't have the budget for that."

Thankfully the new company I work for has some very cool t-shirts!

6 points by pitdesi 1 day ago 1 reply      
While this is on the front page - can we ask the question...

What is the best place to get small runs of high-quality shirts printed for low prices?

2 points by blhack 1 day ago 1 reply      
Why is this stuff unique to tech companies? MBAs, despite being constantly accused of it by nerds, aren't idiots. Neither are accountants, neither are controllers, neither are middle managers.

Everybody does their best work when they're most comfortable. Why haven't many traditional companies figured this out yet?

6 points by Chrono 1 day ago 3 replies      
I know most here seems to love t-shirt but personally I am a fan of a suit, or at the very least a nice shirt (Not a cheap one that looks like a tent please).

I see the points the author of the blog post makes but still, is it so bad to want to wear 'typical' business wear at a tech company?

Note: I love a witty t-shirt just as much as the next guy, but preferably on my free time.

4 points by _becky 1 day ago 2 replies      
"The best analogy I can think of is to put yourself back in time, to when you were between 8 " 12 years old. Now, think carefully about the things that 8 " 12 year old boys like (at least, the geeky ones)."

Overall I thought this was an interesting article with a surprising amount of insight into something seemingly insignificant like t-shirts. But, I have to admit that, as a female founder, I was a bit frustrated by the assumption that the reader was a male. While it's certainly true that the industry is heavily male, we shouldn't forget about all the awesome women in tech!

2 points by corin_ 1 day ago 0 replies      
Majority of these points are also valid for why you often get free tshirts at events, from small gaming events up to huge expo events.
4 points by khandelwal 1 day ago 1 reply      
At a number of places I've worked at, people did not want t-shirts. They preferred a free meal instead. Mentioning that a t-shirt lasts a lot longer than a meal had no sway.
1 point by follower 1 day ago 0 replies      
In a link from the comments of this article I found another article about a company's t-shirt development process:


Of most interest was their response when someone in the comments asked for a t-shirt:

"Yes, we are giving them away. Login to your [...] account and click on the feature request button at the bottom of the page."

Seems like a good approach.

3 points by doron 1 day ago 1 reply      
Tech T-shirts, Like Military patches, are basically gang colors.
1 point by gojomo 1 day ago 0 replies      
Anyone want to jump the gun on the author's promised future post, about how to get great shirts, with recommendations here?

(SFBay vendor recommendations based on personal experience would be especially valued. Where does YC get its "[make|made] something people want" shirts, and are they as high-quality as they are high-cachet?)

4 points by cydonian_monk 1 day ago 0 replies      
Let me work on something really cool without undue interference and I don't care if you give me a t-shirt, coffee mug, water bottle or anything. Schwag is nice, but building something useful is better.
1 point by WalterBright 1 day ago 0 replies      
I try wearing a dress shirt now and then, but if the building temperature isn't lowered a few degrees, I just perspire in them all day. With a t-shirt, I don't.
1 point by stc043 9 hours ago 0 replies      
The article is so True !.Consider even universities, Wearing a Harvard or MIT T-shirt is like a badge of honor . It identifies you as a member of an exclusive community .
2 points by jeanhsu 1 day ago 0 replies      
I've been to Palantir a few times for dinner, and almost everyone there wears Palantir t-shirts. They give out one for each release, and it looks like they're each themed around an element of the periodic table. The critical part is that they are nice shirts (American apparel), and really nicely designed. They also seem to order women's sizes.
1 point by timc 13 hours ago 0 replies      
more comments about t-shirts than most posts! guess they do matter. Blekko may set a record for free t-shirts. giving them out to anyone who asks
3 points by count_zero 1 day ago 0 replies      
This article reminded me of the employee-only Facebook hoodie, which (according to some commentors) sold on eBay for over $4k
1 point by fryguy 1 day ago 0 replies      
I work at a non-"startup" company, and I really appreciate the t-shirts my company gives us. When I joined the company, I got a plain white one, and every so often they sell the "generic" shirts for fairly cheap (at cost I believe). At some of the company events, there is generally a t-shirt given out celebrating some special event (shipping a new vehicle), or sometimes a "funny" shirt that everyone at the event gets. A few years back, they gave out a shirt that parodied the west coast choppers and orange county choppers. I've gotten a few comments about how cool my company is that they'd give out those shirts. The fact that they are really comfortable t-shirts and last a long time helps too.

This article really hit the nail on the head.

1 point by rcavezza 1 day ago 1 reply      
What about target market? Most tech companies are targeted towards the tech crowd and younger men. How about custom ties for companies targeted towards businessmen?

The difficult part would be designing a custom tie that looks great, but still represents your brand. Does it have to be on the outside? Can a tag in the back of the tie be enough? I'm just not sure...

3 points by innes 1 day ago 0 replies      
Me - I can take or leave T-Shirts.

I'm a sucker for beads. Shiny shiny beads that sparkle and shimmer.

4 points by iamgoat 1 day ago 0 replies      
The words "high tech" were used 7 times in that article.
1 point by atrevisan 1 day ago 0 replies      
Wrote a post just yesterday about the power of advertising through T-shirts. Referenced a local restaurant, The Salty Dog Cafe, whose entire identity is based on a t-shirt. Has worked well for others also.


1 point by sv123 1 day ago 0 replies      
I agree, I work at a company where they try to sell us $30 shirts with the logo on it... Nobody buys and it makes you feel shitty.
1 point by dengzhi 1 day ago 0 replies      
good article, i wish my company would give out free t-shirts.
Introducing the New Commodore 64 commodoreusa.net
220 points by will_lam 5 days ago   92 comments top 28
39 points by marcusestes 5 days ago replies      
Cramming a modern PC into a vintage C64 reproduction really is a terrible idea. But as an old Commodore / Amiga fanboy I have to admire Barry Altman (CEO of Commodore USA) for attempting to reawaken the brand.

After the sad bankruptcy spiral and eventual shutdown of Commodore the trademarks ended up in the possession of a company based in the Netherlands called Tulip Computers (Now Nedfield) who makes commodity PC workstations. The did a little cheapo licensing of the brand here and there but basically showed no intention of breathing life into the brand again.

Mr. Altman appears to have incorporated Commodore USA with the sole purpose of attaining trademark licenses and attempting to tap into the large and very latent Commodore enthusiast market.

It doesn't feel like he's going to succeed. But I applaud him for trying. Now that Steve Jobs' face has taken the place of Big Brother in that 1984 ad, it feels to me that the landscape needs a new "creative computing" competitor. The Commodore brand could be such a cool fit, if they only had a decent product.

They should reproduce the 4000 / Video Toaster combo: http://www.youtube.com/watch?v=nymVNhy4dw8

16 points by tesseract 5 days ago 2 replies      
The PC guts seem boring and will inflate the price. Why not do a reissue with functionality closer to that of the original, based on the C64 DTV [1] which cost $20 or $25 when it was on the market, and sell it at a $50-to-$100 price point?

[1] http://en.wikipedia.org/wiki/C64_Direct-to-TV

6 points by Udo 5 days ago 1 reply      
This is a lost opportunity. They could have revived the brand by putting out a new Commodore. Modern hardware, super-slim, "the keyboard is the computer", inexpensive. Maybe with a very simple and fast OS, like a light Linux or BSD or whatever became of the Amiga OS.
8 points by daeken 5 days ago 2 replies      
If this had a SID chip (or multiple!) in it, I'd buy one in a heartbeat. As it stands, it's just a straight up PC with... a C64 emulator.
5 points by defroost 5 days ago 4 replies      
From the FAQ:

"10. What is Commodore OS?
Our new Commodore operating system, will be a unique Commodore and AMIGA centric Linux distribution, that will grow over time into something far greater. Commodore OS will not be your run of the mill Linux distribution."


Judging from the website's fondness for the long deprecated bgcolor tag and animated GIF's, my confidence them producing such an OS is not particularly high at this moment.

11 points by Groxx 5 days ago 1 reply      
A terrifying website, with lots of renders, few photos, and a non-functioning store. That's pretty "meh" in my book, and it even gets a Raised Eyebrow of Questioning.
3 points by mambodog 5 days ago 0 replies      
I think this should have been re-imagining of the C64 as a first computer for a new generation of hackers.

I'm thinking of a high-level, empowering, introductory programming environment in the vein of Hackety Hack or Love2D (because lets be honest, kids want to make games), running on a Linux with an easy-to-use desktop environment (Ubuntu/Unity?).

The hardware would be netbook/mobile type stuff and internet oriented with SSD storage, Wifi, and HDMI for video output. No optical drive. Oh yeah, and a gamepad, the modern equivalent of the joystick.

I'm too young to have grown up with a C64 myself, but to me this would seem like a more worthy spritual successor.

6 points by tomconte 5 days ago 0 replies      
OK, when in doubt about any C64 stuff, the only place to go is the Lemon64 forum, and this seems to be real...



And if you are like me an Unbeliever, check out Disney's TRON partners page:


4 points by teach 5 days ago 2 replies      
How I wish I had a working 1541 disk drive! I've got scores of programs on floppy disk that I wrote when I was 11-14 years old that I'd love to read again.

I doubt the disks are still readable, though. They haven't always exactly been stored properly.

5 points by xbryanx 5 days ago 0 replies      
Gotta break out all my old C64 casette tapes.
2 points by eru 5 days ago 0 replies      
I like the C64 laptop much more (http://benheck.com/04-05-2009/commodore-64-original-hardware... uses the actual old hardware.
4 points by joeld42 5 days ago 1 reply      
this is just a PC casemod. bleh.
2 points by asciilifeform 4 days ago 0 replies      
This is not a Commodore 64.

It is a cruel mockery.

The main appeal of the Commodore was simplicity and understandability. This is a PC, that is to say, a piece of junk overgrown with cancerous accidental complexity.

3 points by tomconte 5 days ago 1 reply      
This is obviously an April's Fools joke, except they missed the deadline, which is typical Commodore ;-)

In other news, if you want to join 60,000+ fans of the REAL C64, there's a Facebook Page for that: http://www.facebook.com/c64.fans

1 point by Sukotto 4 days ago 1 reply      
I'm not sure why I still feel so strongly negative towards Commodore for destroying the Amiga brand.... but I do. Even after all these years.
1 point by iuguy 5 days ago 0 replies      
These are the same guys that did the Phoenix[1] a while back, which was essentially a knock off import that didn't do very well.

The C64 looks like a refination of the Phoenix in a C64-style case. Strangely there's no CPU specs I could find.

[1] - http://www.commodoreusa.net/CUSA_Phoenix.aspx

2 points by nzjames 5 days ago 0 replies      
I may be the only one who likes this. I've recently been looking for an old commodore 64 for nostalgic reasons, there is no practical reason to own one unless you're a demo purest. But I'm also in the market for an HD media player and the specs look up to the task. I can get my retro gaming and media fix in one package and decommission my xbox1.

Sure the price will be inflated but I can imagine leaving this sprawled out on my lounge floor provided there are some decent retro usb/wireless joysticks to go with it.

1 point by wbhart 4 days ago 2 replies      
I would love to buy a computer that is a modern upgrade of the Commodore 64, as if the machine had continued to evolve. In other words, the CPU would be a say 32 bit evolution of the original CPU with obvious changes to the instruction set as found in the C64.

The memory space would be flat 32 bit addressable up to a gigabyte.

The sound and video hardware would work in a similarly simplistic way as the original C64 did.

But the CPU would have similar performance to a modern CPU.

It would also have a modern (size) hard drive.

The whole thing could be done as an emulator. But the important thing would be performance. The virtual machine would have to convert one assembly language to the other by compiling it on the fly, e.g. to say x86 code, and not by interpreting it slowly!

And of course the thing would have ROM BASIC built in and/or a simple Amiga style classic look and feel OS.

At the very least I'd buy one of these machines, especially if you put it in a C64 keyboard style box.

2 points by duck 5 days ago 0 replies      
I wonder if it will play my Frogger cassette tape that I still have up on the shelf? :)
1 point by rikthevik 5 days ago 0 replies      
Wow. If those aren't too expensive, I'd love to get one. What a fantastic desktop machine. This kind of seems like a late April fool's joke, however.
3 points by TheSwede75 5 days ago 0 replies      
Still have my original Brown-Box, with Cassette player. . . I will ONLY buy this if MR-Z comes back onto the field to crack games!
1 point by malkia 5 days ago 0 replies      
Something more portable (iPad-ish) or more like a little toy with keyboard, or mini-usb where you can plug one, and HDMI on the out would've been better.

But I guess people cared about the keyboard. I did - for my Pravetz 8C (Apple ][/e clone)

1 point by phren0logy 5 days ago 0 replies      
Maybe hosting the site on an actual C64 wasn't such a good idea...
3 points by inji 5 days ago 0 replies      
> Realtek ALC662 6-CH HD Audio

This should totally be SID, MOS 6581!

1 point by th0ma5 5 days ago 1 reply      
I'd like to see a working prototype at least. Those who are fans know that seemingly starting with the success of the original product and then the Amiga, the company has always had some kind of problem delivering something new.
1 point by mixmastamyk 5 days ago 0 replies      
Where's the RF connector to hook up to the TV if need be?

I'd like to send one back in time to myself circa 1982 ... but what good is it if there's no capable display device?

1 point by xsive 5 days ago 0 replies      
Commodore USA have been promising this stuff for ages and nothing has materialised. It looks like vapourware to me.
1 point by wyclif 5 days ago 1 reply      
Anybody have a price on this?
We need a GitHub of Science marciovm.com
221 points by marciovm123 1 day ago   60 comments top 18
49 points by mechanical_fish 1 day ago replies      
I'm a former biophysics postdoc myself. Now I work for an open-source software company.

This post strikes me as charmingly naive. You have to love this guy. And yet any essay that discusses the incentive structure of science but doesn't use the word "grant" until the last sentence is beating around the bush. Follow the money, my friends.

The publications are a side issue. To the extent that your count of top-tier publications matters when trying to get an academic job, it's because it's correlated with your ability to bring in money. (Money comes from peer review too, and what your peers want to read about is also what they want to fund.) What the hiring committees really want is grants. Grant money pays for labs and salaries. It pays for grad students and postdocs. And grant money literally buys prestige: Big projects come from big grants, and big grants require strong track records and a bunch of preliminary data, which in turn comes from smaller grants, or from the shared equipment that your neighbor bought with her grants.

The fact that there aren't that many top-tier peer-reviewed journals is a side effect of the limited number of top scientists, and the number of scientists is limited by available resources, not by lack of knowledge or connections or education. I could literally pick up the phone and reach a dozen Ivy-educated postdocs who would be full-time scientists if they could afford it.

Why can you find so much great software on Github? There are lots of reasons, but a fundamental one is: Moore's Law. Computer hardware has become so dirt cheap that you can be a programmer in your spare time. You can literally be a twelve-year-old kid with a $200 cast-off computer and yet do top-notch software work. If computers cost millions of dollars each, like they did in 1963, we wouldn't have Github. We'd have the drawer of a desk on the ninth floor of Tech Square. (After all, in the old days half the AI researchers in the world lived within a few miles of that drawer, and the others were just a phone call away.) That's how most advanced science works today: There's no need for more publishing infrastructure for scientific technique, because the available methods of getting the word out -- top journals, second-tier journals, email, the phone, bumping into people in the hallway at conferences -- scale well enough to meet the limited demand. Because just having the recipe for your very own scanning multiphoton microscope doesn't do you much good: You need a $150,000 laser, and a $200,000 microscope, and tens of thousands of dollars in lenses and filters and dyes, and a couple of trained optics experts to maintain the thing, and that's before you even have something to photograph.

I wish there were a magical way to turn everyone's suburban basement into a cancer research lab, the way Github has turned everyone's couch into a potential CS research lab, but there's no magic bullet. A few technologies, like DNA sequencing, are sufficiently generic, useful, and automatable to be amenable to Moore's-Law-based solutions, so we probably will soon be able to (e.g.) drop leaves into the hopper of a $1000 box and get a readout of the tree's genetics. But something like cancer research is never going to be cheap. To study cancer you must first have a creature that has cancer. Mice are as cheap as those get, and mice are not cheap, especially if you know what the word mycoplasma means.

12 points by Groxx 1 day ago 1 reply      
>- GitHub's success is not just about openness, but also a prestige economy that rewards valuable content producers with credit and attention

I don't think I can agree with that. GitHub's success, IMO, seems to be based almost entirely on its openness. It has turned contributing to open source software into a drop-dead easy task, which would never be found nor contributed to if they weren't open. And they keep making it easier. I've fixed a number of things with machines which don't have Git installed, simply because they have their on-site editor.

Imagine if GitHub were behind a paywall. Do you think it would still be the success it is today? And, I may be weird, but I very rarely look at the names associated with commit histories. The code should speak for itself.

The rest of it sounds about right, scientific publishing as a whole is massively backwards compared to GitHub, if you're looking at it from an "Open" perspective. But I think that a lot of that is that the researchers tend to be insular compared to the implementers (businesses guarding their IP aside - they're not really GitHub's target audience anyway). GitHub isn't used exclusively for comp-sci researchers to post their findings with code, it's more for people doing things with ideas others have contributed to.

There are experiments on GitHub, absolutely. I have a few myself. But the main thing that GitHub has done is to make final products easy to find, modify, and contribute to. I have significant doubts that it would fit a research workflow smoothly, without becoming something else entirely.

13 points by guygurari 1 day ago 3 replies      
I'm a Ph.D. student working in theoretical high-energy physics. In this field we don't rely on peer-reviewed journals. Instead, when a researchers wants to "publish" a paper she uploads it to the arXiv, and the paper appears on the site within a day or two. The arXiv is open in the sense that almost anyone can publish there [1]. Researchers in the field catch up on new research by scanning the arXiv daily for interesting papers. No one I know reads peer-reviewed journals. I know that many papers are also published in journals, but I believe this is a formality that has more to do with obtaining grants and such than with actual communication within the community. As far as I know there's no reason to publish in a journal before you become a professor.

The result is similar to the GitHub situation in many ways. Because there are no barriers to publishing, everyone makes up their own mind about which papers are interesting. If your work is relevant, others will build on it and cite you. They will discuss it in their group meeting, and so on. A scientist's reputation is then directly related to the quality of their work, as judged by the community, with no artificial barriers. This means that a self-respecting scientist would not publish a sub-par paper even though it's technicality possible to do so, because that would hurt her reputation.

So it seems to me that the situation in high-energy physics is close to ideal, with respect to ease of publishing and the social aspect of reputation. Having said that, there are certainly aspects of GitHub that I would love to see adopted.

For instance, when several researchers are writing a paper, generally no version control system is employed. Instead, at any point in time the draft is "locked" by one of the collaborators, and only that person can change it. Beyond the obvious inefficiency of this method, note that it is also difficult to track what changes were made in each lock cycle. I use diff for this purpose, but in my experience many scientists in the field aren't aware of such tools. So something that could really help is a simple way to collaborate on papers, just a basic source control system. Also, it must be possible to work on the paper in private within the collaboration, and only publish the end result.

[1] The few barriers that exist are in place to keep out the crackpots, who reduce the signal-to-noise ratio and in that sense resemble spammers.

3 points by sunir 1 day ago 0 replies      
My goal for http://bibdex.com is to be this. I based the software on a wiki (original name was Bibwiki). The idea was to build lit reviews on topics that you could reuse and share with colleagues privately or publicly with the world.

I realized after starting that scientific communication is more complex, or at least it tries to be for various reasons. I could use help learning what people want from such a system.

I am keen on feedback or insights to drive my development. Please, if you are interested, you can reach me at sunir at bibdex com.

4 points by melling 1 day ago 1 reply      
Perhaps not at the academic level, at least not initially, but drawing more people into science by making it easier to ask questions and get answers couldn't hurt.

Someday there might be 1,000,000 well-defined science/math questions, along with great answers.

2 points by mbreese 1 day ago 0 replies      
One issue I see is what branch of science are we talking about? Physics largely seems to have this figured out via arXiv.org, but funding for molecular / biology / medical research is heavily dependent upon publication record. I'm not sure about Computer Science. But my point is when one says "Science" needs X or Y for "Science", no one is speaking the same language.

These comments are enough evidence of this. Some have already mentioned arXiv.org, and others Science.io which seems to be specifically targeted at CS. When you add medical research, the needs for these branches is vastly different.

2 points by erikpukinskis 1 day ago 1 reply      
Good ideas, but I disagree that you need a Bill Gates to make it happen.

The way this will happen is a grad student hacker who is avoiding working on his thesis will start coding it, and then create a kickstarter asking for support to spend the summer working on it. If she's a credible engineer, she'll get the support easily, and every subsequent kickstarter grant will also be fulfilled and it'll get built.

If you build it (right) they will come.

2 points by emilepetrone 1 day ago 1 reply      
I tried to start a science network a few years ago, knowble.net, and I know this problem well. The main roadblock we faced was the "publish or perish" mentality. Luckily this mindset seems to be shifting & the idea of a 'GitHub of Science' is very powerful. Much more than a Science LinkedIn, which is what Knowble was.

The main unanswered questions for this idea are 1) Funding & 2) Maintenance. Knowble was a for-profit venture, but should have been a non-profit organization. So where can you/someone get the funding to build & maintain the site?

If you need a python hacker to help out - my email is emile.petrone (at) gmail.com

3 points by mariuskempe 1 day ago 1 reply      
I agree (http://www.quora.com/What-online-tools-do-scientists-wish-ex...). Why don't we just start using GitHub itself to do this and go from there? The pain points will suggest ways that a real science-focused github could improve on GitHub itself.
1 point by juretriglav 6 hours ago 0 replies      
Yes we do. Not just a replica of it with different content though, but a separate product tailored to the needs (and wishes) of science, sharing only some of the core ideas of GitHub. Sometimes I wonder if I should welcome the surfacing of ideas that have a large overlap with my own, or be anxious knowing that my lead has possibly been somewhat reduced.
1 point by thisrod 1 day ago 2 replies      
The programs on Github were written by amateurs. Professionals can do better - compare Python, PHP and Gnuplot to Mozilla, Scheme, Haskell, Plan 9 and Mathematica. But evidently people can keep their day jobs and still write good programs.

Science is different. The amateurs are called cranks, and a small community of professionals does the good stuff. (There are exceptions, but few.) The basic issue is who will pay their living expenses, and buy the million dollar machines that they work on.

These days, almost all research money is spent by governments. They spend most of it rewarding people for publishing in prestigious journals. Scientists will keep packaging their research that way until someone starts buying it in a different package.

4 points by countersignaler 1 day ago 0 replies      
http://science.io was featured on HN recently. Not github, but at least a place to discuss and sift research.
1 point by ignifero 13 hours ago 0 replies      
Do you think something like http://pubcentral.net could be useful in that direction?
1 point by gsiener 9 hours ago 0 replies      
I just met the brains behind Opani (http://opani.com) last night and they are a huge step in this direction.
3 points by figital 1 day ago 0 replies      
We also need a GitHub of government / legislation.
4 points by VladRussian 1 day ago 0 replies      
2 points by diamondhead 20 hours ago 0 replies      
I think we need a github of any kind of information.
-1 point by wicknicks 1 day ago 1 reply      
The biggest problem with CS academicians have been in their misinterpretation of computers. Its a very different field from traditional sciences like Physics, Chemistry etc.. In traditional sciences, we study the world, understand it and express those ideas formally. With computers, its upto one's imagination what they can do with it. We just get so lost in the depths of formalism, that we forget that hacking and exploration are what can break boundaries and enable people to make computers do what they could not.

Funnily, academia harbours the most brilliant minds of CS, and barely produces usable software. Its people who identify problems, and provide software/ideas who actually get things moving. Github/Blogosphere etc allow such solutions to emerge more efficiently by allowing a lot of people to look at such solutions. In academia, a publication is taken as a end point for problem solving. There are no incentives to build real software or real systems.

If computer science wants to make a difference, it must move away from its publish or perish culture.

Plain Text Offenders - Did you just email me back my own password? plaintextoffenders.com
222 points by omervk 3 days ago   141 comments top 27
21 points by estel 3 days ago replies      
The worst offender I can recall was Wordpress.com. Not only do they email you your password back, but show it to both you and whoever might be sitting within a few metres in LARGE LETTERS in the webpage immediately after activating your account.

After I emailed to complain about this, they said:

"Security and usability is often a trade-off. We make two main ones:

* When you register at WordPress.com, we show you your password and email it to you.
* When you log in we tell you whether the username or password was incorrect.

The accessibility and increased convenience for users in both cases has been deemed to be worth it."

Edit: I just checked, and it seems that they've changed this element of their policy. The situation above was March 2009.

20 points by linker3000 3 days ago 1 reply      
Nothing new there! When we setup a new in-house account, we either telephone the user or go to see them with their password. If it's a senior Manager with a corporate phone they get their password texted to them - Ok, not ultimately as secure as possible but a darn sight more secure than a plaintext email.

In my previous job I was asked to FTP our full client list (with financial information) to a third party acting on behalf of the company that had just acquired us. The IT Director of our new owners kicked up a hell of a stink and accused me of being 'unhelpful' because I insisted on the third party signing an NDA and installing AxCrypt so that I could encrypt the data for transmission. In the end I just said that if they insisted I send everying without encryption, I wanted it in writing with a disclaimer that I was acting on their instructions and they would assume responsibility for any possible liabilities arising with respect to UK Data Protection Laws.

By the time the IT Director had deliberated the point, the third party (who fully appreciated my position) had sent me a stock NDA, installed AXCrypt and we'd completed the transfer.

14 points by pbhjpbhj 3 days ago 2 replies      
Mailman ...

My LUG uses it and mails me my password in plaintext every month; IIRC it is|was the default setting ... /me-rolls-eyes

5 points by compay 3 days ago 0 replies      
Codeweavers, the creators of Crossover for Linux and OS X, do this. I emailed them about it around a year ago and they never bothered to reply back, even though I've bought several licenses from them over the years.


2 points by nyellin 3 days ago 2 replies      
There are some cases when storing plaintext passwords is justified, despite all of the risks. There are cases where you can't - or shouldn't - hash passwords.

For Freeversation, we store plaintext passwords for two reasons:

1. Our passwords are group passwords, which (hopefully) aren't re-used anywhere else. If someone hacks our server, the conversations stored on it are incredibly more valuable than the passwords themselves, which aren't associated with a specific email address or account. Our approach to security is that unauthorized access to our server is checkmate. That is the worst case scenario, not stolen passwords.

2. When you create a new conversation, you can invite new users to the discussion. Those users didn't sign up for Freeversation - and in all likelihood never heard of Freeversation before - but they're expected to remember a password that someone else chose. We help them remember that password by including it in every notification email we send. (E.g. emails inviting them to the conversation, emails notifying them of new comments, etc.) We wouldn't be able to do that if we hashed passwords.

In our case, the alternative to plaintext passwords is actually getting rid of passwords altogether and replacing them with secret URLs. We chose plaintext passwords because they provide psychological reassurance that conversations on Freeversation are invite-only, and not public. The irony is that secret URLs are actually more secure than the passwords that most of our users choose. In the future, we may use a combination of the two, so that users both feel protected and are protected in the best way possible.

14 points by aslakhellesoy 3 days ago 0 replies      
http://passwordfail.com/ lets people register the offenders.
If you have the passwordfail chrome extension installed, you will get a warning whenever you visit an offender. Highly recommended.
2 points by tnorthcutt 3 days ago 2 replies      
I tried to submit a screenshot, but got the error message Sorry, your page had expired. Please try again. on the submission screen. Either they're having trouble (and displaying an unhelpful error message), or they have an awfully short page expiration time - from page load to the time I hit submit was under 30 seconds.
2 points by gabbo 3 days ago 1 reply      
By far the worst example I can think of here is Yodlee, the bank aggregator.

Their product, Moneycenter, has this convenient "feature" which lets you display your bank password in plaintext! It's unthinkable that someone you trust with your bank credentials would let their website be a two-way street for plaintext bank passwords.

Things like this remove any confidence I may have had in their product. The fact that a feature like this exists at all is strong evidence that they're neither thinking in a security mindset nor paranoid on behalf of their users. If someone proposed this "feature" where I work they would be laughed out of the room.

If that wasn't bad enough their support folks politely ignored me when I raised the issue and pleaded with them to turn it off. They either don't get it, don't care, or don't know how to escalate issues to people who do:

  Please be assured that Yodlee considers account/data
security as highly critical and hence will not be revealed
to any other source.

We suggest you not to reveal your account login credentials
i.e answers to security questions & password, to anybody.
This will ensure your account will not be compromised.

Thank you for your feedback on the product. We appreciate it.

We are marking this Service Request as Resolved. Please let us
know if you have any questions in this regard.

1 point by jeza 3 days ago 1 reply      
Seems that in many cases you get a choice between security over the wire or security in storage, but not both. By this I mean if you use a challenge response authentication algorithm then you often don't have any choice but to store the password in cleartext. Then authentication can be done even over an unencrypted channel without revealing the password.

The compromise seems to be to store the password with a oneway hash then use an encrypted channel such as TLS to send the full password for each authentication. There is still the possibility of intercepting the password at the end of this encrypted channel before the password is compared to the stored hash.

So both models have weaknesses, it just means you have to focus your security efforts into a different area. For the first, it might be somewhere deep in the backend, for the second you'd be paying attention to the front end where you accept the TLS (e.g. https) connection.

This has certainly been the case with for example PPP where you had a choice between PAP (secure storage, but sent in plain text) or CHAP (insecure storage but not sent over the wire in full). Jabber/XMPP servers also traditionally store in plain text but passwords aren't sent for each login. Though it seems that HTTP Digest auth does allow storage of passwords in a hash without transmitting the full password.

Then even with challenge response algorithms if someone is able to monitor a number of authentications then they may be able to gather enough information to pose as that user without actually knowing the password.

4 points by colinhowe 3 days ago 1 reply      
I've been wanting to make this for ages. Very pleased to see it made!

Would be awesome to have a notable offenders section. A chrome plugin that hooks into this would also be cool: "This site has rubbish password security. Don't use your usual passwords"

4 points by jcsalterego 3 days ago 2 replies      
Rackspace does this with their Cloud Servers :'(
1 point by yuvadam 3 days ago 0 replies      
Props! Took me a moment to figure out why all the initial sites are in Hebrew ;)
2 points by enewcomer 3 days ago 0 replies      
Here's my experience trying to bring this to one of the offenders' attention. He actually attempted to justify it.


1 point by treblig 3 days ago 2 replies      
Pretty scary feeling: search your gmail inbox for your default password.
1 point by thisisblurry 3 days ago 0 replies      
I'm shocked that Mozilla not only (seemingly) stores their mailing list passwords unhashed, but that they also email them out to each member every month in a reminder email.
1 point by sayemm 3 days ago 0 replies      
Markus Frind did this way back when and suffered for it when Plenty of Fish got hacked a few months ago, big risk.
2 points by acidblue 3 days ago 0 replies      
I forgot the password to my credit union account. I clicked on the 'get password' link and they e-mailed my original password back to me, in plain text. Lame! I still need to move my funds though, doh!
1 point by JCB_K 3 days ago 0 replies      
Reminds me of this: http://news.ycombinator.com/item?id=2329366.


2 points by netaustin 3 days ago 0 replies      
Drupal also sends plaintext passwords out of the box (at least in Drupal 6), although it does hash the password in the database. One of the first things I do is change the wording of the welcome email.
1 point by eekfuh 3 days ago 0 replies      
Toms.com sends you your password after you signup, which is retarded since YOU JUST entered it into their system.
1 point by robinwarren 3 days ago 0 replies      
I'd considered doing something like this the other day, good work for getting the bad news out there! Hopefully this can help lift the expected minimum of security on the web a little.
1 point by itistoday 3 days ago 0 replies      
Add Dreamhost to this list.
1 point by Estragon 3 days ago 0 replies      
A straight list without the irrelevant screenshots would be much more scalable.
0 points by code_duck 3 days ago 0 replies      
So, the only companies that do this are in Israel?
2 points by r_kaup 3 days ago 1 reply      
Can someone explain to me why it is so important to hash passwords before storing them?
-4 points by BrainScraps 3 days ago 2 replies      
The other day I thought there should be a "Wall of Shame" site for photos of the d-bags who abuse handicapped spots.
-3 points by mattmanser 3 days ago 4 replies      
Nitpick, they're not necessarily storing it in plaintext, they may just not be salting it. There is a difference.
Georgify: Hacker News meets beautiful typography google.com
227 points by tuhin 4 days ago   91 comments top 40
38 points by lwhi 4 days ago 4 replies      
I like this, but there's a lot of white space .. perhaps too much. Maybe a more compact view would be useful?

Like others have said, the grey is too pale.

EDIT: It would be nice if the layout made use of columns .. this could provide innovative use of wide-screen resolutions.

4 points by jjcm 4 days ago 1 reply      
Some thoughts:

1.) There's a lack of contrast in the page. A visited link is the same color as a comment that is rated < 0.

2.) The up/down vote arrows are visually far away from the name of the user. Knowing the context of who's saying something can mean the difference between a troll post and an insightful one.

3.) The page is no longer fluid. While this is more preference than an actual issue, I think that a fixed width format is detrimental for those of us who have widescreen monitors (or for those of us who like to tile our windows in small patches).

4.) Whitespace. There's a lot of it. Without your plugin, I can see all of the articles on the front page in ~1400px. With the stylesheet patch, it's about 3x that. I visit HN a lot, and will click on just about every story. As such, when I'm done reading HN all of the links have changed color. When I visit it later in the day, I can at a glance see every story that's new. Sometimes I have it autorefresh every few minutes on a separate monitor, and keeping everything concise allows me to do that.

Those are my thoughts. At this stage I'd say that it's pretty, but not yet functional. Work on the functional portion and I'll keep this plugin installed. Great work, keep it up!

8 points by nyellin 4 days ago 1 reply      
The grey color for a:visited is too light. I have to strain my eyes to see it.

edit: Also, the extra space in comment-headers is wonky. And even with my nitpicking, great job!

15 points by tuhin 4 days ago 3 replies      
This is my first every public release of such a thing! So please be gentle and do give any feedback that can improve the extension.
15 points by rnadna 4 days ago 1 reply      
I like the idea, and there are several aspects of the georgify format that are pleasing. My main comment is that there is far too much vertical whitespace. The compactness of hn is pleasant to the eye, and it lets readers scan headlines quickly. A little tweaking will prevent readers from having to scroll so much.
3 points by tomlin 4 days ago 4 replies      
I like it. A little off topic, but the Google Chrome Extensions that override CSS get my brain thinking about something like this on a different scale. For instance, could someone build complete Facebook or Twitter face-lifts? If it's possible, the consequences of that permutation would be interesting. Especially now that the modern browsers are moving towards auto-update, which encourages a higher likelihood of something like this taking off.

If marketers starting picking up the idea, I see "shoot here to win the prize", phone number, email address collecting type of ads promising to "bring facebook back the way it was", "just enter your email address and we'll send you the link!" If you don't think this could work, just remember that a few years back people were installing emoticon packs and CometCursor just so they could have a customized, albeit terrible, experience.

2 points by logic 4 days ago 0 replies      
From the screenshots, it reminds me a bit of Comfy Helvetica, which we discussed here a while back:




(Not passing judgement on this theme, which seems quite nice; just thought I'd throw in a recommendation for a theme I've been using on HN since it was originally posted.)

4 points by unwind 4 days ago 1 reply      
Can someone please fix the typo in the title? It hurts!
6 points by nddrylliog 4 days ago 0 replies      
You should've used csspivot.com for a quick preview link :)
1 point by tomkarlo 4 days ago 0 replies      
I like it, but I have to agree it's about 25% larger than I'd want, including both the input field for adding a comment (which takes up 1/5 of my screen height on a large monitor) and the comments, which end up being way too long.

Just reducing the font sizes a little would help - having the default font so large kind of apes apps like readability, it's much bigger than is necessary.

(Just zooming out on my browser isn't enough, since it also reduces the width of the lines.)

2 points by bonaldi 4 days ago 3 replies      
Love everything apart from the fixed-width main column. Leaves me with huge margins at either side with my usual window width.
1 point by csomar 4 days ago 0 replies      
I think the next thing is to provide customization. That is, you can change colors and some settings (like padding and margin) to control white space. You may want also to change the font. I actually like the white space. Just the grey is a little bit pale, but this helps for concentration on the text that matters. Taste differs, not good to argue about it.

It's still a good move from the Author. I was thinking of something similar, but time was a constraint. I might look to help improving that one. Any Github?

1 point by estel 3 days ago 0 replies      
I've had to stop using this now because the indents seem completely broken and all over the place. Replies appear threaded in a completely incorrect order.
2 points by abeh 4 days ago 0 replies      
Very nice to look at, well done.

A couple of points for me are that:

1. While it is easier to read, the combination of the larger size of the text and the vertical spacing makes it harder to scan all the topics quickly, as was possible without this style.

2. as already mentioned, the info sub-text is a bit soft in contrast and hard to read quickly, even though it looks nice. Suggestion: make the important info such as the numbers and username a bit more darker, but leave the repeated info such as 'points by' and 'comments' as they are.

2 points by vladocar 4 days ago 0 replies      
1 point by antirez 4 days ago 0 replies      
Thanks, I'm loving it. It is a bit biased for aesthetic but well still an improvement over the default HN css.
2 points by sunsai 4 days ago 2 replies      
I have tried to tweak the layout without any browser extensions. This will work on any browser but it's a 'lite version' so you can only use these to read HN. Have a look:

Non AJAX version: http://www.skillendar.com/hackernews/noajax.aspx

AJAX version: http://www.skillendar.com/hackernews/

2 points by marcomonteiro 4 days ago 0 replies      
I just download Chrome specifically to use this. It looks great! Thank you.
1 point by balakk 3 days ago 0 replies      
Here's a darker version of this, aka Metrofy.


LCARSish too!

2 points by tuhin 4 days ago 0 replies      
New update solves most of the issues raised by you guys. Thanks a lot for all the feedback.
2 points by vnchr 4 days ago 1 reply      
I could feel myself stop squinting....is this what usability feels like?
1 point by bradhe 4 days ago 0 replies      
I thought this was gimicky at first but then installed it and went back to the HN homepage and...I'm blown away. This is really REALLY great and solves a problem people have been rehashing for a long, long time -- kudos!
1 point by jarin 4 days ago 0 replies      
I'm not 100% on some the details (like whitespace and contrast), but definitely A++ for effort.
2 points by muitocomplicado 4 days ago 0 replies      
Works great with the Collapsible Comments extension.


3 points by gizzlon 4 days ago 1 reply      
lol.. the chrome store does not support my browser "just yet"
1 point by emp_ 4 days ago 0 replies      
I still think this suffers from the same issue on the Stylish option, when you are way down on the comments you have a hard time knowing if the comment is an answer to the OP or to another comment, the increased indent helped but a left align or vertical line all the way from the OP post would help a ton.
2 points by jbuzbee 4 days ago 0 replies      
It may not be perfect, but it's a much-needed improvement that improves readability. Thanks!
1 point by grannyg00se 4 days ago 0 replies      
I don't see how the legibility is improved. It's different, but I think the current look is just fine. Maybe I'm just lacking an eye for typography.
1 point by cptvideo 4 days ago 0 replies      
nice try, but its way better to see 20 items at a glance than to mouse around a acre of white space. readability isn't everything, workability matters too. "<ctrl> +" is a good compromise if your eyes are going!
1 point by gregparadee 4 days ago 0 replies      
Not perfect but nothing ever is the first time. Installed and love it so far can't wait to see some of the suggestions mentioned put into use in the future!
1 point by oemera 4 days ago 0 replies      
This is awesome! Thank you
1 point by l0c0b0x 4 days ago 0 replies      
We need the option of fixing the margins ourselves, other than that great job!
1 point by Nanofied 4 days ago 0 replies      
Still could use a little touching up, but I love it none the less :)
1 point by Indyan 4 days ago 0 replies      
An Opera port please.
1 point by Void_ 4 days ago 0 replies      
I would very much like a Safari extension.
1 point by mjac 4 days ago 1 reply      
I like this a lot. Could we make it the default theme?
1 point by tommoor 4 days ago 0 replies      
Very nice, i'll be keeping this installed
1 point by gunmetal 4 days ago 0 replies      
Too much space, going back to old way.
1 point by ile 4 days ago 0 replies      
Using the CSS in Stylebot now. TY.
Sshuttle - tunnel all your traffic through ssh github.com
218 points by fs111 5 days ago   66 comments top 21
39 points by tlrobinson 5 days ago 4 replies      
NOT all your traffic. This only does TCP. Any DNS, UDP, and other non-TCP IP traffic won't go through the tunnel!

I tried sshuttle awhile ago and abandoned it because of this. The only thing worse than no security is a false sense of security.

14 points by bryanlarsen 5 days ago 2 replies      
+1 for a reference to slirp, which let you turn a dial-in connection to a Unix terminal into a real internet connection back in the days when your University would give you a terminal connection but not a PPP connection.
8 points by ch0wn 5 days ago 1 reply      
I set up an OpenVPN server for this purpose. This solution is so much easier and elegant, it's not even funny.
6 points by nprincigalli 5 days ago 0 replies      
Just a little nitpicking, when he talks about TunnelVision, he should have said:

  And nobody never notified me of any security flaws in my key exchange,

Instead of:

  And nobody ever found any security flaws in my key exchange,

Yeah, hell is in the details...

Regarding SSHuttle itself, I really liked it! (coming from someone who does all his browsing with ssh -D)

5 points by bretthopper 5 days ago 0 replies      
It's always good when there's only 2 steps to get it working and they work perfectly.

Using it over hotel wifi as I'm typing!

5 points by iuguy 5 days ago 1 reply      
How does this compare to OpenSSH VPN and Socks Support[1]?

[1] - http://wiki.enigmacurry.com/OpenSSH

5 points by agj 5 days ago 0 replies      
The alternative that predates this is to this is to just tunnel ppp over ssh using pppd:

    pppd updetach noauth pty "ssh root@example.com pppd nodetach notty noauth" ipparam

I used this for many years before switching to openvpn. This does require root access on the host to execute pppd however.

2 points by davej 5 days ago 0 replies      
Brilliant. Before this I used `ssh -d` and tunnelled everything through the port with proxifier.app but this is a much nicer (and free) solution!
2 points by psn 5 days ago 1 reply      
https://github.com/apenwarr/sshuttle/commit/33efa5ac62eaf9cf... is the point where I get confused.

In a normal tunnel setup, one tunnels at the IP layer, and dumps all IP packets into the tunnel. At the far end of the tunnel, packets are sent onwards based on the far end's routing table. Things like DNS "just work" because everything happens at a layer below TCP and UDP. In this system, he's making it work for each non-tcp using layer 4 protocol separately, leading to weirdness like rewriting /etc/hosts.

For tcp, he's nating all traffic locally to a local server, which then multiplexes all incoming traffic into the ssh connection. The remote side then unmultiplexes the data. I don't fully understand how this avoids tcp over tcp. Maybe I'm dumb. [edit: yeah, I'm dumb. the tcp connection is terminated at the local server, the contents are pumped over the ssh connection, and the remote side opens a new tcp connection]

I wrote this mostly because I read the readme and went "but how does it work?".

1 point by sandGorgon 4 days ago 1 reply      
Can I receive postbacks using this ?

Explanation - as usual, my company works on a shared LAN which goes through a single internet connection.
To test some applications, we have to be able to receive postbacks (on our developer machines) through 3'rd party services.
The best way we found was to have an OpenVPN server running somewhere. Each developer connects to the VPN server and receives a private IP-address. All postbacks go to the VPN server and are then routed through nginx to the correct developer machine (on the private IP address).

VPN is a pain to setup and configure - can something like this be used instead ? The question really is - how does nginx forward requests to the correct developer machine.

9 points by paulv 5 days ago 0 replies      
It doesn't do TCP-over-TCP. From the README:

sshuttle assembles the TCP stream locally, multiplexes it statefully over an ssh session, and disassembles it back into packets at the other end. So it never ends up doing TCP-over-TCP. It's just data-over-TCP, which is safe.

2 points by sigil 5 days ago 1 reply      
Very cool. I wonder how hard it would be to port the muxer core to C, and run it under tcpclient / tcpserver on either end of the ssh connection.
1 point by apenwarr 5 days ago 0 replies      
1 point by ccarpenterg 5 days ago 2 replies      
I'm a little confused. I'm outside USA and I want to browse some restricted content for users located outside of the U.S. Can I do this using Sshttle and a VPS?
2 points by chopsueyar 5 days ago 1 reply      
How would one go about setting this up with a firmware rewritable consumer-grade router?

Can I have a ww-drt install act as a client with Sshuttle and install a public key to require no login?

2 points by askedrelic 5 days ago 0 replies      
I've been running this for months now and really like it. Really simple to setup and quite flexible.
1 point by tobylane 5 days ago 0 replies      
Anyone know of a portable Chrome that I can SSH into home with? Preferably something I can leave on a shared computer, while only I have access to the stunnel. Also, it may need to be able to use port 80, I don't know the filter inside-out.
1 point by duckyflip 5 days ago 2 replies      
Would this circumvent the checks Hulu does for example by forcing Flash to always connect directly.
i.e using SOCKS Proxy will not work with Hulu but using full VPN will, so how will sshuttle rate ?
-4 points by chopsueyar 5 days ago 0 replies      
From the github.com page

This is how you use it:

    git clone git://github.com/apenwarr/sshuttle on your client machine. You'll need root or sudo access, and python needs to be installed.

./sshuttle -r username@sshserver -vv

(You may be prompted for one or more passwords; first, the local password to become root using either sudo or su, and then the remote ssh password. Or you might have sudo and ssh set up to not require passwords, in which case you won't be prompted at all.)

That's it! Now your local machine can access the remote network as if you were right there. And if your "client" machine is a router, everyone on your local network can make connections to your remote network.

You don't need to install sshuttle on the remote server; the remote server just needs to have python available. sshuttle will automatically upload and run its source code to the remote python interpreter.

This creates a transparent proxy server on your local machine for all IP addresses that match (You can use more specific IP addresses if you want; use any number of IP addresses or subnets to change which addresses get proxied. Using proxies everything, which is interesting if you don't trust the people on your local network.)

Any TCP session you initiate to one of the proxied IP addresses will be captured by sshuttle and sent over an ssh session to the remote copy of sshuttle, which will then regenerate the connection on that end, and funnel the data back and forth through ssh.

Fun, right? A poor man's instant VPN, and you don't even have to have admin access on the server.

Why do apps from the same company look worse on Android than on iPhone? android-gripes.tumblr.com
215 points by awalker 2 days ago   129 comments top 31
86 points by flyosity 2 days ago replies      
I think it's the standard that is set by the original creator of the UI widgets available on the platform, in this case, Apple vs. Google.

I'm an iPhone UI designer/developer and you can make a really nice looking app without doing any custom design work just by using the widgets that Apple provides. A good example of an app that was nearly all stock is Tweetie 1 for iPhone and it won an Apple Design Award. Apple has put an incredible amount of polish (single-pixel highlights and shadows, consistent sheen/gloss across elements, built-in animations for common interactions) into the widgets as part of UIKit, and then the apps that are included on the iPhone are also incredibly polished. This sets the bar very high and also gives a quality of UI design that developers can look up to and try to emulate.

The apps that Google built for Android (Maps in particular) are very clean and elegant but I would hesitate to call them beautiful or extremely polished. Google's design aesthetic typically eschews gradients, sheen, highlights and shadows in favor of a flatter, cleaner look and feel. Although Google's Android apps are well-designed, they don't look like a team of visual designers hand-crafted each and every corner like Apple's apps and UIKit widgets seem to be. Because of this cleaner, simpler aesthetic, the bar for "good-looking" on Android is a lot lower than for iPhone and it seems companies will cut corners on Android app UI design & visual polish because of it.

Another theory is that companies might feel that Android phone owners are more technical, more geeky, and thus "don't need" a really polished interface so they spend fewer resources on it. Once a few big companies release Android apps with a sub-par design, other companies see this and follow suit, continuing the trend forwards. Obviously this is a difficult stigma to get out of, but some companies are putting out great Android apps -- Gowalla comes to mind -- so there is hope.

26 points by trotsky 2 days ago 7 replies      
Interesting blog, every entry appears to be a substantial jab at the platform itself... not really just "gripes" as I see them. I am impressed with how dedicated he is to the pursuit, not only does he have a blog solely for his android gripes, but he's also made an androidgripes gmail account as well as a twitter account and a facebook page to promote the blog. It doesn't seem to be possible to find the blogger's name, however, though as an anonymous figure he certainly is quite prolific [1].

I also note that the HN account that submitted this link was created immediately before submitting it, and that's their only activity.

I was considering responding to the flame bait in his closing paragraph ("Is it because iPhone developers are better at user interface design?" etc.) until I realized what I was looking seemed to have about a 99% chance of being corporate sponsored astroturfing. FTC disclosure, Apple?

[1] "Want to install "open" apps on Android? Think twice", "Is Samsung's New Galaxy Tab Fibbing About Its Figure?", "J-P Teti: The iPad is 99% more open than any other computer", "'openness' considered harmful, said by Google on Honeycomb source code", "Everything that can go wrong with Motorola Android tablet does", "Android is sure a Wi-Fi connection dropper", etc.

58 points by stevenwei 2 days ago 3 replies      
In my experience, the main reason is that you only need to design for one screen resolution on the iPhone (retina artwork doesn't really affect the screen layout). This makes it a lot easier to statically position elements and create pixel perfect effects.

On the other hand, when you're dealing with dynamic layouts, you have to jump through a lot more hoops to make sure the app still looks good as the resolution is scaled up and down (e.g. creating a stretchable images and such and so forth).

I also think that Helvetica is a much nicer looking default font.

15 points by d_r 2 days ago 3 replies      
iOS comes with a handy set of UI controls that look decent even without customization. You can use the default UITableView, for instance (looking at the Meebo screenshot) and get the nice look-and-feel out of the box. This especially helps a low-budget dev like myself.

Apple showcase of the controls that come out-of-the box and various ways to tweak them: http://developer.apple.com/library/ios/#documentation/userex...

Default Android controls for some reason sport a more "circa-1990 MS DOS" look. The developers need to actually invest time to re-skin the components or make their own to get a modern look. This is made slightly more difficult if you want to support multiple screen sizes/resolutions. As such, many Android apps sadly seem to end up with the default look.

(I have written apps for both platforms.)

7 points by ZeroGravitas 1 day ago 0 replies      
Am I crazy or does the Android speedtest seem much more pleasant and usable? I've not used either, but from the single screenshot I can much more easily get a handle on the info from the Android one. The iPhone one seems a bit riced up to the detriment of usability (which is the important thing that Apple does well, not just looking pretty, right?).


1) big down and up icons next to the down and up speeds, to reinforce the text at a glance. 2) The text "kilobits / sec" is a readable white, rather than mid-grey and isn't obscured by the indicator hand. 3) Though the text on the Apple one has been corrected to match the dial which now shows K or M, the currently measured speed is given without units. I had trouble differentiating between the "1.18" and the "58" immediately below it which appears to be an advertisement.

Also, isn't the Android one just the old iPhone interface. So is the argument that Android is so fundamentally flawed, that it makes apps magically look exactly like an iPhone app from 6 months ago?

Here's an iPhone 3GS and 4 screenshot showing it being basically indistinguishable from the Android one (except buttons were moved to the top):


6 points by blinkingled 2 days ago 0 replies      
The thing is Android apps or UI controls in general don't look bad on their own - they are quite ok - elegant, minimalistic and understated by choice. Focusing on getting the work done becomes more easy when you have less UI jazz to get distracted with.

This really shows in the Android App Market review comments - people who rate low mostly do so because of force closes, missing functions etc. (https://market.android.com/details?id=com.facebook.katana is a good case study.)

The other part is that iPhone has one resolution UI - Androids come in lots of different resolutions. So I think the amount of blank/white space and font sizes vary between different handsets and that makes some apps designed for low res UIs look a bit off on high res screens.

And frankly, I can't find anything worse looking in the examples the fanboi^W author presented and he doesn't seem to be making any real points as to why he thinks one was worse than other - apart from him just not liking anything other than iPhone UI.

8 points by nl 2 days ago 1 reply      
He doesn't make a very convincing case. The iPhone Meebo emoticon screen looks a lot better, but all the others aren't as simple.

I prefer the look of the Android Meebo contact list, but I prefer the iPhone chat interface.

Note that his Android Facebook app needs updating. The missing Chat & Places icons fill it up. I think I prefer the Android version - the white background makes it look more lighter and more spacious than the iPhone version.

I don't like either Speedtest app much at all. I prefer the tabs at the bottom from the iPhone version, but hate (hate!) that purple (!!) ad bar above it. OTOH, I hate the "Test Again" button on the Android version.

5 points by jrockway 2 days ago 3 replies      
Because Android users don't care. To make the app look nice, you would need to pay for 100 hours of a designer and 400 hours of programming. If it looks like crap, you only have to pay for 400 hours of programming. Android users don't care, so you make more return on your investment by neglecting design.

Apple users all have blogs about the virtues of serif fonts versus sans-serif fonts, so you are not going to sell your apps (or get ad views) if your app looks like crap. Therefore, paying the designer is worth the cost.

Also, Java programmers are a different demographic than Objective-C/Cocoa programmers. Java programmers mostly use Windows, which doesn't have a UI or "user experience". (The experience is mostly in removing spyware.) iPhone developers, by definition, can only use Apple products, thus self-selecting for people that care a little about UI.

Additionally, the finance doesn't really make sense for Android apps. Why would I waste 6 months of my time (which is around $100k) on an app that nobody will pay for when I could write bullshit software for an investment bank and get a guaranteed paycheck no matter what my UI looks like?

Android users get what they want: cheap. iPhone users get what they want: eye candy.

(Just to be clear, I love Android. But "user experience" doesn't mean much to me. As long as I can see my calendar and ssh to my machine at home over OpenVPN, I don't really care about anything else.)

6 points by candeira 1 day ago 0 replies      
A counterexample is Wunderlist, which is built with Titanium Appcelerator, and looks and works really well on both platforms. It is also identical where it should but not where it mustn't: it follows the conventions of each platform in details such as where to put tabs, how to access the settings, etcetera.

* For Android - https://market.android.com/details?id=com.wunderkinder.wunde...

* For iOS - http://itunes.apple.com/us/app/wunderlist-task-manager/id406...

Btw, I am interested if you know of other good multiplatform apps (not games) built using third-party middleware.

12 points by sparkymat 1 day ago 1 reply      
As an Android and iOS developer, I would like to point out that one of the contributing factors to the lack of well-designed applications for Android is due to the lack of polish in the Android tools and the available IDE (ADT for Android, and XCode for iOS).

XCode on Mac OS X is a delightful experience, with the right tools and the right amount of control to make good applications, supported by excellent tools to optimize the look/performance. The interface builder and the simulator are quite polished and greatly reduce the effort in tweaking the UI.

However, with ADT, I spend most of my time struggling with XML layout files, and heap dumps attempting to improve the application. The interface builder became usable only with the latest version of ADT, and even-so, I often find myself dropping down into the XML often. The simulator takes a long time to load and is quite sluggish. I find it far more convenient to have the application run on the device each time. However, this implies that code-compile-run cycle takes more time on ADT than on XCode.

In conclusion, the iOS development tools help me in finishing the application quicker, leaving me enough time (and providing me better tools) to polish the interface further.

7 points by mgcross 2 days ago 1 reply      
Economics? (investing more design/dev time in the [currently, at least] more profitable platform)

Laziness/incompetence? (I don't know how many times I've downloaded an Android equivalent to an iOS app only to find re-purposed, screen captured iOS graphics with a non-native UI)

Device fragmentation, no IB, perception that Android users don't appreciate polished UI/design - take your pick.

Regardless of which excuse is chosen, the blame lies with the designer/developer/manager, not the OS.

EDIT: I'm speaking of custom interfaces rather than stock OS controls and views. Those elements are obviously controlled by the OS.

8 points by bkaid 2 days ago 3 replies      
From the apps I've worked on, iOS is a much more profitable platform and thus gets the majority of the focus and the initial app releases. Then apps get ported to Android (where they get heavily pirated and generate a fraction of the sales - regardless if time is spent making the app as good or better than its iOS counterpart.)
4 points by jarin 2 days ago 0 replies      
From my experience developing for both iOS and Android, it's because iOS users expect your app to look good, or they won't use it.

Apple just sets a higher bar, both because of Apple's own apps and the approval process, and developers code to the users' expectations.

Plus, with the nice looking built-in UI widgets and Interface Builder, it actually takes some effort to make an app look bad.

3 points by aresant 2 days ago 0 replies      
Same reason John Carmac began focusing dev efforts on consoles - when hardware specs are consistent it's much easier to build highly optimized software / UI rather than trying to support endless configurations.


11 points by thetwentyone 2 days ago 0 replies      
I agree with the sentiment... somewhat. For example, I prefer the Android Facebook to the iPhone.
But the entire blog is about pointing out anecdotal instances where the author doesn't like Android? I would much rather hear from a developer than the author of this blog.
5 points by marklubi 1 day ago 0 replies      
Although it seems that most apps on Android seem to get the short end of the stick, I would like to point out that there are some apps that do get a high quality treatment on Android.

The Official Major League soccer app, MatchDay 2011, is quite gorgeous on both iOS and Android.

As a developer for both platforms, they each have their positives and negatives.

iOS feels like you're plugging together some pretty good looking (default) stuff and then layering on polish.

Android feels as though you're building from scratch... more like web development, where you need to create most/all of your assets from scratch.

2 points by CoffeeDregs 2 days ago 0 replies      
This is largely a comparison between the management styles of the two platforms. (FWIW: I've owned by iPhones and Androids.) On iOS, the UX guidelines are well defined and Apple forces apps to stick to them; Android is the Wild West. On iOS, nearly every app is straightforward but limited; on Android, apps can do whatever the hell they want. These two constraints lead to different outcomes. Two examples: NYTimes is much simpler on iOS but richer and more confusing on Android; Flikie HD isn't possible on iOS but works on Android and has an incredibly confusing interface. Reminds me of Mac vs PC all over again...
1 point by larsberg 1 day ago 0 replies      
I wouldn't be particularly surprised if they outsource the non-iOS development. Many multi-platform shops I know build only one flavor and then to save on full-time developer costs send out the work on other platforms elsewhere. I know of a few startups doing mobile apps who are now hiring Android devs, but did those apps as a purely out-of-house thing when they were small.

And it wouldn't be new for the industry. I had a buddy at Midway Chicago for many years, where they used to do many of their sports games on XBox and outsource the PS3/Wii ports.

3 points by jarek 2 days ago 3 replies      
Wow, the Android ones look much nicer. Oversized icons? Garish blue? Gimmicky graphics? Just focus on the content, please.
5 points by antimatter 2 days ago 0 replies      
Am I the only one who prefers the Android interface for Meebo (first time seeing it)? I often dread using the iOS version as I feel it's extremely cramped.
1 point by MichaelApproved 2 days ago 0 replies      
For another great example, have a look at the CNBC free app. iPhone app is sharp and almost all self contained. Want to see details on a symbol? Click the quote and it'll show you within the app. Want to see a graph? Just turn the phone sideways and it'll show you a nice chart. It's got many other nice features that make it an excellent app.

The Android app is just garbage. It's basically just a watch list with links out to their mobile site. The end.

3 points by headhuntermdk 2 days ago 1 reply      
While I can't speak for Android, I think the simple answer is that Apple provides sample code and applications that are examples in great UI design on iOS.

I'm not seeing the same level of detail or commitment from Google or its partners at this time. It is much easier to copy off of a good design than to create a new one from scratch

1 point by teyc 14 hours ago 0 replies      
If you get invited to a party for fashion designers, you'd better spend some time picking the right thing to wear.

If you get invited to a geek party, remembering to shave alone would put you above the 90th percentile.

2 points by tobylane 1 day ago 0 replies      
Because far far more people on iOS are on hardware of the latest, standard hardware that the software is aimed at.

As I understand, the Nexus is the one Android is putting forward as an example, it is the highest quality of all phones. The whole of the current generation of iOS devices are the same, perfected examples of the hardware and software working together.

There are probably Android phones of better hardware than an iPhone, but do you know any apps that demand these phones, that are too slow on anything with a slower processor?

1 point by lloeki 1 day ago 0 replies      
one of the most appalling part (ignoring that record-breaking emoticon picker) is not the selected apps themselves but the left-aligned icons in the top status bar. Their lack of quality shows even more when contrasted with the carefully designed right-aligned part (I suppose that one is OS-tied and therefore from Google).
2 points by pagliara 2 days ago 0 replies      
Apple has crafted a development environment that is more conducive to producing high-quality polished apps with relatively little effort. The iOS SDK is a refined version of the Mac Cocoa SDK, which they have been developing for 10 years. They were able to keep the best qualities of standard Cocoa while further refining the framework for a mobile device. The end result is an SDK that not only has attracted tons of developers, but is also really enjoyable to work with.
2 points by amdev 2 days ago 0 replies      
Admittedly more familiar w/ the iOS SDK but I've build a few Android apps. I find iOS controls easier to use and customize.
2 points by gubatron 1 day ago 0 replies      
laziness, different developer teams... I don't think it's Android's fault at all.

With enough time and assets you can build pretty amazing UIs on Android. Everything is there for you to create custom components and override styles.

1 point by RSO 1 day ago 0 replies      
I think it also has to do with the fact that the iPhones have a fixed set of specs. With android you never know what kind of specs your users phone has (screen height/width e.d.). But with the iPhone you're always sure what controls your user has (touch screen instead of controller).
1 point by hackernewz 1 day ago 0 replies      
Why do VOIP apps on both platforms lack bluetooth support? I think that's a more interesting question to ask for mobile "phone" OSes.
1 point by bennesvig 1 day ago 0 replies      
The WakeMate app is superior on the iPhone compared to it's android version.
Poll: Do you know C?
212 points by DanielStraight 2 days ago   192 comments top 70
43 points by tzs 2 days ago 9 replies      
I wish more languages had books equivalent to K&R. Here's how I learned C.

1. Buy K&R.

2. Read it. Maybe 2 or 3 times during the process of reading it, I would go write a program to try what I had just learned. This was was around 1980, so trying a program meant walking across campus to a terminal. I could either head to the computing center and use a public terminal, or to the high energy physics building (where I had just started a work-study job programming and it required C). The former would mean competing for a free terminal--and annoying people if I was spending my time at the terminal mostly reading K&R instead of typing. The later meant sitting at a terminal next to a noisy minicomputer in a cold room.

When I got to the end of K&R, I was a C programmer in theory.

3. Start doing real work, using K&R as a reference.

Very quickly theory became aligned with reality, and I was then a C programmer in practice.

Nowadays, most programming books I find assume that I'm sitting eagerly at a computer as I read, and that I want to stop every three paragraphs and type in some code and run it, and then the book discusses what that code did with the author writing under the assumption that I have the output of the code on my screen.

I like the K&R way better.

38 points by georgemcbay 2 days ago 3 replies      
+1 to the non-existent poll entry that says:

"I know C thoroughly, though I barely ever use it these days. I used it for so long and during such a formative period of my overall programming career that I can read/write C code with virtually no spin-up time even though I find myself touching C code very rarely. Oh, and btw, when I find myself coding C on a nix box, I am still amused at how I have muscle memory for all those old emacs commands I also haven't used regularly in about a decade though I wouldn't be able to tell you what they are without doing some keyboard mime exercises."

Yeah, well, I guess that is a bit too long to be a poll entry.

114 points by kabdib 2 days ago 4 replies      
I've been programming in C for longer than my current manager has been alive. :-)
14 points by antirez 2 days ago 11 replies      
As a first reaction I thought, well, more than 50% of HNers fluent with C, the average age should be pretty high probably. But then I realized that actually the average HN age is probably around 25 (from other pools I saw here), so I guess, there are still a lot of fresh programmers learning C. I really hope so. I love higher level programming languages and spent a lot of time with Tcl, Scheme, FORTH, Joy, Ruby, and other languages, but I really hope that the next generations of programmers will still be able to stay near the metal when needed.
35 points by stray 2 days ago 1 reply      
There should be an option for "C was my first programming language and I used it exclusively for years - many years ago".
11 points by alexk7 2 days ago 3 replies      
I'm from the "Modern C++" school. I learned C++ without first learning C. I don't consider myself a C programmer. Of course, I can read and write C code, but I would consider it a burden to code without smart pointers, templates and exceptions. How should I answer this poll?
4 points by sedachv 2 days ago 1 reply      
My second ever experience in programming (the first was typing in BASIC on a Soviet trash-80 clone) was typing in example programs from a C book. I did quite a bit of C programming in university. I've contributed C code patches to several Free Software projects. I am currently writing a C compiler.

You would think this would qualify me as someone who, if not enjoys, is at least is competent at C.

You would be wrong.

I absolutely despise C, and never would have become a computer programmer if I had to do most of my programming in C.

The horrible syntax, retarded pre-processor, and absolutely brain-damaged memory model (addressing modes? segments? virtual memory? reified stack? fuck that, let's just pretend everything is a pdp-11!) make it into this zombie that can't quite decide whether it's a shitty assembler or a shitty Algol clone.

I don't consider myself a competent C programmer, and I have no desire to become one.

Trying to write a compiler for C (https://github.com/vsedach/vacietis) has only cemented my dislike for the language.

I don't blame Dennis Ritchie for it. He probably thought it was a dumb joke too. I blame all the retards in the 1980s that thought it was the bee's knees and made it a "standard."

9 points by larrik 2 days ago 2 replies      
I used to know it very well. Now, not as much. Even when I wrote C++, I basically wrote "C, with classes."
9 points by derrida 2 days ago 2 replies      
C is the language I use when I just want to sit down and enjoy "resonating with the computer". Python, Java etc feel like I am "working", or "cheating" as the case may be in Python. With C you are conscious of the memory of the computer and the lovely datastructures you are forming on top of it and the whole elaborate dance. I hear that Lisp programmers get a similar feeling but I am not close to seeing that yet.
10 points by Vivtek 2 days ago 2 replies      
I used C exclusively for ten years - then I fell in love with Perl and never really looked back. Garbage collection was my downfall.
10 points by timclark 2 days ago 3 replies      
I know C but none of those categories apply to me. Poll design is useful skill to learn!

I am not a pollster but by combining different facts into single options you are restricting the information you can gain from your poll or polls.

I taught C to engineering students at a university, I know it thoroughly, I haven't written a line of it in 12 years - the only option I can logically choose is the final option.

11 points by wickedchicken 2 days ago 1 reply      
C, if you want, can run completely without a runtime. Few modern languages can claim that. It's what gives C both its notoriety and power.
4 points by MatthewPhillips 2 days ago 0 replies      
I know C although it's been several years since I've used it. Currently Go is my low-level language of choice (although maybe it's not low-level). It gives you the simplicity of C, but with a few of the higher level features like garbage collection, without the baggage of high level languages.
4 points by phpnode 2 days ago 0 replies      
C is the third most widely known language on HN behind javascript and python. Source: http://hackernewsers.com/skills/index.html
4 points by muon 2 days ago 0 replies      
C is the only language that I use at work (along some basic scripting). Due to work that is mainly firmware, device drivers etc. Honestly at times, I do feel that embedded engineers are odd persons out here at HN.
3 points by bobbywilson0 2 days ago 0 replies      
I have a lot of respect for C and every once in a while I open up the K & R and go through a few chapters. While I find this to be really well written and holds up even for today's standard of programming book, I feel like the resources for beginner C online are pretty slim.

I think my primary use for knowing some C would be writing C extensions for Ruby or looking at some source code of classic C libraries.

3 points by Newky 2 days ago 0 replies      
My lecturer in my basic introduction to C class once said to me that he had been a professional C programmer for the past 10 years, and still considered himself a C novice.

I think how "knowing C" is defined is key in this question, yes I can write my fair share of C, but I still don't think I could class myself as a C programmer.

2 points by PeterWhittaker 2 days ago 1 reply      
Polls != me, ever. I chose the second answer because it is the closest, but....

I haven't really used C in years, but I can start programming in C anytime and get operative, robust (I'm a freak about error handling and knowing where lie the exceptions) code quickly and cleanly.

These days I dabble in Javascript, higher order perl, and am trying to grok Haskell, but I think in C. To my simultaneous benefit and detriment.

The vast bulk of code I was paid to write was /bin/sh - thousands of lines of clean, robust, cross-platform installation and configuration routines, with pipes to awk and sed as required. But I thought in C.

Other than deliberately obfuscated code and kernel programming, I've never met a C program I couldn't grok.

But I don't use C, haven't in years, and don't know it thoroughly. I am not a C guru, nor even close to being a wizard. But I would call C the lingua franca of the computer world, the cleanest, most elegant tool out there.

C wasn't the first language I learned, but it was the first that blew my mind. After years of hacking on various BASICs, then FORTRAN, and Pascal, I encountered C (I have a BSc in Physics; I didn't hit C until after I decided to experiment with CS for a while).

After years of forcing my thinking into the little boxes these other languages insisted on living within, BAM, here was a language that allowed me to escape any box, build better boxes, nest boxes, hide boxes, thermonuclearly destroy anything within 6 gigs of my box, etc., etc., etc.

The sad side note: Scoping was never really an issue with the other languages, they had pretty hard and fast rules. Scoping wasn't all that much different with C, but all of a sudden it became really, really important to understand it, to be able to unwind pointers mentally and really appreciate what was going on.

So for me, C scope was computer scope, all scope was C scope. One of the biggest mental hurdles for me in learning higher order perl was abandoning C scope and automatic dereferencing without global variables.

It took me a while to get my head around how the difference in scope management made class and object variables and memoization so much easier in perl - and in many other languages - than in C.

So I think in C. And sometimes that's good, but other times it is a handicap.

2 points by mrcharles 2 days ago 0 replies      
I answered with the first option, even though I haven't had to use base C in a long long time. But I do know it inside and out. It's a pretty easy language. Some days I miss it.
1 point by rickmb 2 days ago 0 replies      
I've been programming in C for years.

Unfortunately, those years were mostly in the 80's and I've barely touched it since, so I really have no idea if I can still call myself a C-programmer. I used to be good at it though. At least that's how I remember it...

1 point by SageRaven 2 days ago 1 reply      
Dumb question: Is the 2nd Edition K&R for about $50 on Amazon worth the coin over the 1st Edition I recently picked up at a thrift store for a buck?

(I also picked up Steele's C: A Reference Manual, 4th Ed. for a buck at the same place.)

2 points by rdtsc 2 days ago 0 replies      
I program in C+Python, doesn't get better than that.

I have had to learn JS, but I don't like it.

3 points by Symbol 2 days ago 0 replies      
I use C/C++ and assembly everyday as a game programmer. It is the incumbent development language for consoles (at least xbox and ps3 - I'm never done any dev on the Wii). I suppose its stay is due to the ease of access to the metal.
It's propably worth noting that lots of games use higher level scripting languages to do speed-insensetive tasks.
1 point by genbattle 2 days ago 0 replies      
I'm on the younger end of the age-scale (23), and i would have to agree that less people are learning C as a matter of course these days. Over the whole programmer population the percentage would be very low, but the hacker population is almost defined by its use of C. Many notable and large hacker projects are based on C; Mozilla, Linux Kernel, GNU tools, etc. I think this is in part because the community has such a strong legacy and is driven to keep building and extending what has come before, but also because of the higher average programming ability in the hacker community compared to the general programming population.

From my perspective using Linux is one reason i know some C, but the greater reason is because my formal education included embedded C programming with microcontrollers. Programmers going through pure software engineering courses seem to focus much more on computer science and web development concepts, rather than systems design and programming. That said, i'm sure my experience is not typical, and other universities probably use C in some part of their courses.

In terms of actual programming, i haven't yet found a project which required the use of C, and in the cases where i have used it i've often stumbled more with the bulky IDE and build configurations than the language itself. My particular trouble is around external references and including code not in the standard library, and then the further dependency hell.

Searching around i haven't really found any C tutorial that really covers this sort of stuff really well, most tutorials focus on the language itself (which i don't really have an issue with). Does anyone know any good resources on how to set up an optimal and easy to manage C development environment?

1 point by dionidium 2 days ago 0 replies      
I don't use C for any personal projects and only occasionally at work, but I read K&R once a year. It's a fantastic book.
1 point by robflynn 2 days ago 0 replies      
I selected 'none of these options apply to me.' I worked with C for many years (pidgin was written in C) and did some C at my first, second, and third jobs. However, I haven't had a need to write anything in C in about 7 years so I am more than rusty at it.

I didn't feel like "I learned some C" applied. That could be my awesome sentence parsing skills at work, though. :P

I wonder if I could get back into the swing of things easily. I should give it a shot.

1 point by Aloisius 2 days ago 0 replies      
I learned draft ANSI C++ before C. Actually there wasn't that much to learn outside of the definition of NULL and where you could stick variables declarations.

The only time I use it these days is when I go into random open source projects to fix bugs or occasionally add a feature.

1 point by varjag 2 days ago 0 replies      
Am using C a lot, from writing device drivers and hacking network protocols to userspace stuff. Yet I can't say I know it thoroughly: there are enough little quirks in the specs.

It is a great little language for sure, still destined to outlive some of the languages that are hip today.

2 points by mziulu 2 days ago 0 replies      
I began working 2 years ago, landed a job where I almost only write C code (a huge codebase for scientific/high performance computing).
1 point by epynonymous 2 days ago 0 replies      
c syntax lives on in many languages like java and javascript. it was the second language that i learned behind java, this was back in 1998. i still think it's a great language because you have so much control over the important things like memory management and pointers, how priceless (albeit dangerous) is that? string manipulation was a real detail that i could live without and exception handling was non-existent (don't go there with goto labels), but overall it was a clean language, you could optimize the hell out of things like byte boundaries for structures, you just felt like you had full control, it's the closest thing i had to assembly without the syntax being too cryptic. that was the good old days and i think it was an important foundation for me in terms of learning how to be anal as hell with source code.
1 point by marcomonteiro 1 day ago 0 replies      
C was my first real programming language. Loved it. I just don't use it much anymore. Most of what I do is either web (Ruby/Rails, PHP, etc) or mobile (Objective-C).
2 points by sid0 2 days ago 0 replies      
I can write C when necessary, but I'd much rather not.
1 point by desigooner 2 days ago 0 replies      
Used to know C + Assembly pretty well back in school (thesis + projects on microcontrollers and such) ... All I can do now is read some code ..
5 points by theatrus2 2 days ago 0 replies      
I do embedded programming. There is only C.
1 point by michaelpinto 2 days ago 0 replies      
I'm not a programmer -- but I was able to learn some HyperTalk back in the day: I really wish they'd make some heavy duty programming language for non-programmers...
1 point by elmindreda 1 day ago 0 replies      
Of the FOSS projects I maintain, all those intended for use by others are written in C. It is in my opinion still the best language for providing reusable code.
1 point by niels 2 days ago 0 replies      
My first full time software job, was writing C for PSION Workabout terminals. They had 2MB ram and their own custom plib for system access that ran more efficient than using clib functions.
1 point by imp 2 days ago 0 replies      
I'm still learning it. If anyone else is interested, I'm taking a class for it on my learning website, Curious Reef: http://curiousreef.com/class/programming-in-c/
1 point by kgutteridge 2 days ago 0 replies      
Unfortunately not that much since academia and a few other bits and pieces, 30 here, still do a lot with C++ and ObjC though rather than higher level languages
1 point by danssig 1 day ago 0 replies      
What about: I learned C quite well and used it for years but rarely touch it now?
2 points by axylone 2 days ago 0 replies      
I'm about to get out of college, and at my new job I'm using mostly C. Well-written C is surprisingly fun to work with (although you could probably say that about anything).
1 point by karolist 2 days ago 0 replies      
I've known some C for long enough, but only recently dived really deep into it, it was Apple and Objective-C that brought back my interest in the language. Writing some forensics and data restore tools as a project to learn the language, progress is slow, but I'm loving it.

One thing I've noticed is how focused you have to be when working with C vs for example python/php - everything is very error prone mostly due to manual memory management. You also need good visualization and some basic math skills.

3 points by vkris 2 days ago 0 replies      
I used to code heavily in C when I was in school. My job ruined me.
2 points by simk318 2 days ago 0 replies      
During college days i have used lots of C for different projects but its been few years i haven't touched C, I think i have forgotten pointer and stuffs need to review
2 points by brianmario 2 days ago 0 replies      
I'd like to think I can consider it one of my "known" languages, but people like @ice799 (timetobleed.com) know C. There's a HUGE difference.
1 point by mnwcsult 2 days ago 0 replies      
I have extensive knowledge of C. I have been using it since 1987. Our companies youngsters have to get up to speed quickly as our simulations are C/C++ and the datasets are massive and the code must be very fast. Of course they were taught Java in college and find pointers difficult. They quickly come to appreicate the speed difference.
1 point by chicagobob 2 days ago 0 replies      
I learned C for the first time in 1986 and still use it all the time as my day to day favorite language is Objective-C (and also I've really started to develop a fondness for Ruby too, that's a neat language).
1 point by jk-in 2 days ago 0 replies      
I know quite a few high level languages, but C is the main one. It is probably because I work on system software.

One good thing that I figured out is to learn concepts from high level languages and use them in C. I guess lot of people are doing the same.

1 point by younata 2 days ago 0 replies      
C is my first language. Learned it about 3 or 4 years ago.
1 point by J-L 2 days ago 0 replies      
My main language is Java these days, but I use lots of other languages as well (e.g. Perl, Python, R, sh, MATLAB, ...). However, C remains the language that I know most thoroughly, and I've used it since 1989.
1 point by mellery451 2 days ago 0 replies      
I learned C as my second language after FORTRAN. As it turns out, some of the strangest C code I've ever had to maintain was a system that had been converted from FORTRAN to C using an automated tool.
1 point by duiker101 2 days ago 0 replies      
I've learned some C, but I wouldn't be able to write a program in it without a lot of documentation. I can read it, but I don't use it or use it once or twice a year.

but i know objective-c pretty well.

1 point by DarrenLyman 2 days ago 0 replies      
I use C for programming PLC's (programmable logic controllers). I have created testing centers built on C to test used PLC's.
1 point by guyzero 2 days ago 0 replies      
I used to have the C operator precedence table memorized as I taught C classes weekly. But I never use it these days. Your know it/use it options are conflated.
1 point by Cyranix 2 days ago 0 replies      
I'm hoping that I never have to write C/C++ or use vim/emacs extensively during my programming career. I'm perfectly content to leave that work to someone else.
3 points by jharris 2 days ago 1 reply      
Hell yes! I write C-based server code nearly every day!
1 point by SteveMoody73 1 day ago 0 replies      
I know quite a few other languages but most of my day to day work is in C.
1 point by nigelsampson 2 days ago 0 replies      
I learnt C programming Quake 2 modifications, picked up C++ at university and haven't used it since.
1 point by HardyLeung 2 days ago 0 replies      
I learned C, then C++, then C#. I'd say I love them all.
1 point by Apocryphon 2 days ago 0 replies      
I know C, and of C. I do not grok C.
1 point by skipperfly 1 day ago 0 replies      
Yes, I first encountered it from an old issue of DDJ (Small C) while I was studying electrical engineering at UNSW back in the 80s. Then I had to understand it further while studying the UNIX source code in John Lions' OS lectures.
2 points by jordhy 2 days ago 0 replies      
All programmers should know C.
2 points by CedriK 2 days ago 2 replies      
I know C(#), it counts right? ;)
1 point by ankurcha 2 days ago 0 replies      
The fist language i ever learnt more than 10 years ago in 8th grade.
1 point by HockeyBiasDotCo 2 days ago 0 replies      
I wrote in C during teh late Jurasic period. But I love C#!
1 point by wojtczyk 2 days ago 0 replies      
Yes, I know C and C is important, but not for everyone.
1 point by jdefr89 2 days ago 0 replies      
C was my first language, and I love it...
1 point by fmaker 2 days ago 0 replies      
C is great. Yeah it isn't perfect, but it's always there, the rules don't change and you always know where you stand.
1 point by suprafly 2 days ago 0 replies      
Language #1 for me.
-3 points by telson 2 days ago 0 replies      
Yes, I do.
Where can I get large datasets open to the public? quora.com
208 points by helwr 5 days ago   37 comments top 22
18 points by physcab 4 days ago 3 replies      
Asking "What datasets are available to me?" is sometimes the wrong question. A better way of going about the problem is asking something more specific like "How can I create a heat-map of U.S poverty?" The reason why the latter is better is that it not only focuses your attention on something do-able but it actually teaches you more about data analysis than just searching for datasets.

For example, to solve the question above you are going to be asking yourself the following followup questions:

1) Where do I get a map of the U.S?

2) How do I make a heat-map?

3) How do I feed in my own data into this heat map?

4) What colors do I use?

5) Can I do this real-time? Do I need a database? What language do I use?

6) Whats a FIPS code?

7) How do I find a poverty dataset with FIPS codes?

8) This poverty dataset doesn't have FIPS codes, but I can join it with this other dataset that does have FIPS codes.

6 points by iamelgringo 4 days ago 1 reply      
Hackers & Founders SV is hosting a hackathon[1] in two weeks at the Hacker Dojo in Mountain View. It's going to be geared towards working with Factual's open data API.

Factual's[2] goal is to provide an API to connect all those available data sets, and they have a fairly impressive list of data sets available. Factual is very interested in hearing what datasets you want to work with, and they are willing to bust ass to get them available before the hackathon.

We still have around 40 RSVP slots open. You can register here: http://factualhackathon.eventbrite.com/

</shameless plug>

[1] http://www.hackersandfounders.com/events/16535156/

[2] http://www.factual.com/

[3] http://factualhackathon.eventbrite.com/

22 points by machinespit 5 days ago 3 replies      
data.gov and other US gov data sites are getting severe cuts even though they're saving money (http://www.federalnewsradio.com/?nid=35&sid=2327798)

Very upsetting for fans of open / accessible (government) data.

FWIW, petition at http://sunlightfoundation.com/savethedata/

2 points by drblast 4 days ago 0 replies      
Edit: Whoops, I thought this was an "Ask HN." The below post still stands for anyone who finds it useful.

The U.S. Census has an extremely well-documented large data set:


And the documentation is here:


The software that they provide to go through the data is crappy, however (90's era).

I have an equally crappy but more useful to a computer scientist Common Lisp program that will pull out specific fields from the data set based on a list of field names. If you want that, I can dig it up for you.

Also, before you start parsing this, it's worthwhile to read the documentation to find out how the files are laid out, and what each field really means. These files are not relational databases, so if you're looking at it through those lenses, confusion will result. In particular, some things are already aggregated within the data set.

5 points by Maro 4 days ago 0 replies      
There's a startup called kaggle.com that is all about hosting data mining competitions around datasets, like netflix.
11 points by shii 5 days ago 0 replies      
7 points by raghus 5 days ago 0 replies      
3 points by nowarninglabel 4 days ago 0 replies      
At http://build.kiva.org there are some nice datasets in the "data snapshots" section. I have high hopes we will be releasing a lot more data.
4 points by bOR_ 4 days ago 1 reply      

For sentimental value: HIV sequence data (and other data) from 1980 till now. Did my thesis on these ;-).

In general, there is an enormous amount of gene sequence data around, not just HIV.


Whole genome sequences of eukaryotes (including humans):

3 points by latch 5 days ago 0 replies      
I believe Steven Levitt used the Fatality Analysis Reporting System (FARS) from the national highway traffic safety administration (NHTSA) for his seatbelts vs carseats work:


3 points by brandnewlow 5 days ago 1 reply      
On that topic, anyone have any suggestions for the easiest way to prepopulate a directory of local businesses in the U.S.?
3 points by arethuza 4 days ago 0 replies      
UK Government data sets: http://data.gov.uk/
3 points by buss 5 days ago 0 replies      
http://aws.amazon.com/publicdatasets/ which includes my former advisor's dataset (UF sparse matrix collection) which includes a matrix or two from my research.
2 points by shafqat 4 days ago 0 replies      
We provide API access to more than 20 million articles (headlines, excerpts). People have done all sorts of interesting things with it - http://platform.newscred.com.
7 points by barefoot 5 days ago 0 replies      
How many of these allow me to create for-profit websites with them?
5 points by kordless 5 days ago 0 replies      
3 points by mrzerga 4 days ago 0 replies      
microsoft azure - they have some large datasets...
3 points by plannerball 5 days ago 0 replies      
1 point by thesuperformula 4 days ago 0 replies      
You can find many large datasets here, http://beta.fcc.gov/data/download-fcc-datasets , some are over a gigabyte.
Anonymous goes after Sony, makes it personal... very personal arstechnica.com
203 points by evo_9 2 days ago   132 comments top 19
75 points by DanielBMarkham 2 days ago replies      
It's very interesting to see folks rediscover what we always knew: there's a big difference between a group with a purpose and standards and a mob.

It used to be that geography contained a lot of mob-like behavior. You might be mad at the guy who lived in the nearby castle, but there were only so many villagers you could round up. And some of those liked the guy, some didn't want trouble, some didn't like your plan, etc.

Now the internet lets us find the most emotional people possible about a particular topic and put them all together in one "place". Then people can feed off each's other anger, saying and doing more and more preposterous things in order to impress the group. Information that might challenge the groupspeak is discarded. "Acts of valor" the group commit are spread far and wide, drawing in more members, thereby creating a feedback cycle which encourages more and more dramatic acts.

The thing is: the issue doesn't matter. The larger story isn't about Sony, or Anonymous, or any one particular issue. It's about how governments are going to be able to consistently function when the world is breaking up into thousands of little angry groups like this.

I have no idea how this is going to play out, or how many kids and families of corporation execs are going to suffer because of things they cannot control. But there will be a backlash. It's building, and I'm concerned that when it happens we are going to see governments step in and take control in ways that are as equally terrible. </doomsaying>

78 points by blhack 2 days ago 0 replies      
Isn't this exactly the type of information that Sony was seeking on George Hotz (geohot), as well as anybody who even visited his website?
15 points by ascendant 2 days ago replies      
I think personal attacks like that degrade whatever credibility they gain by fighting for the little guy. Granted people have been prank-ordering pizza's to other people's houses since waaaaay before the Intarwebz, but I'm sure our generation of news-addicted alarmists will send up the flag saying this is why we should give away all of our privacy and freedoms so the government can protect us from bored teenagers.
21 points by whakojacko 2 days ago 0 replies      
Not specifically related to this article but Id like to give Ars major props for following all of the recent Anonymous actions so throughly. Their articles on HBGary were fantastic and they seem to be keeping up well.
6 points by zipdog 2 days ago 1 reply      
Before the internet, people were comfortable releasing small amounts of personal data - and so they still release small amounts of personal data (to a florist, into the garbage).

One of the issues here is that a few of these pieces of data are like Primary Keys: home address, ssn etc: once you grab these you open up so much else, and there's not too many alternatives to these keys (for those times you actually need them).

7 points by Jach 2 days ago 0 replies      
"I quarrel not with far-off foes, but with those who, near at home, co-operate with, and do the bidding of, those far away, and without whom the latter would be harmless." ~Thoreau

Before condemning I'll wait to see what is done with this information. If someone dies, that'll be the end of it, but don't freak out over pizza deliveries. I've been waiting for Anon to start endorsing violence, so far they haven't.

2 points by temphn 1 day ago 0 replies      
Ok, now we're talking lulz. Tracking people's children? All's fair, I guess.

But taking down the PlayStation Network, well...that's over the line.

> "Anonymous is not attacking the PSN at this time," said the document. "Sony's official position is that the PSN is undergoing maintenance. We realize that targeting the PSN is not a good idea. We have therefore temporarily suspended our action, until a method is found that will not severely impact Sony customers. Anonymous is on your side, standing up for your rights. We are not aiming to attack customers of Sony. This attack is aimed solely at Sony, and we will try our best to not affect the gamers, as this would defeat the purpose of our actions. If we did inconvenience users, please know that this was not our goal."

3 points by Apocryphon 2 days ago 2 replies      
Last night I watched "The Next Day", a teaser film for the inevitable Tron 3. In it there's a Banksy-type group of hackers called "Flynn Lives" who commit acts of sabotage and mischief specifically against ENCOM. I thought to myself, "That's silly, how could there be an underground activist organization that focuses its efforts on undermining a tech company that, while big and vaguely sinister, doesn't actually seem to have committed any actual evil?"

Oh, 4chan, you've proved me wrong again.

6 points by djtumolo 2 days ago 0 replies      
I dont think this is representative. There have been comparisons made between Anonymous's DDoS and sit-ins. But there was also a more antisocial and violent part of the civil rights movement as well.
3 points by waqf 2 days ago 0 replies      
Ahem, they tried to censor Stringer's personal information but they left the ZIP+9. You can get at least the address of the apartment block from that.
3 points by analyst74 2 days ago 1 reply      
On one side, I think it's great that "important" people who make major decisions take personal responsibilities, instead of hiding behind corporate/government entities;

On the other side, this sort of hack-attack could easily go out of hand: what do we do if someone uses this sort of technique for malicious intents?

1 point by jrspruitt 2 days ago 0 replies      
This is the kind of stuff I think will cause more damage, than do any good. Yeah ordering pizza's is funny, but when you start digging into someones family, I think it goes over the line. This is something criminal thugs would do. This isn't going to do their cause's PR any good at all, which perhaps I'm wrong, that their goal is to help support the "little guy" against the "big powers", to accomplish that, its best to get the support of the people, to expose corruption, not threaten people like this. Which, when this goes to national news, its going to look really bad. Not to mention, this is stalker grade stuff, which that freaks me out for some reason, I imagine socially dysfunctional people, looking for some attention sitting around thinking, Anonymous is doing it, people like them, I know... I'm going to go do something completely insane so people will like me. These sort of tactics can easily blow up in their faces, perception of the people is everything these days, stuff like this can make it real easy to look really bad.
2 points by yummybear 1 day ago 0 replies      
This is not cool - harrasing the man's wife, investigating the "schools their children attend".

If you need to go after Sony the cooporation or the CEO, do so when they assume that role, but stay away from family and personal business.

5 points by AlfaWolph 2 days ago 0 replies      
It reminds me of Fight Club a little.
1 point by drstrangevibes 1 day ago 0 replies      
apparently the "kids" are older than geohot
1 point by EGreg 1 day ago 0 replies      
Where are these chats between anonymous taking place? How are people getting the chat logs? I haven't seen anyone talk about this.
0 points by radioactive21 2 days ago 0 replies      
I am for trying to poke at someone, but to me the line is drawn at family and kids. Anonymous themselves might not do it, but lets say they make information about the kids public and some weird psycho uses that in a bad way. Just takes one incident involving a child and the public out lash could be severe.
1 point by jc123 1 day ago 0 replies      
Public information + Social Engineering + Willpower = Zero Privacy
1 point by ImprovedSilence 2 days ago 4 replies      
My only complaint about Anonymous is... Who watches the watchmen?
OpenSSL memory use in Node.js querna.org
192 points by jcsalterego 4 days ago   14 comments top 10
19 points by asolove 4 days ago 0 replies      
This is a really good writeup. I have never used Instruments before, and while I'm not an expert in OpenSSL, there was enough detail to point me in the right direction when dealing with this in the future. Thanks.
16 points by AngryParsley 4 days ago 0 replies      
I think a more accurate title would be "How to reduce memory usage 10x in almost anything that uses OpenSSL." Bottom line: All those bookkeeping data structures for compression take up a lot of space. Disable SSL compression and you can go from 1MB per connection down to 100kB.
20 points by agl 4 days ago 1 reply      
Don't forget to enable SSL_MODE_RELEASE_BUFFERS with OpenSSL 1.0.0 too.
4 points by otterley 4 days ago 0 replies      
I'd like NodeJS to add a tls.createCTX() method that generates an OpenSSL CTX object that can be manipulated and passed as an optional parameter to the various other tls methods.

This would allow great flexibility in the TLS configuration - everything from CA paths to CRL checking to RFC 5077 support could be configured by the application once and the settings reused for all qualifying subsequent connections. Compare with, e.g., AnyEvent::TLS (http://search.cpan.org/~mlehmann/AnyEvent-5.31/lib/AnyEvent/...).

11 points by HerraBRE 4 days ago 1 reply      
The article also covers the same issue in Python and shows how to drastically reduce memory usage. Pretty awesome stuff!
6 points by JoachimSchipper 4 days ago 0 replies      
Summary: when using OpenSSL with a lot of connections, use a shared SSL_CTX or you'll have a large per-connection overhead.
4 points by nathanwdavis 4 days ago 0 replies      
I love posts like this. There are too many blog posts that make it to the top of HN that are just complaining or speculating of some type. I would much rather read a detailed write-up on the discovery and solution to a problem.
4 points by caf 4 days ago 1 reply      
If you want to debug an issue like this on Linux, the Massif tool (part of Valgrind) is a decent heap profiler.
4 points by pronoiac 4 days ago 1 reply      
Eep! Skipping compression before you encrypt is a bad idea. Using it saves bandwidth, & makes attacks much more complicated.

Can Node.js do some compression before it hands off data to OpenSSL?

1 point by MadWombat 2 days ago 0 replies      
It is interesting, how he is using OpenSSL, Node.js, Python, Twisted framework and still manages to take a swing at OSS development tools in favor of closed ones.

Does this issue even exists on serious operating systems?

       cached 10 April 2011 04:11:01 GMT