hacker news with inline top comments    .. more ..    3 Mar 2013 Best
home   ask   best   5 years ago   
Bomberman massively multiplayer in HTML5 bombermine.com
1353 points by cygnus  3 days ago   197 comments top 53
jader201 3 days ago 16 replies      
I upvoted this because it is awesome, and it is, well... Bomberman.

But I'm genuinely curious: at what point will we stop being fascinated by what can be done in HTML5, and actually start focusing more on what is actually being done -- regardless of the technology used.

Or to put it another way: when will HTML5 games stop feeling like HTML5 games?

For example, if this were on a console, I think it would still be cool, but it's lacking a certain "game" feel to it. It still feels like playing an old school game on a PC keyboard, and there still seems to be a sort of keyboard-to-response latency that I find in most HTML5 games. Not to mention, no music/sound.

Again, I'm not knocking it for the effort. I still think it's pretty dang fun, even for an HTML5 game. But it still feels like an HTML5 game.

ivanpopelyshev 3 days ago 3 replies      
Pardon my English.

Team consists of two programmers and four helpers, we live in different cities near Moscow.

I started developing the game in April, published link at habrahabr.ru and since then i'm optimizing network and rendering.

We were preparing for Mozilla GameOn, posted a link to /r/webgames, it became viral. We're in shock :)

Game Core: Pure Java.

Game Client: cross-compiled with GWT. Angular.js for UI (scoreboard, chat).

Game Server: Haproxy -> Jetty

Web backend: nginx -> node.js

Servers are hosted in cloud and begin to slow down after 800 players.

We'll rent dedicated servers to archieve 1500 players on a map.

P.S. Langoliers are eating the time you spent in bombermine.

hkmurakami 3 days ago 1 reply      
What I found interesting is that when you "scale" a game from n < 8'ish players to n > 10 players and make it MMO style and continuously running, the strength disparity between the players who have been alive for quite some time and the "newly spawned" players becomes so large that a Quake/TF2-like system where players can instantly become "fully buffed" (by picking up an uber gun, for instance) becomes necessary.

Furthermore, I think an interesting game design challenge is what we can introduce to these scaled up games to make the psychological rewards enticing enough to have players keep playing. After the nostalgia feeling wore off after a few minutes, I personally no longer really felt like continuing to play since it was going to be the same stuff over and over again without much variability or depth.

ZeroGravitas 3 days ago 1 reply      
This is what I imagine when I hear HTML5 gaming. Just like "fun" on a PC looks different from "fun" on a console, and even more so from "fun" on a Wii, or a DS or an iPhone, "fun" on the web needs to take advantage of the nature of the medium.
jamieb 3 days ago 1 reply      
Awesome, but one exploit makes it less fun:

Smart players who are trapped by a foe are dropping their own bombs so that the foe doesn't get the kill.

I blocked a player in an alley. Right before he died he dropped his own bomb. I got no point for the kill. That means any skilled player can prevent anyone from scoring points for killing them.

The solution is to use a kill chain. When a bomb kills a player, look to see if that bomb was detonated by another bomb. Keep going until you find a bomb that is not owned by the dead player. That owner gets the kill.

sukuriant 3 days ago 0 replies      
The langoliers are a nice addition to the game, I have to say.


(the pac-man type things eating up the level near the end of a round)

neya 3 days ago 2 replies      
"How the fack?" was my first reaction..Because this is so awesome! Revives old memories, yet also seems really fun (especially when you try to bomb others)!!

A few questions:

1) What backend technology do they use for real-time and concurrency? Node.js?? Scala??

2) How does one update the players' real time positions/actions??

If someone could shed some light on these questions, it would be so freakin awesome!!

swah 3 days ago 1 reply      
I'd love to know how was AngularJS used in this app: not the kind of app I imagined AngularJS would be helpful in writing!
kayoone 3 days ago 1 reply      
This excites us developers, but sadly the gamers couldnt care less. Sure it doesnt require a plugin, but thats not really a dealbreaker for most web gamers.
kerno 3 days ago 0 replies      
Aaaaand it's midnight and I'm meant to have written a 1,000 word post.
shocks 3 days ago 2 replies      
I wonder what they're doing about cheating? I guess this type of game is not so easy to 'cheat' with but I'm sure it is possible.

I was thinking about building an Unreal Tournament clone in WebGL, but I'm still not sure what to do about cheating.

alexkus 3 days ago 2 replies      
Server has been bombed it seems. All game servers dead.

No idea whether it was HN related or a separate issue.

sukuriant 3 days ago 1 reply      
The play button seems to have stopped working; and the number of players seems to be shrinking slowly. Something broke?
jbrooksuk 3 days ago 0 replies      
This such a great example displaying the power of HTML5. I'm going to be playing this quite a lot!

Is this going to be open sourced any time? It'd be neat to see how this works on the server etc.

Kartificial 3 days ago 0 replies      
The workspace has been shutdown here, too many bombermen.
dylanz 3 days ago 0 replies      
It's cool to see AngularJS was used for the templating engine. I'd be curious to see how deeply it's being used.
BklynJay 3 days ago 0 replies      
It is impossible to love more than I love this right now.
martinced 3 days ago 0 replies      
OK, so how many pixels / sprites can I push per frame (and at which framerate ; ) on this HMTL5 thinggy?

Btw I was eating mode 7 for breakfast on the SNES and ruling the Amiga co-processors (eg to do copper bars), so I happen to know a thing or two about very nifty optimization that can be used in games.

I'm pretty sure a few old dogs could teach some young monkeys a few tricks in this HTML5 thing...

jiggy2011 3 days ago 5 replies      
Oh god, have work to do. Must resist urge to waste entire afternoon..

One thing that always seems to be missing from these web games is support for gamepads for that authentic console experience however.

rartichoke 3 days ago 0 replies      
The game is back to working now. Really solid job man. It's really smooth in Chrome on my low end desktop.

My only concern is that there's no client side prediction for movement? Every input key feels delayed by my ping and is most noticeable when moving diagonally by pressing 2 keys at once.

jader201 2 days ago 0 replies      
Am I the only one seeing:

> Disconnected from server...

UPDATE: This had something to do with my login. I just logged out and back in, and was able to get in.

basicallydan 3 days ago 0 replies      
Honestly, not only is this incredibly fun but also really innovative and clever. Well done.
muyuu 3 days ago 0 replies      
Looks like their servers cannot deal with the onslaught...

I love Bomberman. Looking forward to try it.

madsushi 3 days ago 1 reply      
I closed the window on myself a few times with CTRL+W, whoops.
sk3tch 3 days ago 1 reply      
Anyone got any background on the backend tech involved?
marvwhere 3 days ago 0 replies      
man that is really fun!! we did a bomberman on a hackerthon, but only for 4 people each time, i like the mass multiplayer idea...

are u planing to put it on github? will be awesome to host in our own server to play against company people only

friendly_chap 3 days ago 1 reply      
Quick, everyone come up with the HN nicks so we can resolve the disputes there!
qoo 1 day ago 0 replies      
The bomb! Great game and great execution! Kudos to the Bombermine team.
yskchu 3 days ago 0 replies      
Thanks for sharing, brings back good memories...
tferris 3 days ago 0 replies      
Definitely the best browser multiplayer game ever.

And nice to see that it's build on Node (among other tech).

bayesianhorse 3 days ago 3 replies      
Actually, this is what I believe is the place of Go (the language) in HTML5 programming. I don't know if this was done with Go on the server side, might as well be node or gevent, but Go would be faster and easier to build a multithreaded game server with.
FreshCode 3 days ago 0 replies      
Well, there goes my evening. What stack is this built on?
wodow 3 days ago 0 replies      
It's working ok in the EU!
deanclatworthy 3 days ago 0 replies      
Undoubtedly the most fun I've had with one of these HTML5 games. Does anyone have any resources on how to keep clients in sync without lag?
orangethirty 3 days ago 0 replies      
Why aren't you taking payments yet?
ssewell 3 days ago 0 replies      
Who's up for massively multiplayer Double Dragon?
sairamkunala 3 days ago 1 reply      
Its eating up my CPU . The problem is that its an addictive game so far.
Levels getting reset with the pac man is hilarious !
zoobert 2 days ago 0 replies      
Really well done. Love it I am 13 again !!
ivanpopelyshev 2 days ago 0 replies      
We got 1500 players at US Public Server #1.
100kbit/s per user, i'm gonna optimize it.
jqquah 2 days ago 0 replies      
This is my first comment ever on HN and this is AWESOME!
afshinmeh 3 days ago 1 reply      
All servers are down.
inspiredworlds 3 days ago 0 replies      
Awesome! Loved this game on Super Nintendo!
itsbits 3 days ago 1 reply      
awesome game...wat did the developer use for realtime updates??
tcohen 2 days ago 0 replies      
This is an amazing game! Such good memories.
Maven911 2 days ago 0 replies      
what other games are out there that are as neat as this ?
sshillo 3 days ago 1 reply      
I think it just broke. The game just froze.
oceanician 3 days ago 1 reply      
This is fantastic. Thanks :)
vincentperes 3 days ago 2 replies      
nooooo, don't post this kind of link here!! my working day is over ;)
aren55555 2 days ago 0 replies      
This made my day.
asc76 3 days ago 0 replies      
Very impressive.
mceoin 3 days ago 0 replies      
darkedge3 3 days ago 0 replies      
njx 3 days ago 0 replies      
Awesome, I had once developed a bomberman clone for palm pilot.

Here is what HN users have commented on your game

We Found Our Son in the Subway opinionator.blogs.nytimes.com
813 points by mccolin  2 days ago   174 comments top 27
tptacek 2 days ago 4 replies      
Sound reasonable to me. That judge is probably a parent. I suspect most parents understand: if we waited to be "ready", nobody would ever be a parent. Conventional parents get months and months of notice. If they're like me, they're still nowhere close to "ready". It's terrifying. But you, and these guys, and everyone else just do what we've been doing for hundreds of thousands of years.
kirinan 2 days ago 1 reply      
Renews faith in humanity. This belongs on HN, because it really does point out the humanity that we all want to touch with our development. These are real people, with real issues, with real emotions, and each one of them may be a user of our products, using them to improve their lives, their sons lives, or whatever. Its very important to be able to empathize with people, and be able to know their stories, this is the only way to build great things that people love. You can say that this isn't "technical" or "business" related, it is however very related to human beings and ultimately these "humans" are your business, your source of profitability. If anything, more articles like these should be on HN.
jpdoctor 2 days ago 2 replies      
Good god this has nothing to do with HN.

Good god am I glad that it got to the front page so I read it.

knodi 2 days ago 0 replies      
My grand-father when he was a young 15 years old farmer found a lost kid on an Indian train. After search for his parents for years with no luck. He adopted the lost kid, at the age of 18 he became a father of a 7 year old. Today the little kid is a retried doctor that resides in New Jersey.
Geekette 2 days ago 7 replies      
Ugh. This yanked a couple of thug tears outta me.

And for those wondering what place this has on HN, I actually read HN for interesting, often-not-technically-related news.

twstws 2 days ago 4 replies      
This was hard for me to read. I spent four years waiting to adopt a child.Did almost a year of training and home visits, then waited. And waited. Why does it take so long? Because we selfishly insisted that we'd only take one ortwo children. The social workers were not subtle in letting us know that we were selfish to not want a sibling group of 4 or 5(?!) kids all at once. They made it absolutely clear that we could not expect to have a newborn, and a child under 8 was unlikely.

So to hear that, on a hunch, a judge can give a newborn to a couple that had expressed no previous interest in having kids, wtf. It's a nice story, and I'm glad that it worked out so well for everyone. But for me it really underlines how fucked up the system really is.

siscia 2 days ago 9 replies      
Love the story.

When we talk about gay marriage and adoption I always need to query a little more, especially about the kids.

What's about Kevin ? His life is "perfectly normal" (how stupid is this expression) ? He is happy ? Does he have problem with his sexuality ?

Do anybody have any experience to share ?
Please to be obvious, in neither way...

(Why this is on HN ? Well, because I believe that HN is one of the best community on the internet, it is normal that people want to share stories and ask opinion to other they respect/admire)

RyanMcGreal 1 day ago 0 replies      
Well damn. Now I have to wipe these tears off my keyboard.
ck2 1 day ago 2 replies      
Lovely story but what kind of husband offers to adopt a child without even previously discussing it his wife?

Great relationship there. This story turned out well only because of her.

BTW this is why many cities now have a law there is no penalty to leave a newborn at a firestation, yet some cities still resist it.

gruseom 2 days ago 0 replies      
Pretty hard not to find that touching.
iaw 2 days ago 0 replies      
That is an amazing story.
ritchiea 2 days ago 0 replies      
Really heart warming. Also makes me wonder how they handled the financial challenges of raising a child as a young social worker and playwright couple in new york.
bobwaycott 2 days ago 0 replies      
What an absolutely beautiful story.
muriithi 1 day ago 0 replies      
This would never have happened in Kenya where the Children's Act expressly forbids homosexuals from adopting. Sad.
mynameishere 2 days ago 0 replies      
Foundlings are actually fairly common. The only novelty here is that the adoptive individuals are nontraditional.
paulnechifor 1 day ago 0 replies      
I'm wondering how many upvoted because they found the article worthwhile versus upvoting because they noticed the author is not a women and that's what's expected. I say this because to me it looks like it's something that's off-topic judging by the guidelines.
balabaster 2 days ago 0 replies      
Honestly if there was more of a proliferation of this kind of news instead of the constant barrage of negativity and fear that is pushed upon us through mainstream propaganda er... media channels then perhaps we wouldn't need the TSA with their hands up our butts feeling around for shit that isn't there... pun intended.
stretchwithme 2 days ago 0 replies      
My theory is that one of the reasons nature makes gay people is so that there are extra parents.
lysium 1 day ago 0 replies      
Touching story!
conroe64 1 day ago 1 reply      
What a corny story
Taylorious 2 days ago 0 replies      
Good story. Am I the only one who read the title as "We Found Our Son in Subway?" As in the restaurant.
chris_mahan 2 days ago 0 replies      
mtinkerhess 2 days ago 13 replies      
Great story. Can someone explain why this belongs on HN?
Mz 2 days ago 1 reply      
I don't know why people would say this does not belong here. Social hacking gets so little respect.

Two thumbs up.

mrb 2 days ago 3 replies      
It seems to be a fictional story. The author is a playwright and a screenwriter. No last names are given (except the author), and the desire for anonymity is not explicitly stated.

I am surprised the NYT Editor did not ask the author to make it clear if it is a fictional or real story.

Andrew Mason's statement about being fired as Groupon CEO jottit.com
624 points by robbiet480  2 days ago   182 comments top 39
sethbannon 2 days ago 12 replies      
Full text of his statement:

(This is for Groupon employees, but I'm posting it publicly since it will leak anyway)

People of Groupon,

After four and a half intense and wonderful years as CEO of Groupon, I've decided that I'd like to spend more time with my family. Just kidding " I was fired today. If you're wondering why… you haven't been paying attention. From controversial metrics in our S1 to our material weakness to two quarters of missing our own expectations and a stock price that's hovering around one quarter of our listing price, the events of the last year and a half speak for themselves. As CEO, I am accountable.

You are doing amazing things at Groupon, and you deserve the outside world to give you a second chance. I'm getting in the way of that. A fresh CEO earns you that chance. The board is aligned behind the strategy we've shared over the last few months, and I've never seen you working together more effectively as a global company " it's time to give Groupon a relief valve from the public noise.

For those who are concerned about me, please don't be " I love Groupon, and I'm terribly proud of what we've created. I'm OK with having failed at this part of the journey. If Groupon was Battletoads, it would be like I made it all the way to the Terra Tubes without dying on my first ever play through. I am so lucky to have had the opportunity to take the company this far with all of you. I'll now take some time to decompress (FYI I'm looking for a good fat camp to lose my Groupon 40, if anyone has a suggestion), and then maybe I'll figure out how to channel this experience into something productive.

If there's one piece of wisdom that this simple pilgrim would like to impart upon you: have the courage to start with the customer. My biggest regrets are the moments that I let a lack of data override my intuition on what's best for our customers. This leadership change gives you some breathing room to break bad habits and deliver sustainable customer happiness " don't waste the opportunity!

I will miss you terribly.



sethbannon 2 days ago 3 replies      
I've had little respect for the way Mason ran Groupon, but I have immense respect for the way he's handling his dismissal.
kurtvarner 2 days ago 0 replies      
Here's a copy of his statement.


(This is for Groupon employees, but I'm posting it publicly since it will leak anyway)

People of Groupon,

After four and a half intense and wonderful years as CEO of Groupon, I've decided that I'd like to spend more time with my family. Just kidding " I was fired today. If you're wondering why… you haven't been paying attention. From controversial metrics in our S1 to our material weakness to two quarters of missing our own expectations and a stock price that's hovering around one quarter of our listing price, the events of the last year and a half speak for themselves. As CEO, I am accountable.

You are doing amazing things at Groupon, and you deserve the outside world to give you a second chance. I'm getting in the way of that. A fresh CEO earns you that chance. The board is aligned behind the strategy we've shared over the last few months, and I've never seen you working together more effectively as a global company " it's time to give Groupon a relief valve from the public noise.

For those who are concerned about me, please don't be " I love Groupon, and I'm terribly proud of what we've created. I'm OK with having failed at this part of the journey. If Groupon was Battletoads, it would be like I made it all the way to the Terra Tubes without dying on my first ever play through. I am so lucky to have had the opportunity to take the company this far with all of you. I'll now take some time to decompress (FYI I'm looking for a good fat camp to lose my Groupon 40, if anyone has a suggestion), and then maybe I'll figure out how to channel this experience into something productive.

If there's one piece of wisdom that this simple pilgrim would like to impart upon you: have the courage to start with the customer. My biggest regrets are the moments that I let a lack of data override my intuition on what's best for our customers. This leadership change gives you some breathing room to break bad habits and deliver sustainable customer happiness " don't waste the opportunity!

I will miss you terribly.



jedwhite 2 days ago 0 replies      
"Nothing in his life
Became him like the leaving it."

King Duncan:
Is execution done on Cawdor? Are not
Those in commission yet return'd?

My liege,
They are not yet come back. But I have spoke
With one that saw him die; who did report
That very frankly he confessed his treasons,
Implor'd your Highness' pardon, and set forth
A deep repentance. Nothing in his life
Became him like the leaving it.

Macbeth Act 1, scene 4, 1"8

NZ_Matt 2 days ago 0 replies      
Andrew Warner of Mixergy interviewed Andrew Mason in 2010 while Groupon was at its peak. I haven't had a chance to re-watch it yet but I imagine it'll be a very interesting watch given recent events.

Here's the video: http://blip.tv/mixergy/mixergy-groupon-andrew-mason-3852853

And transcript: http://mixergy.com/andrew-mason-groupon-interview/

choxi 2 days ago 0 replies      
I used to work at Groupon, and for all the shit it gets there are a lot of good people working on ambitious problems there and this letter is exemplary of the kind of character that inspired people to work there.

Best of luck to them as they try to turn things around.

sfink 1 day ago 1 reply      
Errrr... I'm not really getting the tenor of many of the comments here.

For one, look at what he isn't saying. But start with what we know.

He is being fired. That means he isn't leaving by choice, and most likely doesn't want to be leaving at all.

He is the CEO, and the CEO takes responsibility for the company's failures. Them's the rules of the game, for any leadership role. He is saying no more than that.

In particular, he never says he was wrong. He says he failed to continue being the successful CEO of this particular company. In fact, he somewhat obscurely implied that his intuition was right when what the company did turned out to be wrong. Why do you think the company did those things then? Did he tell it to, or did he lose the battle?

This letter was not written to us. It was written to the people at his company. People who are important to him. Which means it probably wasn't written for us either. The speculation that this is wholly a calculated move seem BS to me.

All that is just pointing out the known facts and suggesting likely deductions. More speculatively, I'd like to share my interpretation of the tone of the letter:

He's pissed. He's pissed but doesn't want to show it. He is staying well in control, writing a decent letter that puts something of himself into it but not too much, not enough to lose face or stir up conflict that could only harm the ones left behind. He's trying to bow out gracefully without capitulating, and I think he did a decent job of it. But this is no "wow, this guy is awesome, I bet he's learned some great lessons and I'd be stoked at the chance to work with him" letter. It's adequate, mainly admirable for hitting just the right level of adequacy when you know the guy probably wants to scream and rip someone or something's head off. He just got fired, dammit!

goronbjorn 2 days ago 0 replies      
I saw Andrew Mason speak at Startup School in 2010; the headline of his talk was 'Polishing your turds and GETTING SUPER RICH.'


unreal37 2 days ago 0 replies      
I'm surprised that there's not more comment that they guy taking over, Eric Lefkofsky, is the "slimy one" that made Groupon such as sleazy IPO, not Mason, for cashing out $1BB+ pre-IPO.
Volscio 2 days ago 0 replies      
Check out Andrew Mason's bio blurb at WSJ. Weird. http://topics.wsj.com/person/M/Andrew-Mason/6435
rayiner 2 days ago 2 replies      
As a fellow Northwestern grad it disappointing to see him go, but as a lover of Chicago its probably for the best. I'd really love to see GroupOn succeed and help anchor a diversified tech presence in the city. We have some great startups, but you need big public companies in the same way a mall needs a Macys, Nordstrom, etc.
nhangen 2 days ago 0 replies      
How fitting for a man that built a predatory company to be ousted by predatory executives.
octatone2 2 days ago 2 replies      
Chrome throws a security error up for this site:

The site's security certificate is not trusted!
You attempted to reach www.jottit.com, but the server presented a certificate issued by an entity that is not trusted by your computer's operating system. This may mean that the server has generated its own security credentials, which Google Chrome cannot rely on for identity information, or an attacker may be trying to intercept your communications.
You cannot proceed because the website operator has requested heightened security for this domain.

millerc 2 days ago 1 reply      
Dear Andrew,

One bad year and a couple missed objectives, and your boss fires you? Looks like you were dealing with somebody who doesn't invest in training his employees... you'll be much happier working for somebody else.


an observer

Cherian 2 days ago 1 reply      
My biggest regrets are the moments that I let a lack of data override my intuition on what's best for our customers.

Are there more insights in this? What do you think are the intuition decisions Groupon took (that's public) that probably wasn't against data?

It might seem obvious in retrospect, but as a startup founder I'd love to learn in context.

kamaal 1 day ago 0 replies      
This is classy, glorious and full of honor.

Me personally, I would love to fail like this someday.

The most big wins in my life have come after big failures. This guy is set for something big in life.

photorized 2 days ago 1 reply      
Sorry, I am not buying this.

He knows what he is doing.

kgosser 1 day ago 0 replies      
It's shocking to me how bad the HN community is getting when I check out of a comment thread every couple weeks or so.
wilfra 2 days ago 1 reply      
Your app crashed from the traffic
brunorsini 2 days ago 0 replies      
Battletoads is definitely one of the best platform games ever created, kudos for the reference. It's playable on online NES emulators such as http://www.playnes.net/play/107/Battletoads.html
michaelwolfe 2 days ago 0 replies      
Andrew took Groupon further than 99.99% of all startups will ever go, then went out with a funny, accountable, and humble goodbye note.

If you honestly embrace startup risk and failure, you simply cannot bash this guy.

redact207 2 days ago 1 reply      
The problem isn't the CEO, it's the business model.
dylangs1030 2 days ago 1 reply      
Heads up, as of this writing, the website is down. I think we accidentally slashdotted the page.

Anyone confirm it's not just me?

sk2code 2 days ago 3 replies      
Another Steve Jobs in the making. This has happened with Steve as he was fired after founding Apple.
droithomme 1 day ago 0 replies      
That's a great letter.
beedogs 1 day ago 0 replies      
$25 IPO stock about to become an OTC stock.
mmuro 2 days ago 1 reply      
I was okay with this until the third paragraph.
camkego 1 day ago 1 reply      
Well done.

"I let a lack of data override my intuition on what's best for our customers."
Isn't it intuition that becomes the problem when faced with a lack of data?

joonix 1 day ago 0 replies      
I'm curious why he was "fired" rather than given the "opportunity to resign."
alxbrun 1 day ago 0 replies      
I don't like Mason, but I like this smart, classy, honest message. And he has a great sense of humour.
kvirani 1 day ago 0 replies      
This is a true testament to the difference between startup and cube culture.
sideproject 2 days ago 0 replies      
an honest post. I haven't really followed what's going on with Groupon or the whole daily deal space, but good on him for driving the whole world insane with the daily deal craze. Seriously, two years ago, finding daily deals online was EVERYWHERE - it's not easy to start something like that.

It's like... Gangnam style for startups!!!

donflamenco 2 days ago 0 replies      
Groupon has Jeff Holden, who was an extraordinary exec at Amazon in the earlier days.

He might be a good fit for CEO.

skulquake 2 days ago 0 replies      
Overall Andrew has done a awesome job, from just being a guy with a great idea and taking it to be the fastest growing company in history while inventing a new space is quite remarkable. I think everyone on this board would have liked to hit a homerun like this after only a couple hits at the plate.
codeme 1 day ago 0 replies      
He has made his money. Enough to do another startup.
aaronbird 1 day ago 0 replies      
I love how candid he is in this letter. Good stuff.
redment 2 days ago 0 replies      
Does anyone know how many employees Groupon has?
just2n 1 day ago 1 reply      
Groupon fires an excellent CEO while Yahoo's new CEO is utterly impervious (for whatever reason) and is getting away with waging a holy war against engineers? What is going on?

Can I expect the laws of physics suddenly to invert tomorrow?

How I Fired Myself mkrecny.com
589 points by mkrecny  3 days ago   405 comments top 139
bguthrie 3 days ago 21 replies      
More than anything else, this describes an appalling failure at every level of the company's technical infrastructure to ensure even a basic degree of engineering rigor and fault tolerance. It's noble of the author to quit, but it's not his fault. I cannot believe they would have the gall to point the blame at a junior developer. You should expect humans to fail: humans are fallible. That's why you automate.
columbo 3 days ago 5 replies      
News flash,

If you are a CEO you should be asking this question: "How many people in this company can unilaterally destroy our entire business model?"

If you are a CTO you should be asking this question: "How quickly can we recover from a perfect storm?"

They didn't ask those questions, they couldn't take responsibility, they blamed the junior developer. I think I know who the real fuckups are.

As an aside: Way back in time I caused about ten thousand companies to have to refile some pretty important government documents because I was doubling xml decoding (&amp; became &amp;amp;). My boss actually laughed and was like "we should have caught this a long time ago"... by we he actually meant himself and support.

xentronium 3 days ago 3 replies      
This is certainly a monumental fuckup, but these things inevitably happen even with better development practices, this is why you need backups, preferably daily, and as much separation of concerns and responsibilities as humanly possible.


I am working for a company that does some data analysis for marketers aggregated from a vast number of sources. There was a giant legacy MyISAM (this becomes important later) table with lots of imported data. One day, I made some trivial looking migration (added a flag column to that table). I tested it locally, rolled it out to staging server. Everything seemed A-OK until we started migration on the production server. Suddenly, everything broke. By everything, I mean EVERYTHING, our web application showed massive 500-s, total DEFCON1 across the whole company. It turned out we ran out of disk space, since apparently myisam tables are altered the following way: first the table is created with updated schema, then it is populated with data from the old table. MyISAM ran out of disk space and somehow corrupted the existing tables, mysql server would start with blank tables, with all data lost.

I can confirm this very feeling: "The implications of what I'd just done didn't immediately hit me. I first had a truly out-of-body experience, seeming to hover above the darkened room of hackers, each hunched over glowing terminals." Also, I distinctly remember how I shivered and my hands shook. It felt like my body temperature fell by several degrees.

Fortunately for me, there was a daily backup routine in place. Still, several hour long outage and lots of apologies to angry clients.

"There are two types of people in this world, those who have lost data, and those who are going to lose data"

grey-area 3 days ago 6 replies      
Tens of thousands of paying customers and no backups?

No staging environment (from which ad-hoc backups could have been restored)!?!?

No regular testing of backups to ensure they work?

No local backups on dev machines?!?

Using a GUI tool for db management on the live db?!?!?

No migrations!?!?!

Junior devs (or any devs) testing changes on the live db and wiping tables?!?!?!

What an astonishing failure of process. The higher ups are definitely far more responsible than some junior developer for this, he shouldn't have been allowed near the live database in the first place until he was ready to take changes live, and then only on to a staging environment using migrations of some kind which could then be replayed on live.

They need one of these to start with, then some process:


cedsav 3 days ago 3 replies      
Whoever was your boss should have taken responsibility. Someone gave you access to the production database instead of setting up a proper development and testing environment. For a company doing "millions" in revenues, it's odd that they wouldn't think of getting someone with a tiny bit of experience to manage the development team.
cmos 3 days ago 1 reply      
When I was 18 I took out half my towns power for 30 minutes with a bad scada command. It was my summer job before college and I went from cleaning the warehouse to programming the main SCADA control system in a couple weeks.

Alarms went off, people came running in freaking out, trucks started rolling out to survey the damage, hospitals started calling about people on life support and how the backup generators were not operational, old people started calling about how they require AC to stay alive and should they take their loved ones on machines to the hospital soon.

My boss was pretty chill about it. "Now you know not to do that" were his words of wisdom, and I continued programming the system for the next 4 summers with no real mistakes.

hackoder 3 days ago 1 reply      
I was in a situation very similar to yours. Also a game dev company, also lots of user data etc etc. We did have test/backup databases for testing, but some data was just on live and there was no way for me to build those reports other than to query the live database when the load was lower.

In any case, I did a few things to make sure I never ended up destroying any data. Creating temporary tables and then manipulating those.. reading over my scripts for hours.. dumping table backups before executing any scripts.. not executing scripts in the middle/end of the day, only mornings when I was fresh etc etc.

I didn't mess up, but I remember how incredibly nerve wracking that was, and I can relate to the massive amount of responsibility it places on a "junior" programmer. It just should never be done. Like others have said, you should never have been in that position. Yes, it was your fault, but this kind of responsibility should never have been placed on you (or anyone, really). Backing up all critical data (what kind of company doesn't backup its users table?! What if there had been hard disk corruption?), and being able to restore in minimum time should have been dealt with by someone above your pay grade.

lkrubner 3 days ago 0 replies      
Klicknation is hiring. Of themselves, they say:

"We make astonishingly fun, ferociously addictive games that run on social networks.
...KlickNation boasts a team of extremely smart, interesting people who have, between them, built several startups (successful and otherwise); written a novel; directed music videos; run game fan sites; illustrated for Marvel Comics and Dynamite Entertainment with franchises like Xmen, Punisher, and Red Sonja; worked on hit games like Tony Hawk and X-Men games; performed in rock bands; worked for independent and major record lables; attended universities like Harvard, Stanford, Dartmouth, UC Berkeley; received a PhD and other fancy degrees; and built a fully-functional MAME arcade machine."

And this is hilarious: their "careers" page gives me a 404:


That link to "careers" is from this page:


I am tempted to apply simply to be able to ask them about this. It would be interesting to hear if they have a different version of this story, if it is all true.

Morendil 3 days ago 0 replies      
So the person who made a split-second mistake while doing his all for the business was pressured into resigning - basically, got fired.

What I want to know is what happened to whoever decided that backups were a dispensable luxury? In 2010?

There's a rule that appears in Jerry Weinberg's writings - the person responsible for a X million dollar mistake (and who should be fired over such a mistake) is whoever has controlling authority over X million dollars' worth of the company's activities.

A company-killing mistake should result in the firing of the CEO, not in that of the low-level employee who committed the mistake. That's what C-level responsibility means.

(I had the same thing happen to me in the late 1990's, got fired over it. Sued my employer, who opted to settle out of court for a good sum of money to me. They knew full well they had no leg to stand on.)

Yare 3 days ago 0 replies      
If it helps explain things, the only experience the CEO had before this social game shop was running a literal one-man yogurt shop.

This happened a week before I started as a Senior Software Engineer. I remember getting pulled into a meeting where several managers who knew nothing about technology were desperately trying to place blame, figure out how to avoid this in the future, and so on.

"There should have been automated backups. That's really the only thing inexcusable here.", I said.

The "producer" (no experience, is now a director of operations, I think?) running the meeting said that was all well and good, but what else could we do to ensure that nobody makes this mistake again? "People are going to make mistakes", I said, "what you need to focus on is how to prevent it from sinking the company. All you need for that is backups. It's not the engineer's fault.". I was largely ignored (which eventually proved to be a pattern) and so went on about my business.

And business was dumb. I had to fix an awful lot of technical things in my time there.

When I started, only half of the client code was in version control. And it wasn't even the most recent shipped version. Where was the most recent version? On a Mac Mini that floated around the office somewhere. People did their AS3 programming in notepad or directly on the timeline. There were no automated builds, and builds were pushed from peoples' local machines -often contaminated by other stuff they were working on. Art content live on our CDN may have had source (PSD/FLA) distributed among a dozen artist machines, or else the source for it was completely lost.

That was just the technical side. The business/management side was and is actually more hilarious. I have enough stories from that place to fill a hundred posts, but you can probably get a pretty good idea by imagining a yogurt-salesman-cum-CEO, his disbarred ebay art fraudster partner, and other friends directing the efforts of senior software engineers, artists, and other game developers. It was a god damn sitcom every day. Not to mention all of the labor law violations. Post-acquisition is a whole 'nother anthology of tales of hilarious incompetence. I should write a book.

I recall having lunch with the author when he asked me "What should I do?". I told him that he should leave. In hindsight, it might have been the best advice I ever gave.

mootothemax 3 days ago 1 reply      
The CEO leaned across the table, got in my face, and said, "this, is a monumental fuck up. You're gonna cost us millions in revenue".

No, the CEO was at fault, as was whoever let you develop against the production database.

If the CEO had any sense, he should have put you in charge of fixing the issue and then making sure it could never happen again. Taking things further, they could have asked you to find other worrying areas, and come up with fixes for those before something else bad happens.

I have no doubt that you would have taken the task extremely seriously, and the company would have ended up in a better place.

Instead, they're down an employee, and the remaining employees know that if they make a mistake, they'll be out of the door.

And they still have an empty users table.

munificent 3 days ago 0 replies      
> The CEO leaned across the table, got in my face, and said, "this, is a monumental fuck up. You're gonna cost us millions in revenue".

Yes, it is a monumental fuck-up. You put a button in front of a junior developer that can cost the company millions if he accidentally clicks it and doesn't even have undo.

kibwen 3 days ago 1 reply      
"I found myself on the phone to Rackspace, leaning on a desk for support, listening to their engineer patiently explain that backups for this MySQL instance had been cancelled over 2 months ago."

Here's something I don't get: didn't Rackspace have their own daily backups of the production server, e.g. in case their primary facility was annihilated by a meteor (or some more mundane reason, like hard drive corruption)?

Regardless, here's a thought experiment: suppose that Rackspace did keep daily backups of every MySQL instance in their care, even if you're not paying for the backup service. Now suppose they get a frantic call from a client who's not paying for backups, asking if they have any. How much of a ridiculous markup would Rackspace need to charge to give the client access this unpaid-for backup, in order to make the back-up-every-database policy profitable? I'm guessing this depends on 1) the frequency of frantic phone calls, 2) the average size of a database that they aren't being paid to back up, and 3) the importance and irreplacebility of the data that they're handling (and 4) the irresponsibility of their major clients).

caseysoftware 3 days ago 6 replies      
One of the things I like asking candidates is "Tell me about a time you screwed up so royally that you were sure you were getting fired."

Let's be honest, we all have one or two.. and if you don't, then your one or two are coming. It's what you learned to do differently that I care about.

And if you don't have one, you're either a) incredibly lucky, b) too new to the industry, or c) lying.

bambax 3 days ago 1 reply      
Once, a long time ago, I spent the best part of a night writing a report for college, on an Amstrad PPC640 (http://en.wikipedia.org/wiki/PPC_512).

Once I was finished, I saved the document -- "Save" took around two minutes (which is why I rarely saved).

I had an external monitor that was sitting next to the PC; while the saving operation was under way, I decided I should move the monitor.

The power switch was on top of the machine (unusual design). While moving the monitor I inadvertently touched this switch and turned the PC of... while it was writing the file.

The file was gone, there was no backup, no previous version, nothing.

I had moved the monitor in order to go to bed, but I didn't go to bed that night. I moved the monitor back to where it was, and spent the rest of the night recreating the report, doing frequent backups on floppy disks, with incremental version names.

This was in 1989. I've never lost a file since.

newishuser 3 days ago 1 reply      
You did them more good than harm.

1) Not having backups is an excuse-less monumental fuckup.

2) Giving anyone delete access to your production db, especially a junior dev through a GUI tool, is an excuse-less monumental fuckup.

Hopefully they rectified these two problems and are now a stronger company for it.

cantlin 3 days ago 0 replies      
Last year I worked at a start-up that had manually created accounts for a few celebrities when they launched, in a gutsy and legally grey bid to improve their proposition†. While refactoring the code that handled email opt-out lists I missed a && at the end of a long conditional and failed to notice a second, otherwise unused opt-out system that dealt specifically with these users. It was there to ensure they really, really never got emailed. The result?


What a screw up!

These mistakes are almost without fail a healthy mix of individual incompetence and organisational failure. Many things - mostly my paying better attention to functionality I rewrite, but also the company not having multiple undocumented systems for one task, or code review, or automated testing - might have saved the day.

[†] They've long been removed.

JohnBooty 3 days ago 2 replies      
This happened to me once on a much smaller scale. Forgot the "where" clause on a DELETE statement. My screwup, obviously.

We actually had a continuous internal backup plan, but when I requested a restore, the IT guy told me they were backing up everything but the databases, since "they were always in use."

(Let that sink in for a second. The IT team actually thought that was an acceptable state of affairs: "Uh, yeah! We're backing up! Yeah! Well, some things. Most things. The files that don't get like, used and stuff.")

That day was one of the lowest feelings I ever had, and that screwup "only" cost us a few thousand dollars as opposed to the millions of dollars the blog post author's mistake cost the company. I literally can't imagine how he felt.

laumars 3 days ago 0 replies      
I really feel sorry for this guy. Accidents happen, which is why development happens in a sandboxed copy of the live system and why back ups are essential. It simple shouldn't be possible (or at least, that easy) for human error to put an entire company in jeopardy.

Take my own company, I've accidentally deleted /dev on development servers (not that major of an issue thanks to udev, but the timing of the mistake was lousy), a co-worker recently dropped a critical table on dev database and we've had other engineers break Solaris by carelessly punching in chmod -R / as root (we've since revised engineers permissions so this is no longer possible). As much as those errors are stupid and as much as engineers of our calibre should know better, it can only takes a minor lack of concentration at the wrong moment to make a major fsck up. Which is doubly scary when you consider how many interruptions the average engineer gets a day.

So I think the real guilt belongs to the entire technical staff as this is a cascade of minor fcsk ups that lead to something catastrophic.

islon 3 days ago 3 replies      
I know how you felt. Many years ago when I was a junior working in a casual game company, I were to add a bunch of credits to a poker player (fake money). I forget the where in the SQL clause and added credits to every player in our database. Lucky me it was an add and not a set and I could revert it. Another time I was going to shutdown my pc (a debian box) using "shutdown -h now" and totally forgot that I was in a ssh session to our main game server. I had to call the tech support overseas and tell him to physically turn on the server...
alan_cx 3 days ago 0 replies      
I cannot believe that people still don't have reliable back up in place.

My feeling is this:
If you are in any way responsible for data that is not backed up, you should be fired or resign right now. You should never work in IT, in anyway, ever again. If you are the CEO of a company in a similar state, again, fire your self right now. Vow to never ever run a business again. This is 2013. And guess what? You still can't buy your unique data back from PCWorld. Your data is "the precious".

As for the treatment of this guy, IMHO, his employers were the worst kind of spineless cowards. This was 100% the fault of the management, and you know what? They know it. To not have backups is negligent, and should result in a high up firings. Yet these limp cowards sought to blame this kid. Pure corporate filth of the lowest order. Even the fact he was junior is irrelevant, any one could have done that, more likely a cocky senior taking some short cut. Let me tell you now, I have made a similar cock up, and I think I know it all. But I had backups, and lucky for me, it was out of business hours. Quick restore, and the users never knew. I did fess up to my team since I thought it had direct value as a cautionary tail.

Frankly, I am utterly amazed and gutted that such a thing can still happen. The corporate cowardice is sadly expected, but to not have backups is literally unforgivable negligence.

Yeah, Im quite fundamentalist about data and backups. I'd almost refer to my self as a backup jihadist.

mootothemax 3 days ago 2 replies      
If you ever notice that your employer or client isn't backing up important data, take a tip from me: do a backup, today, in your free time, and if possible, and again in your free time, create the most basic regular backup system you can.

When the time comes, and someone screws up, you will seem like a god when you deliver your backup, whether it's a 3-month-old one-off, or from your crappy daily backup system.

leothekim 3 days ago 0 replies      
Mistakes happen, and there should have been better safeguards -- backups, locking down production, management oversight.

But, I actually applaud how he tried to take responsibility for his actions and apologized. Both "junior" AND "senior" people have a hard time doing this. I've seen experienced people shrug and unapologetically go home at 6pm after doing something equivalent to this.

The unfortunate thing here seems to be that he took his own actions so personally. He made an honest mistake, and certainly there were devastating consequences, but it's important to separate the behavior from the person. I hope he realizes this in time and forgives himself.

pmelendez 3 days ago 1 reply      
There are several reasons why you should not feel guilty. The company was asking for trouble and you just happen to be the trigger. These are the three top things that could prevented that incident.

1) A cron job for the manually task you were doing.

2) Not working directly on production.

3) Having daily backups

And this could happened to anybody. After midnight any of us are at junior level and very prone to do this kind of mistakes.

Tichy 2 days ago 0 replies      
Just wondering, when consulting I usually take care that there are appropriate clauses in the contract to make me not liable. But what is the rule for employees, are they automatically insured?

In Germany there is the concept of "Fahrlässig" (negligence) and "severe negligence". Per law you are already liable if you are just negligent, but it is possible to lower it to severe negligence in the contract. That is my understanding anyway (not a lawyer). Usually I also try to kind of weasel out of it by saying the client is responsible for appropriate testing and stuff like that... Overall it is a huge problem, though, especially if the client has a law department. Getting insurance is quite expensive because it's easy to create millions of dollars in damages in IT.

Before court "standard best practices" can become an issue, too. This worries me because I don't agree with all the latest fads in software development. It seems possible that in the future x% test coverage could be required by law, for example. Or even today a client could argue that I didn't adhere to standard best practices if I don't have at least 80% test coverage (or whatever, not sure what a reasonable number would be).

hcarvalhoalves 3 days ago 0 replies      
You should fire the company for not having a staging environment nor up-to-date backups.
noonespecial 3 days ago 0 replies      
This was a "sword of Damocles" situation. No backups, no recovery plan, and now clue how important any of these things were.

A thousand things can make an SQL table unreadable. "What do we do when this happens" is what managers are for, not finding someone to blame for it.

Kesty 3 days ago 0 replies      
I've did a very similar thing after one year working at my company instead of clearing the whole user table I replaced every user information with my account information.

I forgot to copy the WHERE part of the query .....

The only difference is that it was policy to manually do a backup before doing anything on production and the problem was restored in less than 10 minutes. Even if I had forgotten to make a backup manually we had a daily complete backup and an incremental one every couple of hours.

malux85 3 days ago 4 replies      
Whoever cancelled the backups was equally responsible
Spooky23 3 days ago 0 replies      
If I were the author, I would rewrite this and reflect on what was actually wrong here. At the end of the day, you resigned out of shame for a serious incident that you triggered.

But the fact that the organization allowed you to get to that point is the issue. Forget about the engineering issues and general organizational incompetence... the human side is the most incredibly, amazingly ridiculous.

I respect your restraint. If I was singled out with physical intimidation by some asshat boss while getting browbeaten by some other asshat via Skype, I probably would have taken a swing at the guy.

Competent leadership would start with a 5-why's exercise. Find out why it happened, why even the simplest controls were not implemented. I've worked in places running on a shoestring, but the people in charge were well aware of what that meant.

johngalt 3 days ago 0 replies      
"How I was setup to fail."

Who asks junior engineer to develop directly on live systems with write access and no backup? Are you kidding me?

Edit: No one ever builds a business thinking about this stuff, until something like this happens. There are people who have learned about operations practices the hard way, and those who are about to. They hung the author out to dry for a collective failure and it shows that this shop is going to be taught another expensive lesson.

jtchang 3 days ago 0 replies      
I'm with everyone else in this thread: you screwed up but in reality it is EXPECTED.

Do you know why I have backups? Because I'm not perfect and I know one day I will screw up and somehow drop the production database. Or mess up a migration. Or someone else will. This is stuff that happens ALL THE TIME.

Your CEO/CTO should have been fired instead. It is up to the leadership to ensure that proper safeguards are in place to avoid these difficult conversations.

eric_bullington 3 days ago 0 replies      
Wow, I'm sorry you had to experience that. I'm sure it was traumatic -- or perhaps you took it better than I would have. It must be of some comfort to look back now and realize that you only bore a small part of the blame, and that ultimately a large potion of the responsibility lies on the shoulders of whomever set up the dev environment like that, as well as whomever cancelled backups.
rhizome 3 days ago 0 replies      
The CEO leaned across the table, got in my face, and said, "this, is a monumental fuck up. You're gonna cost us millions in revenue". His co-founder (remotely present via Skype) chimed in "you're lucky to still be here".

This is when you should have left. That's no way to manage a crisis.

kyllo 3 days ago 0 replies      
Sounds like no one else at that company had any more of a clue what they were doing than you did. The whole scenario is horrifying.
aidos 3 days ago 0 replies      
Ah ha ha ah yeah.... I've done that.

Something similar anyway (was deleting rows from production and hadn't selected the where clause of my query before I ran it).

It was on my VERY FIRST DAY of a new job.

Fortunately they were able to restore a several hours old copy from a sync to dev but the wasn't a real plan in place for dealing with such a situation. There could have just as easily not been a recent backup.

This was in a company with 1,000 employees (dev team of 50) and millions in turnover. I've worked other places that are in such a precarious position too.

At least my boss at the time took responsibility for it - new dev (junior), first day, production db = bad idea.

Yhippa 3 days ago 0 replies      
"The implications of what I'd just done didn't immediately hit me. I first had a truly out-of-body experience, seeming to hover above the darkened room of hackers, each hunched over glowing terminals."

Holy crap. I know that _exact_ same feeling. I had to laugh. I know that out-of-body feeling all too well.

greghinch 3 days ago 0 replies      
Whoever a) gave production db access to a "junior" engineer and b) disabled backups of said database is at fault. I hope the author takes this more as a learning experience of how to (not) run a tech department than any personal fault.

Someone who has to use a GUI to manage a db at a company of that scale shouldn't have access to prod

lallouz 3 days ago 1 reply      
I would love to see some reflection on this story from OP.
What do you think you learned from this experience?
Do you think your response was appropriate?
What would you have done differently?
Are you forever afraid of Prod env?

Many, many , many of us have been in this situation before, whether as 'monumental' or not. So it is interesting to hear how others handle it.

doktrin 3 days ago 1 reply      
I found myself doing very much this my very first day on the job working for a software startup.

We had a Grails app that acted as a front end for a number of common DB interactions, which were selected via a drop down. One of these (in fact, the default) action was titled "init DB". Of course, this would drop any existing database and initialize a new one.

When running through the operational workflow with our COO on the largest production database we had, I found myself sleepily clicking through the menu options without changing the default value. I vividly remember the out of body experience the OP describes, and in fact offered to fire myself on the spot shortly thereafter.

It's fun to laugh about in hindsight, but utterly terrifying in the moment - to say nothing of the highly destructive impact it had on my self confidence.

KVFinn 3 days ago 0 replies      
>I was 22 and working at a Social Gaming startup in California.

>Part of my naive testing process involved manually clearing the RAIDS table, to then recreate it programatically.

>Listening to their engineer patiently explain that backups for this MySQL instance had been cancelled over 2 months ago.

"The CEO leaned across the table, got in my face, and said, "this, is a monumental fuck up. You're gonna cost us millions in revenue".

What. The. Fuck.

The LAST person I would blame is the brand new programmer. They don't backup up their production database? If it wasn't this particular incident it would have been someone else, or a hardware failure.

ownagefool 2 days ago 0 replies      
I worked at a small web hosting company that did probably £2m in revenue a year in my first programming job. They had me spending part of my time as support and the other part on projects.

After about 3 or so months they took me took me out of support and literally placed my desk next to the only full time programmer that company had.

They made all changes direct on live servers and I'd already raised this as a concern and now that became my full time job it was agreed that I'd be allowed to create a dev environment.

Long story short, I exported the structure of our MySQL database and imported it into dev. Some variable was wrong so it didn't all import, so I changed the variable, dropped the schema and back to redo.

Yeah that was the live database I just dropped. After a horrible feeling that I can't really explain I fessed up. I dropped it during lunch so it took about two hours to get a restore.

The owner went mad but most other people were sympathetic, telling me their big mistakes and telling me thats what backups were for.

The owner was going crazy about losing money or something and the COO pulled me into a room. I thought I was getting fired but he just asked me what happened and said "yeah we all make mistakes, thats fair enough, just try not to do it again".

I was then told to get on with it and it must have took me a day to finish what would have taken me an hour but I done it and now we had a process and a simple dev environment. I lasted another two years there. I left over money.

niggler 3 days ago 0 replies      
If you want to see monumental screw-up, look at knight capital group (they accumulated a multi billion dollar position in the span of minutes, losing upwards of $440M, and ended up having to accept a bailout and sell itself to GETCO):


S_A_P 3 days ago 0 replies      
Sounds to me like this operation was second rate and not run professionally. If this sort of incident is even able to happen, you're doing it wrong. Maybe it's just my experience with highly bureaucratic oil and gas companies, but the customer database has no backup for 2 months?!?!?!?!?!?!

That is asinine. What would they have done if they couldn't pin it on a junior engineer? A disk failure would have blown them out of the water. I think he did them a favor, and hopefully they learned from that.

lucb1e 1 day ago 0 replies      
Let me get this straight.

- Tens of thousands of paying customers

- No backups

- Working in a production database

- Having the permissions to empty that table

- Even having read access to that table with customer info...

You are hardly responsible. Yeah you fucked up badly, but everyone makes mistakes. This was a big impact one and it sucks, but the effect it had was in now way your fault. The worst-case scenario should have been two hours of downtime and 1-day-old data being put back in the table, and even that could have been prevented easily with decent management.

superflit 3 days ago 0 replies      
I would fire the CTO for canceling the backups.

NEVER.. NEVER go production without backup.

Backup is not only to 'recover' but to have a 'historical' data for audits, check for intrusion, etc.

And the 'other' guy on Skype?

'You are lucky to be here..'

You are lucky to still talk using skype because I am sure skype has some kind of backup at their user table..

desireco42 3 days ago 1 reply      
I was working two years ago in very successful, billion dollar startup. All developers had production access, but then, if you didn't know what you were doing, you would not be working there. Also, we didn't routinely access production and when we did, mostly for support issues on which we rotated, we did through 'rails console' environment that enforced business rules.
In theory you could delete all data, but only in theory, and even then, we could restore it with minimal downtime.

I think it is obvious that CEO/CTO are the one to be held responsible here.

chris_mahan 3 days ago 0 replies      
Let me make it really simple: Anything that happens in a company is always, always management's fault. The investors hire the management ream to turn a pile of money into a bigger pile of money, and if management fails, it is management's fault, because it can do whatever it needs to do (within the law) to make that happen. That they failed to hire, train, motivate, fire, promote, follow the law, develop the right products, market them well, ensure reliability, ensure business sustainability, ensure reinvestment in research and development, and ultimately satisfy investor, is their fault, and they further demonstrate their failure by not taking responsibility for their own failure and blaming others.
pja 3 days ago 0 replies      
I doubt the problems this company had started when they employed the author of this blog post!
KenL 3 days ago 0 replies      
I agree with the comments here that spread the blame past this author.

I manage a large number of people at a news .com site and know that screw-ups are always a combination of two factors: people & systems.

People are human and will make mistakes. We as upper management have to understand that and create systems, of various tolerance, that deal with those mistakes.

If you're running a system allowing a low-level kid to erase your data, that was your fault.

I'd never fire someone for making a stupid mistake unless it was a pattern.

samstave 3 days ago 0 replies      
This was clearly a lack of oversight and sound engineering practices.

Who cancelled the backups? Why were they cancelled? Was it for non-payment of that service?


I worked for an absolutely terrible company as Director of IT. The CEO and CTO were clueless douchebags when it came to running a sound production operation.

The CTO would make patches to the production system on a REGULAR basis and break everything, with the statement "that's funny... that shouldn't have happened"

I had been pushing for dev|test|prod instances for a long time - and at first they appeared to be on-board.

When I put the budget and plan together, they scoffed at the cost, and reiterated how we needed to maintain better up-time metrics. Yet they refused to remove Dave's access to the production systems.

After a few more outages, and my very loud complaining to them that they were farking up the system by their inability to control access - I saw that they had been hunting for my replacement.

They were trying to blame me for the outages and ignoring their own operational faults.

I found another job and left - they offered me $5,000s to not disparage them after I left. I refused the money and told them to fark off. I was not going to lose professional credibility to their idiocy.

Worst company I have ever worked for.

ry0ohki 3 days ago 0 replies      
I think all developers have to do something like this at some point to get the compulsion I have which is backups to the extreme. I can never have enough backups. Any DROP/ALTER type change I make a backup. (And also learned to pretty much never work on a production db directly, and in the event I need to, doing a complete test of a script in staging first...)
fotoblur 3 days ago 0 replies      
I think that everyone does this at some point in their career. Don't let this single event define you. The most important thing to ask yourself is what was the lesson learned...not only from your standpoint but also from the business'.

In addition, to heal your pain its best to hear that you're not the only one who has ever done this. Trust me, all engineers I know have a story like this. (Please share yours HN - Here I even started a thread for it: http://news.ycombinator.com/item?id=5295262)

Here is mine:
When I worked for a financial institution my manager gave me a production level username and password to help me get through the mounds of red tape which usually prevented any real work from getting done. We were idealists at the time. Well I ended up typed that password wrong, more than 3 times...shit, I locked the account. Apparently half of production's apps were using this same account to access various parts of the network. Essentially, I brought down half our infrastructure in one afternoon.

Lesson learned: Don't use the same account for half your production apps. Not really my fault :).

systematical 3 days ago 0 replies      
Your CEO was correct. He should have also said the same thing to the guy who cancelled backups as well...and the guy who never put in place and periodically tested a disaster recovery plan. So much fail in this story, but mistakes happen and I've had my share as well.

I once (nah twice) left a piece of credit card processing code in "dev mode" and it wasn't caught until a day later costing the company over 60k initially. Though they were able to recover some of the money getting the loss down to 20k. Sheesh.

clavalle 3 days ago 1 reply      
Wow. So many mistakes.

Working in production database? Bad.

No backups of mission critical data? Super bad.

Using a relational database as a flat data store? Super bad.

Honestly...I think this company deserved what they got. Good thing the author got out of there. Hopefully in their new position they will learn better practices.

hkmurakami 3 days ago 0 replies      
I'm. a little worried for OP because he obviously took the time to keep the characters in this article anonymous, but we now know who this CEO with ridiculous behavior must have been, since we know the name of OP's former company from his profile. Not sure what said former CEO of Noe acquired company can do, but this is the kind of thing I fear happeneing toe when/if I write something negative about a past employer, being a blogger myself.
zaidf 2 days ago 0 replies      
It seems insane that you still worked 3 days in a row after a gigantic mistake that can be attributed in good part to being overworked.

Once the damage was done, I would have sent you home instead of overworking you further.

VexXtreme 3 days ago 0 replies      
In the author's defense, it wasn't all his fault. Whoever thought it was a good idea to:

1. Work directly on the production database
2. Not have daily backups
3. Not have data migrations in place for these kinds of situations

needs to be fired immediately. My guess is it was one of the 'senior' engineers and that the author only worked with what they gave him.

I've worked with all kinds of bozos but I've never seen this kind of incompetence. Ridiculous.

praptak 3 days ago 0 replies      
They should reward him. Seriously, anyone who exposed such a huge weakness deserves a reward. He limited the damage to only 10k users' data loss. With such abysmally crappy practices the damage would happen anyway only perhaps with 30k users and who knows what else instead of a mere 10k.
gearoidoc 3 days ago 0 replies      
This post just made me feel 10x smarter (not that I blame the author - the blame here lies at the feet of the "Senior" Devs).
fayyazkl 1 day ago 0 replies      
While i fully agree with the position of author not being responsible entirely, i find it hard to believe it happened the way it appears to be.

It could be but there are bunch of loopholes. - I can believe that he was lousy enough to click no "delete" on users table. I can believe that he when the dialog box asked "are you sure you want to drop this table" he clicked yes. I can believe that after deleting he "committed" the transaction. But what i can't believe that the database let him delete a table which was base for every other table implemented by a Foriegn key constraint ? It could be argued that due to efficiency they hadn't put constraints on the table but it's hard to digest.

Probably the story is some what tailored to fit to a post.

toomuchcoffee 2 days ago 0 replies      
The CEO leaned across the table, got in my face, and said, "this is a MONUMENTAL fuck up."

It certainly was -- on multiple levels, but ultimately up at the C-level. Blaming a single person (let a lone a junior engineer) for it just perpetuates the inbred culture of clusterfuckitude and cover-ass-ery which no doubt was the true root cause of the fuck-up in the first place.

friendly_chap 3 days ago 0 replies      
I think it is entirely clear from the writing that the author is a humble being. I feel sorry for him, from the writing it seems he is a much better person and engineer than most of the others at that company, pointing fingers at him.

The guy may be absentminded, but that is a trait of some of the brighest people on earth.

logn 3 days ago 0 replies      
Your response should have been: "With all due respect sirs, I agree that I am still lucky to be here, that the company is still here being that it's so poorly managed, that they cancelled their only backups with rackspace, that they had no contingency plans, and that you were one click from losing millions of dollars--in your estimate. It makes me wonder what other bills aren't being paid and what other procedures are woefully lacking. I will agree to help you though this mess and then we should all analyze every point of failure from all departments, and go from there."
mac1175 2 days ago 0 replies      
Wow. This reminds me of a time in which I used to work for a consulting agency. It was back in 2003 and I was working on a some database development for one of the company's biggest clients. One day, I noticed the msdb database had a strange icon telling me it was corrupted. I went onto MSDN and followed some instructions to fix it and, BAM, the database I was working for months on was gone (I was running SQL Server 2000 locally where this all happened and I was very junior as a SQL developer). I was silently freaking out knowing this could cost me my job. I got up from my desk and took a walk. On that walk, I contemplated my resignation. When I got back from my walk, a thought occurred to me that maybe the database file is still there (I had zero clue at the time that msdb's main purpose was just cataloguing the existing databases among other things). I did a file search in the MSSQL folders and found a file named with my database's name. So, that day I learned to attach a database, what msdb's role is, and to make sure to take precautions before making a fix! However, OP's post shows that this company had no processes in place control levels of access or disaster recovery. Show the company's faults more than OP's.
ferrouswheel 3 days ago 1 reply      
Ah, I remember being called away from my new year holiday when an engineer dropped our entire database.

This happened because they didn't realise they were connected to the production database (rather than their local dev instance). We were a business intelligence company, so that data was vital. Luckily we had a analysis cluster we could restore from, but afterwards I ensured that backups were happening... never again.

(Why were the backups not already set up? Because they were not trivial due to the size of the cluster and having only been CTO for a few months there was a long list of things that were urgently needed)

danielweber 3 days ago 0 replies      
I feel tremendous empathy for this guy.

Not because I've done this. But because there but for the grace of God go I. It wouldn't take much changing in the universe for me to be this guy.

I'm very glad he's posting it, and I hope everyone reads it, so you can learn from his very painful mistake instead of committing it yourself.

vinceguidry 3 days ago 0 replies      
I used to be a web freelance web developer/tech guy with one client, a designer. What made me quit was an incident where his client's Wordpress site hadn't been moved properly to the new hosting. (not by me)

The DB needed to be searched and replaced to remove all the old urls. After doing so, the wp_options cell on the production site holding much of the customizations kicked back to the defaults for the theme, the serialized data format being used was sensitive to brute DB-level changes.

I had talked to my client before about putting together a decent process including dev databases, scheduled backups, everything needed to prevent just such a screwup, but he waffled. Then blamed me when things went wrong.

I'd had enough and told him to do his own tech work, leaving him to fix his client's website himself. Being that I didn't build it, I didn't know which settings to flip back. I left freelance work and never looked back.

People and companies do this all the time, refuse to spend the time and money ensuring their systems won't break when you need them the most, then scapegoat the poor little technician when it does.

I'd like to say the answer is "don't work in such environments," but there's really no saying that it won't be this way at the next job you work, either.

I certainly wouldn't internalize any guilt being handed down, ultimately it's the founders' jobs to make sure that the proper systems are in place, after all, they have much more on the line than you do. Count it a blessing that you can just walk away and find another job.

stretchwithme 3 days ago 0 replies      
While working for a large computer company in the late 90s, I joined a team that ran the company store on the web. The store used the company's own e-commerce system, which it was also selling.

The very first day, at home in the evening, I went to the production site to see if I could log in as root using the default password. Not a problem.

Anyone with any experience with the product could easily have deleted the entire database. I immediately changed the password and emailed the whole team.

No one ever responded.

rorrr 3 days ago 0 replies      
I don't see how it's your fault, other than making a slight error of clicking on the wrong table name

1) Senior developers / CTO letting anybody mess with the prod DB should be grounds for their firing. It's so incompetent, it's insane.

2) No backups. How is this even possible. You even had paying customers.

alyrik 2 days ago 0 replies      
Oh dear... I once logged into the postgresql database of a very busy hosted service in order to manually reset a user's password. So I started to write the query:

UPDATE principals SET password='

Then I went and did all the stuff required to work out the correctly hashed and salted password format, then finally triumphantly pasted it in, followed by '; and newline.


(Luckily, we had nightly backups as pg_dump files so I could just find the section full of "INSERT INTO principals..." lines and paste in a rename of the old table, the CREATE TABLE from the dump, and all the INSERT INTOs, and it was back in under a minute - short enough that anybody who got a login failure tried again and then it worked, as we didn't get any phonecalls). It was a most upsetting experience for me, however...

snambi 2 days ago 0 replies      
This company sucks. You are out of college and doing the first job. Are these stupid enough to give you direct access to production database? if they are making millions in revenue where was there DBAs? Obviously the management got what they deserved. Its unfortunate that it happened through you.
blisterpeanuts 3 days ago 0 replies      
Good lord, that's unbelievable! If millions of dollars are riding on a database, they should have spent a few thousand to replicate the database, run daily backups and maintain large enough rollback buffers to reverse an accidental DROP or DELETE.

We've all screwed up at various times (sometimes well beyond junior phase), but not to have backups.... That's the senior management's fault.

jgeerts 2 days ago 0 replies      
This article sounds so incredible to me, I think I might have been holding my breath reading it. These are two major mistakes that the company is responsible for, not the author. Why would they let anyone in on the production password and do direct queries onto that database instead of working on a different environment, it's laughable that they sent this to their customers admitting their amateurism. Secondly, no backups? At my previous project, a similar thing happened to our scrum master, he accidently dropped the whole production database in some kind of the same situation. The database was back up in less than 10 minutes with an earlier version. It's still a mistake that should not be possible to make, but when it happens you should have a backup.
anovikov 3 days ago 0 replies      
LOL a gaming startup i worked for in 2010 had the same fuckup! But nobody was fired or quit, there was just a total anger around the place for a few days, and almost all data was eventually recovered. The startup still flopped in about one year after that with ever falling user retention rates - the marketplace was more and more flooded with those more and more similar games.
jiggy2011 3 days ago 0 replies      
Wow, that's quite a story.
If your company is ever 1 button press away from destruction. Know that this will eventually happen.

I'm quite surprised stuff like this hadn't happened earlier. When I am doing development with a database I will quite often trash the data when writing code.

cmbaus 3 days ago 1 reply      
Any manager who doesn't take responsibility for this isn't a manager you'd want to work for. The manager should be fired.
tn13 3 days ago 0 replies      
I dont think this is author's fault. These kind of human mistakes are more than common. It is said that the top management actually assigned the blame to this young man. This was an engineering failure.

I can understand what this person must have gone through.

gte910h 3 days ago 0 replies      
He worked at a company stupid enough to test on the prod databases without tools to safely clear them. The former is stupid, the later is REALLY stupid.

This is a multi-layer failure and almost none of the blame falls on him. Stupid compounded stupid, and this guy did nothing more than trip over the server cord several people who knew better stupidly ran past his cube exit.

engtech 3 days ago 0 replies      
I'm guessing the game was one of these? Likely Age of Champions.


Aardwolf 3 days ago 0 replies      
In the article it says your coworkers looked differently at YOU. Did anyone look differently at their database without back ups though?
jinfiesto 3 days ago 0 replies      
This has been stated by others, but it's not the author's fault. It's totally idiotic for a database like that not to have been regularly backed up. At worst, this should have been only a couple hours of down time while the database was restored.
elomarns 3 days ago 0 replies      
Although the author of the post obviously did a huge mistake, he is far from being the actual responsible for the problem that follows his mistake. It's the job of the CTO to make sure no one can harm the company main product this way, accidentaly or not.

He could never write code against the production database when developing new features. And if he was doing it, it wasn't his fault, considering he was a junior developer.

And who the hell is so stupid to don't have any recent backup for the database used by a piece of software that provides millions of revenue?

In the end, when you do such a shity job protecting your main product, shit will eventually happens. The author of the post was merely a agent of destiny.

anton-107 3 days ago 1 reply      
It's unlikely that the database had no foreign keys related to users table. And if so DBMS should have prevented deleting all users from the table.

Perhaps the Database Designer also failed his job. As well as the guys who cancelled backups and set up dev environment.

jdmaresco 3 days ago 0 replies      
I had a similar situation when collaborating with a team on a video project during a high school internship. Somehow I managed to delete the entire timeline accounting for hours of editing work that my boss had put in. To this day I don't know how it happened, I just looked down and all the clips were gone from the timeline. In the end, I think we found some semblance of a backup, and at least we didn't lose the raw data/video content, but I can relate to the out-of-body experience that hits you when you realize you just royally screwed up your team's progress and there's nothing you can do about it.
banachtarski 3 days ago 0 replies      
What company that makes millions in revenue doesn't replicate their database or at least have snapshots?

What engineer uses any GUI to administrate MySQL?

This story feels totally unreal to me (unreal as in just crazy, not disbelief).

zulfishah 3 days ago 0 replies      
Every engineer's worst nightmare. I've worked at a one of the biggest software companies in the world, and I'm working on my own self-funded one-person startup: the panic before doing anything remotely involving production user data is still always nerve-wracking to me.
But agree with everyone's assessments here of the failure of the whole company to prevent this. A hardware failure could have just as likely have wiped out all their data. If you're going to cut corners with backing up user data, then you should be prepared to suffer the consequences.

Thanks for sharing this. Took real guts to put it out there.

nekitamo 3 days ago 0 replies      
Using LinkedIn, you can easily figure out the name of the company and the name of the game. Using CrunchBase you can figure out the name of the CEO.
navid_dichols 3 days ago 0 replies      
If your senior management/devs are worth anything, they were already aware that this was a possibility. There is no excuse for what ostensibly appears to be a total lack of a fully functioning development & staging environment--not to mention any semblance of a disaster recovery plan.

My feeling is that whatever post-incident anger you got from them was a manifestation of the stress that comes from actively taking money from customers with full knowledge that Armageddon was a few keystrokes away. You were just Shaggy pulling-off their monster mask at the end of that week's episode of Scooby Doo.

Shorel 3 days ago 0 replies      
Awesome tale.

However, I think the CTO was the one who deserved to be fired.

Not having at the very least develop and production environments is a higher ups fault.

Where I work, developers can't even touch production systems, there's a separate team responsible for that.

I even have a solr, nginx, php, mysql, etc separate install of almost everything in my workstation, so I only touch test servers when doing testing.

SonicSoul 3 days ago 0 replies      
this is insanity! it was already pointed out in comments but i still can't believe a company that mature (actually having 1000's of users and millions in revenue!!!) would omit such a basic security precaution.
Giving [junior?!] developers free reign in production database and no backups????
seriously, the CTO should have been fired on the spot instead of putting blame on developer.

no matter how careful you are (i'm extremely careful) when working with data, if you're working in dev/qa/uat/prd sooner or later someone on dev team will execute on wrong environment.

TheTechBox 3 days ago 0 replies      
A lot of people have said it before on here but really?! The company is blaming on person, whilst yes it was technically his fault, why in the first place was he allowed on the production database and why was the company keeping very regular backups of all this mission critical data.

If the company saw that the data contained in this live database was so critical you would have thought that would not have given the keys to everyone and that if they did, they would at least make sure that they can recover from this, and fast.

scottschulthess 3 days ago 0 replies      
In my opinion, it's the fault of the whole organization, or at least the engineering team, for making it so likely that something like this would happen.

Database backups would've solved the problem

developingJim 3 days ago 0 replies      
Know a lot of others have said it, but no production backups? Blame a junior dev for a mistake that almost 100% of the people I've worked with have made at some point or another (including me)? I feel horrible for the author, it's sickening the way he was treated. Now they'll just move on, hire another junior, never mention this, and guess what? The next guy will do the same thing and there probably still aren't any backups. Didn't learn anything, well, other than how easy it is to blame one person for everyone's failure.
bwb 2 days ago 0 replies      
It was a mistake, but not huge. You should never have not have had backups, and that wasn't your responsibility. + their should have been a dev instances and a proper coding environment.

So don't blame yourself there!

bart42_0 2 days ago 0 replies      
You can't make an omelette without breaking eggs.

Clicking on 'delete' with the user table selected was not very wise. The software maybe even asked 'Are you sure?' and of course you reply 'yes'.

But operating your company with proper recovery tools is a bit like climbing Mount everest without a rope.

If something goes wrong you are in deep sh.t.

jami 3 days ago 0 replies      
Awesomely honest and painful story.

This happened somewhat in reverse to someone I worked with. He was restoring from a backup. He didn't notice the "drop tables" aspect, assuming, as one might, that a backup would simply supplement new stuff rather than wipe it clean and go back in time to a few weeks ago.

He is (still) well-liked, and we all felt sick for him for a few days. Our boss had enough of a soul to admit that we should have had more frequent backups.

danielna 3 days ago 0 replies      
I still remember the all-consuming dread I felt as an intern when I ran an UPDATE and forgot the WHERE clause. I consider it part of the rite of passage in the web developer world. Kind of like using an image or text in a dev environment that you never expect a client to see.

Luckily the company I was at (like any rational company) backed up their db and worked in different environments, so it was more of a thing my coworkers teased me for than an apocalyptic event.

imsofuture 3 days ago 0 replies      
Wow, that's terrible. Mistakes happen, and for the notion of 'blame' to surface requires some monumentally incompetent management... the exact kind that would have their junior programmers developing against an un-backed-up production database.

The immediate takeaway from a disaster should always be 'How can we make sure this doesn't happen again?' not 'Man, I can't believe Fred did that, what an idiot.'

shaurz 2 days ago 0 replies      
It's an organisational failure if a junior employee can bring down the company in a few clicks. No backups, testing on the production database, this is no way to run a company. Feel sorry for the guy who made a simple mistake.
capex 3 days ago 0 replies      
The senior engineers got to own the mistakes of their juniors. That's how teams are built. This clearly didn't happen in this case.
outside1234 3 days ago 0 replies      
this is a great example of why you run the "five whys?" after a failure like this.

The CEO/CTO should have fired himself as the answer of one of those.

andyhmltn 3 days ago 0 replies      
Stuff like this happens. The best thing to prevent something like this is to completely sever the line between production and development. I've worked with companies that work directly on the production database. It's horrible. How can the person in charge of managing the workflow expect something like this not to happen eventually?
msdet11 3 days ago 0 replies      
Things like this fall on the shoulders of the team as a whole. Certainly a tough pill to swallow for a junior engineer, but a good more senior developer or PM should've also realized you were working on prod and tried to remedy that situation. Humans are notoriously prone to fat fingering stuff. Minimize risk where ever you can!
misleading_name 2 days ago 0 replies      
It's not your fault.
it's the fault of the person who cancelled backups, the person who didn't check that backups are being created, the "senior" people who let you work on the production database.... etc.
shocks 3 days ago 1 reply      
I'm getting a 500 error. Anyone else? Anyone got a mirror or able to paste the content?
tetsuseus 3 days ago 0 replies      
I once fired everyone at a nonprofit foster care company with a careless query.

I cried to the sysops guy, and he gave me a full backup from 12 hours before, and before any cronjobs ran I had the database back in order.

Backups are free. It was their fault for not securing a critical asset to their business model.

seivan 3 days ago 0 replies      
I find it disgusting that the "game designers" are the so called overlords. Fuck them. If you're a developer and a gamer then you're practically a game designer. What ever "education" they had is bullshit. You can go from imagination to reality with just you alone. And perhaps an artists to do the drawing. All those "idea" fuckers a.k.a game designers are just bullshitters.

And yeah this wasn't your fault. It was the CTO's fault. He holds responsibility.

"They didn't ask those questions, they couldn't take responsibility, they blamed the junior developer. I think I know who the real fuckups are."

cafard 3 days ago 0 replies      
He did well to leave a company that a) had such practices in place and b) would hang out an inexperienced employee to dry like that.
ommunist 2 days ago 0 replies      
You are accidental hero and should be proud! You freed thousands of souls from one of the worse digital addictions.
taurussai 3 days ago 0 replies      
Bold on your part to own up and offer a resignation. (he "higher ups" should have recognized that and not accepted it). From the movie, "Social Network" http://www.youtube.com/watch?v=6bahX2rrT1I
kunil 2 days ago 0 replies      
But why did you cleared users table at the first place? I don't get it.
lexilewtan 3 days ago 0 replies      
So many structures in life are based around 'not fucking up.'
We protect our assets & our dignity as if they mean anything; and yet at the end of the day nobody knows what the fuck is going on.

really simple, revealing story. kudos.

zensavona 3 days ago 0 replies      
How is it that a company with 'millions in revenue' is directing a junior developer to develop on a production database with no backups?
ballstothewalls 3 days ago 0 replies      
This is the most ridiculous thing ever. Why weren't there backups? Sure, the author was the one who "pulled the trigger" but the management "loaded the gun" by not making sure there were back-ups.
Nikolas0 2 days ago 0 replies      
To be honest as a CEO I would fire myself for letting someone in the team work that wrong (I mean in the production server)

Plus there is no excuse for not having backups...

kordless 3 days ago 1 reply      
I'm getting internal server error.
stretchwithme 3 days ago 0 replies      
This is handing a heart for transplant to the Post Office and hoping for the best.
monkeyonahill 2 days ago 0 replies      
That wasn't your failure per se.
But the failure of pretty much everyone above you.
That they treated you like that after the fact is pretty shitty.
In hindsight I'd say that you are much better off by not being there, where you would learn bad practices.

No Stage Environment.
Proactively Cancelled Backups on a Business Critical System.
Arbitarily implementing features 'because they have it' rather than it having some purpose in the business model.
No Test Drills of disaster scenarios.
The list goes on.
As I say, and you probably realise now, that you are lucky to no longer be there.

deciob 2 days ago 0 replies      
This is the most incredible story I have read in a long time. To have such a business relying all on one database and no backups... unbelievable!
ThePhysicist 2 days ago 0 replies      
The only people that should have gotten fired for this are:

* The person responsible for the database backup (no backup plan for your production DB!? wtf)

* The person having designed the SQL admin tool (not putting an irreversible DELETE operation behind a confirmation dialogue!? wtf)

* The person giving full write access to the company's production database to a junior developer (data security!? wtf)

Sure, the employee made a mistake, but most of the failure here is due to the bad management and bad organizational design.

flayman 2 days ago 0 replies      
This is not your fault. Not really. And it's galling that the company blamed the incident on the workings of a 'junior engineer'. There was NO DATABASE BACKUP! For Christ's sake. This is live commercial production data. No disaster recovery plan at all. Zilch. And to make matters worse, you were expected to work with a production database when doing development work. This company has not done nearly enough to mitigate serious risks. I don't blame you for quitting. I would. I hope you have found or manage to find a good replacement role.
madao 3 days ago 0 replies      
What I want to know is, why didnt the guy who canceled the database backups get fired also?
mydpy 3 days ago 0 replies      
My name is Myles. I read this and felt like I was looking into a crystal ball. Fortunately, my work doesn't require I interact with the production database (yet). Gulp.
smallegan 2 days ago 0 replies      
This reads like a PSA for backups and RI.
nighthawk 3 days ago 0 replies      
the monumental fuck up was cancelling mysql backup and having all engineers work directly with the production database, what you did was INEVITABLE..
coldclimate 3 days ago 0 replies      
Did you click the wrong button - yes.
Was this your fault - no. So many things wrong here.

I hope he came out ok in the long run, it's a hell of a story.

geldedus 2 days ago 0 replies      
it is the fault of those responsible with creating a regular backup procedure and/or a hotswap database server

and developping on the production database speaks volumes about the incompetency level of that company and of the "developer" in particular, afterall

joeblau 3 days ago 0 replies      
On the bright side, now you know not to test on the production database :).
bfrenchak 2 days ago 0 replies      
This was not a junior engineer's fault, but the DBA's fault. Any company should be backing up their database regularly, and then testing the restores regularly. Also don't give people access to drop table's etc. This was a very poor setup on the part of the company/DBA not the engineer.
elhowell 3 days ago 0 replies      
Wow dude, that's quite a story. That must have been an awful feeling, I hope you're doing better now
ArenaSource 3 days ago 0 replies      
I can't believe this history, but if it's true, don't worry,
you just did what they deserve
meshko 3 days ago 0 replies      
I really hope this is some kind of hoax and no real company was operating like that in 2010.
alexrson 3 days ago 0 replies      
If your data is not backed up it may as well not exist.
elicash 3 days ago 0 replies      
I think it's admirable that you stayed long enough to help fix everything before quitting, despite it being rough -- even though, as others have said, others screwed up even bigger than you did.
coolSCV 3 days ago 0 replies      
This is why you have backups.
jblotus 1 day ago 0 replies      
just awesome
hawleyal 3 days ago 0 replies      
daemonfire300 3 days ago 0 replies      
This could've happened anyone. It's a huge shame for those in charge not for you. Any business letting such operations happen without having backups or proper user-right-management should consider why they still exists, if they really make huge amounts of many as you mentioned.
Ruby 2.0.0 Released ruby-lang.org
535 points by haven  6 days ago   283 comments top 29
donw 6 days ago 6 replies      
Overall, a good feature set. I only see some utility for keyword arguments, admittedly, but I tend to write very functional code, so maybe other people will get more mileage.

Refinements, as I understand them, are a bad idea.

I understand the motivation, but this is not the way to go about it. There's now a new scope all over the place (the set of refinements applied to any given class). This means that the behavior of any given class now can depend heavily on context.

This makes optimization a bitch, for the same reason that it makes programming a bitch. I can now have two Strings, one Refined by ActiveRecord, the other Refined by Sequel, which expose a different set of incompatible methods.

noelwelsh 6 days ago 12 replies      
I do wonder about the long term success of Ruby. Rails is easily the most visible project for Ruby. Rails is big, and all that code represents a high barrier to entry for any framework in a different language that wants to compete. However, a lot of people I talk to are moving to pure JS front-end + REST backend. In this world Rails doesn't deliver any particular value (in my opinion).

Ruby also has utility for doing lots of scripting type tasks (things like Jekyll). The libraries you need to do this are simple to write. Python is perfectly adequate for this task already, as is Node (modulo callback spaghetti). So there is no barrier to entry here.

In summary I don't see any project going forward that provides enough value to maintain interest in Ruby. Thoughts?

[NB: I'm not saying Ruby is going to die overnight. I just think it will slowly become less relevant.]

grey-area 6 days ago 5 replies      
There are some nice features here:

Keyword arguments, which give flexibility to API design

This looks good to replace all those options hashes in rails for example, though I wish they'd made it an all or nothing thing, apparently you can still do this:

    def foo(x, str: "foo", num: 424242)

i.e. use some named and some unnamed in the same method which looks ugly.

Module#prepend, which is a new way to extend a class

Compared to something like Go, I do worry the Ruby inheritance picture is becoming overly complex, but I guess there must have been some use case for this - anyone know where it is going to be used?

__dir__, which returns the dirname of the file currently being executed

This is a great little enhancement which means I can replace File.dirname(__FILE__) from the start of a lot of utility scripts. Would love to have seen more little improvements like this.

The UTF-8 default encoding, which make many magic comments omissible

At last! This should have been in 1.9.

Performance improvements

While these are incremental, it's nice to see more improvements - thanks Ruby team!

Onigmo, which is a new regexp engine (a fork of Oniguruma)

Not sure what this changes from Oniguruma.


Refinements seems to be the headline feature for a lot of people, but I have two hesitations about it: it's encouraging a practice which has come to be seen as one of the most dangerous parts of Ruby - monkey patching, and the process of deciding its inclusion seems to have brought about a few schisms with the community developing alternative Ruby implementations because of performance implications, and raised wider issues about the Ruby design process:


There is the argument of course that it's attempting to limit monkey patching and therefore limit the damage caused, but should it be encouraged at all? It'd be interesting to hear more on what happened here from anyone has been following this closely.

ScotterC 6 days ago 4 replies      
Basic Ruby 2.0 benchmarks calculating pi from gist [1]

$ ruby --version

ruby 1.9.3p385 (2013-02-06 revision 39114) [x86_64-darwin12.2.1]

$ time ruby pidigits.rb 10000 2>&1 > /dev/null

17.51s user 0.11s system 99% cpu 17.639 total

$ ruby --version

ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin12.2.1]

$ time ruby pidigits.rb 10000 2>&1 > /dev/null

4.64s user 0.27s system 99% cpu 4.927 total

That's a significant difference in speed. Going from 17.51 seconds to 4.64 seconds

1. https://gist.github.com/thoughtpolice/5025417

jayferd 6 days ago 1 reply      
And this day shall be know as Ruby Two's day.
jacquesc 6 days ago 3 replies      
This is pretty exciting. Might be too early to tell, but it feels like the Ruby versioning recently has been done very right. The switch from 1.8.x to 1.9.x was slightly painful, but I think 80% of Rubyists have made the jump.

I'm hopeful and expecting the switch to 2.0 by 80% of Rubyists in 2013.

Compared to the adoption of major version releases by Python/Java/C#/PHP, I think that's something the Ruby core release team can be proud of.

charlieok 6 days ago 1 reply      
2.0 on the 20th. Happy 20th!
kybernetyk 6 days ago 0 replies      
I've been waiting for native keyword arguments for years. A great addition that should make code more maintainable.
marvwhere 6 days ago 3 replies      
my personal best new feature is:

"The UTF-8 default encoding, which make many magic comments omissible"

because i'm from Germany and we had to add:
# coding: utf-8

in every freaking controller to get our german stupid letters (öäüß) to run without problems.

so i'm looking forward to my next project where i can use 2.0 from the scratch.

thank u!

AlexanderDhoore 6 days ago 7 replies      
Anyone have any thoughts on why python and ruby are so similar, yet so far apart? They are obviously very close, because people switch between them all the time. And they are compared on everything (languages features, libraries, tooling...). I think it's a healthy competitive environment.
oleganza 6 days ago 3 replies      
I guess, Rubinius is no longer relevant? I remember it was a very promising project back in 2008.
phasevar 6 days ago 1 reply      
My favorite new feature. Keywords arguments. As a Python convert, I really missed those.
moron4hire 6 days ago 0 replies      
Congrats, Ruby Team. Always good to see a new release. Onward and forward.
thetron 6 days ago 0 replies      
Congrats Ruby team - really well done. 20 great years.
ashokvarma2 6 days ago 1 reply      
Is ruby 2.x faster than 1.9.x. Any benchmarking data?
JulianMorrison 6 days ago 0 replies      
I wonder, is asynchronous exception handling going to make exceptions useful in evented/fibered code? Because right now, the ability of your stack frame to unpredictable blow up is a complete nuisance.
pkmiec 6 days ago 1 reply      
I totally agree about refinements being a terrible idea. Brian Ford (of Rubinous) makes an excellent argument: http://www.youtube.com/watch?v=BagNfTbXn3w.

What is the best way to let Ruby team know that refinements are a bad idea?

randomsearch 5 days ago 1 reply      
Serious question - should I learn Ruby?

I spent a little time looking at Ruby in the past. It seems like a nicely designed, clean language. However, it seems to me that it lost to Python in many domains. In addition, I've heard stories about Ruby having performance problems. For example, I heard Twitter rewrote their backend in Java/Scala because Ruby didn't perform well enough.

Recently I was at a Cloud Computing symposium thing attended by academics and industrial developers. No-one in the room was using Ruby for development anymore. Has it died? Is there any point learning it?

fersho311 5 days ago 0 replies      
I was stuck on this for a few hours, so hopefully this might help someone. If you are install ruby 2.0.0 with rvm, make sure you do rvm get head before doing rvm install 2.0.0 or rvm reinstall 2.0.0
JulianMorrison 6 days ago 0 replies      
Does anyone here have a link to the new rubydocs for this?
copx 6 days ago 1 reply      
I like Ruby but keywords arguments are the solution to a problem which shouldn't exist in the first place. Namely functions like..

myFunction(something, 23,23,100, somethingElse, true)

People should write smaller, more specialized functions instead (less arguments). That makes software both: more efficient and more maintainable.

If you start thinking: "Damn I wish I had keyword arguments to make this function call more comprehensible!" .. the problem is elsewhere.

jdelsman 6 days ago 1 reply      
Just submitted a pull request to Homebrew to have this added. Can't wait :-)
mikaelf 6 days ago 0 replies      
We need tutorials. Videocasts! Please.
schiang 6 days ago 0 replies      
Nice. Time to use to_hash.
ksec 6 days ago 0 replies      
Still waiting for Ruby 2.0 Benchmarks
hcr 6 days ago 0 replies      
Congrats! Great works
bau5 6 days ago 0 replies      
ruby pls
zopticity 6 days ago 0 replies      
Ruby rocks my socks.
tferris 6 days ago 23 replies      
Today, I'll lose at least 50 karma points, but it's worth:

Why people still use Ruby?

1. Because they get dream day rates for maintaining rusty slow legacy systems

2. Because they do not want to learn new languages and can stay in their comfort zone

3. Because they think it's still 2005 and nobody cares about slow server response times

And now Ruby lovers, click on downvote or give your reasons why you still use Ruby.

DOJ Admits Aaron's Prosecution Was Political tarensk.tumblr.com
510 points by rrbrambley  4 days ago   148 comments top 17
tptacek 4 days ago 1 reply      
No, they didn't admit that. An anonymous staffer told the Huffington Post they felt that the prosecution was overcommitted to a token prison sentence and felony convictions to justify the effort they had put into the case, and Swartz' "Guerilla Open Access Manifesto" was used as evidence to establish his intent.

4/5ths of Hacker News believed the day the news about Swartz came out, when we learned about the prison time demand, that this was what was happening. There has been no revelation, unless Taren or one of her peers was at the hearing and learned something different than the Huffington Post.

grandalf 4 days ago 7 replies      
The government is chosen through a political process and so everything it does is political.

The DOJ's actions were heavy-handed in a way that has freaked out a lot of people who evidently never realized that the government was like this.

Anyone who has ever gotten a letter from the IRS or has been pulled over by a surly police officer knows well that even though there are laws which apply to everyone fairly, the way those laws are enforced is mostly left up to the discretion of whoever is enforcing them.

Try being an immigrant and dealing with INS officers or a traveler dealing with TSA. Our government has created all kinds of thugs whose job it is to put on a big show of force to intimidate people.

Why are government buildings so big and grand? To create a show of force and make our government seem formidable. Why are there so many ceremonies involving soldiers, government officials, marching, etc. Simply to put on a show and create the impression of solemnity, gravity, and importance.

Governments must continually act to keep the power they have achieved. They do this mostly through propaganda and PR efforts. Every white gloved soldier in a ceremony is a PR stunt. Every wood paneled room, dramatic monument, motorcade, marble building, podium, flag and seal are part of the PR show.

The world is full of greedy people who seek power over others. Whether it's an ambitious Carmen Ortiz or an up-and-coming young congressman or a mild mannered traffic cop. Each seeks to control others as a very significant portion of his/her motivation and life's goal.

Most people who do startups just want to build something and work with interesting technology and so we often forget just what government is. We must wake up and realize that it's about control and force, and now and then the victim of this control and excess is a fellow hacker and we start to take it seriously for a few minutes before we forget about it again. Don't assume that you won't be the target, don't adopt that conservative worldview.

pyre 4 days ago 1 reply      

  | The same law that says that anyone using a fake
| middle name on Facebook is committing a federal
| felony.

Federal prosecutors tried to get this interpretation through the courts with that mother that drove her daughter's 'rival' to suicide via MySpace. It didn't work. The judge threw it out, rightly stating that interpreting breach of ToS as a Federal crime effectively allows companies to set the bar for what is a Federal crime (e.g. "You must always access this website while standing on one leg or else we revoke your permission to use it! Now you're a 'hacker' with a felony conviction. Have a nice day.").

thejsjunky 4 days ago 2 replies      
> "Guerilla Open Access Manifesto" played a role in the prosecution,

The fact that something Aaron wrote "played a role" in the prosecution does not mean it was politically motivated.

It's a fundamental principal in our legal system that intent matters. Of course if you are charged with a crime the prosecutors will use whatever evidence they can to try and back their claims of what your intent was.

The HuffPo article explicitly states that this is what is being discussed:

> The "Manifesto," Justice Department representatives told congressional staffers, demonstrated Swartz's malicious intent in downloading documents on a massive scale.

So we're not talking about anything "political" here, they planned to use it as evidence. One can make a strong argument that it's lousy as evidence...but the fact that they planned to use it as evidence does not suggest any sort of political motivations (on it's own)...only that they are bad at selecting evidence for their case.

My comment should absolutely NOT be construed to say it wasn't politically motivated or that it was handled well....I'm strictly speaking about that one little line...you can't use that one line to support an assertion that it was politically motivated, because it's just not valid. Use other information to bolster the case instead.

andreyf 4 days ago 1 reply      
Many people speculated throughout the whole ordeal that this was a political prosecution [...] but Aaron actually didn't believe it was

Aaron was an idealist that had some idealistic misconceptions about reality. Being an intelligent and nationally famous activist, which he was well on his way to becoming, is not something you can do without ruffling the feathers of some very powerful people. He knew it [1], but his idealism stopped him from understanding what it meant for him, personally. I'll admit I don't know much about "how Washington really works", but I wouldn't be surprised if those with such power over senators have some sway with prosecutors, as well.

1. "You don't just introduce a bill on Monday and pass it unanimously a couple of days later [...] but this time, it was going to happene [...] somehow, and the kind of thing you never see in Washington, the senators had all managed to put their personal differences aside, and come together to support one bill they were persuaded they could all live with, a bill that would censor the internet, and when I saw this, I realized, whoever behind this was good [i.e. powerful]". https://www.youtube.com/watch?v=Fgh2dFngFsg#t=411s

dccoolgai 4 days ago 2 replies      
In light of this, it is clear that Ortiz and Heymann should be in prison. I made this same comment in a thread earlier and got a bunch of snivelly equivocating about "intent" as a reply...that is just invalid here. These people either didn't like or criminally misunderstood something Swartz did and used that and the position given to them by the government to terrorize him. Inexcusable, at least and it should be criminal (if it's not outright already).
abraininavat 4 days ago 2 replies      
This is making me angrier than almost anything I've heard since Aaron died. I finally figured out why: Because I worked my ass off to elect the Obama administration in 2008. I helped these people get in power

So stop being a chump. Stop voting in the same career politicians from one of two sides of the same political coin. A coin that's entirely beholden to corporate interests and only nominally beholden to the people.

Insanity is doing the same thing over and over again but expecting different results

api 4 days ago 0 replies      
"This is making me angrier than almost anything I've heard since Aaron died. I finally figured out why: Because I worked my ass off to elect the Obama administration in 2008. I helped these people get in power. And then they drove the man I loved to suicide because they didn't like something he said once."

A lot of people think the Democrats are lot more socially and politically liberal than they really are. Look no further than their repeated reiteration of punitive "War on Drugs" policy. The Democrats play that tune during elections, but it's a scam... as much as the Republicans and their Jesus babble. (Karl Rove is an atheist.) Both parties are absolutely status quo parties. Since the Reagan era, their stances have differed significantly only on hot-button "culture war" issues-- because these issues are really just tools to segment the electorate. On issues that matter to money and power they differ little if at all.

nonamegiven 4 days ago 1 reply      
OT: Why doesn't web text flow anymore?

I increased the text size of this post because it started uncomfortably small (for me). Curiosity made me keep increasing the text size until it hit both ends of my browser, then I increased it some more and the text disappeared off the ends. The text did reflow as the size increased, within some internal margin set by the site's style, so it's clearly possible to reflow within the bounds of the window.

Why doesn't it reflow to stay inside the window, and why is this considered good? I vaguely recall that it used to be normal to reflow and keep everything visible.

I checked with FF and Chromium on linux, same behavior.

rdl 4 days ago 3 replies      
I don't know her, but I wonder if Taren S-K is going to define the rest of her life w.r.t. being Aaron's "widow". That can't be healthy, either.
SagelyGuru 4 days ago 2 replies      
Surely 'intent' only becomes material after some crime was actually committed? Otherwise prosecuting just for intent alone makes it into a thought crime?

Specifically, in this case, I do not understand how the shills are hoping to keep justifying the use of the manifesto as proof of intent to distribute the articles, when he has NOT actually distributed them? How can that be possibly relevant?

Or is it the case that we are not only not allowed to read research that we paid for but now are potentially all guilty of thought crimes as well?

known 2 days ago 0 replies      
"If you wish to keep slaves, you must have all kinds of guards. The cheapest way to have guards is to have the slaves pay taxes to finance their own guards. To fool the slaves, you tell them that they are not slaves and that they have Freedom. You tell them they need Law and Order to protect them against bad slaves. Then you tell them to elect a Government. Give them Freedom to vote and they will vote for their own guards and pay their salary. They will then believe they are Free persons. Then give them money to earn, count and spend and they will be too busy to notice the slavery they are in."
-Alexander Warbucks
LAMike 4 days ago 0 replies      
Is the governments recent announcement that they would make all tax-funded research papers free to access a big enough silver lining for people to forget about Ortiz and Heymann?
mkhalil 3 days ago 0 replies      
I hate to say this, but the DOJ didn't kill Aaron Swartz...he took his own life. Selfishley, if I may so. Many activists stand up to the oppressor, raise awareness, fight, he didn't. Not taking anything away from what he was trying to do with JSTOR (semi-noble), but don't blame the DOJ on his death.

Do blame them for bringing down the sledge-hammer though.

nwzpaperman 4 days ago 0 replies      
What is the statistical probability of a .920+ batting average over a decade period? If the Feds come after you, forget about how much money or connections you have; it won't be enough!

Page 42:


mschuster91 4 days ago 1 reply      
I believe that this behavior is just the same as effectively murdering him. Ortiz and Heymann should be convicted of whatever the US equivalent of "Murder with intent" is. Let them rot in hell forever.
jheriko 4 days ago 2 replies      
Can we stop giving a shit about this already please?

There are a million and one worse things perpetrated and supported by this government that they actually do happily admit to and which are actually /really bad/ - i.e. resulting in the murder of tens of thousands innocent children.

I refuse to pity self entitled pricks who should have known what they were doing and taken some responsibility for the relatively tiny consequences of their actions instead of topping themselves.

Disrespectful tone fully intended.

Why was my email leaked? dropbox.com
497 points by chmars  2 days ago   257 comments top 41
inovica 2 days ago 7 replies      
Unfortunately I have seen their customer service go downhill recently. Not sure if they are having capacity problems or something. 2 weeks ago I signed up for a trial of Dropbox Teams and it said that after the trial I would be dropped back to my Pro account. I cancelled the trial as had made my mind up not to do it and it dropped me to a free account. Several emails to support, the account manager I'd been provided as part of the Teams setup and I still don't have my Pro account back and have had zero feedback from the. The only email I got was this one which is ridiculous:


Thank you for your support request. Recently, we have been receiving a high volume of support requests and haven't been able to get back to you within a reasonable amount of time.

The volume of inquiries we receive on a daily basis prevents us from responding to all requests. Although requests from Pro and Teams users will be given priority assistance, we will do our best to get back to other inquiries when possible. If you are not a Pro or Teams user and you're looking to resolve your issue before we can respond, you may want to check out:


If you need to restore a large number of files and are unable to do so, please visit the following instructions to help us speed up the restoration for you:


If you are still experiencing problems, please reply to this message. We will try our best to get back to you, however we cannot guarantee a response. We're very sorry for the inconvenience.

The Dropbox Support Team

markdown 2 days ago 3 replies      
While I can't speak for Dropbox and this specific case, we had angry customers like this two or three years ago.

Obviously we were very concerned, and spent days poring over server logs and trying to figure out where the breach was.

Turns out the service we used for newsletters (icontact) had been hacked. They never emailed to let us know. (They had a blog post up for a few days, then removed it, the slimy bastards!)

Since then we've used MailChimp, and had no problems.

Khao 2 days ago 4 replies      
The way the moderators handled this was pretty damn bad. Two different users tell the moderator they use UNIQUE e-mail addresses for dropbox only, and they received spam roughly at the same time and yet the moderator answers by assuming the users are idiots.
chmars 2 days ago 3 replies      
Sean B.:

Hi there,

We've been looking into these spam reports and take them seriously. Back in July we reported that certain user email addresses had leaked and some users had received spam as a result. At this time, we have not seen anything to suggest this is a new issue, but remain vigilant given the recent wave of security incidents at other tech companies. If you've received spam to an email account you only use for Dropbox, please send the message (including full headers) to support-security@dropbox.com to help our ongoing investigation.

Separately, we want to apologize for some of the dismissive responses from our volunteer moderators - since they aren't employed by Dropbox, they don't have visibility into issues like this. We want you to know that we've taken these reports seriously and began our investigation immediately.


WestCoastJustin 2 days ago 1 reply      
Brutal customer service! Especially since a user is giving you a heads up about a possible breach and leakage of their personal information. I can fathom these types of replies if this was behind closed doors, but when you have an open forum like this, you are asking for trouble with snotty replies.

This forum should be a PR beacon for awesome customer support!

Mahn 2 days ago 3 replies      
I just checked the spam folder of a gmail account I used for dropbox. Throughout the years I'd ocasionally (maybe once every two months or so) check the spam folder merely out of curiosity, but it was practically always empty.

Perhaps this is just a huge coincidence but I see three spam emails sent today plus another two sent this week. Some of them have cc recipients which seem legit addresses of other people, but I can't identify them. I never used Zendesk by the way.

Edit: here are the senders, in case it helps: no-reply@adsl.hu, no-reply@velkommenhit.no, no-reply@wdl.fr, no-reply@tataidc.co.in, no-reply@variationfm.com. Though it looks like these addresses may have been spoofed... the sender name is "{%FROM_NAME%}" in all of them.

Edit 2: It turns out Groupon Germany (former citydeal.de), which I checked out once with the same address, is responsible from what I can gather (link in german, but everything matches, company has yet to say anything): http://hukd.mydealz.de/diverses/groupon-verkauft-kundendaten...

jewel 2 days ago 4 replies      
I also give out a separate email address to every service I sign up for. So far geico, mint, and dyndns have lost or sold my email address. I haven't gotten any spam on my dropbox account, but I've only had an account since 2012-10-02.

I don't run any spam filtering, at all, and my email box is the catchall for my domain. These aren't just lucky guesses.

xer0x 2 days ago 4 replies      
Holy crap Dropbox's moderators make me want to terminate my account with them.
nathanb 2 days ago 2 replies      
Has anyone who created a Dropbox account AFTER July of 2012 noticed this spam increase?

If not, it may be that the compromised list of addresses from summer of last year has finally reached evil hands.

Havoc 2 days ago 0 replies      
Damn thats weak. Moderator "Andy Y." doesn't seem to grasp wth is going on at all and the rest of the moderators blatantly ignore ~5 people reporting unique email addresses being leaked.

So much for Dropbox...

lucb1e 2 days ago 0 replies      
Sean, who also posted in the forums on page two and apologised for the moderator's behavior, contacted me by e-mail to send him the spam e-mails that I received. It looks like they're taking it seriously now :) Needless to say, I provided all details that I have (connection log, full mail source).

For those who are curious, this is what I received:

Hi Luc,

My name is Sean, I work on the User Security team at Dropbox. We'd like to look into the issue you repoted on the forums. If possible can you forward the emails in question directly to me (xxxx@dropbox.com).


driverdan 2 days ago 1 reply      
I suspect this is a MUCH larger problem than people realize and not Dropbox's fault.

I've noticed in the past few months I've been getting spam to a lot of site specific emails I've used under my Gmail catch all. It's as if a spammer had access to all email addresses I've used for incoming mail. I've talked with friends and found some have had the same problem.

So where are spammers getting the email addresses we've received email from?

1. There's a vulnerability in Gmail / Google Contacts.

2. Some widely used app I've allowed to access my email has been hacked or has been selling email addresses.

3. An Android app that requires access to my email is compromised, either intentionally or unintentionally.

The least likely one I haven't mentioned is that many independent companies have sold my emails which I find very unlikely.

So what's causing this to happen?

dimadima 2 days ago 0 replies      
I'm all for busting some balls, especially if we're talking Dropbox. But shit like this happens all the time, and it's not like by busting some balls here we're going to improve the situation broadly speaking.

It's really absurd to expect that your information will actually be safeguarded by some entity that isn't you. As soon as you give any data to anyone, it's gone. You should pretty much assume it's public and get on with your life. Did ya'll catch that blog post up yesterday from the kid who deleted the USERS table at his job, because he was developing against a production database and running queries against it by hand? Experience has led me to believe that's the situation at like all things, everywhere, all the time. Ass clowns emailing around spreadsheets with user data; people getting malware installed on their Windows shit and entire infrastructure's data being compromised. It's a joke. Let's just always remember that while we're busting balls. But if you value your data, don't give it to anybody, ever.

lucb1e 2 days ago 1 reply      
Aha, that explains it! I've been contacting school about my e-mail address being spammed; I was certain I never publicly posted it. I used my school's e-mail address for the Dropbox Space Race a while ago.
robk 2 days ago 1 reply      
Just checked my spam folder and sure enough 5 spam emails to my unique dropbox address.
ph33r 2 days ago 1 reply      
Why do people continue to upload and trust their data to this company? I closed my Dropbox account back in 2011 when they had that 'bug' that made passwords for any account optional for four hours.

Since then they have had more security problems/breaches, and admitted to user info being stolen.

Today's news isn't anything concrete... but their moderators were jerks, which makes the company look bad whether they are employees or not.

DigitalSea 2 days ago 0 replies      
The part that made me laugh about all of this is the fact the moderators are saying that spammers most likely guessed all of the unique email addresses people are complaining have been spammed that are only used for Dropbox. That doesn't sound plausible at all, especially considering it's multiple people complaining of being spammed here.

Dropbox's customer service has really gone downhill, what happened?

TorKlingberg 1 day ago 0 replies      
This post in the forum thread may be on to something:

"I also have a unique dropbox email address, it was compromised on 2/6, but I tracked it down to a friends system that was hacked. I had shared a dropbox folder with them, they got the email from my dropbox address. Virus on their system collected my dropbox email from their system."

kiwim 2 days ago 0 replies      
> Just the fact that you listed your emails says it all.

Wow, that moderator is really professional.

FuzzyDunlop 2 days ago 0 replies      
This makes me think about why I've been receiving spam at my professional email, which I tend to use quite sparingly.
gottagetmac 2 days ago 1 reply      
I was skeptical at first, but the rest of the evidence makes it look like it's not a coincidence.
lawnchair_larry 2 days ago 1 reply      
I have a unique email address for dropbox that has not received any spam. I created it a couple years ago but only used it once briefly.
Foomandoonian 2 days ago 0 replies      
Dropbox should rename mods 'Support Volunteers' or something, just so users know what kind of help they're getting.

I don't understand why the mods were so quick to defend DB, especially since they don't appear to have access to any privileged info. Dropbox has over 200 employees now and whatever precautions they take an occasional slip-up seems entirely possible.

adders 2 days ago 0 replies      
I use a catchall and give different email addresses to everyone. I've received 3 spam emails in the past month to my dropbox account, but they aren't the only ones with problems, for example the following are the number of spams for various sites:
* 2 emails Foursquare
* 6 emails Groupon
* 6 emails Rackspace
* 25+ emails Ticketmaster
* 50+ Absolute Radio (UK Radio station)

Absolute Radio was hacked, not sure about the others.

techpeace 2 days ago 0 replies      
They aren't letting me post to the forums, but I can also report receiving spam, but only on an address I formerly used with this account, not my latest address.
AbhishekBiswal 2 days ago 0 replies      
The Moderator thinks that the user who created that post and his supporters are idiots. How would someone get to know that a user has an email lala.dropbox@xyz.com, if the user hasn't used it anywhere else?

What happened to you Dropbox?

johngalt 2 days ago 1 reply      
Is that dropbox@domain.com email listed on any of your phone contacts? Ever had a virus on a machine that has sent or received an email from that account? How many people know that account exists? Only one of them needs to have a careless attitude about permissions.
codyko 2 days ago 0 replies      
That Chris guy should be fired. A laughable excuse for customer service.

EDIT: Looks like they're volunteers. But still.

hakaaaaak 1 day ago 0 replies      
Fortunately, GMail handles almost all of my spam, so this stuff is a non-event for me. But I don't like that they may have been a security breach. Thanks to whomever HN'd this so it would get attention.
tlrobinson 2 days ago 0 replies      
Why is Dropbox letting volunteer moderators represent them so poorly? Dropbox is a grown up company now, train and pay a couple people to moderate, or at least make it more clear they're volunteers not employees of the company.
alan_cx 2 days ago 2 replies      
I have to say, accusing Dropbox of leaking in the title of the thread, with out any actual basis, since it is possible that the user cocked up somewhere, is not the best way to get polite support. Yes the mods could have been a lot more professional, but I can see why their backs were up and why they would be defensive.

On the other hand, too often as a user I feel I have to walk on egg shells to avoid upsetting some over sensitive petal of a forum mod. One misunderstood word and you are banned for life, with no appeal what so ever.

All of which leads me to think there should be some third party arbitration for this sort of thing.

uptown 2 days ago 0 replies      
What about a possible leak from a 3rd party? Did you, by chance, use Mailbox? Do third-party apps (1Password, etc.) that sync using Dropbox get access to your email address?
pyvek 2 days ago 0 replies      
Everyone who received the spam should pastebin the emails along with the header and share them for comparison. If those spam messages are found to be similar then it can be pinpointed that they all have originated from the same person/group and it was no usual hit & miss technique by the spammers which the moderator is contemplating about.
unreal37 2 days ago 2 replies      
This dropbox forum is exploding. Fascinating to watch.

As an aside, who knew so many people had "dropbox only" email accounts. One guy with 10 random letters/numbers he uses only for dropbox. Wow. Is this a thing?

deeqkah 2 days ago 0 replies      
You know, it's funny because i got a very clever Pay Pal phishing e-mail this morning, linking to a PHP script hosted on renault-astrakhan.ru

What's worse is that i sent invitations to dropbox time ago to people that i have to now contact and say "Please be aware of this phishing e-mail disguised as a Pay Pal e-mail."

+1 for an alternative service, to be honest. Dropbox is very well done, but this is a good reason to stop using their service if they can't secure their clients' information.

It would greatly benefit them if they found the root of the problem, and reported if it were indeed an issue with them or one of the clients for dropbox.

ddrager 2 days ago 2 replies      
What about the possibility that end-users' computers are breached?

- User/pass is saved in the 'Remembered password' area of browser (this is decodable by malware)
- Email is screen-scraped by malware
- Email is sniffed during login at a wifi hotspot (Password is encrypted, user/email may not be)
- 3rd party apps that are linked to your dropbox account

I'm not saying that this wasn't caused by the database breach, but there are a TON of reasons that this could have happened. Some on Dropbox, some on the end users.

Don't expect your email address to stay private. That's what passwords are for.

trekkin 2 days ago 0 replies      
That's why client-side encryption is useful - even with the company (Dropbox) not leaking/selling their users' data on purpose, it is easy to inadvertently leak it.

Proper client-side encryption, while often not appropriate in critical environments, is useful to protect against this type of situations.

Disclosure: I run AES.io

reader_1000 2 days ago 0 replies      
I checked my e-mail accout that I used for dropbox and There is a spam mail coming from ...@direct.nacha.org which is the same domain which one of the customer in forum received. So it seems they are right, this is not a random guess.
bshanks 1 day ago 0 replies      
Slightly off-topic, but what kind of forum software does Dropbox use? I like the clean look and the use of the blue background for the Dropbox employee.
weix 2 days ago 0 replies      
why? welcome to the cloud world!
Code.org " Dedicated to growing computer programming education code.org
496 points by sethbannon  4 days ago   181 comments top 46
kamaal 3 days ago 16 replies      
Hear me out.

I was full for this 'teach kids how to code' thingy. But I think we have got this all wrong. Heck we don't have the right kind of tools to teach kids how to code. In fact I have now realized that you can't and should not teach kids how to code. You rather must teach them how to solve problems. Math was supposed to deal with that, but unfortunately that turned out to be complicated symbol manipulation if not for anything else.

My niece here in India is around 12 years old, and she is being taught C programming back in school(She is in 8th standard, or 8th grade as per US terms). No she generally comes and stays with us in the summers. So last time she came over for a month's holiday she bought her laptop with her and wanted me to teach her to program in C.

The net result is disaster. I tried everything possible. Every other trick in the trade. Even tried to start with Python first and not C. But I figured the nature of problems is something else. Kids view programming very similar to the way they see math. They find themselves manipulating things/symbols/stuff without understanding why, for what, or even why its even relevant to them. They struggle to understand where or why should you use an if/else/switch statement, or a for/do/while loop. Its difficult for them to map solution patterns to a code pattern.

Its not their fault. Its ours. Better luck trying to explain a kid why they are being asked to write a program find greatest of three numbers, find factorials, or sort numbers. To them it very clearly looks math in a different language. Its that boring math thing all over again.

Much complication starts when stuff like pointers is pushed down their throat. Or something like bit shifting. Oh and yes, they start asking things about the process of compiling, linking etc. Or why they need to put a #include at the start of a program. You can't honestly explain all that without explaining them some underlying stuff.

Beyond all this it needs to fun, which it very clearly isn't.

What kids need to be taught is how to solve problems, even if it means repairing a mechanical watch. Instead what they are being given is math in a different dose. And trust me at that age, they don't really like doing that.

And oh, by the way. Next year they are about to be taught Java. I can only imagine the horror, the way kids of going to deal with the text walls full of verbosity, API dance and the XML mess. And the last time I heard they don't really use IDE's.

One thing that I'm convinced is, after this episode due to all this trouble and trauma of having to learn this, she clearly doesn't enjoy, she will hate programming and hope she never has to deal with it again.

Because last time I talked to her, she told me she wants to be a journalist. That's how much damage 'Teach kids how to code' has done.

I'm now glad no one ever introduced me to coding when I was a kid.

gdilla 4 days ago 2 replies      
We should also encourage HCI and usability design sensibilities as a technical vocation kids can pursue if optimizing sorting algorithms and the like isn't for them. Making things easier to use, why things are a pleasure to use and why things aren't is a stimulating field that is very applicable to a computerized future.
eliben 4 days ago 2 replies      
The video is worth watching.

I like this initiative. For some reason it brings up a lot of cynical responses, but if you really think about it, it's a pretty good thing to encourage young students to learn at least some coding.

seanconaty 3 days ago 3 replies      
Still with the learn to code meme? In addition to all the reasons that @codinghorror raises in http://www.codinghorror.com/blog/2012/05/please-dont-learn-t..., I have a one more to add.

The altruism of it all stinks. The meme is being pushed by parties (non-profit or not) looking to gain from teaching people to program (after convincing them that they absolutely should). While it's true that learning to code is beneficial to some (I don't doubt that) no one talks about how these friendly, helpful, code tutors might be exaggerating the demand for reasons of their own. While you might be trying to help people out, you're also trying to push your startup or non-profit.

I like the idea of better aligning education with job demand; something I don't think higher education institutions are particularly concerned with. That's practical and I wish we did more of it. Similar to these learn-to-code websites, colleges could care less what you do with yourself after you've paid your tuition.

What I liked about the code.org celeb video were the recollections of first programs. Like a first kiss, you never forget your first program. No matter how simple it is, that feeling is awesome. And if you're made for it, you want to do more, you want to make it better. That's the spark that, if you have it, puts you on the unending journey to being and becoming a coder.

zachgalant 4 days ago 3 replies      
I'm making www.codehs.com which is one of the sites featured in the video (the one with the dog). It would be awesome to get some feedback on what people think of it if you get a chance to try it out.

We're focusing on making it really fun and accessible to learn to make really cool programs really quickly while learning the fundamentals and getting a strong programming foundation.

One of the keys to our site is that tutors look at and give feedback on all the code thats's submitted by students, so if you're interested in helping kids out, it would be awesome if you wanted to help tutor.

We're currently testing out and building lots more tutor features, so your feedback and ideas would be greatly appreciated. Go to http://codehs.com/tutors/ to sign up if that interests you at all.

samstave 4 days ago 5 replies      
We need to push two major initiatives in education: the ability to code and the ability to manage finances.
TheBiv 4 days ago 1 reply      
I love the addition of Chris Bosh! After coding being hard, in general, I believe that our industry's biggest challenge is it becoming "sexy" or having role models that a vast amount of people can connect with!
Yoms 4 days ago 0 replies      
My grandfather took the time to teach me some BASIC back when I was around 7 years old, and it led to my career. I've been working at teaching programming to my kids as well, but the video here inspired me to give the same chance to other kids...

I contacted the principal at my kids elementary school and offered to use my expertise to help any way I could. We get so caught up in what we're doing, it's easy to forget that just a small bit of effort can have a significant impact on peoples lives.

scottrb 3 days ago 2 replies      
If the US were to integrate coding into the school curriculum, our K-12 schools could rise to the global ranks that our university system currently occupies. But it can't just be an addon elective, it needs to be integrated across many subjects. So much of learning that's considered to be dull or boring can be made fun with programming. Write a program to simulate a ball flying through the air and aside from giving students the building blocks to make their own games/animations, they've also learned about gravity, projectile motion, and maybe even calculus. Add some wind into the mix to learn about resistance. Write a simple program that simulates cells dividing and you've got some biology and math happening. Creating some basic tones and sounds with code is a frighteningly tiny distance away from learning about music theory.

The software platform could be open sourced. Maybe even written in the programming language that students work in so students could modify it and submit patches, but also to mess with their little minds and get them thinking about self-hosting compilers.

And how much would this cost if done correctly? It's probably a terribly small figure per student over the course of their education. It may even save some money on textbooks if it's a tablet device to double as an e-reader. Maybe even more if those textbooks were open sourced and not sold at laughable prices... It's amazing how far we are behind at present.

My fear is that people assume (good or bad) that every student will come out a programmer, which is just missing the point. EE/CS degrees would be worth even more in such a world.

sjtrny 4 days ago 4 replies      
Where's the group pushing "everyone should learn to": be an accountant, doctor, engineer, electrician or a plumber. And on and on and on.

Not everyone needs to learn to code. I agree that exposure to it and a basic understanding of it is good, just like other disciplines. But this is already happening! I learnt LOGO in primary school and then mindstorms, VB and HTML in high school. And so did everyone else, they weren't electives.

nsmartt 4 days ago 1 reply      
I think teaching students to program is a wonderful idea. Most people use computers every day-- be it work or leisure. Knowing how to automate your workflow in whatever career you choose would be a wonderful asset.

However, I'm concerned that this isn't the goal. Lots of the video refers to a great need for programmers. It sounds like lots of the interested people are more interested in preparing students for a career in software engineering,

svsaraf 3 days ago 0 replies      
I'm currently in medical school, so I think my opinion might provide another perspective on this.

As others have pointed out in this thread, the incentives behind folks pushing the "learn to code" idea are varied: some people want more engineers to hire and some people want to sell to those learning to code. These seem like reasonable criticisms, but I think they miss the point.

Many of you, if not most, are in the software industry. You try to solve interesting problems every day, or, at least, you'd like to. Every industry and every field has the need to solve them, at least with my definition of 'interesting'.

Solving such a problem is difficult. It requires knowing very clearly about the rules of engagement, and mapping out strategies for tackling the issue. It requires an understanding of the lay of the land, but also the capacity to think outside the box. In short, it is exactly what all of you would expect from a 'good' programmer - the ability to think actively.

You'll notice that I make no claims of this sort about physicians. The best doctors may do these things, but most doctors don't. And at the very least, doctors certainly are not trained in ways of solving problems effectively. Instead, we are mostly trained in pattern recognition.

So what? Do I think a doctor would benefit from learning to program? Yes. Because figuring out how to writing a complex program is not so different from doing a complex surgery. Understanding algorithms is not so different from producing a good differential diagnosis. Most importantly, if we want to solve big problems we can't always rely on an engineer from the outside looking in and solving it for us.

Programming forces you to explain your understanding to something that is very stupid (in a way). If you don't understand what you're doing, your program doesn't work. That basic check doesn't exist for doctors. Ask your doctor what a graph of y = 1/x looks like. Then ask him to graph alveolar CO2 vs ventilation. You should be really afraid of how many doctors only know the latter. I would guess some of them even wouldn't know that! (but they probably know what to do with a patient who's hyperventilating, because they'd memorized it)

Programming is the means to the end, not the end. All this talk of APIs and IDEs and C vs Python vs Javascript really seem to miss the bigger picture here. The best way we have of teaching thinking is with programming (IMHO) and there has to be a way of teaching programming by getting all of the annoying crap out of the way. And we desperately do need more people who have the capacity to think and solve problems. Maybe not will.i.am or Chris Bosh or even software junkies in the valley, but definitely in every other industry.

EDIT: small grammar edit, no content change.

interknot 4 days ago 2 replies      
I am generally enthusiastic about teaching people to code. That said, I am ambivalent about the backing organization, "Code.org":

Every single person on their advisory board (http://www.code.org/about) has a vested interest in there being more programmers competing for jobs.

I feel like they are misrepresenting the nature of most programming jobs to the general public.

They prey upon people's fear of unemployment and cite numbers about there being fewer programmers than jobs. Nearly every single person in that video has explicitly said they only hire the very best. My guess is that we'd still end up with legions of unemployed people that happen to be mediocre-to-awful at programming.

signed0 4 days ago 0 replies      
I like this because instead of saying "everyone must code" it says "everyone should have the opportunity to learn to code".

There are always going to be those that are not interested in coding. Forcing anyone to learn something they aren't interested in is just a waste of everyone's time.

If you give kids the resources they need to get started and a good environment to experiment in they will take care of the rest.

hoi 4 days ago 1 reply      
One of the simplest and most accessible forms of coding that most people will encounter in their working lives is the spreadsheet.
dreamdu5t 3 days ago 0 replies      
This isn't about growing computer programming education, it's about the basics for people with poor computer literacy.

Google search and PHP.net documentation have done more for growing computer programming education than any project like this.

We need more great documentation resources, and less "let me hold your hand" tutorials.

jQueryIsAwesome 3 days ago 0 replies      
Its a little bit relevant; so I would like to mention that I created a little collaborative and opensource[0] _spanish_ directory of videos and documents to learn programming; it's called http://Programando.la/, I would also like to mention that CodeCademy haves a spanish version[1].

[0]https://github.com/AltIvan/programando.la MIT License)


MrJagil 3 days ago 0 replies      
Speaking as someone who is currently taking his first programming lessons in school at the moment, this seems great. What I really need though, is great tutorials in the languages I'm using.

Codecademy and Khan both do a great job, but neither has any/proper support for Processing or Java, which is what the courses at my university revolves around (there's a bit of drawing on Khan, but in no way enough to make me anything close to comfortable with the language).

In short, what really prevents me from speeding up my learning is content. The will is there, and I believe it is for a lot of other people as well.

(btw, yes, i can look up double arrys on processing.org but trust me, it can very difficult to implement their content when it does not relate to your own project. That's why guides are so good. This is not good: http://docs.oracle.com/javase/tutorial/getStarted/intro/defi...)

aaronmhamilton 3 days ago 0 replies      
The issue is that schools are not a place to learn, they're not the right place for people to actually develop skills.

Because schools suck at teaching (because they feel like glorified prisons and lack resources due to ignorance and bureaucracy) we must fix/replace schools before “teaching” kids to code, otherwise we will fail.

Also, this illusion that low-level languages like C are any less suitable for introduction than other languages is yet another barrier, I learned in assembly, and I would probably prefer to learn in C, since it's very simple, clear-cut, and consistent. No namespacing, very little context, very little syntax.

The best way to teach any skill, is to provide resources and motivation for the completion of real, practical tasks. In software we have the unique opportunity not to break anything real when we build something equally-so.

why-el 4 days ago 4 replies      
Most challenges faced across the global are cultural and linguistic in nature. The heavy dependence on English is a huge barrier to most children and young adults out there. All my attempts to introduce young cousins and nephews to coding failed because they are at the stage where anything not in their own tongue is unfathomable. I looked into making a small ny-own-dialect-based mini language but it seemed that a better approach is to simply translate existing well designed and well maintained efforts such as Alice. Any idea on how to begin doing that or whether a similar translation project is underway?
nickmain 3 days ago 0 replies      
If we want to teach the next generation to code we should make sure that the "programming languages" we use work well on a touch screen with no keyboard or mouse.

That is, probably not text-based.

dakimov 3 days ago 0 replies      
Growing computer education you say? Also teach kids engineering " it's easy, everybody can do it, right? As easy as programming. Everybody can program. I have no idea why programmers have high salaries. And why we cannot find programmers that are not self-taught and possess at least the fucking theoretical minimum of CS disciplines and a grasp of professional culture. Yes, give the world more ignorant "I can code" folks, there is not enough of them!
jurassic 3 days ago 0 replies      
An old math teacher friend of mine has introduced his 7th grade students to "programming" through Lego Mindstorms. The kids work in teams to build the robots from kits and then program them to navigate a maze/obstacle course using Lego's software. I don't think its that close to "real" programming, but it does get the kids thinking about how to break down problems into logical steps. And it's enough like play that pretty much everyone gets into it, and the ubernerds in the group race to see who can finish the course in the best time.

I'd like to see more things like this happen in schools, but it's hard to find the time and money for ~10 mindstorms kits in every classroom.

pla3rhat3r 3 days ago 0 replies      
As cheesy as this video is they're right. My kids do not learn coding in school. Our area high school teaches kids how to use computers but there is no coding classes. When I went to school in the late 80's we have a program that allowed us to move a turtle on a green computer screen. It was my first exposure to programming. I wish schools would put more importance on this skill. Even if kids do not get into technology, knowing a programming language is an invaluable skill in any industry.
shurcooL 3 days ago 0 replies      
On this topic, I think it's very important to create tools that allow learning and creation as envisioned by Bret Victor [1].

[1] http://worrydream.com/LearnableProgramming/

rullopat 3 days ago 0 replies      
I completely disagree with this. The world doesn't need more coders, but BETTER coders.
cek 3 days ago 0 replies      
My favorite quote in the video is near the end: "Coding is as close to a superpower as you can get."

I feel that.

orangethirty 4 days ago 0 replies      
This is a great initiative. The video is powerful, but they forgot to include a link to the donate area right there in the video. I'd love to add my little startup to the list of places teaching how to program.
johnernaut 4 days ago 2 replies      
"Learn to Make Webpages - W3Schools"


teeboy 4 days ago 0 replies      
Has anyone noticed that they are recommending W3Schools?


zopticity 4 days ago 1 reply      
What's the difference between Code.org and Codecademy.com ? Are they trying to achieve the same thing but in a different perspective? It looks like a lot more celebrities are on Code.org making it an enticing place to be.
potomushto 3 days ago 0 replies      
True programming education is a education for hackers or in other words it is a self-education. Today our hollywoodstic world have many examples which may inspire anybody to become a hacker who can learn anything by hacking.
Of course coding basics and algorithms, like arithmetic, should be at school, and many countries already have programming courses.
robertlaing 4 days ago 0 replies      
This is awesome.

I just wish someone had edited Will.i.am's quote though... I think he thinks 'reading code' is like reading music or something...

“Here we are, 2013, we ALL depend on technology to communicate, to bank, and none of us know how to read and write code. It's important for these kids, right now, starting at 8 years old, to read and write code.“

geoffroy 3 days ago 0 replies      
In France, we were taught Logo when I was 9/10 (back in 85) on Thomson computers (French equivalent of Sinclair ZX Spectrum) at school.
I got stuck into programming since then !
sybhn 4 days ago 2 replies      
IMO make learning programing (fun) a path to learning math (not fun). Once you understand mathematic fundamentals, understanding finance - and other such disciplines - comes naturally. You soon realize that most of (consumer) finance out there are marketing flush revolving around a few formulas.
yankoff 3 days ago 1 reply      
What's the matter with this "Let's teach everyone to code" thing? Why code and not, say, medicine? Is there such a lack of engineers?
nyddle 3 days ago 0 replies      
I thing teaching kids how to program is needless. Let's make educational games like Robot Odyssey. This one really affected profession choice of people who played it.
toolslive 3 days ago 0 replies      
my kids (9,9 & 11) play around with Scratch to create their own games, interactive presentations , ...
They started to learn this a few years ago, and I only had to install it and show them the very basics.
After that, they bootstrapped themselves using youtube tutorials. Btw, they are not programming, they are building games (at least that's how they look at it).
I just want to say that tossing the right toy in their general direction might be enough.
kentf 4 days ago 0 replies      
High time to change "Hello World" to "Change the World" http://news.ycombinator.com/item?id=5290217
devgutt 4 days ago 1 reply      
favorite quote: "A computer doesn't care about your family background, your gender, just that you know how to code." " Dick Costolo (Twitter
LAMike 4 days ago 1 reply      
Why isn't HTML/CSS or Python taught in high schools around the country? If I saw a similar video when I was in school I would have started way earlier
frankdenbow 4 days ago 0 replies      
The Academy for Software Engineering is another effort in this area: http://afsenyc.org
bromang 3 days ago 0 replies      
the universal aims of this project seem a bit misguided. only a small percentage of students will have the ability to be productive programmers.
epicwhaleburger 3 days ago 0 replies      
Fight between codecademy and code.org probably
hydraphoenix 3 days ago 0 replies      
ekianjo 3 days ago 0 replies      
Wow, it's even backed up by the official creator of the Internet, Al Gore!
The best programmers are the quickest to Google framebase.io
475 points by vu0tran  5 days ago   197 comments top 60
jfarmer 5 days ago 6 replies      
Yes and no. I'm a co-founder of http://devbootcamp.com so I see this every day in the context of people learning to be programmers.

"The best programmers I know understand how to architect and build large projects piece by piece. They can focus on the macro because don't get hung up in the pieces. They know how to use Google to find solutions fast. DRY."

I agree with the first and second bit and strictly speaking the third. That is, when students first watch me code they're surprised both that I'm looking up this-or-that ActiveRecord method and at the speed with which I do it. They assume expert programmers have a book of magic spells they've memorized, so to see what I haven't in some ways makes it more magical.

What am I doing, then, if not memorizing every last little thing? What makes me a "better" programmer?

The key to becoming a non-beginner are the first two bits, not the third. It's developing that filter experts have which separates relevant information from irrelevant information. Lots of beginners use Google in a backwards sort of way, having been trained to "look for the solution." Google is like the great universal answer key for them.

It can't be about memorization, then. Being an expert is more like having this amazing compression algorithm at your disposal and we can evaluate very quickly whether some piece of information is compatible with that compression algorithm.

It's made worse by the fact that they see experts do it, sometimes. Or worse, that experts tell them, "I use Google all the time, you should, too." But Google is worse than nothing if the beginner finds code, copies it blindly into their project, and shuffles characters around until it does what they want. They are robbing themselves of the opportunity to abstract out common patterns, recognize similar problems in different guises, and generally setting an impossible bar of having to memorize too much.

Lots and lots of students have been trained to see software development as THAT.

nollidge 5 days ago 5 replies      
This is something that bugs me about whiteboard-style interviews - they test almost none of the typical day-to-day aspects of programming. Without Google, without docs, without a REPL, without the code-run-debug cycle, how is it that you think you're assessing how effective I am in real life?

EDIT: not to mention that you're also not testing me for one of the most important abilities of a coder in a software shop: how well I learn new things.

ry0ohki 5 days ago 2 replies      
I've always believed this, of course then I worked at a company that wrote it's own programming language for it's product, and there was nothing to Google for (I still don't understand why they did this but stay with me).

In that environment, you learn quickly what skills separate a good programmer from a bad one. The traits I found the most useful:

-Learning speed (ability to quickly grasp a completely foreign concept)

-Creativity (without a template of how others do it, you are the trail blazer)

-Patience, because the really bad programmers wouldn't even try, they would curse it as stupid and leave or get someone else to do the work.

codex 5 days ago 6 replies      
"The best doctors are the quickest to Google."
"The best scientists are the quickest to Google."
"The best engineers are the quickest to Google."

Are the above statements true? Quite possibly. I would argue that the best in their fields are those writing the answers that are indexed by Google to be found by others.
However, usually the best in their fields are also good at using Google. Unfortunately, the worst in their fields also use Google extensively, so it's not a strong signal.

EDIT: My definition of "best" is admittedly very subjective. The author could define "best" as "most effective", for exmaple. My only point is that you shouldn't use Googling to determine who is "best" because the "worst" also can be quick to use Google. It's a useless signal. More situationally appropriate metrics should be used instead.

JohnBooty 5 days ago 2 replies      
I couldn't help but read this and think about technical interviews that involve the candidate being asked to write code on a whiteboard - no Google, no code linting/hinting/completion etc.

I'm very much in favor of candidates being asked to write some code under more realistic conditions, including finding solutions to parts of the exercise online. Of course, they should then be able to explain to the interviewer(s) why they chose a particular solution and walk the interviewer through the code they borrowed/adapted.

dlo 5 days ago 3 replies      
It depends on what you're working on. If you're working at the cutting edge, you will find that Google often doesn't have the answers you need... simply because they aren't out there.
Apocryphon 5 days ago 4 replies      
What was life like before Google? Sure there was documentation, and code comments, and senior devs you could ask. But surely that was less than Google? Or perhaps the scale of problems were less vast compared to now, so the amount of info you would get by Googling now was unnecessary back then.
SchizoDuckie 5 days ago 4 replies      
True story, but it's not just being the first to do a google search. From personal experience I've also seen that how you use google and what variants of your search terms you can come up with that make the biggest difference in getting to the right answer/method.

The problem is: when you get to a certain level of skill, or are working on very obscure problems, or are working with hightech (even yet-to-be-released) stuff, not even google will help you anymore. That's where how good of a programmer you really are comes into play.

kamaal 4 days ago 0 replies      
Re framing this a little- "The best programmers are the quickest to discover things".

When I was a kid, and when I first heard about open book exams I was amazed. Well if they allow you to carry your textbook to the exam hall you should ace through the exam through flying colors, right?

Not quite, later when I studied the question paper I realized it was so framed, that the test was not to copy the facts from the textbook and answer as such. But the questions were basically problems and you will be forced to look up the text book as a reference with your own problem solving ability being the core test being tested here. In such cases it makes far more sense, to simply allow the person to carry the textbook to the exam hall.

Its easy to get access to a textbook/google/documentation/manual/whatever. And spending your effort to remember facts is a waste of time and energy which are often in short supply. Now extending this same philosophy, what if the solution patterns to large number of problems is readily available?

In such a case it makes more sense to focus on a) Quantity of problems one can solve b) Quality of problems one can solve. Instead of learning the solutions to the problems, use the solutions to do something big, or use the solutions to do a lot of things.

If you are wondering why the CS illiterate guy next to you is as equally productive as you who has read some thousands of pages of CS literature, its because when solutions are available easily and for cheap- Putting everything in your brain is a pointless exercise.

What matters is getting things done.

why-el 5 days ago 1 reply      
You might want to make that Google lower case, because as it currently stands, it seems to suggest that the fastest programmers go to Google.
pav3l 5 days ago 7 replies      
>why in the world would you want to spend 2 hours trying to figure it out yourself?

I am sure a large portion of HN-ers (myself included) enjoy doing exactly that. I want to spend my day solving problems, not googling shit.

nnoitra 5 days ago 1 reply      
To be honest I completely agree with the quote. The most important thing should be the ability to reason about Computer Science and programming.
On the other hand, I've written and implemented tons of Algorithms and DTs for the sole purpose of learning. I have a lot of accumulated toy code.
"So unless you've already memorized that sorting algorithm by heart, why in the world would you want to spend 2 hours trying to figure it out yourself? "
For the sake of learning. I may not memorize the entire code of merge sort but I will sure as hell know how the merge procedure is implemented. Additionally you develop a feel and intuition for it. However, when it comes to showing off your coding skills I would recommend building useful apps, I doubt any employer is going to be impressed about toy code that implements DFS.
vignesh_vs_in 5 days ago 0 replies      
Your googling skill plays a big part in problem solving, and most of the time you are required to know what exactly is your problem.

I personally google stuff a lot when building a side project, I dont google for solution for a given problem, this is where your programming skills come in . You need to know what exactly you are looking for to get the correct answer from google. It cant be a blanket statement ("parse data from json"). Most of the time the answer is split across multiple sites and which you put together n solve your problem.

lee 5 days ago 0 replies      
The one thing that this post completely overlooks is that storing knowledge, even Googleable knowledge, can be very beneficial.

Knowledge can help develop intuition, to know which pieces connect to each other. For example, in a programming competition you could google various algorithms to determine solutions. But Google won't tell you "which" algorithms to look for, or give you the intuition you need to piece the correct solution together.

A good analogy is chess. Before computers could beat humans, it was a pure game of human mind vs. human mind.

Then the computer was able to dominate humans.

And now, we're discovering that a human paired with a computer, can beat either alone. But that human still needs to have the intuition, experience, and knowledge to know how to work with the computer.

6ren 5 days ago 0 replies      
Is a great memory a requirement for great programming? http://stackoverflow.com/questions/572620/is-a-great-memory-...

Alan Kay: in programming there is a wide-spread 1st order theory that one
shouldn't build one's own tools, languages, and especially
operating systems. This is true"an incredible amount of time
and energy has gone down these ratholes. On the 2nd hand, if you
can build your own tools, languages and operating systems, then
you absolutely should because the leverage that can be obtained
(and often the time not wasted in trying to fix other people's not
quite right tools) can be incredible.

SmileyKeith 5 days ago 1 reply      
This seems like a controversial topic. Some people seem to think that if you don't know something code specific without Googling than you're something like a Duct tape programmer (although I may be stretching the term away from what Joel talks about http://www.joelonsoftware.com/items/2009/09/23.html). Being a college student it's interesting to see articles like this, that I agree with, and then hearing from my professors "anyone can google you can never be a good _computer scientist_ if that's all you do!"
xoail 5 days ago 0 replies      
This has side effects. In my case I was becoming more and more lazy and never bothered thinking about the problem properly and taking a chance at coming up with a solution. I became expert at search and finding solutions. Ex search: 'display uitableview in a grid view' came up with lots of libraries... I did end up using one of them. But I wish I took sometime to do it myself or at least try to understand how this library is working. As I continue to use more and more libraries I realized I was becoming more lazy and more prone to searching for solution as first thing rather than giving my brains a chance. I felt dumb...
alainbryden 5 days ago 1 reply      
Microsoft recruiters are doing their rounds for Seattle, and I was just asked over the phone how I would implement a quick sort. The answer I wanted to give would have been something like this blog post. As a developer I would never waste valuable time trying to roll my own version of an algorithm that's probably available on Wikipedia and optimized for every programming language imaginable. I guess what they were looking for was some buzz words like "divide and conquer" and "big oh n log n time". I understand interviewing community college graduates with no experience like this, but young adults with 6 years of SE behind them? Ridiculous.
ericb 5 days ago 1 reply      
No, the best programmers have done it before, and documented it. Every good programmer should have an Evernote or failing that, a Tiddlywiki for all non-trivial information.

Googling is hit or miss--that great source for how to set up ssh certificates in Apache might rank poorly tomorrow, and pages which don't do show how to make a pem might be top ranked tomorrow.

Evernote has saved me tons of time... I look at it as a digital extension of my brain.

hotshothenry 4 days ago 1 reply      
I Googled "how to handle error messages in php" for your co-founder and came up with this http://www.w3schools.com/php/php_error.asp, since clicking on the "Get an invite" button (on https://framebase.io) while leaving the email field blank throws an exception error:

exception 'Exception' with message 'MDB2 Error: null value violates not-null constraint, _doQuery: [Error message: Could not execute statement]
[Last executed query: EXECUTE MDB2_STATEMENT_mysql_8edec1a3e8682362d38c86df48ba2cd8 USING @0, @1]
[Native code: 1048]
[Native message: Column 'email' cannot be null]

Executed SQL:
INTO `waitlist`
SET `email` = ?,
`created_at` = ?;' in /var/www/.submodules/TinyDb/TinyDb/Orm.php:630
Stack trace:
#0 /var/www/.submodules/TinyDb/TinyDb/Orm.php(194): TinyDb\Orm::check_mdb2_error(Object(MDB2_Error), Object(TinyDb\Sql))
#1 /var/www/.submodules/TinyDb/TinyDb/Orm.php(165): TinyDb\Orm::raw_create(Array)
#2 /var/www/.submodules/Framebase-Models/FSStack/Framebase/Models/Waitlist.php(20): TinyDb\Orm::create(Array)
#3 /var/www/Includes/FSStack/Framebase/Controllers/register.php(38): FSStack\Framebase\Models\Waitlist::create('')
#4 [internal function]: FSStack\Framebase\Controllers\register->__post_waitlist()
#5 /var/www/.submodules/CuteControllers/CuteControllers/Base/Rest.php(25): call_user_func_array(Array, Array)
#6 /var/www/.submodules/CuteControllers/CuteControllers/Router.php(28): CuteControllers\Base\Rest->route()
#7 /var/www/index.php(47): CuteControllers\Router::start('/var/www/Includ...')
#8 {main}

...thought that might help

jiggy2011 5 days ago 0 replies      
Most annoying thing ever was doing IT work at a company where internet access was not granted to employees below a certain paygrade.

The amount of times I'd run into a problem and then instinctively fire up the browser just to get the "cannot connect to google.com" message.

They handed out ringbinders full of notes to staff insisting that everything we needed was in there.

nissimk 5 days ago 0 replies      
Yeah, we need to always be learning new stuff and the way you learn is by RTFM. The point is that now Google is TFM. Or at least it's the index into every manual published. So unless you are already an expert in every server program, every library and every language that you are using, the way you acquire the knowledge of how to accomplish whatever specific task you are working on is to refer to the manual. You still need to know the technical term for what you are trying to do so you know what to search for and you have to know how to evaluate and select different technologies and how to fit them together, but the details of how to work stuff and solve many specific issues is best found on the Internet.
polskibus 5 days ago 0 replies      
Such thinking can only take you up to a certain level of excellence. Having admired some c++ standard committee members in action, I can say that if they had to google every harder bit, their skills would've been mediocre.

If you want to be one of the best, you need to have a local data cache instead of fetching knowledge from a remote resource.

guelo 5 days ago 0 replies      
If I've been solving a specific type of problem using similar technologies for 10 years I'm going to code circles around you while you're off googling stuff.
joshualastdon 5 days ago 0 replies      
Let use an analogy in education:

A professor in college might allow the class have an open book exam, however you still see a number of people who might not pass that exam. Why? Well, there were two kinds of people in that class:

1. The smart ones who actually know the material.
2. The others who know nothing about what had been taught so far in the class.

The students in the first category will pass the exam but the second crowd perform poorly, because even though the book is in front of them, they don't know what to look for, especially in a timed test.

So the way I see this is that googling will help those who already have knowledge of the programming concepts, not those who have no idea of what they are trying to implement at all. In reality those who can use google to get what they want can also figure it out without google, even though it might take longer of course.

static_typed 5 days ago 1 reply      
I sat with a newbie programmer the other day. We sat there and made good use of third-party libraries, frameworks and code to get things moving, and concentrate on the core problem at hand.

Now, we had to Google a bit to install the third-party and dependency stuff, and tinker with configuration to get it all ready.

Eventually we delivered the GUI version of 'Hello World', and the newbie programmer had already progressed several steps when he remarked: "So, modern programming is basically building my code on top of other people's code, without really knowing how it all works, if it is really any good, and hoping it all works well enough to make the whole thing work".

Any he was right. Long gone is the time when we understood all the components and code for our entire domain.

And we are often the poorer for it.

8ig8 4 days ago 0 replies      
This has to be one of the widest pricing plan spreads I've come across:

$99, $699, $4999


jrussbowman 5 days ago 0 replies      
I agree to an extent, and I do use Google a lot when programming. However, I'm a systems administrator by trade and not a programmer. I have been in cases when I've wanted to write code in a cabin in Nova Scotia with no internet and wasn't able to get everything accomplished because I was unable to Google and didn't have the docs on hand.

I'd be really wary of telling people not to remember stuff and rely on the internet. The primary reason being sometimes you can't access the internet. As a sysadmin it's my job to understand this and document everything. It was personally embarrassing when I realized all I had to do was download a couple pdfs and I'd of been fine.

You may not need to keep everything in your head. However, having direct access to knowledge is important. If it's not in your head, then keep it in a local file or what I'm really fond of, get the book.

taylorbuley 5 days ago 0 replies      
The platitude sounds like something I can get behind but it's so much more than knowing how to search -- it's knowing where to search. I know programmers who are great at searching but have no idea which online information sources to avoid, which is at least half the battle.

In a world of copy/paste programmers, bad code gets worse as it's regurgitated around the web.

chacham15 5 days ago 0 replies      
There are a few problems with that in my experience: you cant use all open source projects in a proprietary context and open source projects all have different dependencies. The former flat out stops you from using the code (and you shouldnt even read it to avoid any accidental lawsuits). The latter is a big problem because you dont want to use eight different frameworks in one projects.
Goladus 5 days ago 0 replies      
The flip side of this is that deep understanding of fundamentals helps dramatically when it comes to asking the right questions and filtering results.

In my experience, google is often secondary to first-class reference materials (language documentation, man pages, etc.)

ramirez60 5 days ago 0 replies      
Before I really started coding I worked in electronics (designing mixed-signal design kits at the semiconductor level) and I remember I used to judge programmers by how much "better" at google they were than me. Since I've switched over and become a full-time coder (and co-founder which is a whole different exercise) I have become far better at searching for solutions to my problems than I was in the past. That being said I don't think it's the fact that I default to searching that makes me a good programmer. I think it's like some of the other comments have mentioned, the ability to filter what information is useful or not quickly and then apply and test the useful information so that you do not have to re-derive every action. This has led me down a rabbit-hole a few times where I would be testing different solutions when just building it myself would have been much faster, but overall I definitely think it is part of what makes me work at the speed at which I do.

I'm reminded of Mathematics from college. When first learning something it's difficult and simply seeing the solution won't improve your ability to recognize it. But once you figure it out once, you may not immediately remember how to apply it when faced with a similar problem, but recall is very quick because your brain has already wired the pathways of understanding.

jeffdavis 5 days ago 0 replies      
"So unless you've already memorized that sorting algorithm by heart..."

That's a bad example. Nobody does that, unless they are really trying to solve a sorting problem.

This article comes down to: "don't reinvent the wheel", without really any supporting examples to guide you further than that.

xutopia 5 days ago 1 reply      
I thought from the title that you meant that Google, the company, thought that faster coders are just better.
stcredzero 5 days ago 0 replies      
> chances are, unless you're an absolute genius, the collaborative efforts of an open source project will beat whatever you can do in 8 hrs.

It depends. There could be an information asymmetry that leads most people down the wrong path, and an open source team could be subject to groupthink that leads them down that path faster.

A lot of what distinguishes experienced programmers from inexperienced ones, is that experienced programmers generally know how to mitigate non-obvious risks. What distinguishes great experienced programmers, is that they know how to mitigate such risks more efficiently.

0x0 5 days ago 1 reply      
I think the key takeaway here is not just being the quickest to Google, but the quickest to google well.

It's so frustrating to see people trying to google a problem, but fumbling with a poorly written query and/or focus on the wrong search result hit snippets.

the_cat_kittles 5 days ago 2 replies      
Maybe there should be another programmer maxim: DRO (dont repeat others)
samspot 5 days ago 0 replies      
With this title I was really expecting some kind of study, not an anecdote from one person.
enraged_camel 5 days ago 0 replies      
I Google everything right away. I guess this makes me the bestest programmer!
noonespecial 5 days ago 0 replies      
But the slowest to cut and paste what they find there.
rapind 5 days ago 0 replies      
"the collaborative efforts of an open source project will beat whatever you can do in 8 hrs" is often untrue.

You need to have the ability to read and understand at least part of the code to make sure said project doesn't have fundamental flaws or sub-par code.

RileyJames 4 days ago 0 replies      
When I was learning Ruby & Rails my co-founder told me about http://ruby-toolbox.com, and while it's still not perfect for beginners, it goes a long way to solving the "what to google / what to use" problem. If you have a very basic idea of what you're trying to do it can generally suggest a few options to use (gems). I've also used it to work out the category of the problem I'm trying to solve.

I'd love suggestions regarding more sites where you can search in a problem space as opposed to a specific bug or issue.

cdl 5 days ago 1 reply      
From my experience of not doing this early on, the quicker you take this advice, the quicker you will build really cool things.
calhoun137 5 days ago 0 replies      
I'm sorry but no. This article should be called "The best programmer I know can quickly understand things he finds from google, but I don't really know what he's doing that makes him so awesome".

Sure googling something fast can be a nice little boost to productivity, but only if you know what you are doing. If I drag and drop code from my web browser instead of using copy paste, I might save a few seconds after doing it 50 times; but if I totally fuck up my code-base because I don't know what the code is doing, then productivity is going to decrease significantly when the entire team gets backed into a corner and has to take the time to figure out where the bugs are, if/how to rewrite core systems, and hopefully this wont happen, but where the security holes are that let a hacker pwn your DB or worse.

fnbaptiste 4 days ago 0 replies      
Agree and disagree. I'm very good at finding solutions fast with Google, but those solutions only work for me because I know what I'm doing. I know several developers (or designers who do a bit of development) who rely too heavily on other people's code for every problem they encounter. As a result their work is often riddled with conflicts and often doesn't work quite the way they originally intended. Everything becomes a work around. When everything breaks they have no idea how to fix it. Lately I find if I know how to build it from scratch I'd much rather do that
fluorescentLAMP 5 days ago 0 replies      
When I interview a candidate for a hacker-like position, I provide give them the problem constraints and hand them my computer.

I tell them to lookup anything they want.

The portion of time spent on Google directly correlates to their success.

ichinaski 5 days ago 0 replies      
Many of the best programmers I've seen google stuff. So do many of the worst I've seen.

The difference is the former won't type a single statement without knowing what it does first, while the latter will just copy and paste something that seems to work, regardless they understand it or not.

The last time I came across some copy-pasted code that was giving some troubles, and after asking the owner of that code what some stuff did, he was unable to tell me, after claiming it was just fine, because the code he copied was from a trustworthy source. This, I guess, is a bad practice of how googling things should work.

marpalmin 5 days ago 0 replies      
I have seen too many people copy pasting from google and introducing bugs in the code just because they don't understand what is going on.

I know that HN is really focused toward web apps and mobile apps. However, sometimes is good to remember that there is plenty of software done also to control machines and perform mission critical tasks.
In those cases often is better to have control over the whole software stack. That is why so many High-Tech companies have their own software libraries, for example for image processing. In addition there is an IP and licensing question.

steeve 5 days ago 0 replies      
Makes me wonder then why Googles presses so much on academic CS knowledge during their interviews.
re_todd 4 days ago 0 replies      
The best programmer I knew was quick to google, but so was the worst programmer I knew. If you're slow to google maybe it's the sign you are an intermediate programmer.
dmcg 5 days ago 2 replies      
and when Google fails, a well posed question on Stack Overflow can get results in 10 minutes. I worked my way through a whole Scala project that way - Stack Overflow Driven Development.
fotoblur 5 days ago 0 replies      
Its not only resourcefulness but the ability to know what pieces you need to build the project. That is harder to find by Googling.
seanlinmt 5 days ago 0 replies      
Even faster than googling it up is searching through evernote or whatever app you've used to organise your cheatsheets. Evernote has become my external and more organised storage for my brain.
rza 5 days ago 1 reply      
I'm not quite sure what is so revolutionary about this post. If you don't know something of course you will Google it. However, a good programmer can make better queries precisely because he/she knows more background about the problem than a less experienced programmer, so in the end, it's still down to who has internalized more information.
lelele 4 days ago 1 reply      
More like: the most clueless programmers are the quickest to Google. If you know what you are doing, there isn't always an urge to look for ready-made solutions.
billions 5 days ago 0 replies      
Top down thinking is the #1 most underrated skill in large scale problem solving. However, there is an equally important need for fixing narrowly defined problems which need detailed focus. In the end you need both the engineer that projects the entire car and the one that builds the door handle.
pit 5 days ago 2 replies      
Does anyone else find themselves Googling the same question over and over again? How do you deal with that?
jezclaremurugan 5 days ago 0 replies      
The best ones are those who know _solutions_ exist or what to google for.
bsg75 5 days ago 0 replies      
The best do not have all the answers, but they know how to find them.
macoughl 5 days ago 0 replies      
Be the quickest to Bing or DuckDuckGo; They are less spammy
The Coolest Experience I Had as an Apple Store Employee unretrofied.com
474 points by Gromble  1 day ago   155 comments top 31
pud 1 day ago 15 replies      
The kids knew sign language?

The kids went and bought stuff (incl laptops) at multiple stores?

And wasn't there a long line at Apple? How'd they make it to so many other stores?

The kids physically go to the store to buy school computers?

The kids are such good actors that they fooled the author & all other salespeople?

A teacher would actually allow kids to pretend that they're disabled?

No bulk discount or pre-arranged deal?

All other employees in the mall were mean to deaf kids?

Author doesn't remember which Apple product was debuting?

I hate to be "that guy" -- but this story is most likely fiction.

jballanc 1 day ago 1 reply      
The coolest experience I had as an Apple Store Employee was saving Christmas...no really, we literally saved Christmas. It was about 1:30 AM on Dec. 25th, and a man comes in to the store out of breath. He needs two iPod nanos. "My wife thought I was getting them, and I thought she was getting them..." he explained. Not a problem. We got the nanos, and sent him on his way.

That was fun...

joejohnson 1 day ago 1 reply      
That was a sweet story. Now let's turn to the comments and hear all of the cynical reasons I should be mad.
jurassic 1 day ago 4 replies      
Please don't do this. While this author seems to have enjoyed the experience, many retail workers have enough to do without being jerked around by those pretending to care about the experience of people with disabilities. It seems ridiculous to me that the teacher thought it was a good idea to lead these children in an extended "lie" in order to teach them about tolerance and empathy.

Once when I worked in bookstore a man came into the store and faked being deaf. My coworkers and I jumped through all kinds of hoops to accommodate him and spent a lot of time writing notes back and forth to help this customer find a particular type of book he said he was looking for. After half an hour of scribbled notes, fetching books from the stacks, and iterating towards what he was describing the man bust out laughing and declared "Hahaha! I'm not actually deaf!!" and walked out without buying anything.

I felt stupid and annoyed that he had wasted so much of our time. Not only did that man's behavior distract us from other legitimate customers, the experience left me feeling guarded about whether to accept people at face value. I never encountered any other customers with hearing disability while I was at that job, but I'm sure I would have had skepticism from this hoax experience in the back of my mind as I tried to help them.

You are not helping anyone by pretending to have a disability.

typpo 1 day ago 5 replies      
Perhaps the students were treated better at the Apple store because they were buying 15 macbooks. Surely they didn't spend that much money at all the other mall stores.
jyap 1 day ago 2 replies      
It's a nice story but the MSRP of that 160GB MacBook was $1,499.00. So the kids paid $22,485.

So it's comparing Apples with common everyday oranges. (Pun indended)

jmomo 16 hours ago 0 replies      
Some time in 2007 I went to an Apple event in Scottsdale Arizona. I am a network engineer/system administrator, and my organization was about 50/50 Mac/Windows. We spend somewhere between $200-600K a year on Apple products for employees. I seem to remember that this was shortly before Apple killed off their XServe products, but I could be mistaken about the timing.

There was a break in the presentation, after which I decided I was going to bail. I took my phone, a Blackberry at the time, out of my pocket as I exited the door so that I could check if anything was going on at work.

As I took those first few steps outside, I accidentally dropped my phone.

It wasn't one of those gentle drops. In the process of trying to catch it before it hit the ground, I ended up pushing it with even greater velocity downwards. It hit the concrete pretty hard and a mix of phone, battery cover, and battery went skittering across the concrete walkway.

Three Apple Store employees were sitting outside, also on break. My phone had gone flying right past their feet.

"Oooh!" they said with a wince.

Then one of them said, "Don't worry everyone! It wasn't a IPhone!"

And they laughed.

And that was it. I picked up the parts of my phone, took at a look at the damage, put it back together, and walked away.

There was no offer of help or concern, but they thought it was pretty funny.

Fortunately, the phone survived pretty well off. There really wasn't anything more than minor scratches, despite how I had practically thrown the phone against the concrete.

Ironically, had it been an IPhone (or any modern touchscreen phone), it would have probably been destroyed. I ended up destroying the screen on my Nexus One a year or two later with a much less violent drop.

And, I'm afraid to say, most of my other experiences with Apple store employees here in Arizona has been pretty similar. We regularly have our helpdesk staff go in to pick up parts and do repair runs and I've had to call up our regular Apple rep and comment on bad attitudes, poor service, and outright rejection of service on in-warranty breakages for whatever reason-of-the-day they could make up.

The story linked to is important: You really can make a lasting impression on a customer that they will never forget, positive or negative.

I will never forget the way three Apple Store employees laughed at me as I dropped my phone.

davidedicillo 1 day ago 1 reply      
At the Apple Store in Santa Monica there's a deaf employee and he talks to you typing on an iPad. It was actually a pretty cool experience and I particularly appreciated it since both my dad's parents were deaf (but I do not know the sign language, they were extremely good at lips reading)
lizzard 1 day ago 0 replies      
What is heartwarming about this other than this person patting themself on the back for being a decent human being?

While it's nice when someone is reasonable and polite but it doesn't magically make up for the other 100 people who acted like I don't have the right to get on the bus.

CallingIit 1 day ago 7 replies      
Calling it. They went store to store buying Macbooks. Multiple sets of laptops just for a social experiement?
What kind of IT department would allow the KIDS to get the computers they need. And with no bulk discount, what school would allow that?
This happened in his dreams.
joeguilmette 23 hours ago 0 replies      
I work as a skydiving instructors and had a similar experience. A group of deaf college age students came in to skydive and I was paired with one of them on a tandem skydive. Generally we have about five minutes to gear up and train our students when it is busy (as it was that day).

During a lull I wrote up a quick briefing of everything I would usually say and go over on my laptop. When it came time to jump I greeted the student, smiled and then had them read the text while I geared them up. Them I made a big show of pantomiming everything we'd be doing while we laughed and conversed on the laptop.

It was a lot of fun :)

PakG1 1 day ago 1 reply      
When I was a kid, there was a girl I knew who was deaf and mute. But we always had great fun talking with each other using pen and paper. I don't know why, but it was so much easier to talk with her than it was a lot of other kids. Obviously, some types of people are easier to talk with, but I think something actually switches on in my mind that makes it easier for me to communicate when I'm writing, rather than speaking.


gyom 11 hours ago 0 replies      
It seems to me like almost nobody in the comments on HN believes his story to be genuine. And yet, this guy updated his blog to add :

"Wow, I really didn't expect this story to blow up the way it has. I've never had anything voted up on Hacker News before, much less gain the top spot. I'm still not convinced it hasn't all been a fever-dream."

which just supports the hypothesis that he's just bullshitting everybody.

m_d 1 day ago 0 replies      
I had a similar experience while working at a big-box retailer in high school. You don't get to have many "feel-good" experiences in retail, but using MS Word to sell a deaf woman a computer was one of those rare occasions.
thejsjunky 1 day ago 0 replies      
A little tangential to the story but a good thing to be aware of is that the barrier of communicating between deaf people and hearing people is not always that they simply can't hear the sounds you are making. Many deaf people (especially those who are born deaf) are illiterate or have low literacy in written language; so you can't expect to always be able to just pop out a pencil/paper and write back and forth normally as you would with a hearing friend while playing "the silent game".
cafard 1 day ago 1 reply      
Weird. I worked for a couple of department stores before I was 20, not as a sales clerk, but stocking shelves. I don't remember the sales staff as the sorts who would snub customers. Of course, I wasn't treating them as lab rats in a high school psych course.

I will also point out that retail sales staff get a lot more exposure to anyone and everyone than your average hacker does. One can become jaded and perhaps impatient fairly quickly. Should you? No, maybe not. But it's Friday, your feet hurt, and some kid is social engineering you. Do you feel as if you need that?

mistercow 1 day ago 1 reply      
That school really should have dealt with the Apple store directly. I'm guessing they would have gotten better than the standard educational discount that way.

Also, wow, please don't map "escape" to cause navigation on your website. That's super annoying.

yarou 22 hours ago 0 replies      
It seemed to me that this fellow felt the same way colonizers feel about natives of the lands they conquer. How noble of them to spare the natives any thought! They are clearly the better person than the average person that pays no attention.
inaflashlaser 1 hour ago 0 replies      
I would guess this (if true) was from 2008 on the release of the iPhone 3G - based on the fact that the Black MacBook was discontinued in October 2008 (per wikipedia). It could have been 2007 for the original iPhone, but the lines for the 3G were more prevalent.
charlieok 1 day ago 2 replies      
I'm surprised that a whole class of kids who were not deaf knew enough sign language to convince the author that they were deaf.
shellehs 17 hours ago 0 replies      
At first, I thought why not take two colors, than make the kids who preferred black stood left and the others on right side. There should be many simple ways to deal with that situation quickly and easily. I

The story looks a little weird, even not true, like I don't quite remember which product had just released that morning,, is it true?

But at the end, I found I was misunderstood and also was touched.

NicoJuicy 13 hours ago 0 replies      
So, the went on an experiment to the mall to check how employees responded to deaf people.

All the students received a MAC from the school.

The author doesn't have any comments on his blog.

It's fiction, this dude is lying like hell :-s

jayzalowitz 1 day ago 0 replies      
The coolest experience I ever had at an apple store involved stephen colbert, steve corell, anne hathatway and one particularly dirty joke.

You clearly win.

meerita 1 day ago 0 replies      
I really enjoyed this story. So human. I experienced some of this in the past and acted the same.
nikolakirev 21 hours ago 0 replies      
While I was reading the story, I kept thinking that the kids will start using the "say" command in the Terminal to start talking. That would have been a great story.
JeremyMorgan 18 hours ago 0 replies      
Not what I expected, and a really good read. Hope it's true.
vonskippy 1 day ago 0 replies      
So you got pawned by some warped social experiment - yeah, that sounds about right for the "best" that working at an apple store has to offer.
darrenraj86 17 hours ago 0 replies      
ok...if the story is true or not..I believe the message there trying to get across is more important. For example who questioning the whole deal must treat people as bad as the other stores treated the "deaf" kids...
JacobIrwin 23 hours ago 0 replies      
you should add commenting capability to the page.. how neat would it be if someone from the not-actually-deaf group were to share a self-confirming anecdote (and possibly, an update on how they're doing now)!
swartz 1 day ago 1 reply      
Unique experience..
roflcoptar 19 hours ago 0 replies      
you know as someone that likes working there, awesome customers are awesome. thats all. <3
Apple's Deleting iCloud Emails That Contain The Phrase 'Barely Legal Teens' cultofmac.com
455 points by rdl  4 days ago   385 comments top 51
rm999 4 days ago 10 replies      
Everything about icloud - from the terrible design to the clunky interface - is as Steve Jobs liked to say, "shit". I have icloud and I'm not even sure what it's for; is it a backup service, an e-mail provider, or a way to find my phone? None of these have much in common, so the fact that they're all bundled together really confuses me. And its name is a bit of a misnomer, you can't even do standard cloud stuff like share photos (like you could with mobileme).

I don't mean to stray off-topic, but this article just confirms my intuition to avoid anything with icloud in the name.

belorn 4 days ago 17 replies      
When you let someone else handle your email, they own your email. There is no postal secrecy law, no rule against reading. They can touch, modify or delete according to their whims. It's their email now.

So I am not that very surprised to hear a news article like this. It makes perfectly sense with the current mentality. It also adds another nail in the coffin about idea that "only a machine is reading my emails. Why should I care about that?".

Hopefully this will encourage some people enough to run their own mail servers. It's far less problematic than most people think it is. Maybe it was hard to install and configure this in 1990s, but this is 2013. You buy a domain name, install a Debian machine, and do:

  aptitude install postfix
aptitude install postgrey

Afterward one follows any one of the many simple guides to install either a webmail (roundcube most commonly), or go to (http://www.postfix.org/docs.html). If a spam gets through, install blacklisting or spamassassin. Easy 3 step guides exist for both.

It always surprises me that people can use a software library with complicated, half insane API's, but can't follow a single page of simple single steps installation. It's not hard and you get the bonus of actually owning your own emails again. If you are a company, this should not even be a question. If the options are to give away all your emails and customers emails to a third-party and thus lose all ownership to them, or asking a sysadmin/programmer to spend 5-10-30m tops to do an email installation, the answer should be obvious.

tolmasky 4 days ago 4 replies      
Its hard to know what to be more amazed about: the fact that with one boneheaded filter Apple now seems creepier than Google in terms of respecting your privacy (one of the few things they could boast about), or the fact that it still seems to be amateur hour over at iCloud. Think about it for a second: they are literally pushing code into production that amounts to if (contents.indexOf(bad_phrase) != -1) delete_email();. How is the takeaway not anything other than "Of course Siri and Maps are a disaster, they can't even filter email in a more complex fashion than 1993."
eykanal 4 days ago 1 reply      
In reading this, all I can think of is "buttbuttination" and the broader Scunthorpe problem [1] (to use Wikipedia's term). Strange that Apple is using such a crude filtration technique.

[1]: http://en.wikipedia.org/wiki/Scunthorpe_problem

petercooper 4 days ago 6 replies      
Why do they mention "child pornography"? Maybe I'm wrong but isn't "barely legal" meant to mean 18 year old adults and not "nearly legal"? Or is it just a common code phrase child pornographers use I wasn't aware of?
aes 4 days ago 6 replies      
I tested this on my @me.com account, and it's exactly how it works. Email containing the words "barely legal teens" is simply dropped.

I find it obscene to an Orwellian extent that Apple actually seems to think that no valid email would ever contain the words "barely legal teens". I wonder what other things Apple thinks are not worth talking about?

I have no trust in Apple's email services any more.

digitalengineer 4 days ago 3 replies      
Scanning and auto-deleting your email, combined with the Gatekeeper technology wich houses the possibility of Apple telling me what Apps I can or can not run makes me seriously start to wonder the direction Apple is headed...

Edit: Gatekeeper is OSX technology. It allows users to only install Apple certified Apps on your mac, not your phone. It's fairly new and possible to turn it off (for now at least).

largesse 4 days ago 1 reply      
This may sound weird to say, but I'm starting to think that most of Apple's problems come from the fact that it is a hardware company rather than a software company. In a very real way, it seems that they don't get software. I think it comes from pervasive product focus.

They are great with products. Less so with the area around the product. Can't have something as nebulous as a cloud without trying to control the product experience.

B-Con 4 days ago 0 replies      
> After more research, Steven found that under the iCloud terms of service, Apple reserves the right to remove any content at any time that it feels is objectionable, without telling you that they're going to delete it.

Today it's a bad search filter, but tomorrow... what'll they do tomorrow?

Apple is the epitome of "we'll do what we think is best and you'll like it". For now they usually seem to have admirable (or semi-admirable) goals, even if you don't agree with them on the details. I'm curious how long until they make similar moves that are clearly Evil(TM).

nicholassmith 4 days ago 2 replies      
I know everyone is rushing to decry Apple and their draconian behaviour ("first they took my unsigned apps, now they want in my email? TO THE PITCHFORKS!") but the likelyhood is someone has fiddled with the spam filtering and they've broken something. If the first thing you jump to is some conspiracy you're ignoring the simple rule of technology that behind every good wild goose chase is a member of staff who's quickly hitting 'roll back changes'.
jopt 3 days ago 0 replies      
Spam filter. It's disappointing someone seriously believes this is some sort of "objectionable content" censorship. Namely because that's easy enough to test:

"barely legal teens" isn't delivered (edit: now does)

"actually illegal teens" arrives

...along with everything else of the sort (that I've tested).

Surely the phrase was blacklisted by some algorithm after it occurred verbatim in massive amounts of spam.

mikestew 4 days ago 1 reply      
Great, now I'm tempted to spend way too much time experimenting to find other banned phrases. :-P But sure enough, whether it's buried in a bunch of lorem ipsum or standing alone, that phrase will send your mail to the ether. It never showed in Junk, it just never came across the wire at all. Edit: this behavior goes in both directions, BTW; receive or send.

I'd be willing to write it off as a one-time error on the part of some individual contributor, but what else will get your mail deleted? Since there are no checks in place for "rogue" ICs adding phrases on server-side, what will cause stuff to go missing tomorrow?

arn 4 days ago 2 replies      
Isn't this a spam blocking technique?
ianstallings 4 days ago 3 replies      
Solution: Don't use iCloud.
chrisdevereux 4 days ago 0 replies      
Just tried sending this to myself from another account and received the email.

All the other experiments on here were from a few hours ago. Does this still happen for other people? If it does, it'd suggest it's more complicated than a simple filter on emails containing the phrase.

That said, deleting user data without user input at all is completely insane. It's probably a good thing that iCloud sync sucks so much and developers aren't using it.

kenferry 4 days ago 0 replies      
Did anyone try to reproduce this? It doesn't replicate for me.
epaga 3 days ago 0 replies      
Perfect situation for applying Hanlon's razor - I see no reason to assume anything other than just a (really stupid) spam rule bug which is deleting messages when it should be filing them as spam.

Never attribute to malice ... you know the rest.

lignuist 4 days ago 0 replies      
Censorship is always stupid.
Censorship based on nothing than words or phrases is simply embarrassing.
nicholasjarnold 4 days ago 2 replies      
Ugh! Let's just list a few reasons why we shouldn't be purchasing these things anymore. (Disclosure: Never owned one, but have played around with them a little.)

- Not upgradable
- Super overpriced
- Dictator-style company that seemingly caters to grandma
more than technical folk
- Obnoxious smug ethos created by marketing team
- Lots of people complaining about OSX going downhill
- The OP story and associated reports of mass censorship
- Just look at Objective C for 5 minutes

I'm perfectly happy with my beefy Win 7 box paired with a *nix machine that I can shell into when I need to do something that would suck in Powershell. Just don't install Java/Flash/ect and don't open JessicaAlbaBoob.jpg.exe and you will not get a virus.

erode 4 days ago 1 reply      
Isn't the point of "barely legal teens" that they are indeed legal? On what grounds can they delete discussions of legal content?
danso 4 days ago 0 replies      
So, does this filter work for "not legal teens" or "totally illegal teens"? Because if not, that would be highly ironic.
da_n 3 days ago 0 replies      
Tangentially related, but emails are often auto-deleted by 'cloud' email services (Hotmail, Google etc) when the email is sent from a server-side script like PHP mail(), therefore it is not unheard of for emails to be auto-deleted when it is very likely to be spam. I don't know how the iCloud spam filtering works, but I wonder if there is a block filter being run before the check is done to see if the sender is a known contact (to bypass the spam check). 'barely legal teens' seems like a phrase that would almost certainly be flagged as spam. Perhaps this is just a badly implemented spam system at work (which wouldn't surprise me given Apple's reputation for web services)?
edouard1234567 4 days ago 0 replies      
Apple trying to be data-mining company reminds me of apple trying to become a mapping company.
lukejduncan 4 days ago 0 replies      
First thing this made me think of were the "scroogle" ads Microsoft put up on the 101.

I don't care if someone reads my email to sell me an ad. I do care if someone reads my email to censor it.

bdcravens 4 days ago 0 replies      
This is why I don't trust things like email to Apple. Email is a universal thing: whether I'm on my computer, an iDevice (I've owned several), an Android device (I've owned a few), or something entirely different (who knows what the future holds?) iCloud is great for backing up iOS specific things (many apps rely on it for syncing between your devices, etc) but for those things which merely consume "universal" things like mail and photos, I rely on universal solutions.
glasshead969 4 days ago 0 replies      
Just tried to reproduce the issue but I was able to send the email with the said phrase with no issues. They may have fixed the issue. Seems like some aggressive server side spam filtering which went wrong.
celerity 3 days ago 0 replies      
This is great news, actually. It's a free "get out of jail" card. Now you know you shouldn't trust Apple with your email.

Using other people's software or services which you don't control should be based on trust, in my opinion. What I mean is that you should build up evidence about different service providers, and choose whether or not they are trustworthy.

This is essentially why I am OK with closed source software. In many aspects of life (from the obvious, like banking, to more abstract, like personal relationships) we have to act based on our degree of confidence in something. The downside is that this thing is obscured (hence the need for trust), the upside is that through obscurity it was made possible (in this case, email providers make money by having a unique, high-quality offering).

mmagin 3 days ago 0 replies      
This reminds me of how Yahoo! mail screwed up over a decade ago: https://en.wikipedia.org/wiki/Medireview
mellamoyo 4 days ago 1 reply      
I'm a bit surprised there's no discussion yet about PGP/GnuPG (GPG). If we all encrypted our mails would this be such a big deal? No. Is client-side encryption difficult? Not really. I think there's a big market for a desktop email app that does PGP/GPG really well and does so with other people.
mark-r 4 days ago 1 reply      
Any reason to believe this is deliberate on Apple's part and not just some Bayesian filter trained with real spam?
Falling3 4 days ago 0 replies      
Is anyone else being driven crazy by the cursor style on this page? I think it's hitting on a new ocd...
spython 4 days ago 0 replies      
A few days ago it was reported that they also delete mails with subject "Аренда", meaning "rent" or "lease" in russian, and the subject of many spam mails.
mukundmr 3 days ago 0 replies      
I just tested this with my @me.com account and it didn't delete anything. How many people responding to the post actually tested this?
plg 4 days ago 0 replies      
seems to me this is a perfect example that could be used to promote widespread adoption of email encryption
seivan 4 days ago 0 replies      
This is bad, I actually like iCloud, even the email client, calendar and address book. But I don't want them deleting emails like this... hm.
cji 4 days ago 0 replies      
They also (used to) block you from receiving e-mail with "fuck" in the subject line. I had an amusing conversation with support about this and they said it's part of their spam filter. I just re-tested this and the e-mail eventually came through to my spam folder.
tapatio 4 days ago 0 replies      
And this is why I switched to an android phone. I can't stand the puritan bullshit.
damoe 4 days ago 0 replies      
I note that the original InfoWorld article is 3 months old. In the comments here one person has said that they still see the deletion and two say that they don't.

So, does anyone else have test results to report?

lorenzfx 4 days ago 1 reply      
One more reason why you should run your own mail server. I guess if it would take less time more people were doing it (I'm not either at the moment).
kmfrk 4 days ago 0 replies      
Isn't this Mobile Me all over again?
jijji 3 days ago 0 replies      
That's one way to prevent spam from coming in. Next you'll find them blocking all chinese netblocks.
JagMicker 3 days ago 0 replies      
"You just got iPlowed"

(Scroogle satire)

squozzer 4 days ago 0 replies      
Some of us are old enough to remember the Calvin Klein ads with the girl in the "Catholic schoolgirl" uniform with her white panties showing. I had to admit at first glance I thought CK was using someone underage. It provoked a bit of reaction from the demagogues. Since then, the "barely legal" motif has had a bit of radioactivity hanging on it. The popularity of Manga didn't seem to help.
eagsalazar2 3 days ago 0 replies      
Why in god's name would anyone use iCloud Email? Please Apple junkies, snap out of it.
snarfy 4 days ago 0 replies      
But, they're legal...
ishansharma 3 days ago 0 replies      
This is shit!
rjempson 4 days ago 0 replies      
They are going to call it iNanny
opminion 4 days ago 0 replies      
M-x spook
brunorsini 4 days ago 0 replies      
Clarke has just sold his afterlife iPhone.
NicoJuicy 4 days ago 0 replies      
Haha, the Dictator Apple is going to mess with your mails...
Awesome, you get what you pay for, i guess :P
Heroku Fucking Console github.com
451 points by eik3_de  1 day ago   277 comments top 33
sneak 1 day ago 16 replies      
Nothing in computing is worse than software that knows exactly what you want it to do, then gives some shitdick excuse as to why it's not going to do it in an effort to get you to jump through meaningless hoops.
eik3_de 1 day ago 8 replies      
HN question: I submitted this story with the title "Heroku f.cking console" and the title was changed to "Heroku console".

Is the string "f.cking" considered unappropriate on HN? What about "f.,.ing" or "f'ing"?

Edit: replaced the asterisks with "." and "," for formatdoc

Edit: has been changed to "Heroku Fucking Console" at 19:02Z. I approve!

nswanberg 1 day ago 3 replies      
Swearing is like typing in all-caps or using an exclamation point. It's usually not necessary but when it fits it really fits. (Hedberg only swears a few times here but it sounds exactly right http://www.youtube.com/watch?v=Y5-46bj8b4w).

Used incorrectly swearing suggests someone who doesn't have much control over their emotions or vocabulary and lacks range of expression.

Yet this Heroku library, presumably created by someone who, stubbing their toe on that same problem over and over, is one big exclamation point all-caps rant, with all possible lines of code and input fields in Github (even the license!) filled with rage and satisfaction, and the nice thing is that the library ultimately fixes a problem and makes the solution available to all.

Separately, to anyone thinking this "unprofessional", take a look at Philip Greenspun's definition of a software professional: http://www.youtube.com/watch?v=JsPFdVrbGeE#t=41m20s incidentally, this entire lecture deserves to be bookmarked and watched).

By the standards of Greenspun's definition the author of the library would be considered a consummate professional.

For those without time to watch, here is the link for the presentation he used (though he's an excellent speaker and the presentation adds much more):


GhotiFish 1 day ago 2 replies      

    Provide a fucking help topic
210bbc9498 Browse code
tpope authored 16 hours ago

Initial fucking commit
a1b87e8b4b Browse code
tpope authored a day ago

I like how he has total commitment to his commits.

also. WTFPL!

egonschiele 10 hours ago 0 replies      
Another example: finding help on hadoop:

    [vagrant@localhost conf]$ hadoop --help
Error: No command named `--help' was found. Perhaps you meant `hadoop -help'
[vagrant@localhost conf]$ hadoop -help
Error: No command named `-help' was found. Perhaps you meant `hadoop help'
[vagrant@localhost conf]$ hadoop help
Exception in thread "main" java.lang.NoClassDefFoundError: help
Caused by: java.lang.ClassNotFoundException: help
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: help. Program will exit.

xauronx 1 day ago 1 reply      
I don't use Heroku, so I have no use for this but I love this guy's enthusiasm.
johnnyg 1 day ago 0 replies      
This has bugged me too. Thank you.

Also, watch your language young man!

dysoco 1 day ago 1 reply      
And guys... this is what happens when you use Vim too much.
RyanMcGreal 1 day ago 0 replies      
+1 for releasing it under the WTFPL.
derleth 22 hours ago 1 reply      
Is anyone else's page massively wider than it should be?

(Firefox 19.0, 32-bit build on x86_64 Linux.)

sheraz 1 day ago 3 replies      
This lacks class regardless of how useful the software may be. And yes, it does matter.

What is with all the crass language that has become so pervasive in this industry in recent years?

Why the need to express yourself so poorly?

dreamdu5t 1 day ago 0 replies      
I'm amazed people put up with this crap just to host a rails app.
rahilsondhi 1 day ago 0 replies      
This plugin is hilarious but very unnecessary.

I solved this a long time ago with a simple `alias hrc-='heroku run console --remote'`. That way I can type in console `hrc- production` or `hrc- staging`

antipax 1 day ago 2 replies      
What? `heroku run bash` also works and is shorter.
christopheraden 1 day ago 0 replies      
Hah! Tim Pope is a pretty funny guy. His Vim plugins are fantastic as well (Pathogen and Surround are indispensable).
andymoe 1 day ago 0 replies      
You know this is one of those times where editing the title is not helpful! The title of the project is actually "Heroku Fucking Console." The edit makes me think it's pointing to something official and it's not!
tomhallett 11 hours ago 0 replies      
One non-obvious landmine with the heroku console, it attaches to a running web process. One day I had a typo in one of my console commands:

Post = Post.count
# instead of "post = Post.count"

Which re-assigned the Post class to a number. Then we started getting production airbrake errors where the Post class was now a FixNum, /facepalm.

It was an easy fix, just restart all of the servers, but I was very surprised to say the least.

Note: I believe this was with the Bamboo stack. I'm not sure if this is still true with the Cedar stack.

endgame 1 day ago 1 reply      
There are a lot of people in this thread who are complaining that "$some_program won't Do What I Mean".

Sounds familiar: http://www.catb.org/jargon/html/D/DWIM.html

auggierose 1 day ago 1 reply      
Programming, motherfucker!
slajax 1 day ago 0 replies      
I love it when software is written out of hatred for other software that "f*cking sucks".
binarycrusader 19 hours ago 0 replies      
You haven't used software until you've used it in anger.
squid_ca 12 hours ago 0 replies      
"This is a long distance call. You must dial a 'one' plus the ten-digit number to complete your call."
scottbartell 22 hours ago 0 replies      
Because things should just fucking work.
mcnemesis 1 day ago 0 replies      
To hell with all yo other stale licensing- other than have none, the Fcking License included in this project just makes me want to frk this project!

The attitude is ill ;-)

jbaudanza 1 day ago 0 replies      
I love this. I also miss how the bamboo console would let me enter a ruby command locally and then execute it remotely when I hit enter. I've been meaning to make a gem to replicate this behavior.
hiddenfeatures 1 day ago 0 replies      
The true meaning of "opinionated software"...
vampirechicken 1 day ago 0 replies      
Tim Pope has a potty mouth.
whbk 1 day ago 0 replies      
This. Is. Awesome. Had to be done.
skhamkar 1 day ago 0 replies      
Thank you!
Cigano 1 day ago 0 replies      
Nice one, dude. Congratulations!
dholowiski 1 day ago 0 replies      
Very mature.
huhsamovar 1 day ago 3 replies      
I would be interested in this if it weren't for the foul language. This speaks volumes about the author's attitude.

If you're annoyed with something, have they even tried bringing it up with Heroku's support team? If so, have they tried shipping this tool that doesn't make the maintainer look like an arrogant troglodite?

nacker 1 day ago 0 replies      
You can tongue punch my fart box, Heroku fucking console!
The MS Surface Pro penny-arcade.com
433 points by kposehn  6 days ago   155 comments top 26
Bockit 5 days ago 3 replies      
It's nice to hear this kind of device review from a corner you don't usually hear it from. Rather than the usual kind of review broken up into the usual sections, maybe a storage, space, benchmarks, screen, software kind of thing, we have a guy who has specific use cases for it talking about how he used it for those cases, what worked and what didn't. And then comparing it to how he normally does those kinds of activities.

Even though I don't have the same use cases as him, I feel like I got more out of it this way.

recoiledsnake 5 days ago 1 reply      
> I left it at 125% and just like he had suggested my color picker was working again! I finished the strip at 125% magnification with no trouble but then I had to switch it back to 150% when I was finished.

You can disable the DPI scale up in the compatibility tab of the file properties of the exe. In this case he could've set it for Sketchbook's exe and the rest of the OS would continue to be at 150%. Hopefully, this is just a temporary stopgap while application developers start supporting high resolutions.

Image of setting:


raganwald 5 days ago 6 replies      
The conclusion I draw from everything I've heard is that the Surface Pro is a terrible iPad and an excellent PC laptop. Issues like the battery life, heat, weight, RAM free, and so on are reasonable for a Windows machine.

If my perspective is correct, look for the Surface Pro to cannibalize sales from MS's "partners." I do expect it to appeal to the kind of person who buys a PC laptop and an iPad. And that's a great market for MS to defend. But for people who want just a tablet, I expect iPads to carry on selling by the container.

If Microsoft's vision of everyone needing a computer is correct, the Surface pro will destroy the laptop. But if Apple's vision of a "post-PC" world is correct, the vast majority of the tablet market will be just tablets, and the iPad will continue to thrive.

It all seems to come down to whether you think of tablets as weak computers with a tablet interface or whether you think of them as an appliances that run software.

gfunk911 5 days ago 5 replies      
Interesting. We now have an actual niche/use case where the Surface Pro could be a compelling leader, and not just "totally decent." Artists.

Also, doesn't an apple-style commercial where somebody gets an email with a word doc attached, edits it, and emails it back with changes while on the train or something seem obvious....

10char 5 days ago 5 replies      
I'm still a bit disappointed that Apple has yet to add a Wacom layer to their devices. It's so unquestionably better at doing writing, sketching, and note-taking than crudely smudging your fingers. iPads still fail pretty hard at being useful during math class.

I had an old-style swivel tablet (Windows Vista?), and it was a fantastic device to take notes on, invaluable for classwork. OneNote + pen-input really seemed like the future of school computing...but the prices on those machines never came down and the iPad et al took them by storm shortly thereafter.

habosa 5 days ago 1 reply      
Great review, it's awesome to see gadget reviews from a specific use case instead of just "7/10 on our random everything score scale".

I wish there was a review site for the HN crowd. Someone that would use every device like a software developer would: tinkering with settings, trying to write/run code, integrating with other services, etc. I generally like reviews on Engadget/The Verge but sometimes I feel they care about different things than I care about.

Anyone know of a gadget review site for hackers?

supar 5 days ago 4 replies      
Are there any digitizer users here?

I use a Wacom digitizer daily for notes and sketches instead of using pen&paper. My wet dream is a pressure&tilt sensitive/e-ink based device, but it looks like the Surface Pro is the closest you can get currently - and this is a good review.

If you want a portable device (laptop/ultrabook/tablet) with a good digitizer that you can actually use (that is, wacom based), your options are actually very few.

There is the Lifebook T902, or the ThinkPad X230T. Did I miss anything else? Both are convertible laptops, both are quite heavy, have medium to poor battery life if you extend them with the additional battery, and a lower-dpi screen. I would have expected higher-range graphics on those laptops, but the integrated HD 4000 is ridicolous when you think you basically get the same on an ultrabook.

Not to mention that the price range is simply off. The Surface Pro is way cheaper.

I used an earlier version of the Lifebook T902. It's actually better than having a separate digitizer which takes useless space on the desk, but it's still cumbersome. You cannot draw unless you flip the screen (odd position otherwise). It's really heavy. A clipboard with paper is an all-around better.

There are two segments of markets that are filled by this usage pattern: on-the-go artists, and cheap cintiq replacements. Drawing on a cintiq is just awesome, but wacom has basically a monopole and the prices are just unjustified. Even the Intuos line is, IMHO, overpriced at least by a 2x factor. The sad reality is that they have absolutely no real competition. I tried several NTrig-based digitizers (lately the Vaio Duo 11), and they just suck. The tracking is just worse, many jumps just over a few hours of testing, not to mention that the pressure sensitivity is lower too (when you're drawing strokes it's quite visible unless the software is not interpolating it for you).

Just look at the missed opportunities there are! The Taichi 21 and VAIO Duo 11 are cool, but they use N-Trig. The keyboard on the Lenovo Yoga is awesome, but no digitizer. The Dell XPS 12 looks stunning, but again missed opportunity. It was rumored to ship with a wacom layer, but it didn't finally.

The only downside of the Surface is the keyboard. I tried the flip keyboard of the Surface Rt and I only hope that the keyboard from the Pro is different, because it sucks. Missed keys, zero feedback. Admittedly, it's better than typing on an on-screen keyboard, but the Taichi 21 of the Dell XPS 12 approaches are way better.

As a sad note, the replaceable battery concept is gone on all these modes. You know, I would settle for lower battery life if I could just have 2, or 3. I was actually shocked that at least HP offers the EliteBook Folio 9470m which has a replaciable battery in a thin format (the ultrabook is awesome), so there are really no excuses for it.

Felix21 5 days ago 1 reply      
One article with a meaningful use-case and i am very tempted to buy the the Surface Pro.

I think this is where Apple's marketing Excels over Microsoft's.

Apple will show you use-cases like this all day long, showing you how their products are a better tool to get your job done.

Microsoft on the other hand -"it has more memory", "USB", "its Powerful", "hd screen", "it runs excel", "side by side apps", "YAWN".

Great article; VERY TEMPTING.

redact207 5 days ago 4 replies      
I'm just impressed that someone's finally found a practical way to do work on a tablet.
creativityland 5 days ago 0 replies      
Glad to see a positive review on the Surface. It really deserves more attention than it's getting.
mtgx 5 days ago 2 replies      
Galaxy Note 10.1 also has a Wacom stylus that has 1024 levels of pressure sensitivity. I see most people here weren't even aware of it. And I think it only costs like $400 now, if you're interested in drawing and Sketchbook. The Surface Pro stylus doesn't work on Photoshop anyway, so you're not losing anything, if you're just interested in drawing.
wuest 5 days ago 0 replies      
I'm glad to see the Surface Pro getting some good reviews. I actually really want this sort of hardware to take off--and I _really_ want to see a compelling Linux offering on it. This sort of device would fit the needs I have both for a laptop and for a tablet, and if/when I hear that Linux is running great and Plasma Active works like a charm on the Surface Pro (or, indeed, comparable piece of hardware), I'm dropping the full sticker price on one.
bitwize 5 days ago 0 replies      
I just bought a Sony laptop/tablet thing with a stylus. After some unwanted wrestling with Secure Boot I got Slackware on the thing, patched the kernel to recognize the N-Trig tablet part, and it is now my art box.

It works wonderfully; and I had indeed considered the Surface Pro for such a purpose, but this device is slightly larger and has 6 GiB of RAM.

jcampbell1 5 days ago 2 replies      
A bit off topic, but can someone comment on how the stylus works? I assume the "pressure sensitivity" comes from a sensor in the pen, and is wirelessly relayed back to the device (bluetooth?). Is there something else that makes it more accurate than capacitive multi touch?

Is it possible to put a pressure sensitive stilus on an iPad with bluetooth and app support, or do you need different hardware?

robotmay 5 days ago 0 replies      
It was great to see him mention how well Civilisation V is supported on it. I love that game, and hearing that it runs so well on the Surface Pro would probably be the tipping point for me if I had the money spare to spend on one.
ChrisClark 5 days ago 0 replies      
I wonder how it compares to all the Android tablets with Wacom digitizers. Sounds like he sees no pen lag at all, that's really nice.
tluyben2 5 days ago 0 replies      
Excellent review. Like others say; it's really nice to see a non technical pov as the pure tech part has already been done to death on a lot of sites. What I even like more is that this is really heating up the niche; Asus, Samsung, Acer, HP, Dell are all watching and rapidly introducing competitors. Good for us.

Maybe 2013 will be the year I can buy my dream system :) Currently the Thinkpad Helix seems to be closest; if it had double the battery life, I would buy it without looking further.

interpol_p 5 days ago 1 reply      
I really want one of these. As a Cintiq 24HD owner I could totally see the Surface Pro replacing it " denser screen, portable, doesn't weigh 40KG.

The only thing that really annoyed me is that the 150% DPI setting throws off the colour picker in Sketchbook Pro. How is the OS allowing this to happen? It seems stupid that the DPI setting is so badly implemented it actually breaks apps. (I have heard that Civ 5 with touch on the Surface Pro also requires the DPI to be changed.)

chx 5 days ago 0 replies      
Sorry for the snark remark but -- if every single Cintiq 24HD owner buys an MS Surface Pro then MS will gain... a measurement error in the tablet market share.
hdra 5 days ago 2 replies      
maybe this shows how terrible of a job the marketing department at Microsoft is doing ?
reading this review alone made me look for the device online to check its price and I've had mostly the "meh" reaction since launch with all of their ads.
DocG 5 days ago 0 replies      
Really good review!

It has changed my mind on surface pro. It will still be out of my price range and I am not going to buy it, but it has changed my mind about it.

Best tradeoff for MS with surface series ever? For one tablet, HN is changing its mind?:D

dferlemann 5 days ago 0 replies      
2 things have been keeping me from buying one:
1. Disk space. 128GB is not going to cut it for using as laptop/desktop replacement.
2. Heat. I'm paranoid about my devices' lifespan cause by overheating...

Overall, I like this tablet. For the features it offer, the price seems right... hate to say that.

danpeddle 5 days ago 2 replies      
Is it just the surface pro that has this tech built in..? Crazy that this feature has not been promoted more.
cbeach 5 days ago 0 replies      
"My wife is playing Civ"

If my girlfriend took an interest in Civ there'd be a ring on her finger ASAP!

dade_ 5 days ago 1 reply      
I am really surprised that I keep reading blog posts, this one included, that state the only option for an iPad stylus is the eraser head style capacitive pieces of crap.

This entire post was about a tablet that runs uncomfortably warm, with buggy software, short battery life, tiny available user storage and an occasionally useful flip stand, but has a pressure sensitive stylus and it is the best. Oh yeah, and Microsoft gave him the device, so I dare say he didn't actually research his options.

Has no one heard of Jot? I'd be interested to read his comparison of the pressure sensive jot on his iPad to the Surface Pro.


iomike 5 days ago 5 replies      
Microsoft shilling
Establishing secure connection wellsfargo.com
431 points by eloisius  1 day ago   138 comments top 34
ben1040 1 day ago 6 replies      
This reminds me of something we had at my office about 15 years ago because people were complaining their workstations were slow. In reality, their workstations were just slow machines; standard issue box for most people was a 70MHz Sun SS-5.

So we wrote a perl script that printed out a bunch of platitudes like these, while printing out an ASCII "progress bar." It had some randomly determined sleep() calls in there to make it seem like it was doing something.

  Optimizing priority queues...
Recalculating scheduler lookup tables...
Terminating unused system processes...
Recovering memory leaks...
Flushing network buffers...

Then it'd randomly pick a number X and report to the user "System reports X% faster."

We called it "speed" and deployed it to the app server. Some folks started getting into the habit of running it every morning and swore by it.

MattRogish 1 day ago 11 replies      
This is one of those things that is done by people going "We need our customers to 'feel secure'". I get the rationale, but is there actually any data that suggests this gives that actual feeling? That users "feel" more secure? Or are more trusting of the site? Or is this just cargo-cult UX?

I've seen this on too many financial apps to think it's an isolated incident. It's clearly a "thing" in financial apps (TurboTax.com does it all the time; I see it on my Bank app, lots of mobile apps, etc.)

There's gotta be a reason, even if it's wrong.

seldo 1 day ago 2 replies      
This sort of fake-loader animated GIF is pretty common; it's just a slightly more advanced version of a spinner GIF. I don't think it's really that bad.

What would be bad is if this page would accept a parameter to redirect you to somewhere, but it appears it doesn't do that -- it just closes itself. Presumably this page appears in an overlay that then closes itself.

rgbrenner 1 day ago 1 reply      
this page doesn't actually do anything. It loads two animated gifs from Akamai (one for the text, and one for the bar), and then uses some javascript to close the window.

If I had to guess, there's a login page. When you submit your login, this page pops up and displays while the login is processed.


  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">






<p align="center">

<img src="https://a248.e.akamai.net/6/248/3583/000/wellsoffice.wellsfargo.com/ceoportal/DocumentumRepository/content/images/signon/messaging.gif" width="300" height="30" border="0" alt="Loading Status" /><br />

<img src="https://a248.e.akamai.net/6/248/3583/000/wellsoffice.wellsfargo.com/ceoportal/DocumentumRepository/content/images/signon/statusbar.gif" width="300" height="30" border="0" alt="Loading Status Bar" />


<script type="text/javascript">

var selfClose = function() {



window.onload = function() {

setTimeout(selfClose, 10000);


window.onblur = function() {






tptacek 1 day ago 2 replies      
Exactly the security I'd expect from a "CEO Portal". :
jmandzik 1 day ago 2 replies      
Somewhere, deep within Wells Fargo HQ, there was a depressed developer in a windowless office that died a little inside when asked to make this.
aqme28 1 day ago 0 replies      
If you were going to inspect to see if it was actually doing anything, let me save you the trouble. It just plays these two gifs ontop of eachother.


mattdeboard 1 day ago 2 replies      
TurboTax has something that struck me today as similar (in spirit) to this, though TurboTax's is a skeuomorphic thing.

It's the "Save & Exit" button TurboTax has. I'm sure that they are saving all info as it is entered, but users of QuickBooks, Excel, etc., I'm sure are used to having to save their data manually then exit.

I think all the guffawing at this progress bar is a little overblown. If a question or concern comes up in user testing multiple times -- "How do I know my connection is secure?" -- then why not put something in there that makes the user feel safer? What's the problem with that? Sure maybe it's a little overblown graphically but, c'mon, when you're a bank you need your customers to feel secure, in addition to actually being secure.

joshwayne 1 day ago 0 replies      
I see a lot of comments condemning this feature and saying it's ridiculous. However, you have to understand that people outside of the tech industry have a very different mental model of how computers work than the rest of us.

One example of this is shown in a usability study by the Baymard Institute on top ecommerce checkout processes [1]. The goal of the study was to determine best practices for checkout usability by testing the top 15 ecommerce sites. One of the more fascinating finds they made was that during the checkout process, users perceived certain fields as being more secure than others. Even though the fields were all part of the same form and on the same page, users still believed fields with a little lock icon were more secure than the rest of the fields! It didn't matter if the entire page was encrypted. Users would abandon the checkout process because the credit card fields didn't "feel secure" compared to the rest of the page.

To most of us, this looks like a frivolous feature suggested by a "UX monkey" (as one commenter put it) but don't underestimate the power of making users feel safe. For all we know, this stupid gif could have cut support calls 20%.

[1] http://baymard.com/checkout-usability

ripberge 1 day ago 0 replies      
I use this tool everyday and it has always made me laugh. The security of the CEO portal is actually legit though. In order to do anything you must login with: company name, username & password. Once inside in order to do anything important you must use your pin number + a random number from a security dongle like this: http://en.wikipedia.org/wiki/Security_token

Then someone else from within your company must repeat a similar process to approve your action. So you always need at least two people within your company to perform any action.

Typically the CEO portal is used for wire transfers where security is pretty damn important--once the money is gone--its really, really gone.

unsignedint 1 day ago 1 reply      
This reminds me of a story I heard about those ATMs. What I heard is that there are technologies out there that can make a machine to count/validate cash almost instantaneous while not sacrificing accuracy. But apparently, that makes some customers worry that their money is not being processed right, and thus, every time you deposit money to those ATMs, they make that grinding noise, appears to be doing something useful.
jlarocco 1 day ago 1 reply      
That's kind of silly.

But as a Wells Fargo customer, I've never seen it while using their website, and I use the site to check my accounts and transfer money between accounts once or twice a week.

JadeNB 5 hours ago 0 replies      
The Mac OS X.4 PBE would display the estimated boot time on startup; I thought it was using sophisticated logic, but was later told that it just averaged the last, say, 10 boot times (which is probably at least as reliable). I seem to remember that you could even execute `/usr/bin/loginwindow` (or some such path) from the command line and watch it pretend to boot at any time. I forget when this 'feature' went"maybe as early as Leopard?"but it's not in Mountain Lion.
salman89 1 day ago 0 replies      
Likely is security theater, but in all fairness they might actually be doing all those things and wanted a UI element to let users know what is taking so long.
daigoba66 1 day ago 0 replies      
"reticulating splines"
hy3lxs 1 day ago 0 replies      
"Locksmith gets less tips and more price complaints for being faster"

(807 days ago)

eclipticplane 20 hours ago 0 replies      
We added progress bars and silly status messages to our 500 error pages in our web app. Things like a 15 second count down to "recalibrate" or "attempting automatic system correction". It, at minimum, stopped users from constantly clicking a button or link that was having server issues (and thus spamming our error queue). Instead, they'd wait the 15 seconds and then go try again.

If the issue was transient, like a dropped connection to the database or memcached or some obscure deadlock, the "automatic" fixes worked as expected from the user's perspective. We, of course, still got the full error report to diagnose the issue.

I even have a few gems in our user feedback system where the users outright praise the "automatic error fixer" and they wish every website/app had a tool like ours.

obilgic 1 day ago 1 reply      
It closes the tab when I click "inspect element". How does it detect that?
gesman 1 day ago 0 replies      
I envy consulting company that was tasked $100k to build such a "secure solution" :)
manaskarekar 1 day ago 0 replies      
Reminds me of this interesting reddit discussion:

And the corresponding HN discussion that followed:

(Apple's iOS is "deceptively fast") http://news.ycombinator.com/item?id=4047032

In this case, we have security instead of speed. That's not to say it isn't secure anyway.

dumyCredentials 1 day ago 1 reply      
You can see this in action by trying to login using dummy credentials here: https://wellsoffice.wellsfargo.com/ceoportal/


maxhe 4 hours ago 0 replies      
I noticed something similar on TurboTax: https://turbotax.intuit.com/tto/alias/dncanimation
noblethrasher 21 hours ago 0 replies      
Don Norman discusses why you would want to do something like that here http://businessofsoftware.org/video_09_dnorman.aspx (50:30).
ante_annum 1 day ago 2 replies      
So, it's actually possible to update a dynamically served gif to provide real progress updates. If that's what they were doing, I'd wonder why they did that rather than use js hooks.

But this is just a silly static image. What if the server takes longer than the image to load?

phpnode 1 day ago 0 replies      
hfs - your account has been dead for > 200 days
arjn 1 day ago 0 replies      
Wow! I can't decide if this is hilarious or scandalous.
bmle 1 day ago 1 reply      
I used to work for a major online tax software provider. I won't name them but I'm sure you can guess. Not sure if it's still there but right after you log in, there are some redirects that take you to the app servers hosting the product and you get the same type of loading image though no secure connections were being established.
DrewHintz 1 day ago 1 reply      
> ceoportal

Sounds about right.

bbq123 1 day ago 0 replies      
As a customer of Wells Fargo CEO Portal I no longer feel safe using it.

Fun aside this portal uses two factor authentication with RSA tokens (that were promptly replaced after RSA token vulnerability was found).

bestest 1 day ago 0 replies      
This felt uncanny. Like I was violated in some strangely wonderful peculiar way.
gfalcao 1 day ago 0 replies      
This is ridiculous
jseip 1 day ago 1 reply      
We need a progress bar!
~Brilliant MBA
adev 1 day ago 0 replies      
Been there done that. Software development is sometimes Social development as well.
borgchick 1 day ago 0 replies      
security theatre much? face palm
Zuck, Bill Gates, Jack Dorsey In Short Film To Inspire Kids To Learn How To Code techcrunch.com
432 points by aashaykumar92  4 days ago   223 comments top 37
michaelochurch 4 days ago 13 replies      
The gap between CS majors and software jobs is misleading. You don't need a CS degree to become a decent programmer.

Still, if there's such a shortage of good programmers (and I agree that there probably is) then why aren't we playing this to our advantage? A senior engineer can't afford a house in the Bay Area or New York, and our status is low-- we still work for managers; we're a defeated tribe in this way. Most of us don't have the autonomy to choose our tools or decide whether to use or replace old legacy code. Shouldn't our top priority, as a tribe, be to change this?

We should make programmer autonomy our major issue. http://michaelochurch.wordpress.com/2012/11/25/programmer-au... This will benefit us and the economy as a whole.

Then, after we've had this victory, we can work on increasing the total number of programmers.

wes-exp 4 days ago 7 replies      
Personally I think the world is drunk with "code fever". We are creatures of overreaction.

Not too long ago it was "no one learn to code! it's all going to be outsourced to India!"

Now, "I'm starting a non-profit to spread the gift of coding to children. Coding is our future".

Give me a f-ing break.

aashaykumar92 4 days ago 2 replies      
I think people are shifting away from the point of the video and that's fine, and I don't mean to be "that" guy, but it is important to realize what these accomplished programmers are trying to say through the video.

If you listen carefully, most of the interviewees are simply attesting to Steve Jobs' quote at the beginning: "Everybody in this country should learn how to program a computer...because it teaches you how to think." The second part, the ability to think, is a skill that people must have AND use in their everyday life to be successful in whatever they do. Zuck, Gates, Dorsey, Houston, etc. are all encouraging people to learn to code for this reason, and because programming is an extremely empowering skill--not just in one field but in all...if you want it to be. The fact that programming can be used in all fields is why there is such a huge push for people to learn. It is a self and world-empowering tool that is simply being encouraged to be taught/learned by the incoming generation.

The current generation needs to realize that programming exists everywhere, just as we are taught that subjects like math, biology, chemistry, physics, and history are. There is a HUGE distinction between learning to code just for the sake of getting a job or improving the economy and learning to code because it can empower us to THINK and then DO. Not to be philosophical, but part of societies' problems has been always knowing what problems exist, but not actually doing anything to solve it--until now. Programming, more than anything, accelerates our ability to solve problems, little or big.

In a world where so many problems exist, programming is many times the means to achieving the solution. And that is why these successful programmers are pushing everyone to learn.

selectout 4 days ago 2 replies      
Loved seeing them bring in celebrities outside of the tech world to share their experiences/passions for code.

Chris Bosh was a complete surprise to me but made me like him even more.

rodolphoarruda 4 days ago 1 reply      
I'm a manager. I can read code (PHP and C#) to some extent, but I can't code anything. I tried to learn it several times, but the syntax and all its curly braces were simply too complex to me. A bit frustrated, I decided to move one step up in the stack and tried to understand software at a "macro level", architecture, paradigms etc. I wanted to be able to make IT decisions based on concepts I found easier to grasp at that higher level. It was equally hard. But there is one thing I got from the learning process that I really liked and kept alive in my head for future use: the notions of abstraction and generalization. I'm thankful I learned this. I see value in applying it in my life. If the idea behind the widespread of teaching/learning how to code, involves concepts like those I mentioned, then I think it is super valid.
kayoone 4 days ago 3 replies      
I get the message and it certainly makes sense for alot of people to be able to code, but on the other hand i know so many (also smart) people that hate any job that would involve using a computer for more than communication.

Not everyone wants to sit in front of a screen all day, and imo thats a good thing.

jkeesh 4 days ago 0 replies      
Make sure to check out CodeHS. We are the little demo shown in the video using "Karel the dog." We work on making it fun and accessible to beginners, mostly in high schools and middle schools, but also have all ages of students. More than other "learn to code" sites, we focus on problem solving rather than syntax, and also provide help from real people to students along the way. http://codehs.com

It's exciting to see a video like this highlight the real need and current lack of computer science education in high schools. That is exactly what we are working on, and have high schools all around the country! If this is an issue you are interested, in please contact as at team@codehs.com

jfb 4 days ago 0 replies      
Software is terrible. I'm not sure the solution to the vast stinking wasteland of software slop is more people -- if pressed, I'd say it's less software.
lifeisstillgood 4 days ago 1 reply      
FOr me the reasoning is simple:

* reading and writing code is basic literacy for the information age

* One generation hence, any company that is literate (almost all employees write code, the use of code runs through all its processes) will have enormous competitve advantages. Or rather any company that is illiterate will have enormous competitive disadvantages

* So Software will eat the world.

* but in the process from here to there, developers will take over more and more - moving from the "typing pool" into
all of the company.

* this is unlikely to be a fixed supply of coders getting more % of revenue, and more like everyone learns to code and then usual political fighting resumes.

motters 4 days ago 0 replies      
I mostly agree with the gist of the video in that learning to program is empowering and can sometimes result in a job. However, the type perk-laden of working environments shown are unrealistic, and limited to large companies such as Google or Facebook.
antirez 4 days ago 0 replies      
This no-profit IMHO should focus on creating a free, cross-platform, awesome system similar to Codea iPad app [1], that is, the BASIC of 80s. Everything not in the same line is too boring.

I've a very very positive experience with load81 [2], something I wrote almost solely for my son. In the latest months and thanks to this program my son learned to write Lua code and we are having a lot of fun.

I don't think it would be possible without a system that makes drawing a circle or checking where the mouse pointer is trivial.

[1] http://twolivesleft.com/Codea/

[2] https://github.com/antirez/load81

greghinch 4 days ago 1 reply      
It seems silly to me that a basic computer science ciriculum isn't being added to high school or before. In the same way you have to take basic biology, chemistry, and physics, a modern student needs at least a fundamental exposure to the basics of computing
onedev 3 days ago 0 replies      
I think the video was great and people are over analyzing it.
The following is what I got out of the video because I didn't over-analyze it like most people are doing:

(1) Everyone should be introduced to computer programming. Keyword here is introduced. Just like kids are introduced to Art, English, Biology, Sports, etc. Many middle and high schools are simply ignoring technology for the most part despite it's growing relevance in our lives and that is what this video is trying to point out.

(2) A career in software engineering isn't necessarily the cubicle dwelling, loner, boring stigma that most uniformed people associate with it. They're showing that it can be a very fun and impactful environment like at Valve, Facebook, and Dropbox (noting the free food, laundry, etc)

(3) You potentially have the opportunity to affect many people in very positive ways through the software that you develop.

(4) EVEN if you don't pursue a career in programming, it can help you understand its implications in many OTHER seemingly unrelated fields. And it will help you develop critical thinking skills.

(5) It can be a learned skill like any other and there's no need to be intimidated by it.

All of those are very noble intentions in my opinion and valid concerns to address to the general perception of programming as well as computer education at early stages to develop interest in people that otherwise wouldn't have known about it.

mckoss 4 days ago 0 replies      
When many of us started using computers, all you could do with them was learn to program them. There were relatively few distractions of video games, or the Internet to draw your focus away.

Today's computers are so engaging as a communications and entertainment device, many young people are not exposed to the possibility of using the computer as a creative tool.

Learning to program is just one such activity to get the creative juices flowing in the next generation. Learning to use a computer to write a paper, make a presentation or build a spreadsheet are fine; but the power a computer can unleash has much more potential for creativity and originality when students are taught to instruct the computer directly.

The early learn-to-program sites are focused on learning programming languages. This should evolve into more sophisticated environments where higher level constructs are made readily available (e.g., graphical environments, data storage and communication features).

It's exciting because we can also bring the social element into the equation to create for and with your friends and family.

MojoJolo 4 days ago 2 replies      
At first, I dislike teaching programming in schools. It is because the space might then be over populated and finding jobs will be harder. Then I realized math was taught in school, science was taught in school. But most of us students didn't end up as mathematicians or scientists. Programming is much like math and science. It is a technical topic, and not all of us will like it. It can be taught in school as an essential subject but not all of them will pursue to be a programmer in the future.
beatpanda 3 days ago 0 replies      
Bubble, bubble, toil and trouble.

We're all going to look supremely stupid for things like this in ~2 years.

patja 4 days ago 1 reply      
I think the point is there is a huge gap between the supply and demand for programming education, particularly for ages from 8 to 18. It is so easy and rewarding to feed the spark of desire to learn and create among kids of this age range, especially with all of the great free or almost free resources like MIT's Scratch purpose-built to address this need and reduce the barriers to entry.

Schools, teachers, and most parents are not equipped to deliver these experiences today. The superficial "technology programs" at most schools are appallingly shallow, not going much beyond Garage Band and book reports in Powerpoint.

Videos like this help motivate those who have the skills to engage and make a difference. What's not to like? Go out and get involved in volunteering to teach programming to kids. You will love it, and you will make a difference for kids who will go on to be the next generation of software developers.

gamebit07 4 days ago 1 reply      
Programming only does not help you think, there are several other disciplines that help you think. Philosophy/Logic/Sociology IMHO does it better. If industry needs more programmers, for economic growth, this does not mean kids should be brainwashed to learn to code. And even after learning to code, what do you do, an average programmers life goes just copy pasting stuff.

Google/SO customize copy and paste. Thats what I have been doing. I wonder if I actually think to solve problems while coding or just pile patterns of text, place proper settings and API keys.

Having said all above, Deep within I believe hackers are like painters(Read pg's great essay - http://www.paulgraham.com/hp.html), for hacking is like painting, would you want every one to be a painter? If not why everyone a programmer? Why learn to code? Programming or Painting is not mathematics nor reading writing skills, i can live happily without learning how to paint and how to write codes. Coding is NOT an essential life skill, there are many who have been living without and will continue to live. I won't learn programming because i don't require it.

I feel sad, on such brainwashing. And starting with steve job's quote about programming, is like doing a ferrari promo by Michael Jordon. I would have been happier, had they got something from woz.

Michael Moore come up with a documentary please.

adventured 4 days ago 0 replies      
I was fortunate enough that the public elementary school I went to, had a full computer lab (in 1985); the public middle school and high school also did. And this was in a very poor part of the country. There's little question every school in America should have that; if my poor public schools were able to make it happen, anybody can.

I learned basic programming in middle school (turbo pascal!) and high school courtesy of those opportunities. I plan to give back throughout the rest of my life, to the education system I came from. If even one or two people per school did that, it would make a huge difference.

te_chris 4 days ago 1 reply      
I really hope that barely-disguised copy of an LCD sound system song in there involved royalties being paid to the band.
moccajoghurt 3 days ago 0 replies      
Coding is an incredibly frustrating and hard path and I doubt that coding will become more popular on a professional level. There probably can be more hobby programmers that code some simple stuff but there is NO WAY coding can become some kind of popular mainstream hobby.
dfischer 4 days ago 1 reply      
Just want to share something I've been involved with: http://www.kidsruby and http://www.kidscodecamp.com
jschulenklopper 4 days ago 0 replies      
The pages at http://www.code.org/learn could also include a reference to the Raspberry Pi and the foundation behind it: http://www.raspberrypi.org/about.

> We want to see it being used by kids all over the world to learn programming.

It used to be a lot more expensive than $40 to give a child access to a computer that (s)he could program and tinker with...

vellum 4 days ago 1 reply      
I think exposing kids to programming is a good thing. But when so many applicants fail the Fizzbuzz test, do you think there is something innate about coding? For other subjects, like math, you can get most people to do the basics, like add 2+2.


lenazegher 4 days ago 1 reply      
I've heard lot of people say that the best way to learn to code is to set out to solve a problem you're having.

I wonder if the global trend towards open solutions for problems will discourage people learning to code. I've been using computers for perhaps 15 years and I've only ever skirted around the edges of coding. I've learned a little regex and a tiny bit of bash scripting and I know how to edit a little php to get Wordpress to do what I want it to, but that's as much as I've needed to solve every computing problem I've encountered.

Wordpress is a pretty good example: there's now such a rich ecosystem of themes, plugins and hacks that you can get it to do some pretty amazing things without needing to actually write any code yourself.

stevenameyer 4 days ago 0 replies      
I think programming really needs to be added to public school curriculums. Not just because there is a lot of job opportunities for people with the skill set, but also because I personally believe it is one of the best vehicles for learning critical thinking skills, problem solving and computer literacy. All skills that are very useful in todays day and age regardless of wether you end up ever writing a line of code outside of school.
steveinator 4 days ago 6 replies      
I really wish people didn't spread this kind of message. Think job security guys! Come on!
JacksonGariety 4 days ago 1 reply      
I showed this to my high school programming class not two hours ago. They weren't impressed until Gaben showed up. What does this say about inspiring students to code? It syas that Minecraft has probably done more for the Java than Sun Microsystems ever did.
rocky1138 4 days ago 0 replies      
This is all well and great, and my comment is meant in no way to belittle these efforts.

What good programmers have a lot of, though, is self-discipline, initiative, and patience. If we can teach kids those core skills, they can use them to learn programming later or excel in any other profession they choose.

clockwork_189 4 days ago 0 replies      
I am in full support of this movement. Its benefit in my opinion are twofold:
1) Younger kids learn to code and which will result in them becoming more skillful programmers when they are older.
2) People who can currently program and write shitty code get challenged and can actually seek to improve their own skills and learn about more advanced concepts in programming.
mich41 4 days ago 5 replies      
School courses will do nothing if people don't have access to programmable computers. And they don't have - Windows doesn't ship with Visual Studio, OSX and Linux are irrelevant, iOS and Android don't come with SDK CDs and demos.

Now, of course, you know that these tools exist, and I know too. But most people don't and to them programming simply doesn't exist. Teaching these people quicksort in school won't be of much help.

klepra 4 days ago 0 replies      
I think these days is relatevely easy to get basics down with sites like codecademy, codeschool, teamtreehouse and such.
At least in web developement.
You can get the idea how it all works, how to do simple stuff.

To me, the biggest challenge is to get bigger picture of technology I am using -> once I understand that learning is much faster.

tn13 3 days ago 0 replies      
Wrongly Done. Do kids really care about Bill Gates and the guy who created Valve ?

Show them some Pixar movie and tell them how those movies were made with technology. Tell them how technology enables sports bring people whom they can relate with. Not Zukerberg or Gates.

ehmuidifici 3 days ago 0 replies      
That's a cool intiative, But we have to consider that all companies that support the initiative arent there for free.

Theres a commercial interest in encouraging kids to code: cheaper manpower in the future.

scarecrowbob 4 days ago 1 reply      
I think it's interesting that initiatives to teach programming mostly reach to kids.

A big chunk of my peer group is 30 year-old underemployed humanities students. If they were interested, I'm sure that most of them could be not-underemployed.

Though TV takes its toll.

EGreg 4 days ago 0 replies      
Wow, we should have a lot more of these kickass videos so people understand what we do without having to tell them :)
bjoe_lewis 3 days ago 0 replies      
Seriously, do you think inspiring the students with the amount of money, 'they' earned with code is a good idea?
If you ever feel alone in this... bubs.co
429 points by dariusmonsef  7 days ago   92 comments top 30
iandanforth 7 days ago 5 replies      
I'm constantly amazed at the human mind's inability to measure happiness on an absolute scale, and societies inability to acknowledge that this is normal.

I know that I'm well off. I know I'm incredibly lucky to be working on exactly what I want. I know what I'm working on matters and will have a huge impact on the world eventually. And yet, the uncertainty of success (or at least its timing), and the inexplicable daily feeling of unworthiness/ineptitude combine to put stupid mental roadblocks in my path.

While unsurprising, it saddens me that an investor would pull away from a founder because they found out he was human. Silicon valley's greatest strength is accepting and embracing failure, I hope that strength will begin to extend to embracing the humanity of founders. If you expect founders to be perfect models of confidence, skill, willpower and brilliance, you will be lied to and eventually disappointed. It strikes me as part of our culture's maturation process that we begin breaking down these myths and replacing them with understanding, compassion, and realistic expectations.

ispivey 7 days ago 7 replies      
In a nutshell, this is why the problem is so hard to fix:

  > When I was raising my first round, it fell apart because 
> an A-list investor who had given us a verbal commitment
> backed out. He did this because he had heard from his
> friend, who I had went out for beers with, said that we
> were struggling and unsure of what we were doing. I don't
> blame the investor for backing out and I don't blame his
> friend for relating his honest opinion he took away from
> our conversation. But I will tell you that I now never
> share my struggles with anybody I think might be even
> remotely close to affecting my future opportunities. And
> in San Francisco, that pretty much means everybody.

It's not a problem of attitude, or perspective. It's that investors and potential hires and partners really want to make the best choices for themselves, and that means working with companies that are doing great and founders who are driven and aren't going to flame out or give up, which is perfectly understandable.

And so founders who want to have the best chances at "winning" have to create an aura of momentum, of inevitable success, around themselves and their companies. That's perfectly understandable too.

How would you even fix that? How do you even define the problem you're trying to fix?

jazzychad 7 days ago 2 replies      
Thank you for writing openly about these issues, Bubs. You really hit the nail on the head about not being able to have honest conversations with people, especially in SF. Since I moved here, I have met hundreds of people and interact closely with dozens... but I only count one person as a true friend in whom I can confide my personal struggles. Having to maintain a never-ending facade of success and happiness really is draining. Sometimes I wonder for what gain am I paying this price?
ardit33 7 days ago 2 replies      
This is not just for startup founders. As an employee of a startup you are going to go through major roller-coasters as well. Having very close friends to talk to, and that understand your problems (they might work on similar spaces as well), is crucial. Your parents, your family might not be much help on these cases, as they wont understand or be able to give you good advice.

I have 3 friends that are very close to me, and they know every detail of my life (and so do I of theirs), good or bad. When I do need advice, or they do, we can rely on each other to get some feedback on any thing. But I trust them and I know they will have my back, and they wont divulge my personal details.

People that don't form these type of friendships are missing out. It makes the roller-coaster so much easier, and especially when going through life changing moments (job changed, marriage, breakups, etc).

I might have to add though that I suspect the startup community is full of people that are partially inside the bi-polar spectrum. Sometimes it takes a bit of a mania to start something new or crazy, but that euphoric high is always followed by a depressing low. Adding the uncertain nature of the startups, the emotional rollacoster becomes even more crazy and magnified.



The arm-chair psychologist in me says the author might have had BPD symptoms, (borderline) during his childhood:

"I cried in private, hoping that my cries might just be loud enough for somebody to hear. I hit myself, to create physical pain that might distract from the emotional."

harj 6 days ago 0 replies      
I find that keeping a journal helps tremendously when I'm feeling low or find myself dwelling on negative thoughts. I believe it's because you can get away with fuzzy thinking when your thoughts are only in your head. Once you put them on paper you're forced to refine them and any distortion or irrationality in them becomes more apparent.
gavanwoolery 7 days ago 1 reply      
My range of wealth has been somewhere between -30k to 60k in the bank. That might not seem like a big range but I can tell you it is worlds of difference in terms of lifestyle. I once made $30,000 in the stock market, in one hour after the bell rang. Thinking it would keep rising, I went back to bed (rookie mistake!). I woke up to to find my gains negated, and my losses at around $15k. Over the past two years I have battled debt, debt that would have been nonexistent if I had just pressed the sell button.

I am thankful for this, very very thankful. I used to be, for lack of better words, a prick (still am, to a lesser degree!). I would spend money on trivial things. Now I know much better the value of a dollar, and have a least a little bit more perspective on the struggle that many people face ($30k in debt might seem trivial, but I paid as much as others with $200k of student loans due to high interest rates). As of today, I am almost debt free.

Startup culture really saddens me, not because of the chase for wealth - there is nothing bad about that. It saddens me because young people get rich really quickly, many times straight out of college or earlier. They never know what it is like to carry debt. They get rich, and they have no perspective. Elitism is not at all uncommon, subconscious or not, and it has nothing to do with how liberal you are, what charities you donate to, etc. Obviously, I do not look down on these people, I just wish they could experience legitimate hardship for their own benefit.

Cherian 7 days ago 0 replies      
When I came to the Valley to raise funds for my first startup I called up Bubs connecting from a TechCrunch article he wrote [1]. Not only did he spend time with me through calls from Hawaii, he introed me to others from YC who went on to have significant impact in influence, connections and capital for my startup.

Bubs taught me an important lesson. A lending hand to a fellow entrepreneur can take you a long way. I am sure all of us entrepreneurs can relate to this article very deeply.

Thank you.


mgkimsal 7 days ago 2 replies      
Good read, and useful. Whether you're in silicon valley or not, as any sort of entrepreneur, it's hard to find people you can relate to without any sense of competition. Family/friends can sometimes help, but they can't often relate. When speaking with close family, you may often either scare them or piss them off when talk of money issues way outside their experience level.

A few years ago I ran a phone/email group of some fellow entrepreneurs to help support each other - it ran its course and people moved to various stages of life and business at different rates, but was extremely useful for me to help put perspective on issues I was having in business.

I've also recently found a 'support group' of sorts in a local business group in town. Most of the businesses aren't tech related at all, but the support and being able to just be honest about issues 'in private' is very useful for all of us.

EDIT: If anyone is interested in starting/joining an informal support group, ping me at mgkimsal@gmail.com.

hakaaaaak 7 days ago 0 replies      
This is the important part to read:

"While I was in Thailand I got a dotted line tattooed across my wrist as a reminder of all those who didn't get another day, who all would I'm sure do anything to have just a little more time. I got the cut here line tattooed on my wrist to remind myself that if I ever don't fully appreciate the opportunity that I have and the life ahead of me, then I don't deserve it and it can easily be taken away. To me it's a very positive reminder, with a dark but real truth behind it."

leoh 7 days ago 1 reply      
I thought some aspects of this were interesting, but the emphasis on money felt tacky. Money is a motivator, but it is not an end to itself. The author appears to support this notion, but sets an arbitrarily high net worth of 5*10^6 and talks about how miserable it was to be "successful." I don't know. To me, all this money is a big problem in the valley. On the one hand, it's great, because there is a lot of extra money around for cool things to get done. On the other hand, there are people that are just around for the money and it feels tasteless and I have personally found it very unpleasant to work with people who hav ambition for money and the prestige. And there are a lot of people like that right now. Maybe I have been blessed to have grown up around some exceptionally succesful, but humble people. Just my 2 cents, though.
jianshen 7 days ago 0 replies      
Thanks for sharing this.

I can't help but see parallels here to Hollywood and the struggling actor. "Things are great! I've been in a few indies you probably haven't seen..."

I hope in time, with more stories like this, the mainstream will better understand the more human side of an overly romanticized place.

InfinityX0 7 days ago 1 reply      
The only thing I find disheartening here is his discussion of how he lost funding because he told his friend they were struggling and had no idea what they were doing. This implies to me that they were not being transparent with the investor, and in essence were on the verge of "stealing" the investor's money because of it, because his aim was essentially to sell the investor on a thriving business that was in fact not there.

An investor should get a real and full analysis of the business, with accurate numbers, so it should not have come as a surprise or a fallout if someone said they "were struggling", because simply, their numbers and growth should have shown otherwise if they were actually worthy of investment, and no conversation should have been able to sway that.

You should never fear a transparent conversation with others getting back to important parties as long as you really have nothing to hide.

knowaveragejoe 7 days ago 2 replies      
Interesting perspective and an engaging read. Thanks for sharing. Spotted some typos you may want to fix though:

> chartered plains vs first class

> there “limited success."

stuckineurope 7 days ago 2 replies      
I'm not sure if @Bubs will ever read this, but I found this was a deeply interesting article, that hits close to home. If you are reading this - thank you.

There is so much to say on this subject, from various perspectives. Me, I'm stuck in Europe (offers-a-plenty, no chance for a visa). I am a founder of a start-up here, and I cannot complain about how it currently runs - but the things I've been through to get here ...

A lot about the start-up culture is simply different here in Europe - so maybe I am a little out of place among you. But what I believe is largely the same is the pressure, the stress, and the pretending. There are but few people who really understand what you are going through. "Why don't you just quit and get a (real) job ?" - if I had to raise a finger for how often I've gotten this response in dark times, I would be several hands short.

I believe there may be a need for some sort of chatter group for this. Maybe a tad unconventional, perhaps with a respected gate-keeper (like @Bubs) to check on people before they are let in (prevent moles), but once inside, everybody is anonymous to everybody else, and all conversation is group-private. You could be Mr Brown, I could be Mr Black - as long as I'm not Mr Pink. Perhaps it could have prevented what happened to those two founders mentioned in the article. I would be interested to join it, both for giving as well as receiving support. The good just writing something that the people who read it would actually understand could do.

Take this post for example - http://pastebin.com/BgxFCTEC . I wonder if whomever wrote it read this response: http://swombat.com/2013/2/21/truth-failing-startup and maybe felt better or even changed his view, or never saw any of the response and is sitting at his desk staring at the wall, wondering why (or if) he's still here.

mindcrime 7 days ago 1 reply      
Good stuff. It hits a little close to home, but one thing stands out: the bit about how you fear showing any weakness or self-doubt, because of the impact it might have on others.

I would be very reluctant to share some of my own internal fears and self-doubt with anybody. Some of it is pragmatic (what if that person relays it to an investor), some of it is ego, some of it is, well, who knows?

thomaspun 6 days ago 1 reply      
Thanks, Bubs. I felt better reading your post already. You are one of the founders I admire, especially on how you are able to balance between startups and family.
mindcrime 7 days ago 0 replies      
It's a bit silly, but when I feel depressed or down, this is always good for perking me up:


kirillzubovsky 7 days ago 2 replies      
Great post Bubs. It's really unfortunate that the world responds better to "we are killing it", than to the truth. Thank you for being around to chat. You rock!
alexandroid 6 days ago 0 replies      
I would add that a big cultural difference in US from, say, Ukraine is that people avoid talking about money as a plaque. As if it is a bad shameful subject. I do not know where it comes from - pride, competitiveness, avoiding jealousy, lack of confidence or extrapolating work policies into personal life.

I think people lose a lot because of this. First, they do not let share their struggles with each other. Where I came from people used to complain and exaggerate about their money problems, but nevertheless they share. Without sharing, there is less emotional and practical support from friends and family.

Secondly, without talking about money there is less chance to learn and cooperate for successes. If my friend wants to do X and never mentions to me that, I have no chance of telling him what I know about it from my experience or from my other friends experience.

timtamboy63 7 days ago 0 replies      
I saw his talk, and honestly Bubs, you were inspirational. Keep up the awesome work
xijuan 7 days ago 0 replies      
It is a very inspiring story! I think everyone can relate to it to some extent because everyone has down times. It saddens me very much that we live in such a society that stigmatizes depression and suicide this much. I have only realized how bad the stigmatization is until recently due to things that happened in my personal life. This article also made me want to write out my own story and share it online. Maybe one day I will do that.
slashedzero 7 days ago 0 replies      
Excellent post! The one thing I have to wonder is if there are those out there who can really separate themselves from their company's business.

I like to think of James Altucher's advice that you will be most happy when there are the fewest amount of people in your life who have the ability to create negative influences. In this case, having that investor mean so much to you that it has a severely negative outcome on your emotional well being is not worth it. I've come to realize that less stress is definitely worth more than extra income, in the long run.

thestartupguy 7 days ago 0 replies      
Thank you Bubs. The work your doing is so important and needed by our community. I've just finished Seth Godin's 'The Icarus Deception' and your post truly resembles art.
warmwaffles 6 days ago 0 replies      
Very powerful post. I thought I was going down in flames recently but only realized that it could be so much worse and that it does get better with time. Thanks bub
j45 7 days ago 0 replies      
There are some people who can't learn from the rattlesnake biting the other person first.

This article is not for them.

jongraehl 7 days ago 0 replies      
Excessive risk (loss) aversion saps some of the enjoyment of having probably (but not certainly) sufficient wealth. 1% problems, I guess.
BeckyBausman 1 day ago 0 replies      
Beautiful post. TY for the candor and truth.
saumil07 6 days ago 0 replies      
So, so so damn good.
blufox 7 days ago 0 replies      
Great Read, Thank you.
ilaksh 7 days ago 1 reply      
> The truth is EVERYBODY is struggling.

Bullshit. I probably won't be able to pay rent unless my client pays my invoice next week. And that isn't very unusual.

I'm not about to kill myself, because I am used to the constant stress and poor health and barely getting by, but the point is, a lot of that post was just bragging, and financial security DOES matter.

I honestly don't feel sorry for rich people who want to kill themselves.

Google Chrome may soon get audio indicators to show you noisy tabs thenextweb.com
428 points by Lightning  5 days ago   105 comments top 37
simonsarris 4 days ago 3 replies      
This is more exciting than half of the features in HTML5.
jaredsohn 4 days ago 1 reply      
I wrote the MuteTab Chrome extension (http://www.mutetab.com/) and have been following the development of this feature in Chrome's bug tracker.

The reason this feature hasn't existed is that Chrome (like all browsers other than IE) would use just a single instance of Flash for all tabs so the browser could not control the volumes independently nor tell which Flash instances were playing sound or might ever play sound. You can read this explanation from Chrome devs here: http://www.reddit.com/r/IAmA/comments/gdyun/iama_we_are_thre...

My understanding (just from reading comments in the bug tracker) is that Google was able to get Adobe to cooperate with them and add some hooks so they could keep track of the sounds for each Flash plug-in separately.

I was able to try this feature out in today's Canary build and it worked for me on the two sites I tried it on: youtubedoubler.com and homestarrunner.com.

The URL chrome://media-internals is also interesting in that it will show an entry for each plug-in instance browser-wide. Hopefully they will have a UI element similar to this or like MuteTab so that a person can find the tab making sound when they have a huge number of tabs open in multiple windows and cannot see all of the audio indicators.

dbcooper 4 days ago 2 replies      
speeder 5 days ago 1 reply      
Finally, a way to know what stupid portfolios have automatic music so I can close them without even looking and thus jot being tempted to hire people that do that.
mike_esspe 4 days ago 3 replies      
If you are excited with this feature, you should probably try "click to play" for plugins.
moccajoghurt 4 days ago 0 replies      
I hear a lot of people complaining about that very often. I can't remember the last time I had sound in my browser without my knowledge. Maybe it's because most people don't use adblocker?

I have no clue.

zitterbewegung 4 days ago 0 replies      
I am excited about this feature. Its really useful when you have tabs that autoplay some sound and you are hunting around to close that tab. Also, if you use grooveshark or some other music service and its in the browser.
wavesounds 4 days ago 0 replies      
Thank you google! I was just thinking about this problem the other day and was even contemplating trying to build something myself but then realized I probably just shouldn't have so many tabs open.
SmileyKeith 4 days ago 1 reply      
Isn't the fact that we're all so excited by this hampered by the fact that it sucks that Chrome automatically starts youtube videos when you open the tab and that's the only reason we need this.
podperson 4 days ago 1 reply      
Good idea but:

How about visual indicators of CPU-burning tabs, especially when in the background?

How about a ctrl-C that kills all JavaScript executing in the foreground page (or something)? In my experience Chrome is good for three infinite loops or similar bugs before it needs to be restarted (manually process killed in Windows) while Firefox is pretty much dead after one. Isn't Chrome the "one thread per tab" browser? Why is it so hard to kill JavaScript when debugging?

sp332 4 days ago 1 reply      
If you're curious about the HTML5 version of YouTube, you can opt-in at https://youtube.com/html5
deepGem 4 days ago 0 replies      
So I wanted to put together some rudimentary search abilities to our application and I installed solr and all that. I wanted to use dynamic queries and found a way to get dynamic queries working. All thanks to Google. This perhaps took less than a day.

However, the search results were not what I was expecting. Searching 'fname + lname' would return all records with the lname field. No amount of Googling helped and I'm still stuck.
I started googling by using phrases such as 'dynamic query not returning results in solr'. When the results didn't solve my problem I got more specific. 'Dynamic query solr with relative boosts not returning results'. No luck. I am learning all about Solr, the schema, eDisMax query processor and all the other good stuff but am not finding any resolutions. Also this process is very exhausting.

I have found this kind of learning to be not stick in memory. Meaning - nothing sits in memory. So tomorrow if an interviewer asks anything about Solr setup - I'll have no answers, or if I have to setup Solr again - I'll have to follow the Google route or follow a manual. Not sure if this is effective but I'd be comfortable having stuff in my memory rather than depend on Google for a majority of my tasks.

j45 4 days ago 3 replies      
Great news. An indicator for CPU usage would be great too.
crazygringo 4 days ago 1 reply      
I wonder if this has anything to do with the Google version of Flash (called "Pepper") that Chrome now includes -- if that will be used as a special hook or something. Or if there's another way to do it.
fnordfnordfnord 4 days ago 0 replies      
>>This change would presumably also be very useful for instantly recognizing which tab is annoyingly blaring sound when you have countless tabs open.

Fantastic, I've wanted this feature for years; and counting browser tabs is easy. FYI, This isn't my feed, just some public one I found. https://cosm.com/feeds/63631

preavy 4 days ago 0 replies      
BBC Programme pages with embedded iPlayer change the title of the page to contain a - (play symbol) when the content is playing.

E.g. http://www.bbc.co.uk/programmes/b01qrn4y

Perhaps this is common but I hadn't seen it until recently.

EDIT: wanted to add that this means you can see that the page is 'playing', but it doesn't work if you pin the tab in Chrome.

DigitalSea 4 days ago 0 replies      
If this works reliably, what a feature! I've been wondering for years why browsers didn't show you what tabs were making noise, I'm glad it's a reality now.
nsp 4 days ago 1 reply      
I found a chrome extension a few months ago that does a lot of this. It's called MuteTab and bills itself as 'browser-wide granular sound management for chrome'. It's not perfect with flash, but makes a huge difference.

EDIT: here's the github - https://github.com/PhilGrayson/MuteTabs

tnuc 4 days ago 0 replies      
Fantastic news.

Trying to figure out which page is making noise, was most of the reason for installing an ad blocker.

primitur 4 days ago 2 replies      
Great, yet another feature that should be being implemented by the OS VENDOR, intead being implemented in a non-standardized manner by an APP DEVELOPER.

See kids, this is what happens when your OS vendors decide that its more important to add shiny to their products than it is to fix deep architectural problems. In this case, that problem is that the AUDIO API's do not already have a native way to add this indicator, anywhere in the OS ..

IF there were a real Digital Audio Mixer implemented in your average Consumer OS, then we'd have per-app audio controls natively being included in such a Mixer interface .. however, the OS vendors have decided its more fun to make shiny things than actually .. you know .. provide valuable OS services.

Color me grumpy. It sucks that the Google Chrome team are having to implement this..

cm3 4 days ago 0 replies      
rplacd 4 days ago 0 replies      
It's working in Canary for me, even in NaCL Flash (I wonder how many layers of abstraction implementing that had to break through) - it can tell you when music's playing and stopped. I'm not sure how far of a leap an EQ display is, though.
chj 4 days ago 0 replies      
Sweet. It would be better if we can mute it by a single click.
tyroneschiff 4 days ago 0 replies      
Another example of this can be seen in the Web Speech API (http://www.google.com/intl/en/chrome/demos/speech.html). You will need Chrome Canary in order to test.

I'm currently building a voice-to-text transcriber using the Web Speech API.

jv- 4 days ago 0 replies      
I like the idea but hope that they do not use the current implementation. A moving "favicon" will add visual clutter.
ivanhoe 4 days ago 1 reply      
Sounds can be annoying, but the top problem for me in Chrome are still accidental clicks on close button when there's lot of tabs open. A simple option to hide the close buttons on all inactive tabs would save a day, but I guess it's not "challenging" enough feature for Google engineers...
iamdave 4 days ago 0 replies      
This is pretty great, but I'm dismayed that it's even needed because someone somewhere started the trend of triggering audio without the user's interaction.


Congratulations, you're a jackass. You do NOT interrupt Black Sabbath.

k_bx 4 days ago 0 replies      
Firefox lazy-load is still better. Also, Ubuntu's future integration with audio-menu also (why wasn't it done on browser-level?).
re 4 days ago 0 replies      
Multiple people have pointed out that Chrome has click-to-play for plugins. Great! But now that new HTML5 features (<video>/<audio>/Web Audio API) are widely available and ripe for abuse, will we have any options for disabling autoplay for those?
jcomis 4 days ago 0 replies      
Happy to see this. I frequently keep a ton of tabs open and hate being startled by a random one making noise through an ad. In Fact, about a year ago I wrote a sticky note to myself to make this as an extension for a side project. Never did get around to it...
matt_heimer 4 days ago 1 reply      
While I'll be glad for the audio indicators why not just mute every tab by default? Any user interaction on a page would unmute that tab.

Can I also get a bandwidth/data transfer rate indicator per tab too?

mprovost 4 days ago 0 replies      
Bell in window 0
sylvinus 4 days ago 0 replies      
That is an incredibly useful feature.
ramanujam 4 days ago 0 replies      
http://www.mutetab.com/ is a chrome extension that solves this problem but in a different manner.
ponyous 4 days ago 0 replies      
I always wondered why they don't integrate Play/pause in tab if you are on YouTube page - since Google is owner of both.
ypeterholmes 4 days ago 2 replies      
Even better would be a play/pause button... or is that not feasible? I'm not so familiar with browser development.
tn13 4 days ago 0 replies      
wonder how it is implemented. How can chrome possibly know if a flash or silver-light is playing a sound ?
HTML5 localStorage allows sites to fill up users' hard disks feross.org
423 points by feross  2 days ago   184 comments top 34
pilif 2 days ago 11 replies      
So. The question I'm asking myself now is how to fix this. Giving <wildcard>.domain.com a shared quota will allow one tumblr or github pages user to monopolize all storage, effectively removing local storage for this kind of scenario (also removing it for the host which is even more annoying).

A maybe workable solution would be to only allow creation of new keys for the first-party origin. What I mean is that whatever.example.com has full access if that's what the user is currently viewing directly in their browser.

<wildcard>.example.com embedded via iframes could either get read-only access, or read-write access for existing keys. Also maybe limited to, lets say, 4K.

This sounds like a really complicated solution though. Any better ideas?

pcwalton 2 days ago 0 replies      
This kind of thing is a good reason why a monoculture would be bad for the Web. It's entirely possible that, if WebKit had a monopoly, Web sites would rely on subdomains' space not being counted toward the parent domain's space, and it'd be impossible to fix this bug without breaking the Web. But because we don't have a monoculture and some browsers implemented subdomain limits, Web sites haven't been able to rely on WebKit's behavior. So WebKit will be able to fix the bug without breaking the Web"which is better for WebKit, and better for the Web.
DigitalSea 2 days ago 2 replies      
Please sir, may I have some more? This is awesome. I got to 935mb of space used before Google Chrome on Windows 7 64bit crashed dramatically. However, good news, when I restored the tabs it resumed right where it left off filling up my hard drive.
benaiah 2 days ago 1 reply      
(Mildly OT) Well, that's interesting. The link has been changed since it was posted - it originally pointed directly at the demo which began to fill your disk. Is this a mod thing, or can the original submitter do it?

Either way, it was a good call. Automatically playing music and filling my hard drive with no warning is a terrible idea.

m_st 2 days ago 1 reply      
Reminds me how filing bugs with Microsoft is such a pain!

There's no category for Windows 8 on MS Connect, so when we found a bug in Windows 8 RTM I found the name of an MS employee working on the feature in question on the MSDN forums, then through Google found his LinkedIn profile where he luckily published his eMail address.

Microsoft should be ashamed.

It seems like the best way to file a bug these days is to create a blog post and publish it to HN, Reddit or so...

eksith 2 days ago 6 replies      
Well this is frightening. You don't even need to create subdomains since basically anyone with wildcard subdomains enabled can do this without a sweat. All you need is a random number generator and rewrite x.domain.com to domain.com and the browser is none the wiser.

Though I can't quite imagine why anyone would want to do this to some random stranger. Unless you knew the visitor or had some means of personally identifying him/her, there are more devastating ways of filling up a remote HD with just an IP and hostname (nmap and friends come to mind).

curiousdannii 2 days ago 1 reply      
The Chromium developers really dislike localStorage (http://code.google.com/p/chromium/issues/detail?id=58985#c7)

They'll have to fix this bug, but I won't be surprised if they try to remove localStorage entirely soon.

tantalor 2 days ago 1 reply      
Some analysis of how this works,

1. The main page contains an iframe which serves this script:


2. This script writes a 2,500,000-length string to local storage, which should occupy at least 2.5Mb (probably much more). This matches the maximum storage per sub-domain.

3. This script then reloads the iframe on a different subdomain but the same script. GOTO 2.

okamiueru 2 days ago 2 replies      
Here is how it looked in Opera: http://i.imgur.com/SOoadOB.png
yefim323 2 days ago 1 reply      
I was really annoyed by the fact that the "disk filling" started as soon as I clicked the link. However, the point really hit home. Is there a solution for this browser-side?

EDIT: The link has been changed to the blog post describing the phenomenon. Good riddance!

AdamTReineke 2 days ago 2 replies      
FYI, if you're on IE10, hitting the Stop button seems to throw a local storage exception and doesn't clear the space.
bzbarsky 2 days ago 0 replies      
This is why Firefox has a quota on localStorage, per eTLD+1. Of course people keep complaining about this quota...
yaix 2 days ago 2 replies      
Just ask the user if its okay, like with geo data, translate web site, etc.

"Allow example.com to track your location?" [Yes] [No]

"Allow a1.example.com to store x MB of data locally?" [Yes] [No]


> The HTML5 Web Storage standard was developed to allow sites to store larger amounts of data (like 5-10 MB) than was previously allowed by cookies (like 4KB).

Main difference is that cookies are uploaded to the server with each request, while localStorage is not.

martin_ 2 days ago 3 replies      
So apparently this is where you file IE bugs http://connect.microsoft.com/IE - i'm not sure if it's expected or ironic that it's broken. Great find btw!
hoodoof 2 days ago 1 reply      
Wouldn't this have earned the guy a $60,000 Chrome bug bounty if he had reported it through the right channels?
catshirt 2 days ago 0 replies      
i liked that when i originally clicked the link it filled my harddrive and played music. satire, people.
chrismorgan 2 days ago 0 replies      
HTML5 localStorage does not allow sites to fill up users' hard disks (without their permission).

Bad, non-conforming implementations do.

akandiah 1 day ago 0 replies      
Would this work on an Android device with Froyo/Gingerbread? Because, some of those devices will never be updated. Hence, this can be used to practically disable a device.
frozenport 2 days ago 0 replies      
Opera is safe! It prompts for most disk space.
mcnemesis 2 days ago 2 replies      
Is there a means to inspect (and or modify) what apps are putting into my local storage?
something similar to cookie inspection?
Untit1ed 2 days ago 1 reply      
Finally a good non-ideological reason to use Firefox :)
farseer 2 days ago 1 reply      
The solution is simple but ugly:

A root domain www.example.com can utilize upto 10MB of storage while sub-domains count towards that storage limit. Any domain trying to access more will automatically result in a user prompt. An exemption can be made for domains/subdomains that present a valid SSL certificate, the whole idea is to prevent abuse.

TheAnimus 2 days ago 0 replies      
This could be quite a problem for users of SSDs who lack TRIM support.

IIRC Apple were selling mac book airs with no trim support if the user didn't pay to upgrade OSX.

If a malicious user felt so inclined they could with just a few domains create a bit of a write load that would quickly fragment and hurt the performance of the SSD.

mablae 2 days ago 3 replies      
How is that done?

Isn't there a limita Limit of 5Mb(?) per Domain definend in the HTML5 Spec for LocalStorage?

redmattred 1 day ago 0 replies      
This is also possible using the FileWriter API (currently only supported by Chrome: http://caniuse.com/filesystem).

Oddly enough, Google Chrome prompts you to grant file system access, but doesn't explicitly tell you how much space is being asked for.

tquai 2 days ago 1 reply      
Ahhh.... I wrote a response wondering out loud why this doesn't work on my browser, then checked the source, and it's javascript. No wonder, I browse without it!

"Yeeaahhpp, with enough javascript one can blow up just about anything." ~Tyler Durden

sfaruque 2 days ago 0 replies      
I'm working on writing a guide on how to use localStorage to publish on www.localstorage.org.

Should I include a part about the possible abuses?

__herson__ 2 days ago 0 replies      
Firefox 16 in Linux Mint isn't affected


jiggy2011 2 days ago 1 reply      
Got to ~800MB and then chrome crashes.
chris_wot 2 days ago 1 reply      
Is there a bug logged with Mozilla?
muglug 2 days ago 0 replies      
Mitigation: there's an option in chrome://flags that converts all these images to dog pictures.
hbe_ 2 days ago 0 replies      
*checking if cuckoobox.com is available
viseztrance 2 days ago 3 replies      
The message is OK, but personally I have an issue with websites playing sound without my consent.
Django 1.5 released djangoproject.com
419 points by Lightning  4 days ago   170 comments top 20
bryanh 4 days ago 2 replies      
Wonderful! I just want to extend a heartfelt "thank you" to all the guys and gals contributing to Django.

Django is still a cornerstone of our startup and we're way past the point where folks have traditionally said "Django starts to constraint you". We've found that to be untrue. We love the templating, the ORM and all the built-in tools (not to mention 100s of libraries that get you an 80% finished feature in 5% of the time).

I hope to meet a lot of you at Pycon, I'd be happy to buy you a beer. I'll be wearing the bright orange Zapier shirt, you can't miss me. :-)

danso 4 days ago 3 replies      
> Django 1.5 introduces support for a configurable User model. The basic Django User model is still around, of course, but now there's first-class support for specifying your own model and having Django's auth system make use of it.

I guess having it be a special User model is just part of the deal with Django's good out-of-the-box admin. I don't even remember how the various Rails plugins (ActiveAdmin, for example) generates the scaffolding needed for an authenticated user.

awolf 4 days ago 2 replies      
>Django 1.5 is the first Django release with support for Python 3 (specifically, Python 3.2 and newer).

That sentence is of course followed by caveats about Python 3 support being experimental at this stage, but all-in-all I think this is a sign that we are finally at the tipping point for Python 3 to start gaining mainstream usage.

Thank you Django community for moving the ball forward for everyone.

jimray 4 days ago 2 replies      
Hot dog.

I've been working on a small side project the past week or so using the 1.5 RC and following along the best practices recommended by 2 Scoops of Django -- https://django.2scoops.org

If you haven't already, I highly, highly recommend picking up the 2 Scoops book. It's got some great, proscriptive advice and is an easy-to-follow roadmap that helps answer a lot of "what is the right way to do this?" kinds of questions. Setting up your settings files for multiple environments, using CBV's, understanding the new User Model features, writing tests, recommended 3rd party tools, securing your setup -- these things are all a lot more clear to me.

And it's actually really well written, not just a bunch of recipes. Their explanation of mixins, for instance, is one of the clearest, most concise I've ever come across. Well worth $12 and a few hours of time to read through it.

Spiritus 4 days ago 1 reply      
There's a lot of hype around the new configurable User module. But personally the new verbatim template tag is golden:


naiquevin 3 days ago 1 reply      
It's great to see the Django tutorial extended to cover testing[1] and writing reusable apps[2]. These days there are quite a few Django tutorials out there covering best practices etc. (which are very good) but I would still recommend the official Poll app tutorial to any beginner because of it's simplicity.

[1]: https://docs.djangoproject.com/en/1.5/intro/tutorial05/

[2]: https://docs.djangoproject.com/en/1.5/intro/reusable-apps/

tazzy531 4 days ago 2 replies      
Does anyone know what the status is on the non-rel branch? It's still on 1.3.

What framework do other people using NoSQL data stores use?

elicox 4 days ago 7 replies      
Sorry for the Off topic, but anybody have a good experience with Appengine+Google Cloud SQL+Django?? I am thinking as alternative to AWS but I dont know if it's going to give me so much problems with the integration. Also a bit worry about the price in comparation with AWS. Anyone experience in both world?
lcc_tn 4 days ago 6 replies      
So, I'll ask the noob question that has previously been getting asked to death but there's finally new reason to ask once more: someone who's had little to no prior experience with Django, and still is very much a novice with Python -- do you suggest they start using Django with Python 3 or 2?
lifeisstillgood 4 days ago 1 reply      
Is it just me, or is it simpler to go back to wsgi middleware plain and simple?

I am getting turned off left right and centre by frameworks - Django and even Flask just make reasoning about the request/response more difficult.

Maybe I don't know how to use this but ... It would take me three months to read the new Django docs.

I am not a hater here, just wanting the simple life

csense 3 days ago 1 reply      
What do Python frameworks like Django need to do to start taking market share from Rails?
niggler 4 days ago 1 reply      
Slightly OT: How does python2 and python3 usage numbers compare?
mariuz 3 days ago 0 replies      
The django-firebird (fdb driver) is now available for installing via pypi. Just run: pip install django-firebird
It's developed for django 1.5+
djangoguy 4 days ago 2 replies      
I'm super excited about this release but I really, really envy the Russian Doll-caching through key-based expiration and the Turbolinks of the Rails 4 release. Man I really wish django would package all the JS magic Rails comes with.
kmfrk 4 days ago 0 replies      
Looking forward to see if there'll be any SQL query improvements after I play around with the new User model and improved object fetching.
message 4 days ago 2 replies      
Django 1.5 unchained
wowzer 3 days ago 1 reply      
On the Python 3 subject, I'd be highly interested in seeing if there any performance wins by switching your Django deployment to Python 3 over something like Python 2.7.
AUmrysh 4 days ago 1 reply      
I hope this isn't too difficult to upgrade to from 1.4
Also, I'd like to thank all of the Django contributors for their excellent work and for making my job easier!
jezi22 4 days ago 0 replies      
Im new in django and i fell in love with it. nice update. :D
Why a one-room West Virginia library runs a $20,000 Cisco router arstechnica.com
378 points by cpeterso  5 days ago   184 comments top 44
nikcub 5 days ago 12 replies      
I have first hand experience with this, although in Australia. My first job was working for a IT development and solutions shop (this is over 17 years ago) where they won the bid to rollout the internet and network gateways across a large number of Australian government schools.

We were doing similar work for private school at the same time, and the process for the public and private school could not be more different.

For eg. in the tender process, which I was part of, for private school we would use cheaper Taiwanese routers. For the public schools it 'had to be Cisco'. The only time we ever used Cisco, outside of large enterprise clients with 1000+ seats, was with public school tenders. The private school would get a $500 white-label router, the public school s would get a $6-15k Cisco router with additional VPN module costs.

We would charge a higher consultant rate on the Cisco jobs, and would bill 3 days instead of 1. We won the contract because we were 50% cheaper than the other tenders who all wanted to install 3 and 5-series routers. How we got to the point of being able to even tender is another story that involves somebody in our organization sleeping with somebody at the government organization. The other tenderers were accustomed to dividing the work up amongst themselves at inflated prices, they didn't even know who we were and we received a lot of abuse for breaking up their little scheme.

(Edit: a further idea of how this worked, the 3 people in the gov office responsible for tenders all had very nice cars and holiday homes while the rest of the office was working away on below-average wages. You could see what was going on just by looking at the car park)

So a dozen of us roll out hundreds of these routers in public schools and after a month we find that we rolled out the wrong version of IOS, one that was vulnerable to a simple security attack. Instead of forcing us to upgrade all the routers remotely, or out of our own pocket, we instead won another few-million-dollars worth of work to send a person out and apply the upgrade to each router (which took 5 minutes, we charged a full day plus travel).

The routers weren't even being used properly - the topography was net connection -> cisco router -> internal server -> switches. The internal server would do all the DHCP and everything else. These expensive routers were being used as bridges, although they were pitched as having 'forward compatibility' incase the school wanted to implement features such as user accounts (they did, although again they used a custom server, not the router).

When these projects are audited there is nobody who is technically competent enough to make an argument against who would be on the side of ditching or shrinking the projects. Some of the smarter teachers knew what was going on but didn't mind since they got access to fancy equipment (we would create user accounts for them).

My first, and not my last, experience with government bureaucracy and budgets. I would estimate that the private schools got more out of us at a tenth of the cost. Since then I had an even worse experience with the government health department, where 6-figure invoices were written and paid for goods that didn't exist (that department has since been broken up and the subject of a large corruption enquire). No surprise that I became very anti-government size and spending.

Edit: to add, we were so 'disruptive' to the backdoor deals that we were uninvited from conferences, kicked off panels, not invited to the mixer events where gov buyers met providers, a couple of years later we lost our accreditation[0] temporarily until we appealed to the Government Minister. On site we would be locked out of network cabinets, not given IP information for the net connections, etc. Our jobs were made difficult by competitors and others because of our pricing and methods. They couldn't figure out how they didn't get rid of us, because they didn't know that one of our guys had a solid relationship with somebody at the government (that person wanted to clean things up). Usually we wouldn't have been allowed anywhere near these projects and if we did win one we wouldn't be allowed back in for not playing with the system.

[0] 'accreditation' for government tenders needs to die, it is a formal method used to keep honest operators out of what is essentially a cartel. The Australian government is getting better in this regard[1], they now have an open tender website but I believe it still requires some form of accreditation that has a person in a department standing between application and approval.

[1] although not too much better. NBN Co., a government owned company that is building a $40 billion nation-wide fibre network recently suspended tender process because every single bid came in over the expected price:


DanielBMarkham 4 days ago 1 reply      
What's worse than overpaying millions for a few routers? Overpaying billions.

At the federal level, specifically to prevent such things from occurring, there's this huge byzantine procurement process. A process that is literally worth tens of billions of dollars to game.

So if you have product foo and want to see a zillion copies of it to the feds instead of some freeware or cheaper solution? 1) Convince somebody on the inside of the procurement system that yours is the best product, 2) they write up the specification so that no other products will qualify (many times just copying directly from your brochure) even though it's technically an "open" bid, and 3) have somebody with lots of procurement knowledge help guide the paperwork through the system. At the end of the day, it's all just paperwork, no matter how much money is involved.

And that's just what I've observed in IT. I'm guessing IT is the worst, since all the products somewhat look alike. But I'm not sure. Quite frankly, its way too depressing to think about much.

BTW, the best way to do #1 is simply hire people retiring out of the procurement system. Yep, there are laws against direct hires, so you hire somebody from DoD to help shepherd a Commerce Department contract, or a DHS procurement expert to help with a DoD job, and so forth. If you do this correctly, the poor schmucks left handling the paperwork will be so happy that you can offer extensive support in making sure everything is done correctly that this is another huge plus in favor of your getting the bid.

rachelbythebay 4 days ago 0 replies      
Oh, the FCC E-Rate program. So much corruption, so much waste. There were people who would purchase something for a school with the most % of kids on free or reduced price lunch, since that was used to set the "FCC match" percentage. So, if 90% of the kids were on that plan, we'd only pay 10% of the actual cost.

So, they'd order something for the school with the highest percentage and would then park that equipment there for a year (to fulfill the requirement that it must be used there). A year later, they'd move it somewhere else.

I wrote about this particular router instance last year and linked it with my own FCC story from the year before that. http://rachelbythebay.com/w/2012/05/08/router/

WestCoastJustin 5 days ago 6 replies      
Probably going against the grain here, but what about the operations staff who are charged with supporting these 1,164 routers? What about warranties and parts replacements? There is a price for standardizing on a piece of hardware at such a large scale. When you standardize, sure there is going to be hardware overkill in some places, but in the big picture this is just a price of doing business at this scale. What is the price of service calls out to this location when the hardware is down? You have a tool-chain that supports this hardware, you have experts supporting the network (security, patching, etc), and you have contracts in place to make sure it is operational.
trout 4 days ago 2 replies      
Visualizing this conversation..

IT Director to Sales Guy: "We just got $20M in grant money for getting broadband across the state. Can you get me some numbers?"

Sales guy to engineering team (partner or internal): "Hey I need lots of boxes. They've got 1300 sites."

Engineering team: "Ok.. what do they need?"

IT Director: "Pretty sure my network guy says everything has to have redundant power supplies and at least 1 ethernet connection. To do a survey for each site would take over a year due to bureaucracy, and I've got 3 months on this grant"

Engineer to Sales guy: "Ok I built out those routers. Do they really need redundant power supplies everywhere? 3900's seem big."

Sales guy: "Ya, that's what they said. Anyways this came out below budget. Thanks!"

IT Director: "Looks to be under budget, meets our needs, thanks!"

.. meanwhile IT management/engineers aren't involved. Somewhere, someone didn't slow this project down to do due diligence. That or somewhere buried in some document is a requirement for redundant power supplies, but that sounds less likely the case.

redshirtrob 5 days ago 3 replies      
I'd like to know how much of that $5 million savings would have been burned up in the capacity studies. My guess is a lot.

Given the choice between a fixed cost and an unbounded cost (being the capacity study referenced throughout the article) I'm not surprised they went with the fixed cost.

I'm not saying WV didn't get swindled, but I can sure see how this might have happened:

WV Rep: Do we really need these $20k routers for all our locations?

Cisco: We really couldn't say what your exact needs are without a proper study.

WV Rep: What will that cost?

Cisco: It's really hard to say. We'll have to visit all of your locations and speak with the IT Manager there. We'll have to measure average and peak load. Of course, we'll want to plan for future growth so we're not at this same point in two years...

The real crime is that they didn't open the RFP to multiple bidders. A little bit of competition can go a long way.

homosaur 5 days ago 2 replies      
Corruption is awesome when you're on the nipple end of the government tit. Nice work if you can get it, Cisco.
meaty 4 days ago 0 replies      
This doesn't suprise me.

I am related to an ex-sales exec at Cisco UK. They are a bunch of shysters who will desperately oversell anything to anyone. The person in question was responsible for selling such kit to managers who didn't even know what it was but they apparently needed it. You know the sort who populate senior positions in the public sector. They are rife in the healthcare and council sectors in the UK. Incompetent morons waiting to be milked for our cash.

The asshat is now selling VoIP and video conferencing solutions to medium sized businesses (via their executives) which is the next cash cow he can milk.

nicw 4 days ago 0 replies      
This almost happened at the California State University (CSU) level. An RFP went out, Alcatel bid $22MM, Cisco $123MM.


""Everybody had to comply with this spreadsheet," he said. "Every campus had two border routers, two cores, and two server farm switches. All the vendors had to propose exactly the same solution" based on the average number of servers deployed at each CSU campus. "All of this is based on exactly the same data to all of the vendors. It's exactly the same formula for all of the vendors.""

jeffdavis 4 days ago 2 replies      
I was surprised how much blame this article lays at the feet of Cisco. What did they do except sell the customer what they wanted? Sure, they might have been more noble if they put on the breaks in the name of the taxpayers, but that could hardly be expected.

It takes a lot of nerve for someone who just wasted my money (federal dollars) to try to blame it on the other party for fulfilling the order.

mrb 5 days ago 0 replies      
Cisco: "the criticism of the State is misplaced and fails to recognize the forward-looking nature of their vision"

My sarcastic retort would be: "no, you fail to recognize the forward-looking nature of their vision because you did not recommend this other even more expensive and more powerful router!"

papsosouid 4 days ago 0 replies      
This should surprise no one. This sort of nonsense is the entire reason cisco exists as a company. Their products are underpowered, overpriced, and their software is incredibly unreliable. Scamming big entities with closed bid processes into buying millions of dollars worth of equipment is cisco's bread and butter.
crazygringo 4 days ago 0 replies      
> Getting any of the money back seems unlikely at this point, but the legislative auditor does have one solid recommendation to make. The State Purchasing division should determine whether Cisco's actions in this matter fall afoul of section 5A-3-33d of the West Virginia Code, and whether the company should be barred from bidding on future projects.

Cisco is a public company with a fiduciary duty to make money. You should assume that companies are going to try to fleece you whenever possible. Unless they committed some kind of contractual breach or fraud, they're not the problem.

The fault here is clearly with one or multiple people in the government. This is the kind of gross misconduct for which it feels like firing isn't even close to enough -- this kind of managerial incompetence really deserves at least a short stint in a white-collar prison somewhere.

jessaustin 5 days ago 3 replies      
Gosh, it seems like state bureaucrats can't figure out how best to spend money, and don't care to hire anyone who can. How might one's political preferences change in response to this shocking revelation?
shalmanese 5 days ago 0 replies      
Previous discussion on the issue with a lot of the same arguments that have been rehashed here: http://news.ycombinator.com/item?id=3962029
SpikeGronim 4 days ago 0 replies      
I saw the exact same thing with Cisco in the NY public school system. They gave my high school something like $50,000 of equipment in a rack to support two machines that submitted grades. We stripped it for parts and put it to better use, it had some really nice switches in it. But it was clearly misspent public money. At least we did put it to use in classrooms, though not as they intended.
guynamedloren 4 days ago 1 reply      
This makes me sick to my stomach. The worst part is that there's nothing we (the taxpayers whose hard earned money went to to pay for these things) can do about it, nor is there much we can do to prevent it from happening in the future. I really really hate to admit it, but that's the truth.
wilfra 4 days ago 0 replies      
Nice commission for that sales rep.

This is the dark side of enterprise sales. Microsoft and many others have surely done many such deals over the years - and paid out handsome bonuses to the reps/execs who made them happen.

jlarocco 4 days ago 0 replies      
Having worked on a government contract before, this doesn't surprise me at all.

They were going to spend all the money the feds gave them. Whether they spent it on over powered routers or "consulting" or something else, it was all going to be spent by the end of the project.

There are enough projects overbudget that being on budget looks really good. And there's always a concern with being under budget that next time the feds won't hand out so much money, and you might really need it then.

rlpb 4 days ago 2 replies      
From the article:

> the legislative auditor concluded that the company "had a moral responsibility"...

Since when do corporations have any kind of responsibility, other than to make as much profit as possible? Expecting anything else is futile. If something needs to be fixed, it is in mechanisms to restrain this kind of behaviour where it is in the public interest. Demanding that corporations have morals is not the solution.

noonespecial 5 days ago 5 replies      
It seems absurd but I'm going to have to side with the state/library on this one. It can literally cost more to make a choice to use the cheaper unit than to just buy the big one.

"Some libraries need smaller routers. Ok. Which ones?" could easily run in the millions before any routers were purchased. Unfortunately, that's just the nature of government purchasing.

marcoperaza 4 days ago 0 replies      
Caveat Emptor. Cisco is out to make as much money as they can, they have no duty to save the government money. West Virginia's procurement process was irresponsible and wasteful and now they want to shift the blame to Cisco in order to cover their own incompetence. If you overpay for something, it's your fault.
Tichy 4 days ago 0 replies      
Startup Mountain camp anyone? This sounds like a great place to host a hacker convention now?
emperorcezar 4 days ago 0 replies      
I grew up in West Virginia. I also was pretty involved in the computer operation at my high school. The "head" of IT was a math teacher they suckered into doing all the work.

Anyhow. I remember when they decided they needed a domain server. What they eventually came back with was a two year old model HP tower server that ran over $4k. It was insane. They could have gotten something new for much much less, but all the explanation I could get was that they had a contract and had to buy the items listed in that contract.

There is a culture of corruption and it is prevalent in not only the public, but also the private sector.

Another story is when I was in a diner years later and heard my old social studies teacher asking for a bribe from someone to get a job in the coal mines. I felt pretty bad because I believe he got his money and thus his power from years before when I told him to buy Google and others stock.

js2 4 days ago 1 reply      
Meh, I'm much more upset by the mountain top removal going on in WV, clearly visible in the satellite picture of Clay, WV included in TFA.
lifeisstillgood 4 days ago 0 replies      
There is positive corruption and nevative corruption

Positive corruption does the right thing (build roads, install broadband into poor communities) but adds cost

Negative corruption distorts right thing so much it simply does not happen (communities never get proper triads or sewage because they are the wrong tribe)

The broadband is the thing - good. If you don't want government to overpay I suggest Cisco routers is the last thin to look at - start with military contracts

njx 4 days ago 0 replies      
This could have been executed by the process "Wired RFP". just look for the this term and you will see references where government RFPs are wired to specific vendor. In other sense, no other vendor may qualify to bid based on the RFP requirement.

For e.g RFP bidding/winning criteria is based on point system.

1. Price accounts for 25%
2. Referrals from similar orgs 40%
and so on

you see, when the price in the RFP accounts less then it is an indication that the RFP is wired to a specific vendor.

A small business who is just starting may or may not have 3 or more referrals from a public school or university.

In one of the RFP process I sat, the RFP had a typo where they had literally spelled out the name of a competitor company. I pointed out this in the pre-bidding call and the personnel acknowledged that it was a mistake.

Government RFP are a waste of time because it is the last step the government does in their purchasing process. They have already chosen the vendor and most of the time the vendor helps them write the RFP.

Fixing the RFP process may eliminate some of the overspending.

ripter 4 days ago 0 replies      
'The auditor's office sent off a fairly testy e-mail to Cisco noting that the 3945 routers were not appropriate for most West Virginia deployments"even according to Cisco's own literature. "I would appreciate an explanation as to why you believe the 3945 routers are not oversized and misconfigured for hundreds of locations," the auditor concluded, "and, thus, a significant over expenditure of millions of dollars for Cisco equipment."'

Did I miss some part where they contracted Cisco to visit every location and assess it's needs and build an order according to that?

If you order a bunch of 3945 routers then why is it Cisco's fault for selling you a bunch of 3945 routers?

EvanAnderson 5 days ago 0 replies      
I haven't something quite this egregious happen firsthand, but it fits the pattern for the interactions I've had when working for a "partner company" reselling big-name networking gear.
mgkimsal 4 days ago 0 replies      
Didn't read the entire post - is there some reason the state or local municipalities can't sell this stuff on ebay, get lower-powered hardware to match their needs, and pocket the diff for the locality's coffers?
bluedino 5 days ago 1 reply      
Remember the wasteful spending back in the UNIX workstation days - a Sun 10 in every administrator's office for e-mail, and nobody ever had the training to use the things?
ericcumbee 4 days ago 0 replies      
"did not request or require that the routers for the state's schools have internal dual power supplies. Education would not have made this requirement because unless a school has two power sources the feature of dual power supplies would have no use."

What if one power supply fails? I expect better from ars.

gritzko 4 days ago 0 replies      
Well, just another me-too story. When I was somewhat younger I had to "deploy" one Cisco product which was definitely a result of an "incentivized" sale. That sweet sweet setup involved login-password authorization (assisted by a Cisco router) where the user had to type in "public" and "1" as a password because... the enterprise actually had no end-user accounts and absolutely no possibility to introduce them...

As far as I understand, such an incentivized sale was a common practice. Once the management somehow achieved consensus (i.e. the right balance of risks, benefits and favors), engineers were left with making things appear OK.

I am inclined to think that Cisco made a strong bet on this kind of a business model at some point.

iamjason89 5 days ago 3 replies      
"The auditor began digging, speaking to many people in West Virginia state government who had been involved with the project. The Department of Education told him that it "did not request or require that the routers for the state's schools have internal dual power supplies. Education would not have made this requirement because unless a school has two power sources the feature of dual power supplies would have no use." A network engineer for the Department of Education confirmed that he had not requested such a feature."

Education would not have made this requirement because unless a school has two power sources the feature of dual power supplies would have no use.

Oh is that how redundant power supplies work? You need two power sources, eh?

chayesfss 5 days ago 2 replies      
a company like cisco or microsoft trying to rip off state/local governments? color me not shocked.
MertsA 4 days ago 1 reply      
Just nit picking but there are several places in the article that are incorrect such as

"The West Virginia legislature at peak times can have over 600 internal users and numerous guests accessing "multiple Web servers, up to eight simultaneous live audio webcasts, multiple SQL servers, and multiple Google search appliances located in the Legislature's server farms." Despite all this, the legislature doesn't even use a router but instead runs a cheaper Cisco switch... and it has never exceeded capacity."

It's pretty clear that not only does the author not know networking basics, his sources don't either.

hiddenfeatures 4 days ago 0 replies      
Maybe I should get myself checked, but is anyone else thinking about the big opportunity here?

You wouldn't need more than your average crow bar to get into this thing. I bet they don't have a decent alarm system (if any).

Seems like a relatively low-risk, high-reward situation to me.

joshlane4 5 days ago 1 reply      
this kind of nonsense is what people want to prevent the federal government from doing...bring on the sequester!
mich41 4 days ago 0 replies      
Reminds me of new EU members. Joining the EU was advertised as source of funds for development and catching-up with the West and now a benchmark of politicians' "performance" is how much funds are they able obtain for their electorate - the more is spent, the better.

In extreme cases one didn't even have to bribe officials to get bogus contracts because if the city didn't find a way to spend all the money it was offered, it would simply get less.

yaddayadda 4 days ago 0 replies      
"For those keeping score at home, this means that 75 $20,000 routers are depreciating in a state police warehouse somewhere in West Virginia." So we should be seeing 74 Cisco 3945 routers on eBay very soon. (My commission for this idea is 1 Cisco 3945 router.)
jgoney 4 days ago 0 replies      
Before I read the article, I was hoping for a feel-good piece about how someone hacked together a massive WiFi system using such a router to supply Internet to some isolated community in rural West Virginia. It didn't turn out to be exactly that.
yergi 4 days ago 0 replies      
This is so old that it was on the frontpage of Digg before Reddit was popular.
yason 4 days ago 0 replies      
Nothing is as expensive as free money.
g2bsocial 4 days ago 1 reply      
Burn in hell, CISCO, bunch of pricks.
How to build a news app that never goes down and costs you practically nothing npr.org
373 points by llambda  5 days ago   123 comments top 20
danso 5 days ago 3 replies      
I had the pleasure of working with NPR's data news chief, Brian Boyer, who taught me a lot about actual good software practices.

I agree with his preaching the power of flat-files. Not that flat-files should be used to do things that they inherently can't...but that too many projects (or hobby apps) don't consider them and then spend as much time figuring out how to keep their server from crashing. I find it pretty amazing that they have only one small EC2 instance for their news apps (this is separate from the NPR.org site overall) just to do cron jobs.

Flat files, of course, require good planning...not least of which involves an accurate gauging of how often an app's data needs to be refreshed. But I like that kind of planning and thinking more than I do the kind it takes to maintain a stable server.

willholloway 5 days ago 4 replies      
This is an excellent post. I used almost exactly the same system to build my app streamjoy.tv . Everyday streamJoy scours Netflix, iTunes and Amazon to find the availability of movies for streaming, rental and digital purchase.

I built it as a portfolio piece and haven't finished it because I've been doing consulting jobs, but if you want to watch a particular movie online without going the pirate route, it's the start of a legal alternative to the old sites like sidereel.

The tech behind it is the same as this article. Flask and jinja render a static html page for each of about 92,000 movies.

I use a flask app for the search functionality that accesses an elastic search database.

I used mongodb because it was incredibly easy to create a local cache of the JSON data I was getting from the apis I was accessing.

It all took a lot longer than I ever would have though to even get it to this point. There were a lot of little annoying issues with the various APIs I had to access, and the annoyance of parsing XML amongst other schelps I had to deal with.

I have only ever mentioned it on hacker news one other time and the last time my elastic search server crashed from the traffic. It is all running on a $5 a month digital ocean vps.

The flask/jinja static page creation is rock solid and would never fail if I pushed it to s3, right now my elastic search server is the bottle neck. I haven't taken the time to throw hardware at it or set up clustering.

All in all it's a pretty cool service in my opinion, I built it for myself because I love movies and spend a lot of time watching them online and made a decision to never pirate a content creators work again. Also the experience of netflix, amazon and itunes is orders of magnitude better than the old megavideo/bittorrent trouble of finding the real deal and not being inflicted with spammy ads with voiceover.

I really like the flask/jinja/bootstrap/javascript/mongodb/elastic search stack. I've learned a lot of tips and tricks by building streamJoy and if people want I would be happy to share them with the community.

I know this sounds like self promotion of my app but I haven't even taken the time to implement affiliate tracking for any service besides amazon. Consulting is serious and real money right now and that takes priority over this little side project I did.

nicpottier 5 days ago 1 reply      
A very pragmatic approach for serving tons of static content. S3 transfer costs are still pretty competitive, doubly so if you compare them to not just your own iron but the expertise on staff to maintain and scale it all. (unlikely you would ever match the S3 uptime even if you did)
andrewmunsell 5 days ago 2 replies      
It's interesting to see a site like NPR handle a site deploy like this. I've seen blog owners start to consider switching to a static website, but news sites are definitely a bit more difficult to maintain like this.

Personally, I use Jekyll on my own blog in a similar manner (http://andrewmunsell.com/).

< ShamelessPlug >

I also wrote a tutorial (http://www.andrewmunsell.com/tutorials/jekyll-by-example/) about using Jekyll, in case you want to try something similar to what NPR did, but with a different platform.

< /ShamelessPlug >

marknutter 5 days ago 2 replies      
Someone help me understand; the flat assets are hosted on S3 but how do http requests get resolved to the correct html file? Is it done with DNS settings?
SmileyKeith 5 days ago 2 replies      
Am I the only one who thinks NPR is awesome for having a Github profile with seemingly good and useful code on it?
mckoss 5 days ago 1 reply      
Is there still an issue with GZIP encoding S3-delivered static assets? From my reading, it looks like Amazon will not automatically convert assets to to GZIP encoding when the browser indicates support. Rather, you have to upload GZIPed files and manually configure the content encoding headers. This approach would be broken for browsers that don't support GZIPed files.
chadmaughan 5 days ago 0 replies      
This is beautiful. I love NPR.

I'm curious, what are the rules/requirements for initiating a new "NPR app"? An election app seems totally obvious, but what about other apps? Is it based on available data? Available funds? Pervasiveness of a certain story? An individual reporter's weight? (for example, if I was on the team and Nina Totenberg made an app request, I'd drop everything and do it for her - she's dreamy)

Also, how much lead time do you typically get with your apps? A few days, a few weeks, longer?

dryan77 5 days ago 0 replies      
We did a lot of this at the Obama campaign as well. Can't recommend it enough.
mati 4 days ago 0 replies      
And what about handling HTTP 500 errors? Although rare, they can still happen. And you cannot make the user's browser retry in such case (as you could do if you were making the request in your app). Amazon's Best Practices document http://aws.amazon.com/articles/1904 clearly states that that's what you should do:

500-series errors indicate that a request didn't succeed, but may be retried. Though infrequent, these errors are to be expected as part of normal interaction with the service and should be explicitly handled with an exponential backoff algorithm (ideally one that utilizes jitter).

However, I still think hosting on S3 is a great option. They are pretty reliable anyway.

clint 5 days ago 0 replies      
We did this a ton when I worked at Ars Technica. Flat files should definitely be one of the things in your toolbox you consider first before moving on to more complicate schemes!
LAMike 5 days ago 2 replies      
Can someone explain the concept of "flat files" to me and why people like to use it?
tantalor 5 days ago 3 replies      
> Compile app_config.py into app_config.js so our application configuration is also available in JavaScript

Terrifying! Why do you need to specify your configuration in code? I would think configuration as data is simpler.

nickmerwin 5 days ago 0 replies      
NPR.org itself has a great JSONP API that makes apps like the one in this article possible. Here's a site I put together that uses it and HTML5 audio for a very quick and minimal NPR listening experience (best viewed on iOS safari):


It's a Jekyll app mostly written in CoffeeScript, deployed to S3 with CloudFront CDN'ing.

Here's a lengthier introduction for anyone interested:

stcredzero 5 days ago 4 replies      
> There are three salient Boyerisms I've picked up in my month as an NP-Rapper that sum up these differences...On our team, these Boyerisms aren't just preached " they're practiced and implemented in code.

Summary: Go ahead and toss off an unusual term or slang, but don't expect it to actually inform readers if they can't Google it. If you aren't trying to inform readers, exactly what are you trying to do?

I found the unexplained use of the word "Boyerism" in this article to be confusing and unprofessional. I have nothing against the use of slang, or the expectation that readers will need to Google terms: this is the reality of our culture in the age of the Internet and excellent search. However, the casual and unexplained use of a private group's inside joke reveals a lack of awareness of how search interacts with culture. Is it a deliberate attempt to confuse and snub the larger audience, or is in unintentional?

Tactic 5 days ago 0 replies      
I ran a site (stomped.com) in the late '90s and we did this. We were serving up news items to millions of unique visitors a month and hitting the DB on each page hit. Rather than try to implement a bunch of caching methods we went with generated HTML files. Given how often content changed (a few times an hour at most) it seemed a waste to generate 10s of thousands of db/cache hits when things rarely changed. Simple. Stable.
huhsamovar 5 days ago 2 replies      
So, how does it not go down if you have to ship to EC2?
codebeard 5 days ago 0 replies      
The hell? I posted this two days ago and it got no attention!

That particular NPR blog always has greatly insightful posts.

zv 5 days ago 2 replies      
"Servers are for chumps". Well, using EC2 still counts as using servers.
EGreg 5 days ago 1 reply      
While I agree with many of the sentiments expressed in the article, I think "never goes down" and "costs you practically nothing" only seems true while nothing bad happens.

When a hard drive crashes or a truck runs into your data center (here's looking at you, Rackspace) or you need failover for any reason, that's when you wish you had virtualized in more than one machine.

Want something that's always available and never crashes? Look at freenet. Distributed computing model. If we can failover the DNS, you can have the same thing on the web.

A new Light Table experience chris-granger.com
363 points by falava  2 days ago   142 comments top 48
pixelbath 2 days ago 6 replies      
This is a very pretty editor. That said, I have no freaking idea what I'm supposed to do. I've been messing around with it for around 15 minutes now, and I still don't understand it.

I added a PHP website folder and got no code hinting or anything else beyond "here is the match for your parenthesis" for either PHP or Javascript. This also resulted in my "navigate" tab being filled with SVN meta-files. I am quite confused.

Looking around on the site and some of the comments here, it appears you're using Clojure. Does this IDE only support Clojure?

Raphael_Amiard 2 days ago 1 reply      
It is absolutely gorgeous, but it is also looking a lot more like a traditional text editor from what i can gather.

I'll download and play with it a bit anyway, to see what i get from it.

manaskarekar 2 days ago 1 reply      
Apart from the other obvious praises, I just want to thank you for making something so beautiful with Clojure as a first class citizen.
Sandman 2 days ago 0 replies      
Every time a new version of LT playground gets released I feel like a kid in a candy store, looking for all the cool new stuff Chris and the rest of the team put in :). Awesome work, and it just keeps getting better. To be honest, since there weren't any updates in a while, I started having doubts about whether they'll be able to deliver, but I'm glad to see that the project is alive and well.

Judging by the comments I see that there's a lot of people who haven't yet heard of Light Table, which surprised me a bit because posts about LT frequently hit the front page of HN. If you're one of those people, you should take a look at their kickstarter page: http://www.kickstarter.com/projects/306316578/light-table

Finally, while there's a lot of people bemoaning the fact that some more popular languages (than Clojure) aren't supported out of the box, I, for one, am glad that somebody's developing such an awesome tool with Clojure in mind.

ollysb 2 days ago 2 replies      
I'd absolutely love to see ruby in Light Table, how are plans looking for this? If there was a kickstarter for adding ruby I'd pony up in a flash. I realise manpower is probably going to be the main issue though...
scottjad 2 days ago 3 replies      
How are you highlighting the matching characters in the fuzzy search results?


It looks like the same method I'm using in emacs/ido, which is to turn "la/clj" into


I've found this technique gives inferior results to whatever SublimeText is doing. For example, in your hits with "langs", such as "lt/objs/langs/js.cljs" I think "lt/objs/langs/js.cljs" is more intuitive than the result you give of "lt/objs/langs/js.cljs". (Sorry for the hard to read italics)

For another example, on a search of "completions" I think your technique will highlight "hacks-completions" as "hacks-completions" instead of "hacks-completions".

Does anyone know if there's an easy way to modify the regex (not LightTable) and get the user-friendly results of Sublime Text?

podperson 2 days ago 2 replies      
What going back over the old demo and looking at this post did was remind me of how nice jsfiddle is when it isn't insanely slow, which then led me to wonder how hard it would be to create something like jsfiddle that lived on top of github would be, or something like jsfiddle that lived inside my favorite editor, or just in a static html page on my desktop.
andreyf 2 days ago 1 reply      
Noooo! So many wasted pixels at the top! Why!? It was so much better before!

Aside from that: neat! :)

pjbrunet 2 days ago 0 replies      
Would be nice if font size changed by control+scrolling mouse wheel, most code editors do that. I can't imagine really needing (or wanting) to evaluate things in realtime (like the videos demonstrate) unless I was writing cryptic, mind-numbing algorithms all day every day. I like the idea in one of your videos, every function can have its own little window, but I wouldn't want that to create new files for me automatically in the background and it would have to be more useful than a straightforward "split window" editor function, which is already something I rarely use. The colors are cool but not as cool as my hacked Crunchbang+Geany colors. Maybe one day Light Table will be like a more graphical, user-friendly Emacs? I don't know. The videos are really eye-catching but realistically I can't imagine why I'd use Light Table. I realize there's already a lot of interest in this, but I would like to see more videos showing how this is actually more useful than Gedit or whatever.
sudowork 2 days ago 2 replies      
Small bug I found: When I change the editor theme to something other than `default`, the next time I start up the editor, the theme isn't loaded. Instead, I just get some light grey text on a dark grey background.

UX Annoyance: When clicking on an exception, there's no visual indication that it's been clicked on. I found that Shift+Tabbing brings you back to the editor pane (other than using the mouse).

A couple more things that could just be me being stupid. When I try to eval using Ctrl+Shift+Enter, nothing happens. Instead, I have to eval each line one-by-one. I tried creating a new key binding, but couldn't figure out how to delimit my keys to allow modifiers. I also can't figure out how to pop up documentation or data flow as demo'd in the original light table (this is my first time using any version of light table). I tried `(doc <foo>)`, but it just evaluates to `nil`.

Anyways, hope these comments might be useful in terms of my user experience as a first time user.

paulhodge 2 days ago 0 replies      
I love these updates, the tool is looking more awesome every day.

I'm wondering if there's a roadmap for Light Table's release, specifically if there's a point where the code will be available? I have a programming language in progress and I'm interested in potentially hacking LT to support the language. It seems like it would be a good fit.

abecedarius 2 days ago 1 reply      
So how do you see these inline results? I'm told cmd-enter or cmd-shift-enter will evaluate code; on Windows 7, for me, none of ctrl-enter, alt-enter, or windows-enter seem to do anything. ctrl-shift-enter in a .js file creates a checkmark next to my first line, 2+3; (though not the lines I'd written after it). Trying to create a .clj or .cljs file, by 'Create a new file' and then 'Save file', it remains as 'untitled', and ctrl-shift-enter doesn't seem to do anything.

Anyone else on Windows at the moment with tips?

(The 'bindings' command lists things like Cmd Enter; since it lists Ctrl for other keybindings, I'm guessing that's meant to mean Alt.)

fnordfnordfnord 1 day ago 1 reply      
If you're going to make it vi-like, please put some effort into introducing the modal-concept, and lots of help for new users. There are reasons that many people avoid vi. You may not think that you need to make it a teaching tool, but everything else about lighttable makes it well-suited as a teaching tool.
btipling 2 days ago 3 replies      
You gotta be kidding on the sideways text as an important part of the UI. Also adding the vim integration is a waste of time as long as you don't have buffers, registers, ranges and can't parse my .vimrc nor use my modules you might as well not do it.
DigitalTurk 2 days ago 1 reply      
It just so happens that I started playing with Clojure yesterday! I didn't quite manage to get anything to work in LT, however.

E.g. if I do Cmd+Enter on a definition, I get this:

  clojure.lang.Compiler$CompilerException: java.lang.RuntimeException: Unable to
resolve symbol: defn in this context, compiling:…

If I click 'Make current editor and instarepl' I get errors like this:

  clojure.lang.Compiler$CompilerException: java.lang.RuntimeException: Unable to
resolve symbol: subs in this context, compiling:(NO_SOURCE_PATH:9)

It's all rather confusing. Maybe there's a manual somewhere I should read, but I couldn't find it.

amckenna 2 days ago 1 reply      
I know python support is planned, but will it be integrated alpha/beta or will we have to wait until after the 1.0 release?
Macsenour 2 days ago 1 reply      
As a game dev guy, I'm looking at the two new Open game platforms, Ouya and GameStick, and thinking that LT might be a great way to get kids into coding.

Getting kids to code games is so much easier than any other project, even if the game is extremely simple.

Anyone care to comment?

eaxbin 2 days ago 1 reply      
I'm getting Access Denied when trying to download the OS X version. Other versions are working fine.
bbq 2 days ago 0 replies      
This looks great! It's getting more and more usable.

It would be nice if, when a computation is running in the instarepl, the computation indicator would display inline e.g. with the previous result - perhaps graying the result out?

How would I go about implementing this myself? Or is LightTable reflection not yet publicly available?

edoloughlin 2 days ago 0 replies      
Currently downloading at 9-10KB/s. Anyone seeding a torrent?
glesperance 2 days ago 0 replies      
What is the project direction in relation to complex JS apps?

i.e.: How do you guys expect the instarepl idea to be used in apps made of serveral node.js modules/libs or several files meant to be loaded together via RequireJS ?

fdb 2 days ago 1 reply      
There's something weird going on when using the trackpad on OS X. My trackpad is set to "natural scrolling", but if I scroll really fast the editor seems to scroll in the other direction.
cheald 2 days ago 0 replies      
I've tried to add a workspace directory from a Samba mount, and it's been stuck for about 10 minutes now.
programnature 2 days ago 0 replies      
Congrats, the improvements are quality.

Would love to switch to light table, but I need paredit. Can't switch without paredit.

agentultra 2 days ago 0 replies      
Nice work.

Seems to me like it's becoming emacs (which is a good thing, you should poach more ideas from it).

Meai 2 days ago 2 replies      
You should add mousewheel scrolling of tabs, I'd like that. Also a white theme, because black themes look sort of sketchy at work.
truncate 2 days ago 0 replies      
It still depends upon on libudev.so.0. Hence can't use it on ArchLinux (unless I fool it by linking it with latest so). :(
pjmlp 2 days ago 1 reply      
Eventually the editors of Smalltalk and Lisp environments of the early days will be rediscovered by youth generations it seems.
companyhen 2 days ago 0 replies      
I'm a web designer (PSD -> WordPress) and I started learning programming around the time Light Table was funded on KickStarter. It's been nice to see the project grow with my programming skills. Although I still don't feel like a decent programmer, it's nice to see what my small $15 investment has helped create. :)
octix 2 days ago 2 replies      
Has anyone started using LT? Is it productive? Should java devs even bother with this? Thank you.
rsamvit 2 days ago 0 replies      
Beautiful Editor.
I'd switch to it completely if it supported a more complete vim emulation -- for now I use it as a repl
sc0rb 1 day ago 0 replies      
I can't wait for this to support Java so I can at least have some beautiful tools to get me through the soul sucking days of Spring development :-)
marizmelo 2 days ago 0 replies      
Small drag and drop problem.... On OSX I can drag the divisor for files/texteditor OVER the option of tabs (left options)... if I drop the editor there I cannot resize the view anymore and have to restart the program.
auggierose 2 days ago 3 replies      
Does anyone know what Light Table is programmed in? It seems to be cross platform, how does it achieve that? I assume some kind of mix between Clojure and using browser technology as a UI, but does anyone know specifics?
karlokeeffe 2 days ago 3 replies      
I get the error:

"LightTable.app" is damaged and can't be opened.

I'm running OSX 10.8.2.

Anyone else having the same problem?

Are there any dependancies I need to have installed before running the app?

devy 2 days ago 0 replies      
How do I open a new client like what Chris demo'd in the video to eval JavaScript & CSS?
pjbrunet 2 days ago 1 reply      
I downloaded Linux 64 and it doesn't work in Debian. No readme either?
dpick 2 days ago 1 reply      
Stack Size Exceeded when trying to open a ~3500 line clojure app :(.
dimitris99 1 day ago 0 replies      
Looks really nice. I want to use it. I also like vim.

BUT could do with some more documentation.

almost_usual 2 days ago 0 replies      
Awesome, really nice to have such great Clojure support
null_pointer 2 days ago 0 replies      
I've been playing with this editor, except it seems Syntax Highlighting doesn't work (Linux x64). Which is kind of a killing point for me. Does anybody know of a forum / mailing list I can get on to figure out configuration and such? I have heard so much about this IDE, but it kills me that it doesn't seem to be working properly.

EDIT: Restarting twice seemed to fix the problem.

shuma 2 days ago 1 reply      
Which languages does it support?
baby 2 days ago 0 replies      
More than 300k raised? Isn't that way too much? How much is a developer getting paid in the valley?
billyvg 2 days ago 1 reply      
How do I go into vim mode?
arrakeen 2 days ago 0 replies      
any reason in particular that this doesn't support osx10.6?
ttty 2 days ago 0 replies      
how to open those cells like they do in the video?
tapichu 2 days ago 0 replies      
great, happy to see the vim mode!
zenbowman 2 days ago 0 replies      
Beautiful stuff
The Extraordinary Science of Addictive Junk Food nytimes.com
353 points by danso  5 days ago   216 comments top 25
ericabiz 5 days ago 12 replies      
It amazes me that this article still pushes the agenda that "fat makes us fat." If there's one thing that hasn't proven out at all, it's that fat makes us fat!

The NY Times has even run other articles saying as much: http://www.nytimes.com/2012/07/01/opinion/sunday/what-really... by Gary Taubes, whose book "Why We Get Fat" is a must-read.)

The problem with "low-fat" processed food in particular is that the fat is often replaced with sugar to add taste, but sugars and other high-carb grains are more problematic than fat consumption. Hence skyrocketing obesity.

Eating a low-carb diet and easing off grains (particularly "white" grains) and sugars will help you lose weight. From the article I linked above: "On the very low-carbohydrate diet, Dr. Ludwig's subjects expended 300 more calories a day than they did on the low-fat diet and 150 calories more than on the low-glycemic-index diet. As Dr. Ludwig explained, when the subjects were eating low-fat diets, they'd have to add an hour of moderate-intensity physical activity each day to expend as much energy as they would effortlessly on the very-low-carb diet. And this while consuming the same amount of calories."

I can also speak from personal experience: I went gluten-free after being diagnosed with gluten intolerance in 2009. In three weeks, I effortlessly shed 12 pounds--12 pounds that had refused to come off previously no matter how much exercise I was doing or how religiously I tracked my caloric intake. I wasn't doing gluten-free to lose weight; I got dragged into it by a diagnosis, so this was a wholly unexpected yet awesome side benefit.

I've since noticed that if I slide back into eating too many carbs and sugars (even gluten-free ones), I start to gain weight again, and I feel groggy and disoriented. As a side effect of this diet^Wlifestyle change, I've also completely been able to drop caffeine consumption--something I never expected. Put simply, I didn't feel like I had been hit by a train when I woke up. Caffeine and energy drink consumption has spiked right along with "low-fat", high-carb diets. Something to consider.

crazygringo 5 days ago 7 replies      
It's so funny how, over the past couple of years, good-tasting food is now a "conspiracy".

When a Michelin chef meticulously constructs a dish to give you pleasure, he's a creative genius whose dedication to his art is applauded.

But when the people behind Snickers do it to give you pleasure, they're nefarious conspirators trying to manipulate you and keep you addicted.

Yes, people who make food are trying to make it taste better, minimize their own costs, and keep you coming back. Why is this suddenly considered "news"?

(I mean, the article is plenty interesting, it's just the sensationalism of calling it "food engineering", "addiction", etc. that bothers me.)

drostie 5 days ago 2 replies      
I do occasionally enjoy pointing out to people that the soda/pop/cola they've bought is a drink designed to disappear. The water is carbonated, so that you do not savour the drink but immediately try to gulp it down. There is phosphoric acid and a surprising amount of sodium, which both make you salivate, so that you briefly feel that you're refreshed -- and then your saliva is depleted so that your mouth goes dry. The other ingredients -- sugar, flavorings, and caffeine -- are essentially the same mixture which makes coffee so popular. The huge difference from coffee is that cola's design allows you to not merely sip at it as part of your morning routine, but gulp it down while you're not even paying attention, then reach thirstily for... presumably another cola.
kibwen 5 days ago 2 replies      
"The snack that Dunn was proposing to sell: carrots. Plain, fresh carrots. No added sugar. No creamy sauce or dips. No salt. Just baby carrots, washed, bagged, then sold into the deadly dull produce aisle."

Ha, I've actually been doing this since I was a teenager. It's really fantastic for managing junk food cravings, which arise not because I'm hungry, but because I just like to have something to chew on while I work (especially while programming). A one-pound bag lasts me about three hours and is more-or-less guilt-free.

127001brewer 5 days ago 6 replies      
... "As a culture, we've become upset by the tobacco companies advertising to children, but we sit idly by while the food companies do the very same thing. ..."

Why aren't parents more responsible for their children's health?

As a parent myself, I know how damn hard it is for kids to eat anything consistently, especially "healthy" foods, such as fresh fruits and vegetables. And our kids have snacks in moderation.

It seems to me that if parents were more "responsible", which is a horribly generalized term, then the food executives wouldn't have private meetings to discuss how to deal with obesity - their products would have adapted to the healthy market.

Parenting is hard. Being a "responsible" parent is harder. Tough shit.

dreamdu5t 5 days ago 3 replies      
People want to blame others for their problems. Whether it's junk food, drugs, joblessness, etc. The fact is you can't get fat if you don't consume the calories. Everyone I know who has restricted calories has lost weight.

I was 210, and lost 70 lbs by restricting my caloric intake (by eating vegan). I ate sugar during this time. I ate carbs.

Every single person I know who's overweight simply eats too much. They also are the first to tell you that its not as simple as eating too much. It is.

Sumaso 5 days ago 2 replies      
Out of all of the articles that I've read regarding weight loss, none seem to refute that: lowering calorie intake, and some moderate exercise will result in healthier body.

If you want to reach a certain aesthetic then that's fine, but as far as I know the "obesity problem" is more about a persons health and well being, not being aesthetically pleasing.

So we can sit here and point fingers at what diet is best or whether or not we should cut fats out of our diet, but at the end of the day the true issue is simply people do not have the will to exercise, and they either do not have funds or the will to eat a healthy amount of calories.

JoeAltmaier 5 days ago 2 replies      
Silly: spoonfeeding junk-food CEOs facts about obesity, in the vain hope they'll take their share of responsibility. What, did anybody imagine they didn't know they sell the food equivalent of crack to our kids? They're not idiots; they make money doing this, and are responsible to shareholders.
networked 5 days ago 0 replies      
When designed in the way described in the article junk food is pretty much a superstimulus. Those are problematic not just among food: http://lesswrong.com/lw/h3/superstimuli_and_the_collapse_of_....
ams6110 5 days ago 0 replies      
Where is any mention of the disastrous consequences of the USDA "food pyramid" which has been drummed into children at school for decades, perfectly tracking the obesity "epidemic", and which promotes an obesity-causing high-carb, low fat diet.
acheron 5 days ago 1 reply      
Company finds out what people want and offers to sell it to them: News at 11!

Seriously, this hand-wringing is ridiculous. Excellent article here: http://reason.com/archives/2013/02/25/frito-lay-wont-make-yo...

lnanek2 5 days ago 1 reply      
small but crucial move: the industry should use the expertise of scientists " its own and others " to gain a deeper understanding of what was driving Americans to overeat.

LMAO, they probably employ dozens of scientists trying to figure how to get people to eat more. Could the speaker have been any more clueless? He would have been better off pushing some solution that had been user tested not to hurt sales. E.g. use Stevia instead of sugar, cost goes up 5%, but sales rise to match as you capture some dieters you wouldn't otherwise or something. Instead he told them to research getting people to want less of their product.

forgotAgain 5 days ago 1 reply      
rickdale 5 days ago 0 replies      
1 second on the lips, for a lifetime on the hips.

Doing the slow carb diet for over a year now. Lost over 50lbs. With the 1 day to cheat rule, I definitely ended up eating more candy, sweets, cake, chocolate, etc. than I would have at any other point in my life. Crazy as it seems, I developed a sweet tooth while on this diet! But it just goes to show, a calorie isn't a calorie because our body has functions and reacts differently at different times.

cabalamat 5 days ago 0 replies      
pg wrote on this some time ago: http://www.paulgraham.com/addiction.html
damian2000 4 days ago 0 replies      
Soft drinks are one of the biggest offenders. Kids never fail to be amazed that there are the equivalent of 10 teaspoons of sugar in one can of coke.
angelocoppola 5 days ago 0 replies      
Here's an article I wrote about this that contains an embedded video of 60 Minutes' "The Flavorists" which is closely related. http://www.humansarenotbroken.com/the-extraordinary-manipula...
mhb 5 days ago 0 replies      
Mediterranean Diet Can Cut Heart Disease, Study Finds:


larrywright 5 days ago 0 replies      
I read this last week when it was posted the first time (or maybe linked to on Twitter by pg). It reminded me of the details we heard about the cigarette manufacturers in the 80s and 90s. The junk food makers are operating in much the same manner.
SonicSoul 5 days ago 0 replies      
love articles on this subject.

somewhat related there is a great lecture about Sugar (sucrose vs fructose vs ethanol) and some history on HFCS in America http://www.youtube.com/watch?v=dBnniua6-oM

vevillas 5 days ago 0 replies      
If restrict the tone of dicussion to calories, fat, carbs and proteins, it is just not going to work out.

If something has been learned in the last 10 years is that whole foods matter and that you cannot reduce them to their macronutrient profile.
Two foods with identical profile yield totally different results.I recommend to read Willet book on eat, drink and be healthy.

EA 5 days ago 0 replies      
The food that is most readily available to us is the food that is most profitable.
kkuduk 5 days ago 0 replies      
but NYT, why some stupid equation on the top? http://commandcenter.blogspot.com/2010/08/know-your-science....
camkego 5 days ago 0 replies      
Hacking the consumer.
borgchick 5 days ago 0 replies      
you know the first thing I did upon loading this page is to go buy a bag of Doritos... thanks HN! It was very tasty!
Why Python, Ruby, and Javascript are Slow speakerdeck.com
346 points by jasonostrander  1 day ago   186 comments top 34
DannyBee 1 day ago 6 replies      
Speaking as a compiler guy, and having a hand in a few successful commercial JITs: The only reason he thinks they aren't slow is because they haven't yet reached the limits of making the JIT faster vs the program faster.
Yes, it's true that the languages are not slow in the sense of being able to take care of most situations through better optimization strategies.
As a compiler author, one can do things like profile types/trace/whatever, and deoptimize if you get it wrong. You can do a lot. You can recognize idioms, use different representations behind people's back, etc.

But all those things take time that is not spent running your program. On average, you can do pretty well. But it's still overhead. As you get farther along in your JIT, optimization algorithms get trickier and trickier, your heuristics, more complex.
You will eventually hit the wall, and need to spend more time doing JIT'ing than doing real work to make optimizations to some code.
This happens to every single JIT, of course.
This is why they try to figure out which code to optimize.
But even then, you may find there is too much of it.

Because of this, the languages are slower, it's just the overhead of better JIT algorithms, not slower code. In practice, you hope that you can optimize enough code well enough that nobody cares, because the ruby code takes 8ms, and the C code takes 5ms.

For example: Almost all of the allocations and copying can be optimized, but depending on the language, the algorithms to figure out what you can do safely may be N^3.

Also, PyPy is still pretty young in its life cycle (in this iteration of PyPy:P) for folks to say that they can make stuff much faster if they only had a few things.
It really needs a very large set of production apps being rin by a very large set of folks for quite a while to see where the real bottlenecks still are.
Past a certain point, you run out of optimization algorithm bullets. The way compilers get the last 20% is by tuning the algorithms for 10 years.

Of course, i'm not trying to slag on PyPy, I think they've done an amazing job of persevering through multiple rewrites to get somewhere that seems to be quite good now. I just am a little wary of a fairly young JIT saying that all big performance problems fall into a few categories.

pcwalton 1 day ago 3 replies      
Related to this is the importance of deforestation. Some good links:

* http://en.wikipedia.org/wiki/Deforestation_%28computer_scien...

* http://www.haskell.org/haskellwiki/Short_cut_fusion

Deforestation is basically eliminating intermediate data structures, which is similar to what the "int(s.split("-", 1)[1])" versus "atoi(strchr(s, '-') + 1)" slides are about. If you consider strings as just lists of characters, then it's basically a deforestation problem: the goal is to eliminate all the intermediate lists of lists that are constructed. (It's something of a peculiar case though, because in order to transform into the C code you need to not only observe that indexing an rvalue via [1] and throwing the rest away means that the list doesn't have to be constructed at all, but you also need to allow strings to share underlying buffer space"the latter optimization isn't deforestation per se.)

I don't know if there's been much effort into deforestation optimizations for dynamic languages, but perhaps this is an area that compilers and research should be focusing on more.

On another minor note, I do think that the deck is a little too quick to dismiss garbage collection as an irrelevant problem. For most server apps I'm totally willing to believe that GC doesn't matter, but for interactive apps on the client (think touch-sensitive mobile apps and games) where you have to render each frame in under 16 ms, unpredictable latency starts to matter a lot.

irahul 14 hours ago 0 replies      
Mike Pall of luajit fame has an interesting take on it.



While I agree with the first part ("excuses"), the "hard" things mentioned in the second part are a) not that hard and b) solved issues (just not in PyPy).

Hash tables: Both v8 and LuaJIT manage to specialize hash table lookups and bring them to similar performance as C structs (1). Interestingly, with very different approaches. So there's little reason NOT to use objects, dictionaries, tables, maps or whatever it's called in your favorite language.

(1) If you really, really care about the last 10% or direct interoperability with C, LuaJIT offers native C structs via its FFI. And PyPy has inherited the FFI design, so they should be able to get the same performance someday. I'm sure v8 has something to offer for that, too.

Allocations: LuaJIT has allocation sinking, which is able to eliminate the mentioned temporary allocations. Incidentally, the link shows how that's done for a x,y,z point class! And it works the same for ALL cases: arrays {1,2,3} (on top of a generic table), hash tables {x=1,y=2,z=3} or FFI C structs.

String handling: Same as above -- a buffer is just a temporary allocation and can be sunk, too. Provided the stores (copies) are eliminated first. The extracted parts can be forwarded to the integer conversion from the original string. Then all copies and references are dead and the allocation itself can be eliminated. LuaJIT will get all of that string handling extravaganza with the v2.1 branch -- parts of the new buffer handling are already in the git repo. I'm sure the v8 guys have something up their sleeves, too.

I/O read buffer: Same reasoning. The read creates a temporary buffer which is lazily interned to a string, ditto for the lstrip. The interning is sunk, the copies are sunk, the buffer is sunk (the innermost buffer is reused). This turns it into something very similar to the C code.

Pre-sizing aggregates: The size info can be backpropagated to the aggreagate creation from scalar evolution analysis. SCEV is already in LuaJIT (for ABC elimination). I ditched the experimental backprop algorithm for 2.0, since I had to get the release out. Will be resurrected in 2.1.

Missing APIs: All of the above examples show you don't really need to define new APIs to get the desired performance. Yes, there's a case for when you need low-level data structures -- and that's why higher-level languages should have a good FFI. I don't think you need to burden the language itself with these issues.

Heuristics: Well, that's what those compiler textbooks don't tell you: VMs and compilers are 90% heuristics. Better deal with it rather than fight it.

tl;dr: The reason why X is slow, is because X's implementation is slow, unoptimized or untuned. Language design just influences how hard it is to make up for it. There are no excuses.


Also interesting is his research on allocation sinking:


cschmidt 1 day ago 1 reply      
A nice talk. The punchline for me was:

    Things that take time
•Hash table lookups

Interestingly, that's exactly how you write fast C++ code. His point is that languages like Python lack good API's for preallocating memory.

kingkilr 1 day ago 1 reply      
Author/speaker here:

I don't have time to read all the comments now (thanks for all the interest though!). I just want to say I think when the video comes out it'll answer a lot of questions people are having.

njharman 1 day ago 5 replies      
Meh, MEH.

I'm almost never waiting on my python code. I'm waiting on network or disk or database or joe to check in his changes or etc.

I'm sure there are people who do wait. But that's why numpy, c extensions, all the pypy, psycho, and similar things exist.

Python and more broadly "scripting" languages are for speed of development. Something else can take on speed of execution faster than 90% of people need it to be.

defen 1 day ago 1 reply      
Back when I wanted to investigate the numeric performance of v8 I wrote a Runge-Kutta integrator + Lorenz attractor in C and in JavaScript as a simple-but-not-entirely-trivial benchmark. I was actually pretty impressed with how fast the v8 version was. On the downside, it's fairly non-idiomatic js and not that much nicer to look at than the C. Doing a million steps on my machine takes 0.65 seconds in node.js v0.8.4, 0.41 seconds in C compiled with gcc -O0, and 0.13 seconds with gcc -O3. Here is the code if anyone is interested. Note that it's not commented, not thread-safe, and doesn't free memory, so use at your own risk :)


    gcc strange.c rk4.c; ./a.out

node strange.js

moreati 1 day ago 1 reply      
Great presentation, thank you for making me aware of an aspect of Python performance. One slide struck me as odd - the "basically pythonic" squares() function. I understand it's a chosen example to illustrate a point, I just hope people aren't writing loops like that. You inspired me to measure it

    $ cat squares.py
def squares_append(n):
sq = []
for i in xrange(n):
return sq

def squares_comprehension(n):
return [i*i for i in xrange(n)]
$ PYTHONPATH=. python -m timeit -s "from squares import squares_append" "squares_append(1000)"
10000 loops, best of 3: 148 usec per loop
$ PYTHONPATH=. python -m timeit -s "from squares import squares_comprehension" "squares_comprehension(1000)"
10000 loops, best of 3: 74.1 usec per loop
$ PYTHONPATH=. pypy -m timeit -s "from squares import squares_append" "squares_append(1000)"
10000 loops, best of 3: 46.9 usec per loop
$ PYTHONPATH=. pypy -m timeit -s "from squares import squares_comprehension" "squares_comprehension(1000)"
100000 loops, best of 3: 8.67 usec per loop

I'm curious to know how many allocations/copies a list comprehension saves in CPython/PyPy. However I wouldn't begin to know how to measure it.

Zak 1 day ago 1 reply      
The creators of Common Lisp knew what Alex is talking about. Lisp is, of course just as dynamic as Ruby, Python or Javascript, but it exposes lower-level details about data structures and memory allocation iff the programmer wants them.

Features that come to mind include preallocated vectors (fixed-size or growable), non-consing versions of the standard list functions and the ability to bang on most any piece of data in place. There are fairly few situations in which a CL program can't come within a factor of 2 or 3 of the performance of C.

wheaties 1 day ago 0 replies      
Great bit of slides. Straight and to the point. If you've ever ventured under the hood of Python you'd see this in the code. If you've ever had to optimize the bejeesus out of code in C++ or C, you'd know exactly the kinds of things he's talking about.
riobard 1 day ago 0 replies      
Completely agree. APIs are so important for many optimizations to pull off.

I'd really like to use a lot more buffer()/memoryview() objects in Python. Unfortunately many APIs (e.g. sockets) won't work well with them (at least in Python 2.x. Not sure about 3.x).

So we ended up with tons of unnecessary allocation and copying all over the place. So sad.

CJefferson 1 day ago 2 replies      
One main thought on this topic -- languages like Haskell and lisp also have very poor support for direct memory control, but tend to be viewed (perhaps untruthfully?) as much closer in performance to C than Python/Ruby.
revelation 1 day ago 0 replies      
Looking at CPython and the bytecode it uses, it's not very hard to see why it would be slow. It's basically designed as a reference implementation, with only very tame optimizations.
dicroce 1 day ago 3 replies      
As a C/C++ programmer I find these slides kind of amusing... These languages are popular because they make things simpler, and his suggestions may very well get a nicely jit'd language on par with C, but I suspect you'll then have the same problems C does (complexity).
meunier 1 day ago 1 reply      
Someone actually posting notes with slides! It's a miracle!
estavaro 1 day ago 0 replies      
My own piece of feedback based on my experience. The slides were good. But like others, JIT is not all rosy. In V8 and Dart and .NET, code gets compiled to native code as soon as possible. I think that's the best case scenario in general. You then don't have to guess as much.

The author didn't mention method dispatching. I think it's an issue for many languages. In Dart, they tried to optimize it by the specification by mostly eliminating the need to change methods at runtime. In Ruby I watched a video by one of the core Ruby developers and he said that in Ruby method dispatching can be very complicated requiring up to 20 steps to resolve them.

As important as getting the best performance out of programs is to get the programs created in the first place. That's why I'm against shying away from larger codebases. I'm in favor of OO programming exactly because I think getting things done comes first, even if that could complicate the implementation of the toolset. And OO is all about layers of abstractions that bring more performance costs with them.

That said, I absolutely abhor type annotations. They make code hideous and decrease the opportunities for experimentations. Instead of reading a + b = c algorithms, you may need to parse A a + B b = C c source code.

In Dart we have Optional Types. But the core developers are fond of type annotations, so most samples they post come with them. I take relief in being able to omit type annotations while experimenting, researching and ultimately prototyping. Although in a way I feel like a rebel in the community for this disregard. Thankfully there is this chance to share a community with them.

Reading the part that you don't like adding heuristics to help programs to go faster reminded of adding types to them even if they are mostly disregarded as in Dart.

Then again, not all "dynamic languages" are the same. Some are truly dynamic with eval and runtime method changes. Others, not so much. Sometimes the tradeoffs allow for other kinds of gains that could come into play like when deploying. So there is a lot more to it than just getting the algorithms correct.

oscargrouch 8 hours ago 1 reply      
Its time to face it:

People start to create computer languages without carrying too much about the target processor opcodes (because in that time processor were just getting faster with time) and focus more on programmer convenience, and wild beasts like python and ruby were born..

C is fast because it was created with processor awareness in mind.. pretty simple...

these days kids are all about trying to create more and more crappy convenient sintax languages.. and they get worry when the languages dont scale? for what computer they design the language? from venus ?

nobody should be doing any serious software in python or ruby.. is such a waste of talent .. use it for education.. for fun.. or for the things they are best.. wich is not in the system/plumbing side of things

csense 1 day ago 0 replies      
The example he gives for strings could be optimized to near the efficiency of the C version by a sufficiently smart compiler:

    int(s.split("-", 1)[1])

If the JIT knows that s is the builtin string type and the split() method has not been overridden [1], it can speed this up by using "pseudo-strings," where a pseudo-string is an index and length into another string. This would require only O(1) time and space.

Garbage-collecting pseudo-strings would be an interesting exercise, but I'm sure it's a solvable problem [2] [3].

[1] If the preconditions for your optimization don't hold, you can always fall back to interpreting it. As noted by the speaker, this sort of logic is already a critical part of many JIT's including Pypy.

[2] The problem is actually GC'ing the parent. When the parent string is gc'ed, you have to compact the orphan strings to reclaim the remaining space; otherwise it'll be possible to write user code that uses a small finite amount of memory in CPython but has an unbounded memory leak in your compiler.

[3] You can avoid the trickiness in [2] if the parent string can be proven to outlive its children, which is the case in this example. You could probably optimize a lot of real-world code, and have an easier time implementing the compiler, if you only used pseudo-strings when they could be proven to be shorter-lived than the parent. As a bonus, this partial GC would build some infrastructure that could be recycled in a general implementation.

cheald 1 day ago 4 replies      
Kind of a poorly-named deck. It's really about why programs use features of these languages that end up causing poor performance relative to C, rather than why the individual VMs themselves are slow. It's no surprise that trading the byte-precision of C for the convenience of a garbage collector and heap-allocated data structures results in a performance decrease.

Dynamically-typed languages are often easier to program in, but require more copying (and memory allocation) as a result. Hash tables are heap-allocated and have to be garbage collected, but they're flexible - something you don't get with structs. Allocating and freeing memory has a cost, and that can add up quickly. Your primary line of optimization in most of these languages is "avoid the GC", which really boils down to "don't allocate more than you need to", which is sound advice in every language, scripting or otherwise.

wting 1 day ago 1 reply      
I have a few comments about some of the slides, feel free to correct any misunderstandings.

Dictionary vs Object:

Lookups in both data structures is O(1), the difference being the hashing cost (and an additional memory lookup for heap) vs a single memory lookup on the stack (1 line of assembly).

Squares list:

> ... so every iteration through the list we have the potential need to size the list and copy all the data.

This is no different than stl::vector which has an amortized cost of O(1) for a push_back().

It's not going to be as fast as C, but I'd also argue for a generator version instead:

    def squares(n):
return (i*i for i in xrange(n))

One of the main reasons people choose Python is for expressiveness and not manually managing memory, although pre-allocation does seem like a good idea.

bithive123 1 day ago 1 reply      
If you want to learn more about what the Ruby VM has to do in order to execute your code, and some of the performance challenges for Ruby implementors (such as it's extremely flexible parameter parsing) I suggest this talk by Koichi Sasada: http://www.youtube.com/watch?v=lWIP4nsKIMU
coldtea 17 hours ago 0 replies      
Speak about Python and Ruby.

Javascript is insanely fast, with V8 and its ilk.

And I'm not talking about "toy benchmarks" either, I'm talking about envolved stuff written in plain JS (no C extensions), from the QT port to JS/Canvas, to the h264 encoder and such. Try doing those on Python and you'll see what you get. And of course all the toy benchmarks also agree.

Javascript with v8 is like a faster PyPy (with less performance deviation): 10 to 20 times faster than plain Python code.

Sure, you can extend Python with fast C code. But as the core languages are concerned, JS beats CPython hands down. (Oh, and you can also extend JS with fast C/C++ code if you need that. Node modules do it all the time).

gingerlime 1 day ago 0 replies      
Interesting slides, and good point about having better APIs.

Perhaps I'm nitpicking, but with a function called `newlist_hint`, I struggle to see how anybody would adopt it. I had to go back to the slides maybe 3 times, and I still don't remember the name of this function... Those APIs must have the most obvious, logical and simple names.

edanm 1 day ago 0 replies      
Very interesting talk

Leads me to wonder - has anyone done a study of any large-scale program to check where the slow spots are? It's not that I don't trust the speaker, he makes excellent points and is obviously a great memeber of the community.

But it would be very interesting if he were able to say: "Using PyPy's secret 'hint' API, only in drop-dead obvious places, improved performance by a factor of 5".

d0mine 1 day ago 1 reply      

    atoi(strchr(s, '-') + 1)

What does this do? Finds the first instance of a -, and converts the remainder of a string to an int. 0 allocations, 0 copies. Doing this with 0 copies is pretty much impossible in Python, and probably in ruby and Javascript too. </quote>

The copying could be avoided in non-idiomatic Python:

    int(buffer(s, s.find("-") + 1))

arocks 1 day ago 5 replies      
It is almost time that people stop referring to Languages as Fast or Slow. It is an implementation that is fast or slow, not a language.
jdhuang 13 hours ago 0 replies      
Interesting presentation, but it can't be the whole story. Even projects like SciPy which use the most rudimentary data structures (basically just a large array of floats) and algorithms (sometimes just looping through the elements in order a few times) see a considerable advantage when rewritten in C.


kristianp 1 day ago 0 replies      
As a ruby lover, I'm interested in the ruby implementation the Author wrote and mentioned, topaz [1]. Has anyone here tried it?

"Topaz is a high performance implementation of the Ruby programming language, written in Python on top of RPython (the toolchain that powers PyPy)."

[1] http://docs.topazruby.com/en/latest/

mixmastamyk 1 day ago 3 replies      

    def squares(n):
sq = []
for i in xrange(n):
return sq

A basically idiomatic version of the same in Python. No list
pre-allocation, so every iteration through the list we have the
potential to need to resize the list and copy all the data. That's

Is that true? I'd expect .append() to change a pointer or two, not "resize and copy" the list. Even an .insert() should just move pointers at the C-level... no need to "defrag" it. I guess the key word is potential.

jderick 1 day ago 0 replies      
I think the preallocate APIs sound like a cool idea. Perhaps there could also be some kind of 'my hashtable is an object' hint that could let the compiler do the same kind of optimizations on hashtables that it does on objects (assuming that your hash keys don't change much).
Nate75Sanders 1 day ago 2 replies      
He mentions that he couldn't find a pure C hash table.


ippa 1 day ago 0 replies      
His suggestion for better preallocate APIs made me think of this ruby patch from Charles Nutter: http://www.ruby-forum.com/topic/173802

4 years later and they still discuss it, heh.

rjzzleep 1 day ago 1 reply      
i'm actually surprised noone ever talks about perl. isn't perl crazy fast compared to the other interpreted languages?
rasmusfabbe 1 day ago 6 replies      
This is misleading and contains errors like calling C++ "C". Unless you have a great deal of knowledge about these things already, I urge you not to learn from this but read the slides purely for entertainment.

Question: The author claims to be a compiler author. After some digging I haven't found any information on what compilers he has written or are part of writing. Could someone point me to the compiler(s) Alex is involved with? Thanks.

Why Use Make ocks.org
346 points by pie  6 days ago   240 comments top 45
jgrahamc 6 days ago 4 replies      
If you use GNU Make it's worth using my GNU Make Standard Library: http://gmsl.sourceforge.net/

And also reading everything I wrote as Mr. Make: http://blog.jgc.org/2013/02/updated-list-of-my-gnu-make-arti...

Or buy my book: http://www.lulu.com/shop/john-graham-cumming/gnu-make-unleas...

mseebach 6 days ago 11 replies      
Absolutely do not use make for any new project. If you love make, it's a big, red, burning flag that you're not demanding enough of your tools and that you're not keeping up with changes in your ecosystem.

There are many, many way better alternatives to make. Which one is better depends on the platform you're on. The majority of them throws in automatic dependency management for free.

Yes, I know that the essence of the post is "use a build system". I agree completely. In fact, script everything. Then script your scripts. Then refactor your scripts because they are getting messy. But don't give impressionable souls the idea that "make" is anywhere near an acceptable (generalised, default) choice today.

jgrahamc 6 days ago 0 replies      
Three years ago I wrote a blog post arguing in favour of Make : http://blog.jgc.org/2010/11/things-make-got-right-and-how-to...

I'm not sure I still agree with everything in that post, but Make is very terse and expressive which I like.

One of the biggest problems with Make is that it's a macro language and some people don't get along well with them.

ChuckMcM 6 days ago 0 replies      
I find this a really interesting conversation. On the one hand I've built some really really complicated systems with make (like all of SunOS) and some even more complicated systems with a custom build tool (the google base infrastructure packages) and there are pluses and minuses to both approaches.

If you're building something small, its hard to beat a simple make file. Its easy to write, it allows you to capture dependencies and refactor quickly, and it doesn't interrupt your coding flow.

If you're building something quite large there are some real productivity benefits from building knowledge of what you are building into the build system. And computational build systems (which is to say build systems where the build spec file includes the capability to do local computation) can make retargeting the same build to different environments easier.

jcromartie 6 days ago 2 replies      
Everybody seems to be missing the fact that he's not talking about building a big software project. He's talking about scripting a simple workflow around a few files. Make is probably better than anything else for this, because under these circumstances it's so simple it's hard to get it wrong.

Something like Rake is obviously better when you need to really program your builds.

Peaker 6 days ago 3 replies      
If your project sports auto-generated code, or any sort of build targets that depend on inputs only known after generation -- Make simply cannot handle this. There are ugly workarounds but they don't work well.

Make is:

* Slow (e.g: when compared with tup[1])

* Very easy to get it wrong (under-specify dependencies), with cryptic bugs (or over-building) as a result. Pretty difficult to get it right (e.g: doing proper #include scanning, especially with the above-mentioned generated code).

* Terrible scripting language (mentioned by many others)

* Lacks useful features of other build systems (e.g: tup, or shake) of useful profile reports and queries about the build process.

It is just an antiquated, poor tool that ought to be replaced by betters that already exist, whenever possible.

[1]: http://gittup.org/tup/

fafner 6 days ago 4 replies      
Using make gets quickly really ugly. I wrote many Makefiles in my life and if you have to try to stick to GNU Make. At least it provides some basic functionality. But even that gets nasty quite soon when you need a simple thing like conditions with "and" or "or". If you have to write portable Makefiles ... well fsck.


There were recent discussions about adding GNU Guile to GNU Make. I think this is a brilliant idea. Not only would a major GNU project not only use Guile. But it would make writing Makefiles much more enjoyable because you have a real programming language at hand.

pedrocr 6 days ago 0 replies      
Like everyone seems to be mentioning this post is really about "you should have automatic builds" and make is just an incidental. redo[1] is another interesting make replacement that keeps most of the good points of make (e.g., simple and shell based), while having a more powerful dependency mechanism. It's even compatible with make itself allowing you to move a part of a recursively built project to redo, while having it call into make for other subcomponents.

What I've done before when doing data-driven blog posts[2][3] was to write the whole analysis end-to-end in ruby, including branching out to R for stats and graphing[4]. I ended up using rake (ruby's make-like tool) to tie everything together with dependency tracking but I could just as well have written a script that would call everything in order. Doing that gives you a way to quickly reproduce results (what's discussed here) but also, together with version management, a way to go back to previous versions and use things like "git bisect" to figure out when you introduced a bug.

[1] https://github.com/apenwarr/redo/

[2] http://pedrocr.pt/text/how-much-gnu-in-gnu-linux

[3] http://pedrocr.pt/text/preliminary-results-open-source-evolu...

[4] https://github.com/pedrocr/codecomp

largesse 6 days ago 3 replies      
Created in 1977, Make has its quirks. But whether you prefer GNU Make or a more recent alternative, consider the benefits of capturing your workflow in a machine-readable format.

Like a programming language?

wildgift 6 days ago 1 reply      
To everyone with alternatives to make:

Make is easy to learn.

It simplifies a slightly complex task.

Other build tools have a steeper learning curve. If they're more complex than the problem being solved, people won't want to adopt them.

When things get complex, there's the GNU make manual and libraries.

When you have to target multiple platforms, there's autotools, which is really complex and intimidating, but less complex than targeting multiple platforms.

Alternatives to make seem to fit in between make and autotools.

Make sucks. I've also heard that Unix sucks, and C sucks, too. Despite this alleged suckyness, these things not only persist, but accumulate improvements over the years.

qznc 6 days ago 1 reply      
I like discussing build systems. However, personally I still come back to make all the time. There are certainly better alternatives (tup, shake, redo, etc), but make is simply available everywhere. It is available, if I use an OS which is a decade old. It will be available, if I use an OS in ten years from now.

I am writing this on Ubuntu LTS (12.04) and none of those three advanced build systems above is available from the default repos. This means a serious dependency burden, if somebody wants to build my stuff.

A few years ago, Jam was a promising build system. It seems to be dead now. Hopefully, tup and shake will stay longer.

Until you have good reasons against make, it is a perfectly fine initial solution.

mprovost 6 days ago 0 replies      
Drake was just released, it's a make replacement specifically for data processing and seems to have some nice features.


sehugg 6 days ago 1 reply      
I once used gmake to implement a multi-stage Mechanical Turk workflow.

It was awful. The syntax sucks. But it worked consistently, and the core logic was only 110 lines of Makefile. It described the files and the data flow between them. Even now, I can read it and understand it with not too much effort.

Make is a very simple functional language. It's restartable. If you type 'make -j 2' it becomes parallelizable. For almost anything for which you might write a shell script, you have to ask yourself: Why not make instead?

I would like a cleaner, kinder make, but I also want it to retain make's essential make-iness. Nothing else seems to do that.

I do feel bad for anyone downstream of my makefiles, though.

cgrubb 6 days ago 1 reply      
Most systems I use have GNU make 3.81 installed. GNU make 3.81 added the special target .ONESHELL which makes code like the following possible. I'm not sure if it is a good idea, but it does remove the dependency that make has on shell programming.


SHELL = /usr/bin/python

VAR := lorem ipsum

import re

n = 3

print('make variable: $(VAR)')
print('local variable n: {}'.format(n))

rx = re.compile('\d+')
s = 'foo 17'

m = rx.search(s)
if m:
print('has number: {}'.format(s))
print('no number: {}'.format(s))

ericmoritz 6 days ago 0 replies      
I can't tell you how many projects I've shelved for months and when I returned thought, "Damn it. How do I build this again? Oh look a Makefile. Thank you Past Eric."

Even for projects that use more sophisticated build tools like rebar, leiningen or npm I write a Makefile so I don't have to remember those tools. Make provides a universal interface to those tools.

emddudley 6 days ago 1 reply      
This article isn't so much "Why Use Make" as it is "Use a Build System". It even says so in the sidebar.
cpressey 5 days ago 0 replies      
As noted in many of the comments, make sucks, and the article is not promoting make per se. But make seems to be the topic of conversation, so:

To me, make is a cruddy low-level declarative language that gets abused as a pseudo-imperative language, compounding the problem. Phony targets like "make <verb>" break the paradigm, because <verb> is not an artefact that can be tested for up-to-date-ness.

But one advantage of make that I'm seeing underrepresented in the comments is its ubiquity. If I just want to try your project, and I need to build your project to try it, and your project is using the cool new SchnauzerBuild[1] tool, and there's no SchnauzerBuild package for my OS, I have to go install that from source... which might have its own build dependencies... ok, your project looks kind of cool but I have better things to do than this.

I think it's great when build tools are able to write out a Makefile or sh[2] script that just builds everything, and when projects ship with that pregenerated. (and remember to keep it updated)

[1] fictional
[2] another technology that sucks but is ubiquitous

minsight 6 days ago 0 replies      
This is a sloppily phrased call for automation. I can wholeheartedly endorse automation as a goal, but the idea that make can be your go-to tool for this is embarrassing. Make will get you into trouble the moment your task becomes non-trivial. Everyone has their favourite tools and no single tool is best for every job (although grep and find are often your friend).

As I often say in job interviews, I'm lazy. I protect the lazy guy inside of me, because he's the one who cries out "Didn't we do this manually before? Shouldn't we automate it?" He's a good guy to have around.

jpollock 6 days ago 2 replies      
Everyone points at make and says, "use something better". They point at Rake, they point at Maven. However, Make has one feature that I really need, that I rely on to speed up builds: parallel dependency construction.

The last time I checked, neither Maven nor Rake do this properly. Maven runs everything inside a single VM. Who wants to have to worry about multithreading in their unit tests? Rake requires thread support in the underlying Ruby interpreter (why?).

I've got 64+ hardware threads (Sparc T4-1) all sitting there waiting to be spun up and do my bidding. Please help me to convert electricity to heat!

nickzoic 6 days ago 3 replies      
I've used Make in a similar context: building documents.

Raw simulation results (.log) ->
Processed for plotting (.plot) ->
Ugly Fig files (.x.fig) ->
Pretty Fig files (.fig) ->
EPS files (.eps) ->
The final document (.pdf).

By including the right dependencies in there, you can have individual figures update themselves when the raw data changes, and whole swathes of charts update themselves when the 'fixer' scripts get updated.

srean 6 days ago 0 replies      
Posted a new link to Fbuild. Its a build system that has quite a different and interesting take on the build process.


mcginleyr1 6 days ago 0 replies      
I agree Make is great at what it does but too many people really abuse their makefiles and don't use dependency management correctly. I suggest taking a look at

Really well written book. You don't have to agree with everything but its a great look at some of the better ways of using Make.

fnordfnordfnord 6 days ago 1 reply      
>>(Note: use tabs rather than spaces to indent the commands in your makefile. Otherwise Make will crash with a cryptic error.)


norswap 6 days ago 1 reply      
No you shouldn't. I know make inside and out, a result of being stubborn and lazy, and I am positive I can build a better replacement for it in a matter of days. Something like, but more general than, Rake.

The way Make works is very complex with lot of implicit rules, special exceptions, etc. Debugging Makefile is a chore.

If you are bent to use it, two pieces of advice: there is a handy debug flag that will tell you everything make is doing, and do disable all the implicit rules.

zem 5 days ago 0 replies      
all these "make for beginners" tutorials i've seen point out (correctly) how make is, at its most basic, just a dsl for specifying a dag.

it seems to me that it would be pretty useful to have a tool that let you build up said dag graphically, perhaps dragging and dropping files from an explorer pane, and then generated a makefile under the hood.

add in simple "infinite undo" git support that checkpointed every time you built with new inputs, and you'd have a dead simple way for non-programmers (who nonetheless have to do some programming to work with their data) to get the benefits of programming best practices. does such a tool exist?

robot 6 days ago 0 replies      
"Makefiles are machine-readable documentation ... "

Yes it is machine readable but how about us humans? Makefiles are ugly and when working on someone else's project it is very hard to reverse engineer the build system. Build systems are themselves software projects and we need better tools to develop and maintain them.

SCons was a promising project at one point, it improved things by capturing the build system in Python classes. I thought things would be more maintainable and readable. However for me it wasn't a well design, it obscures build system development with mixed declarative and iterative programming.

Makefiles are the defacto standard today, but they're no where near beautiful, or maintainable, or readable.

There are also variations of it such as gmake, imake, and so on, who only add their own quirks without solving the real problems.

shurcooL 5 days ago 1 reply      
This is a nice article, especially on a general level of writing scripts that automate work so you don't have to redo it manually.

I want to point out one thing.

  targetfile: sourcefiles

This violates DRY, there is duplication between command and source files (and target file?). In theory, it should be possible to automatically deduct the source files from the command.

It's far from easy in the general case, but it would save you from having to manually update source files when the command changes. (Any small inefficiency times lots of occurrences times lots of people really adds up.)

nickzoic 6 days ago 0 replies      
> You can approximate URL dependencies by checking the
> Last-Modified header via curl -I.

... or better, use the '-z' option.

curl -o counties.zip -z counties.zip 'http://whatever.zip'

mynegation 6 days ago 1 reply      
My problem with make for data pipelines is that a lot if decisions have to be content based instead of timestamp based. Multiple platforms is also an issue, I usually don't bother installing the whole Cygwin just for gnu make. I end up with custom python scripts which may be more verbose but more flexible and almost always cross-platform.
nathell 6 days ago 0 replies      
Make is an excellent expert system / topological sorting tool with an abominable syntax.
jmount 6 days ago 0 replies      
And don't forget how broken recursive make can in fact be: http://aegis.sourceforge.net/auug97.pdf . I lot of builds are nasty "Heisenbuilds."
RexRollman 6 days ago 2 replies      
From what the example accomplishes, it seems to be that it would have been easier to create a shell script. Is there something I am missing?
runn1ng 6 days ago 0 replies      
Make is fine, easy to learn and understand, but not very portable, while Autotools are scary giant monsters left from previous generations.
nohuck13 6 days ago 0 replies      
I've started using make for production data generation (not building software) instead of pure Python. Mostly to tie together Python scripts doing the real work.


-dependency management for free

-well-known paradigm makes it easy for someone other than me to figure out where to look if something went wrong.

-scripts I call out to can be focused


-for processes that don't generate an output (think adding data to a file in place) I wind up creating placeholder files ("file.transformA.done").

I actually want my dependency management to be terse and declarative, which is the opposite of what I'm looking for in a programming language, so it feels like a pretty natural divide.

eliben 6 days ago 1 reply      
I think what you were looking for here is actually a shell script, rather than a Makefile. A shell script is much more suitable for general purpose programming. Or better yet, use Python ;-) And, let's admit it, for small projects dependency analysis is overrated (although it can be implemented easily enough in a real programming language).
coldskull 6 days ago 0 replies      
scons is a good alternative to make. Make is ok for small projects, but it gets ugly pretty quick...and it allows you to make mistakes easily...
mncolinlee 5 days ago 0 replies      
Isn't this just as true of Ant or MSBuild or Gradle (or s/.*/yourfavoritebuildtool/s)?
dllthomas 6 days ago 0 replies      
I had a professor who would use make to manage document format conversion of his assignments and handouts.
gimlids 6 days ago 0 replies      
More than convincing me to use Make for dataviz, this really begs the question, "Is there a good dataflow manager for data visualization?" Something that can use URLs as dependencies, simpler syntax than Make, perhaps has a node/pipe dataflow GUI... Cascading.org comes to mind, but it is too complicated and Hadoop-oriented for this kind of dataviz.
kostya-kow 6 days ago 0 replies      
This is funny to read, especially after spending several hours trying to get a project to compile with make, while tracking down an annoying and cryptic error that doesn't even make sense.

Make is a horrible tool, and is extremely hard to learn. I think it should only be used when generated by other build systems.

mcartyem 6 days ago 0 replies      
Inevitably, any build system becomes part of the software. With make this means you are now using a far more inferior language to build software.
under2x 6 days ago 1 reply      
You should use CMake.
g8oz 6 days ago 3 replies      
What about Java based tools like Ant or Maven?
ttty 6 days ago 2 replies      
can't I use js with Node.js instead?
speaksense 6 days ago 0 replies      
Man alive just use an IDE.
Ang Lee and the uncertainty of success jeffjlin.com
334 points by iamwil  3 days ago   105 comments top 21
thejerz 3 days ago 12 replies      
I knew Taylor Swift growing up.

Like Ang Lee, for around 6 to 8 years Taylor acted in musicals, sang at festivals, entered competitions, and recorded demos. She was bad at first (sorry Taylor!), but she kept working at it. Every day, she was writing another lyric, or taking another guitar lesson, or auditioning for another play, or switching voice teachers. The reason I knew her was that I went to school with her (she was maybe in third grade when I was in 7th), I acted in plays with her, and I ran sound and make background tracks for her when she was 10 or so. I knew her mom and dad and brother too. I got to see her bildungsroman firsthand.

Then came her "overnight" success. And the press talked about her like she appeared on planet earth overnight. She was a sensation. All at once, you couldn't walk outside your front door without hearing about Taylor Swift. It was surreal, having know the awkward girl from a few years earlier.

But what no one talked about was the years she forewent hanging out with other girls in middle school, watching TV and doing her hair with girlfriends in high school... all of the stuff that normal kids do. Playing sports, going on dates with boys... all of this was sacrificed. For Taylor, and Ang Lee, great sacrifice was made.

Success requires an obsession of sorts. You have to say, "I am going to accomplish this, come hell or high water." Failure is not an option... it's not even a word in the dictionary. There is only success. The buck has to stop with you; there's no room for blaming other people, making excuses, or avoiding harsh realities. Whatever it takes to be successful, whether that's hiring a speech coach, taking more classes at the university, learning etiquette, doing odd projects, finding a tutor, seeing a therapist, waking up at 6am to exercise... there is no limit. And that's just the point -- there is NO limit on what you have to be willing to undertake to achieve the goal.

I've grappled with what I'm going to say for years, but I now acknowledge it as a truism: If you stick with it, you'll be successful. It doesn't matter where you come from, who your parents are, what you know, who you know, or how you look. All that is required is a choice -- a commitment to excellence.

Therefore, there's only one rule in making it to the top: don't quit.

waterlesscloud 2 days ago 1 reply      
Screenwriter Terry Rossio (Aladdin, Shrek, Pirates Of The Caribbean series) has a long running website on screenwriting. His site reminds me a lot of PG, actually, since he has a lot of essays thinking about the concepts behind the movie business.

He's talked there before about the time he spent preparing to become a screenwriter. His initial plan was to take 10 years to learn the craft.


"Since Ted and I were going to be working and studying screenwriting for ten years, that took some of the pressure off. It doesn't make sense to kick yourself after failing at something for four years, when the path you're on is designed to take ten. This allowed a period of time to undertake an analysis and exploration of the business, the techniques, the craft, the history, etc. Step by step, from style to format to character to concept to theme, etc. In other words, we gave ourselves room to practice."

He's also got a fantastic column on why you should give up at screenwriting.

I think a lot of people here can apply it to startups.


"That's what I'm really trying to do here (and you're smart enough to see it). And I'm not quitting. Oh, no, I'm not even warmed up. This is important, and I'm gonna give it my best shot.

Because what's at stake here is pretty damn big... oh, just, let's say, your life. A wasted life, potentially, or at least wasting the best years of your life. Days, months, years of effort endlessly trying to do something that you'll never be able to do well. And how many sunsets will you miss before you finally give up? How many walks in the moonlight are forever gone? How much laughter with friends are you willing to sacrifice? How many times will the kids not get the attention they deserve because 'Daddy's trying to write something' that nobody wants to read?

Oh. Gee. Did that one get to you a little?
Feel a little twinge in the pit of your stomach?


MikeCapone 3 days ago 3 replies      
Very inspiring, though this makes me think that we also have to worry about survivorship bias. How many people stuck to their guns, focused, worked really hard for years, and nothing ever happened for them (at least nothing close to their dreams)? Probably many, though I'm sure it's still the best way to maximize your chances of getting there; by giving up, you are assured of not making it; but even doing your best brings no certainty.

That's why you have to love the journey, not just the destination.

mladenkovacevic 3 days ago 2 replies      
It takes an inhuman amount of confidence or blind faith to convince yourself that you are good enough to make it in the film industry. To hold that belief for 6 years, while seemingly spinning your tires and growing your family is just something else. Ang Lee is something else too, though. After seeing Eat Drink Man Woman one evening, he instantly became one of my favorite directors.

As a former film school graduate myself, I must admit I took the other route and settled for a safe, but rather mindless career in marketing. At 31 I think I still have some fight in me, but alas not everyone is Ang Lee.

enraged_camel 2 days ago 3 replies      
I read the story. It is very touching. That said, I think stories like this send a very dangerous message. The reality of the matter is that for every person who stuck to their passion and ultimately "succeeded," there are thousands who lived the rest of their lives in obscurity and never "made it."

When I was reading the story and Ang Le said he started taking computer science classes at the local college, I though, "that's great - he finally came to grips with reality ad went from being a daydreamer to being a harsh pragmatist." I was therefore dismayed when he then said he tore up his class schedule and went back to his passion.

A lot of people glamorize his choice with things like "his dedication and commitment paid off" but what if t had not? Would we hear about Ang Le today?

In hindsight his choice was the right one. But hindsight is 20/20. If you really want to maximize your chances of success in life, be flexible and ready to change course often.

jblock 3 days ago 0 replies      
It's an interesting perspective on the man in light of all the ruckus about his film and the bankruptcy of Rhythm & Hues (who did the Oscar-winning effects for the film and ultimately fired 250 people in the past month):


He's got talent, that's for sure. I suspect much of the flak should be thrown at the industry rather than at the filmmakers.

melling 2 days ago 1 reply      
Here's the author trying to explain how long Ang Lee spent working towards success:

"Imagine starting something now, this year, that you felt you were pretty good at, having won some student awards, devoting yourself to it full time…and then getting rejected over and over until 2019."

This reminds me of the "Story of Longitude" where John Harrison spent decades of his life in search of his prize (the first "X-Prize"?), and everyone is betting against him. How could a self-educated clockmaker beat the best minds of the day? Anyway it's a great story, which I've read a couple of times.


A few years ago when I was thinking up a name for my mobile "hobby start-up company", I took inspiration from Harrison and called my company h4labs (http://h4labs.com). His fourth clock (H4) won the prize. As a software developer, I image myself more as a craftsmen. I'm taking one idea and I'm going to refine it over several years. Hopefully, by my major forth version, I'll have something really worthwhile.

Btw, here's the book: http://www.amazon.com/Longitude-Genius-Greatest-Scientific-P...

danso 2 days ago 0 replies      
> It got so discouraging that Lee reportedly contemplated learning computer science so he could find a job during this time, but was scolded by his wife when she found out, telling him to keep his focus.

Tragic...we came so close to having Ang Lee be a programmer!

I guess it's a small consolation that he's one of my favorite directors ever.

mooreds 2 days ago 2 replies      
What I think is fascinating is not Ang Lee's determination to last those 6 years, thought that is impressive.

It is that his wife and family supported him for all those years (granted, it seems he was providing childcare). And believed in him, to the point of scolding him when he considered switching to a more immediately lucrative career.

We should all be so generous to our partners.

senthil_rajasek 2 days ago 0 replies      
I cannot believe I wasted time reading this article.

The picture of the tape and the business card sucked me in.

I was hoping that the author will be sharing in detail the travails of Ang Lee during his early years and how he managed to pull through. Instead the author spins his own story of how Ang Lee stayed the course.

The reality of how Ang Lee felt ( 1984 - 1990 ) and kept himself motivated or if he was even worried about "success" remains a mystery and I am still curious to know more about this wonderful director and his early years...

balsam 3 days ago 1 reply      
here is a very personal essay the oscar winning director Ang Lee wrote about those 6 years in the desert (translated):


antoniuschan99 2 days ago 0 replies      
iamwill, this is a really awesome post. I shared it on FB and Tweeted it. I wanted to add one thing:

My sister won the Miss Hong Kong Pageant a few years back and is one of the top celebrities in Asia. One thing I learned from her was that success is all about determination, focus, and a lot of work; talent is in fact overrated.

For her, there have been ups (winning the pageant she was at the top), and downs (a year after winning the pageant, she was given the standard actress contract and was basically at the bottom), then ups again (she had to work her way up to the 'acting' totem pole).

Success in my view is what you make of it as well. Dave Chappelle talked about it when his dad confronted him about wanting to be an entertainer. His response was if he could make a living comparable to a normal white collar job (I think he used the example of 50K a year), then he felt in his mind that he achieved success. It's probably why he went to Africa! (Unless you believe in the Oprah Conspiracy lol).

DHH and the guys at 37signals have it right in my mind too. There is a huge difference being -10K in debt and having 10K in savings. Another huge difference between 10K in savings and having 250K in savings. However, there really isn't much difference between 1 Million and 10 Million and above (First Class vs. private jet... one Mazeratti vs. 5 Mazeratti's). For the majority of us, success is hitting that 250K mark. At that point, you don't need to worry about rent, food, bills... etc.

Lastly, a piece of advice I learned from Derek Sivers was what do you want? He broke it down to Fame, Fortune, Freedom, excitement, quiet, comfort.. To some all they want is Fame. To others, all they want is the money. His advice was to choose only one and go for it. A nice little byproduct is that you might get the Fortune and end up getting the Freedom as well. But know what you want and set yourself to achieve that goal!

orangethirty 2 days ago 0 replies      
Success, like failure, is an event. Not the destination itself. My work discipline is the same when I succeed as when I fail. I don't suddenly become smarter or dumber. Success after all is what happens when you have a well-oiled system working for you.
rdouble 2 days ago 1 reply      
One thing I've always wondered is what film and TV writers do all day during their years of obscurity. It would be interesting to hear more details about their process during that time, but that part of the story is never told.
dm8 3 days ago 2 replies      
“I sent in script after script. Most were turned down. Then there would be interest, I'd rewrite, hurry up, turn it in and wait weeks and weeks, just waiting. That was the toughest time for Jane and me. She didn't know what a film career was like and neither did I.”

Blimey me, that's some solid hustle. That too when you have young kid. Seriously inspiring. Time and again it has shown that determination can change fortunes.

EDIT: I got # of kids wrong

jheriko 2 days ago 0 replies      
Wait a minute, isn't 6 years of work to become an amazing success very quick and impressive? It takes most people a lot longer than 6 years to achieve a lot less...

What I struggle to imagine is the distorted sense of self and entitlement required to have the opposite perspective, which seems to be the author's view - that 6 years is too long to work hard at something and become good at it???

tomkit 2 days ago 0 replies      
I loved Ang Lee's own words: http://whatshihsaid.com/2013/02/26/ang-lee-a-never-ending-dr... (which is a link within this article).
ashutoshm 1 day ago 0 replies      
If you want an average successful life, it doesn't take much planning. Just stay out of trouble, go to school, and apply for jobs you might like. But if you want something extraordinary, you have two paths:

1. Become the best at one specific thing.
2. Become very good (top 25%) at two or more things.
-Scott Adams

robertlaing 3 days ago 0 replies      
I'm surprised he didn't mention his interview with the comedian Stewart Lee: http://www.youtube.com/watch?v=hHC13MYcrR4
fludlight 2 days ago 1 reply      
Is White Plains the Palo Alto of the Northeast? There seem to be a disproportionate amount of intelligent people doing new and exciting things from that town.

Edit: spelling

No more remote work at Yahoo 37signals.com
313 points by mh_  5 days ago   206 comments top 61
cletus 5 days ago 15 replies      
37signals comes down against a decree of no more remote working. I am shocked (shocked that there is gambling going on in this establishment).

Much like hiring practices this is and will continue to be a divisive issue. This one however seems to be largely driven by personal preference: if you want to work from home, you can't understand why anyone is against it. If you don't, then you do.

I fall in the camp of not necessarily being against remote working but it's not something I want to do, I understand why companies don't want it and I don't think working remotely scales.

The last is the most important point. Many take the view that they can be much more productive with flexible work schedules and when people don't bother them with trivial stuff and when they don't waste time on the commute.

Firstly, working from an office doesn't not exclude a flexible work schedule. I've gone through phases where I don't get into work until 3pm. A guy I know decided he would take Thursdays off and work on Saturday instead. My manager forgot I was going on vacation for a few days and I didn't get a call or email asking where I was until midday Tuesday (having not shown up on Monday).

As far as not being bothered, this can certainly be true. This is actually part of the reason why I often wear headphones. Noise-cancelling headphones do a pretty good job of filtering out a lot of noise but just the act of wearing headphones I tend to find acts as a psychological barrier from others bothering you.

As for commute, this much is true and is a particular problem in the Valley. For me, my commute is a 7 minute walk to work (in NYC). YMMV. :)

But a lot of people make the same mistake with this issue that they make with hiring practices: they tend to think that the individual case matters. It really doesn't. If a hiring process weeds out some qualified candidates, it doesn't mean it's broken. Whether or not it's broken is determined by whether the company finds a suitable candidate, how long it takes and how expensive it is. False negatives don't matter (to a company) as long as you get a positive result.

The same goes here. The individual thinks they can work from home and they may well be right but there are bigger issues. For teams--particularly large teams--to work together requires a certain camaraderie that is orders of magnitude easier to manage when physically colocated. This also applies to teams that are geographically split. All other things being equal, a team in N sites will perform better than a team in N+1 sites.

The other issue, and this particularly applies to large companies, is one of culture. Culture like team cohesion is orders of magnitude easier to spread when physically colocated. For a company the size of Google (my employer), IMHO this is far more important than any individual perceived benefits about permanent remote work.

Google has (IMHO) done a remarkably good job of maintaining cultural consistency such that transplanting an engineer from one team to another is relatively seamless. This isn't just about common tools either.

Chris Dizon wrote a great post called Twelve months notice [1]. I like it because it articulates the primary difference (in my experience) between those who work remotely and those that don't. In my experience, those who work remotely tend to be far more in the transactional work category. While there's nothing wrong with this and I think it's particularly suited to freelance consulting, IMHO it is at odds with running and maintaining a large engineering organization.

But I know I'm not going to convince anyone. This another polarizing issue. Just be aware there are bigger issues than the individual not wanting to drive to work.

EDIT: Also, I disagree with the position that this "punishes" good employees. Yahoo wants to build (or rebuild) an engineering culture. They've decided this is easier to do with engineers physically colocated. This doesn't preclude workers from working from home on an occasional basis (eg waiting for the cable guy). It simply means the default is you come into the office.

[1]: http://cdixon.org/2009/10/23/twelve-months-notice/

kjackson2012 5 days ago 4 replies      
I worked for Yahoo in the years surrounding the Microsoft debacle. Let me tell you in no uncertain terms that Yahoo was the worst company I worked for.

I had very little work to do. Period. End of statement. I spent most of my time doing practically nothing except playing ping pong and foosball and getting paid for it. A lot of my coworkers and a lot of Yahoos were in the same boat. Needless to say, that once the Microsoft acquisition failed and the layoffs started happening, most of us were out of there.

On top of that, there was very much a prima donna attitude around Yahoo, with a great deal of self-entitlement. I remember a couple of threads on devel-random complaining about the lack of ping pong balls, and how that insulted us as Yahoos since it meant that management didn't trust us. Oh the humanity of not providing everyone with $2 worth of ping pong balls!

Yahoo was filled with lazy workers, and an extremely fat layer of lazy management. I vaguely remember Rasmus running a script that calculated around 70 employees per VP. As well, the internal politics at Yahoo was astounding. One of my friends worked on an iPhone app on his own free time, and when he tried to get approval, it was held up for months because people were arguing over things like color schemes, and which group should own the app. It was pathetic.

I like what Marisa Mayer is doing. I think by getting rid of some privileges like remote working, it is enforcing a discipline that hasn't been at Yahoo, at least during the years that I was there. Showing up to work is a small price to pay for being paid a great wage and having the opportunity to work for what will hopefully become a first class company again. People need to show up and work and interact with their peers, instead of hiding at home and people not knowing wtf is going on with them. Sure, some people will quit, but quite bluntly, anyone worth their salt would have already left Yahoo by now. Anyone who is happy working in the environment that was Yahoo over the past 5 years is not an A player by any stretch, so it's safe to assume that you can afford to lose them.

michaelochurch 5 days ago 4 replies      
This is an excellent analysis of the situation. I generally prefer to work in the office over remote work, because it's preferable from a networking perspective, but a zero-tolerance approach to it is ridiculous.

My personal hunch is that this is a move to reduce headcount. Yahoo's top management doesn't want to put the company through a layoff, and they're not organized enough to know which projects to cut, so this is their hail-mary complexity reduction step. It's a way to shave off a few percent without having to terminate people. Unfortunately, the cultural side effects are going to be massive. It's bad for the executive image as well. "We're out of ideas."

WFH exists for sociological reasons in addition to the obvious benefits (geographic reach, lower stress levels). Engineers are smart. They know they're not all going to climb the ladder and become top dogs. Not everyone wants that, either. The right to WFH gives people the tacit ability to "grow away" to a 10-hour work week, taking pressure off the competition for visibility and rank and allowing the organization to actually function. It gives people a path whereby, instead of climbing the organizational ladder, their efficiency gains are paid back to them in the ability to retain employment with a reduced work footprint. If you're twice as efficient as a typical office drone (which is not hard) then you can work a 20-hour week.

When you go back to the ass-in-chair regime, management has more control and the social stakes are higher. People aren't going to be happy putting in 40-50 dedicated hours and not having control. To a myopic executive who thinks everyone should be like him or her, that seems like a good thing because it makes people "hungry", but it's actually dysfunctional because the competition for rank is extremely counterproductive.

Next up is the Micromanagement Death Spiral. Macroscopic underperformance leads to individual overperformance by managers, the problem being that managerial overperformance (heightened control, micromanagement) is toxicity. That will exacerbate the company's macroscopic issues and lead to more micromanagement... the vicious cycle.

mef 5 days ago 5 replies      
The author asserts that the new policy is based on "flimsy foundations". How does he know if the foundations are flimsy or not? Does he have inside knowledge of the productivity of remote vs. local employees at Yahoo? Is he assuming it's the same as at 37signals? Might it not be?

He writes that Yahoo employees should be "angry" that the new policy was declared "without your consultation". How does he know there was no consultation? How does he know local employees didn't give feedback to management that the extra communication overhead with remote workers didn't create difficulties in collaboration?

He also writes that this policy change reveals that "Yahoo management doesn't have a clue as to who's actually productive and who's not.". Why is this assumed? Why isn't it plausible that management studied the problem and found that having collaborators in disparate locations hampered progress?

The entire article seems needlessly reactionary and assumes things about the working culture at Yahoo that may not be true. Perhaps this vehement reaction is due to the fact that the author has a new book coming out advocating remote working?

nirvana 5 days ago 2 replies      
TL;DR: Here's the thing: All engineering is "working remotely" because being "remote" is simply a matter of isolation. This is why even people in the same room use headphones, IM, etc. Everything that's not working remotely (eg: isolation) is "meetings" and the overhead of distractions. The only advantage of having engineers in the same office is a lower cost of meetings. The disadvantage is it makes engineering harder.


This decision shows me that Meyer doesn't respect or understand engineering culture. She's bought into the management BS "accidental collaboration" rationalization for industrial age butts-in-seats ideology.

Engineering culture comes, to a great degree, from the way you treat engineers and the process of engineering.

Treating engineers like cubicle bunnies who just can't wait to get interrupted by their Pointy Haired Boss is not conducive to building a good engineering culture.

In fact, requiring people to be in the office shows an anti-engineering mentality, because engineering, an effort of the mind, requires situations that are best for the mind.

Two key things enable good engineering: Collaboration (which requires communication) and coherent thought (which requires silence or peace or the isolation from interruption necessary to do it.)

This means that even if every engineer is in the same room, they're going to start "working remotely" by isolating each other via the use of headphones, and a preference for non-interruptive working (Eg: send email, or an IM rather than walk over and tap the engineer on the shoulder.)

It's true that in an office getting together in a conference room to has something out is easier and more convenient, but the tradeoff is that even with all the isolation people try to put into effect interruption creep is a real thing- eg: meetings, etc.

Working remotely prevents these interruptions at the slight cost of a higher level of effort needed to have a "meeting" (using a virtual whiteboard or just a phone call or whatever.)

So, if you spend most of your time in meetings, then you need everyone together.

If you value engineering and spend most of your time engineering, then whether people are together or apart physically, they are all isolating each other and effectively "Working remotely".

IM, Email and other collaboration tools that allow engineer isolation work as well whether the engineer is in the office or across the country.

Plus, lets not forget the minimum 2 hours of lost productivity that comes form requiring people to go to an office- either the commute (and the resulting need to get into work)-or the long lunches at those free cafeterias, and the endless cycle of distractions that are accepted non-work in offices. A "15 minute coffee break" at the office really has a 20-40 minute work interruption, because it often involves other people, while that same break working remotely can easily be exactly 15 minutes, and likely will be shorter because 10 minutes is enough to get the same level of relaxation from the day.

Almost everything in an office is designed to distract you from engineering, and the cost of this overhead is significant.

bpatrianakos 5 days ago 2 replies      
Any one of us could go off on a diatribe on why DHH is right or wrong (and some of us have) but I think this issue is actually much simpler and we're missing something crucial here.

Whether remote work is a good practice or not is besides the point. I'd say, when done intelligently, it's a great thing. But don't you think Mayer knows that already? The bottom line here is that Mayer has to take a floundering company and turn it around. There must be something going within Yahoo! that makes this decision the right one. Yeah, there's going to be some blowback from employees and the media but at the end of the day it wouldn't be surprising if Mayer is reading all these articles and saying "Oh if you only knew what remote work is doing to this company...".

Remote work as far as I'm concerned is a great thing - but it's probably hurting Yahoo! more than helping right now. I wouldn't be surprised to see Mayer turn this thing around and reinstate the remote work policy when the dust settles.

It's easy to play armchair CEO, especially if you're a CEO, but what DHH is saying is basically "remote work is working for us therefore it should work for others". Well, it's great that it works for 37Signals but Yahoo! is a different beast and Mayer is not an idiot. It seems like she's willing to take some damage now to avoid a catastrophe down the line.

willholloway 5 days ago 1 reply      
I don't understand how serious software engineering is done in a lot of the start up offices I see in photos.

These offices look like an Apple store. They are open floor plan. Instead of desks they have tables where devs sit across from each other working on 13" to 15" laptop screens.

The ergonomics of these set ups are awful, and so are the economics.

Real estate is expensive in this economy. Why double pay for space? Why have 9-5 work space and 6-8 home space?

I know there is a separation of concerns argument, but in a competitive global economy I find that takes a back seat.

I look at not double paying for space as one of the business advantages my consultancy has.

A nice home/office with floor to ceiling windows slightly tinted to reduce glare and UV in a high rise building with panoramic view, a proper standing desk, a Kinesis Advantage contoured keyboard, Evoluent vertical mouse and dual 27" monitors is an incredible mood and productivity booster.

The ratio of window area to wall area in non-luxury buildings in NYC is an abomination. In my far off utopian vision a glorious and massive urban renewal project demolishes all soul crushingly dark tiny windowed apartments and in their place stand gleaming solar powered monuments to the human race where our creative class toils happily producing works of the head and the heart for global consumption and a breath taking view is never more than a side-long glance away.

willvarfar 5 days ago 2 replies      
I'm a remote worker. I've worked remotely for teams based in the US for one of those big names you know and more recently for a London-based company with offices just a couple of hours commute from my house deep in the Swedish countryside. I've worked about 6 years full-time remote in the last 10.

Working for home is not for everyone but for some of us its speeds us up not slows us down. The days I go into the office for meetings are the days I get nothing real done.

Here and in all the remote-working threads people come along to say it doesn't work and that you need to sit together to be a team. Well, I guess these are inexperienced people who haven't worked out how to do it effectively is all.

I hope there is a new enlightenment in remote-working for us programmers. There's so many diverse companies and meaningful organizations I'd be happy to dedicate my thinking hours too if their management could just consider it possible...

jobu 5 days ago 1 reply      
We've had business relationships with Yahoo in the past and everyone we dealt with there had a complete lack of accountability. No one seemed to care when we found problems, and it would take months for simple things to be fixed on their side.

This change will no doubt cause some loss of talented people, but if they want to drastically change the culture at Yahoo I don't see any other way. They need to get everyone working together both physically and mentally.

Hopefully they'll move all development back home as well. Their dev teams in India were dreadful with turnaround times and bugs.

PakG1 5 days ago 0 replies      
All of the comments I keep reading that criticize this decision assume that the A-players were working from home, and that the A-players will hate the decision. Possibly true.

But a lot of the anonymous internal feedback was that over the years, previous management had filled Yahoo up with B-players. If that's true, I can easily imagine that there's quite a large overlap between those who work from home and the B-players. It's such an easy way to slack off if you're not motivated or capable. And nowhere do I read people saying, "Hey, maybe this was what the situation was." I only read people saying, "Yahoo is boneheaded for not respecting their people." Let's consider all the possibilities.

swombat 5 days ago 3 replies      
As I posted on the 37s blog:

Management paranoia is not the only reason why someone would want to decrease the amount of remote work. There are team spirit benefits to bringing people together physically, and depending on the type of work being undertaken, remote work may have more downsides than upside.

I don't see this as an aggression against remote workers, or an attempt at controlling remote workers more closely based on some paranoid perception that “they're slacking” " it seems more like a change meant to help strengthen the culture at Yahoo by making it easier for teams to bond.

127001brewer 5 days ago 0 replies      
The following (from the posting), "When management has to lay it on so thick that they don't trust you with an afternoon at home waiting for the cable guy without a stern “please think of the company”, you know something is horribly broken.", reminds me of this quote...

How in the hell could a man enjoy being awakened at 8:30 a.m. by an alarm clock, leap out of bed, dress, force-feed, shit, piss, brush teeth and hair, and fight traffic to get to a place where essentially you made lots of money for somebody else and were asked to be grateful for the opportunity to do so?[1]

[1] http://www.goodreads.com/quotes/111168-how-in-the-hell-could...

britman 5 days ago 1 reply      
For me I think it's actually a clever marketing move by DHH and 37 Signals to create a "stir" around the issue. My guess is they don't really care what Yahoo's reasons are behind it but are very pleased with the timing...you can't help but notice at the bottom of the post - Interested in learning more about remote work? Checkout our upcoming book REMOTE: Office Not Required.
shanelja 5 days ago 11 replies      
I think that this is all being blown far out of proportion, when people are in the office, there is a lot more intent, you are there to work, sure you could spend it surfing HN, or whatever, but you are under more pressure to produce results.

In my experience, having someone there in person is a lot more productive, I get immediate responses to my queries and they get immediate responses to their work, no waiting around for emails to be responded to.

We are seeing a company taking away something we - as employees - like, in addition to our $120,000 per year wages, our paid healthcare, our free office snacks and clothes washing and our free donated dairy cow.

I wonder if, in a few years if the bubble pops, we will look back fondly on the days of decadence and wish things where still the same?


Also, totally unrelated, just realized I've been a member of HN for 6 months, cool landmark :)

alan_cx 5 days ago 1 reply      
Firstly, I'm a huge fan of proper home working. Simply, it works for me.

The general "vibe" I get from this is that that new management has arrived and is concerned about productivity. I assume that if new management has arrived, they would or should know what productivity levels should be and that yahoo remote staff are lacking. If so, then from a management POV, it does seem quickest and simplest to notionally get everyone back to base and kind of hit a reset switch.

If yahoo is now a low ranked place to work, then I can well imagine that in general its employees are a bit low ranked too, and perhaps some of the more lazy ones looking for a lax easy life. Presumably the quality people will have left. In which case, remote working cant work well at all.

Don't get me wrong, I'm not blaming the employees, this can only happen or go wrong if management lets it. But, I think one should support a new regime that is presumably trying to sort it out. Presumably, and if it were me, they will assess the situation and bit by bit allow people out of the office again, but with new procedures, guidelines or what ever.

So, to be honest, I think I can see what yahoo is doing. Yes it is painful for the good remote employees that are left there, but if thing are going wrong, they need to support the attempts to fix it.

Or...... I've missed the point somewhere.

outside1234 5 days ago 0 replies      
i'm not sure i would describe myself as a remote worker but instead, a worker that comes in when there are advantages to coming in: a set of meetings, a day where I need tons of facetime to nail things down, things that that are worth the commute.

This is about 2x a week. I consciously batch these days up with as much of this as possible. I work at home the other 3 days (on average again, some weeks I'm in the whole week, some week I am at home the whole week).

I find this incredibly productive. I crush the people that work in the office full time. I have time to be healthy with the regained hours from commuting (40min in my case). I can afford a house.

Sorry, but the butts in seats mentality is crazy and I'm not going back. Even for Google (where I've worked), which was nice, but failed on this score.

ap22213 5 days ago 0 replies      
Not allowing remote work seems as out-of-touch and inflexible as the types of companies that impose 3-year minimum laptop leases. It smells of an organization that is run by manufacturing MBAs and not creatives.

These are the companies that straddle the past - vision-less, fearful, and clinging to hierarchy and control instead of embracing risk and riding and harnessing waves of change. These are the types of companies that see their employees as cost lines in a P&L spreadsheet, instead of as untapped resources with limitless potential for creation.

olefoo 5 days ago 0 replies      
I think Ms. Mayer is doing the right thing for Yahoo! at _this_ time.

Yahoo! needs to be in high-contact mode for a time while it gets its company culture sorted out. There is no room for people who aren't willing to commit to full participation in the company and its day-to-day functioning in the highest bandwidth form there is; being present.

This is not a strike at working remotely in general, its Yahoo! dealing with Yahoo!'s issues.

laureny 5 days ago 0 replies      
I think we need to give Marissa a little more credit here, surely she's aware of the adverse immediate effect of such an announcement.

Here is my interpretation: this is a way to flush people who are not productive enough. Yahoo expects them to have left the company by June.

Once this is done, Yahoo will announce that it is restoring work-from-home policy and will offer some very attractive packages to attract talent.

redm 5 days ago 0 replies      
It's worth noting that the author doesn't really know how Yahoo arrived at that decision. Yahoo very well may have evaluated remote work productivity or be aware of other situations or metrics that make it clear, they needed to terminate remote work programs. I feel pretty confident that Marisa Mayer didn't just wake up and make a rash decision to terminate remote work without fully evaluating and understanding the situation, the impact and the benefits.
lowglow 5 days ago 0 replies      
I would guess they're changing culture, then firing those that don't fit (or have lost all intrinsic motivation) through performance reviews, then making the rest sing and dance until they get burned out, finally replacing those that left or were fired with new blood baptized by the new regime.
brown9-2 5 days ago 1 reply      
I didn't bother to read the original announcement but this line stands out for me:

it is about the interactions and experiences that are only possible in our offices

Seems to be a statement that good collaboration is only possible when employees occupy the same physical space.

Yahoo has offices across the glove, don't they? Are they going to also ban teams/employees in different offices from working together?

nikon 5 days ago 5 replies      
Working from home is boring. I spent 1 1/2 years working from home but now much prefer working in my client's office with the team. It seems no one else is either willing to admit this, or I am the only one who prefers the social interactions and the ability to resolve and issue face-to-face in 2 minutes rather than struggling on Skype, or waiting for emails.
kayoone 5 days ago 2 replies      
I do not understand the general uproar against this. I have been working remote alot in my life and i find its not the ideal way to work productive for me and it certainly isnt the ideal way to build a great working culture.

Its more like everyone cooking their own meal, communication is hardly ever as good as it should be in remote teams and you are just more disconnected from the core.

Personally i like my time alone and i get alot of stuff done in less time, but i enjoyed sitting in an office with 4 other engineers alot more. It was alot more fun and not alot less productive, if at all... Working remotely from home makes me feel alone after a few weeks now, i might even call it depressed.

While i think working remotely for some time (1-2 days a week) is awesome, i dont see the future of work as being remote only... I dont want to mix private with work life too much, which happens alot when working from home and i want to feel relaxed at home and not always think about getting back to my desk to get some more work done. And i know alot of people that think the same.

ChuckMcM 5 days ago 0 replies      
I some times wonder if this is a test. We've all been looking at it from the engineering perspective, but I sometimes wonder if its a test of management. Is somebody trying to see if there is any manager inside of Yahoo that can justify remote team members? It is those managers who are going to lose people when those remote people quit or have to be laid off.
jijji 5 days ago 1 reply      
I'm Sorry, but I would prefer to live in a place where on the hottest day in summer, the ocean water is not freezing cold. Or a place where my kids can grow up and not have to worry about drinking polluted groundwater. Or a place where even though I live 5 miles from work, it still takes me an hour each way to get there. Or a place where the housing is not so out of touch with reality that a 2 bedroom shack costs $600K, when in any other part of the country that same house would be less than $60K.
infoseckid 5 days ago 0 replies      
People at Yahoo need to "work" first to qualify for "remote work". I think this is the right direction. Get the team together, develop team spirit and then transform the company.
djt 5 days ago 1 reply      
What works for a company the size of 37 signals may not work for a company with thousands of workers.
at-fates-hands 5 days ago 0 replies      
While I agree with many points in the post, there are some things the author is missing.

I have several friends who have worked at large floundering companies cough Best Buy cough. As soon as a new CEO comes in, this is usually the first thing to go in terms of perks to the worker bees. They try and frame it up in many ways, but overall, it's an attempt to try and focus your work, and rally the troops in order to help stagnate morale.

The ironic part was the lower managers immediately convened a meeting of developers after the CEO's announcement, and told everybody, "Yeah, this isn't going to affect our group - carry on and continue to do what you need to do. Even if it means working remotely a good part of the time."

xyahoo 5 days ago 0 replies      
Sigh, not this sh*t again.

Yahoo's problem is (and always has been for quite a while) bad middle-management. (See my earlier posts; like Punxsatawney Phil, I come out only on occasion). These middle MF'ers have been running the company into the ground with their lack of vision, petty infighting and sheer idiocy. This has led to MM and her cohorts to basically not trust the lower half of the company.

So the rank-and-file are paying the price for MM's inability to weed out the rotten layer of middle managers.

Instead of cracking down on the WFH crowd, she should crack down on middle managers.

1. Get rid of any manager who has less than 8 direct reports

2. Anyone of the level 'director' or above must justify their positions (there has been severe rank inflation in Yahoo in the past)

3. Anyone who has been at Yahoo for more than 2 years and in a position of authority must be forced to analyze why their property declined over that period, and what they could have done to avoid it. There is too much of 'shoot and scoot' at Yahoo: managers jump on any hot item, botch it up and then move on

fotoblur 5 days ago 0 replies      
Not surprised by 37 Signal's opinion as they've gotten remote to work because of their passion for creating tools that foster communication.

For me, there are 2 ways to look at Yahoo's decision.

One is they are flat out wrong, but thats OK, because they are making decisions (Steve Jobs spoke of this)! Decisions are what moves companies in directions, good or bad, its better than being frozen and stagnant.

Two, I can attest to the cross pollination of ideas when you're together as a team, sharing lunch, sharing experiences, seeing each other in person, reading each other's body language, etc that just doesn't seem to happen at the same level when you're remote. If I were building a team from the ground up I'd want my team to be hanging out everyday ...the other meta of working together doesn't happen over Skype :). I can't tell you how many solutions were dreamed up on the walk to Starbucks. There is just something there that is hard to replicate with software.

gojomo 5 days ago 0 replies      
It is possible to believe both of the following:

(A) Remote working is a good thing, and the best companies will embrace it, now and increasingly in the future.

(B) Ending remote working arrangements is the right thing for Yahoo right now.

There is a path-dependence in corporate structures and cultures. Yahoo needs big changes. Even somewhat arbitrary changes with collateral damage could help re-form habits of interaction.

jasonjei 5 days ago 0 replies      
Here's a thought, why doesn't Linus Torvalds tell all the Linux core committers that if they want to continue to have commit access, they must show up at the office?

When I was a kid, I learned most of my programming through IRC channels. I worked on projects on Campfire, Skype, Hangout. It's not only possible, but provides a written log and account of decisions made. As well as giving people time to reflect.

The bottom line is that if you don't trust the people you hire, you've already hired wrong. Remote works if you trust your team. I had people working in person playing video games in the office. You can't coerce someone to work; you can only control this at hire time, not runtime.

Yes, it's impossible to tell who will work well remotely. But it's usually pretty obvious. People who will look for new things to do will do so, and people that will steal time can probably only keep up the con for only so long.

Hire right, and remote working works. That also includes in-person hires; they might be sitting there in seat...

louischatriot 5 days ago 1 reply      
DHH points are valid, and I agree with him that this move shows how much Yahoo trusts its employees. That basically means they have no clue why they're falling appart and think the answer is "people need to work more".

But we have to keep in mind that 37signals is a very differend kind of company. I'm not sure remote work is that suited to big companies. So they may be right in principle but they're handling it poorly.

tldr of the article: http://tldr.io/tldrs/512b80b57ad42f2e2500000a/no-more-remote...

mephi5t0 5 days ago 0 replies      
I SSH to REMOTE servers form home OR from office. So what difference does it make? Well, yes, it may change some interaction because you could grab a coffee with people. And I kinda like to work in office but I DO work from home a lot. And even if I am in the office I still talk to most people on IM. Yahoo's new policy is garbage. Or explanation why they do it is garbage.
pshin45 5 days ago 0 replies      
New article from Business Insider with "inside information" for what that's worth:


"'For what it's worth, I support the no working form home rule. There's a ton of abuse of that at Yahoo. Something specific to the company.' This source said Yahoo's large remote workforce led to 'people slacking off like crazy, not being available, spending a lot of time on non-Yahoo! projects.'"

"Mayer saw another side-benefit to making this move. She knows that some remote workers won't want to start coming into the office and so they will quit. That helps Yahoo, which needs to cut costs. It's a layoff that's not a layoff."

jblock 5 days ago 1 reply      
I get the stigma of "cool companies" that have chefs that serve organic meals 4 times a day, but are those benefits really all that superficial? As a new graduate who has to move to likely a very expensive part of the US to work for them, making the transition easier by eliminating some worries from my life (like doing lots and lots of grocery shopping) is a pretty nice benefit.
mikec3k 5 days ago 0 replies      
I worked for a company that's 100% remote workers. It didn't work for me, because I had too many distractions at home & my friends thought I wasn't working and always asked me to do errands during the day. On the other hand, it obviously worked for a lot of people, since they've been in business for 20 years doing custom programming.

That taught me that I actually prefer working in an office, as long as I don't have to drive to work.

drgath 5 days ago 0 replies      
> Yahoo already isn't at the top of any “most desirable places to work” list.

Yahoo ranked #8 on this list. http://www.businessinsider.com/best-employers-in-america-201...

vvortex3 5 days ago 0 replies      
I am a full time telecommute developer. I am slowly travelling around the world while telecommuting. The job is awesome and all that anyone has to do to achieve this is just to demand that any job they take be 100% telecommute.

There are, however, a couple things that one should keep in mind.

1) Your competition is global and intense. (How many of you have worked with some of the better Russian or German developers? How do they get so good?)

2) Your pay must be set and comparable to a global standard so forget about silicon valley pay.

3) You are usually a contractor and have no safety nets. So save large chunks of your pay.

Ok, that said, maybe I can relate this to the original article by saying that I've literally seen projects completed about 3x faster and at least 3x cheaper than any other corporation I've worked for that required the workforce to be in-office.

Why? Well, I don't really have the answer. I can speak to my own experience in that I'm judged solely on deliverables. I don't really have a face and as far as the company is concerned I exist as my deliverables... so they better be up to par. The other reason is that working this way requires projects to be organized ON PAPER. Those who have worked at any corporation will understand why that is important. So many managers bullshit their way around doing things like clearly documenting requirements or tracking deliverables. This simply won't work in a telecommute environment.

I really do believe that if I were to hire a team to complete a project I'd do so on a telecommute basis. It's simply cheaper and faster if done correctly and thus gives any company that does so an advantage.

One last point: I don't believe any manager who is not him/herself an engineer is suited to manage such a team.

brandonbica 5 days ago 0 replies      
I'm generally a fan of 37 Signals and the way they treat their people. I also don't have any knowledge about any of this other than what I come across on the internet. My current company doesn't have a set WFH policy, it varies by department and sometimes seems hypocritical when you realize that there are overseas contractors. This is my disclaimer.

I disagree with this post. From everything that I understand from what I've read it seems like one of the major issues at Yahoo is a culture thing. This doesn't seem so much like a trust thing to me. It comes across to me as a way to rebuild an identity by changing the environment and you can't control the environment when people don't come in to the office.

It does seem to me like there is potential to lose some good employees up front, for sure. I don't assume this decision is a short term move. Whenever management makes a decision that is more restrictive, or against popular opinion, there is always out lash. Then it dies down. New people start and it's the only thing they know so it's not a big deal.

The people are going to be the ones who change the company, and to change their mindsets, and reinvigorate them it seems like a culture change would be a good thing in the long run. The current policy clearly isn't working, how bad could this really be?

I love the idea of working from home, being independent and working autonomously, but it has its place. It's situational at best and this might be the perfect example of a place where it's not currently working. This by no means is saying that it doesn't work for 37 Signals. It seems to work fantastically for them and for many of the customers who use their software. I loved Rework, and I'm definitely looking forward to Remote.

Not everything is black and white.

tristan_juricek 5 days ago 0 replies      
My sense is that Yahoo is about to start doing some reorganization.

- There might be some trial and error runs of different managers (ergo, a period of quick reorganization)
- Leadership might want to simply make their mark on the organization
- It might be about establishing a culture of secrecy a la Apple (this is a stretch)

I do sense it's a symptom of a serious cultural problem. Layoffs might be coming. However, I'd expect more people to just to be straight up fired, without the big "we're reducing headcount" sort of announcement.

jimwalsh 5 days ago 0 replies      
Are none of their teams distributed? I'd imagine if you have a distributed team, what's the difference if an employee works from home occasionally. The theory being that their boss or most of their team isn't in their location already.

I can understand if Yahoo is making a shift to shore up some things in house. Hopefully if that is the case, they return to a policy that allows more work from home.

This is a battle that Gen Y'ers are going to have with aging management who can only manage people they can see/touch/watch. I thought we as an IT culture were doing better moving away from those old tenants but news like this doesn't make it look good.

bcks 5 days ago 1 reply      
I have absolutely no data on this, but it struck me as a lazy and sneaky way of making layoffs. It looks tough and decisive "She has a vision!" without spooking Wall Street with the "Yahoo starts the layoffs!" headlines.
PakG1 5 days ago 0 replies      
This article seems like an excellent response to OP. It was posted 496 days ago.


lanna 5 days ago 0 replies      
Not surprising comming from a workaholic who sleeps 4 hours a night and thinks a woman should have a baby and get back to work the same week.
SethMurphy 5 days ago 0 replies      
I think a mandate having everyone work from home for a month would be more telling at who the real producers are. This would force succinct communication and everything is on the record. Working remotely forced you to communicate in a more transparent way and actually gives a good manager more evidence to judge an employee by. Of course counting hours is easier for a manager to do.
ishansharma 5 days ago 0 replies      
This reminds me of of my college. There are so many times when I want to study myself but they have a strict attendance criterion which I have to fulfil.

I do not like this new decision. Yahoo looked on a nice path after Merrisa coming back but this is a bad decision for workers. No matter they will leave soon!

mschaef 5 days ago 0 replies      
A couple observations about this situation:

Yahoo will likely be better off with a an all local workforce. Having spent time working both locally and remotely myself, being local and present with the rest of the team has significant benefits.

That said, the personal costs for the employees in question are likely to be very high, particularly for those that telecommute from places that aren't in driving range of the Yahoo office. My hope is that Yahoo is treating these people as gently as they can.

> Companies like Google and Apple can get away with more restrictive employment policies because they're at the top of their game and highly desirable places to work. -DHH

The causality my be wrong here... it may not be the goodness of the employer that enables the restrictive employment policy, it may be the restrictive employment policy that enables the goodness of the employer.

pshin45 5 days ago 1 reply      
One crucial piece of info missing from this article is how long this "no more remote work" policy will be in effect.

Yahoo's cut a lot of staff and (acqui-)hired a lot of new people over the past few months, and so for the sake of team re-building, I can see why they might want to have all staff in one place for a while.

Even if staff are working remotely, it's always better for them to have met and bonded in person at some point - more trust, camaraderie, and goodwill. Maybe this is Marissa Mayer's way of getting everyone on the same page for a few months, and then afterwards people will be able to work remotely again as usual.

If this is a temporary measure to team-build more effectively, then it makes sense. If it's permanent, then I agree with the author DHH that it's a foolish and shortsighted move.

Mankhool 5 days ago 0 replies      
At my corp of 40,000 souls we are, year by year, diminishing the number of full time resident workers in favour of mobile workers and home based workers, all as a way to cut costs, save office space and increase the bottom line.
koenigdavidmj 5 days ago 0 replies      
I wonder if someone's going to try to call this constructive dismissal. Probably somebody in a different state with a spouse who can't just up-and-leave.
speakingcode 5 days ago 1 reply      
in this day and age the notion that remote work hinders communication or scalability is absolutely absurd. Sure, it may hinder certain types of social interaction and communication, but in terms of collaborative engineering, it does not. Open source projects have managed tens, hundreds and even thousands of developers on single projects using rather primitive mailing lists, irc channels and source control. These days we have hangout and facetime, skype, hipchat... endless lists of intuitive textual, audible, and visual communication tools, project management tools, team management tools, code management tools...
Using the right tools and practices, remote working is FAR MORE scalable than in-office working, because you can leverage a mass of employees from all over the world without the need to build out office space, infrastructure and other overhead to facilitate physical colocation.


cujo 5 days ago 1 reply      
Wow. Why are we all of a sudden so interested in what Yahoo is doing these days? They aren't a leader in, well, anything, but now the internet is in a frenzy about this work-from-home recall.

How's this for an idea? Let's see if Yahoo is a company worth looking at for leadership. They aren't? Oh. Then let their policies die with them.

guiomie 5 days ago 0 replies      
I see a lot of people whining about trust and dictatorship ... but perhaps the situation is worst then it seems from the outside, and that Yahoo is actually full of complacency and laziness, and getting them all under the same roof is the only way to clean the place correctly.
donohoe 5 days ago 1 reply      
Basically, remote working works and is good.

At Yahoo it was nor working - being abused, bad habits and policy engrained over years.

Doesn't mean it won't be back down the road. I think they're just cleaning house.

voltagex_ 5 days ago 0 replies      
I'm in a wheelchair. Transport and accommodation is tricky. These policies really, really suck.
airnomad 5 days ago 0 replies      
I'd like to see ratio between remote and office employees for 37signals. My bet is they're not, contrary to the popular belief, mostly remote-work company.
webmonkeyuk 5 days ago 1 reply      
We all love a sensational post!

"Of course not, you're going to be angry at such a callous edict, declared without your consultation" seems a bit out of place when the pull quote from Yahoo! reads: "If this impacts you, your management has already been in touch with next steps"

senthilnayagam 5 days ago 0 replies      
on twitter my interaction with dhh
me: @dhh been to yahoo office and things are recovering, just reserve your judgement till 3rd quarter results are out , hoping for a miracle

dhh: @senthilnayagam No miracle forthcoming will be due to killing remote working programs.

me: this one is a boomerang, it is targeted at yahoo management team and managers who are comfortable in their old ways
me: those who wanted to abandon the yahoo ship have already done it, yahoo has to float first before it can sail again

tribeofone 5 days ago 1 reply      
Get'em Dave
A closer look at the performance of Google Chrome aptiverse.com
307 points by mrjbq7  5 days ago   161 comments top 26
comex 5 days ago 5 replies      
The claim that process isolation is "antiquated" is absurd, since it's what everyone else is doing except for those, like Firefox, who have not yet started to do anything at all. I don't know any other projects that do what NaCl does, so regardless of whether Google should switch to pure NaCl for sandboxing, if they did, it would be innovation, not scrapping an antiquated technology.

As for whether they should - although Native Client's software fault isolation can provide better latency than hardware-based solutions because there's no need for a context switch, it takes a hit in throughput (7% overhead) because of the code contortions involved (though being able to trust the executable code might improve things). There would be significant issues with supporting JIT in such a model, because JITs typically like to have rwx memory. Multiple sandboxes in the same process wouldn't work with the current NaCl model on 32-bit platforms. And although the SFI has been well secured, putting user code in the same address space as the master process might make exploitation easier - this would be partially mitigated if the address of the user code could be hidden from it, but doing that would require additional overhead because addresses could no longer be stored directly on the stack.

ComputerGuru 5 days ago 1 reply      
I don't understand why the author comes across as having a serious axe to grind. What is aptiverse's horse in the race?

Also this: This is not the case for Chrome: the browser keeps all the cached information indefinitely; perhaps this is driven by some hypothetical assumptions about browsing performance, and perhaps it simply is driven by the desire to collect more information to provide you with more relevant ads.

I don't know about him, but I LOVE the fact that Chrome will show me if a link in purple or whatever if I visited it 2 years ago. Completely, totally, absolutely love. Other browsers can be (the last time I checked) configured to behave similarly. When you browse hundreds of web pages a day, catalog only a few of them, and then research a topic you once looked up over a year ago again, it helps to know which pages you've seen and which you haven't.

cooldeal 5 days ago 2 replies      
>This is not the case for Chrome: the browser keeps all the cached information indefinitely; perhaps this is driven by some hypothetical assumptions about browsing performance, and perhaps it simply is driven by the desire to collect more information to provide you with more relevant ads

>Some of these issues - such as the "infinite history" or the antiquated style of process isolation - may be driven by Google's business needs, rather than the well-being of the Internet as a whole.

How does caching the files indefinitely lead to better ad targeting? Keeping the history, perhaps, but I don't believe Chrome's web history is used to target ads when they have a lot of other ways of doing it, like Google cookies from people logging into Gmail at home and work, third party sites using Ad Words or Google+ etc. etc.

jgrahamc 5 days ago 6 replies      
This philosophy is embraced by the developers working on WebKit: in fact, the code responsible for rendering a typical web page averages just 2.1 effective C++ statements per function in WebKit, compared to 6.3 for Firefox - and an estimated count of 7.1 for Internet Explorer.

What is an "effective C++ statement"? That's a really odd measure and I can't get my head around it.

veb 5 days ago 8 replies      
This is probably off-topic, but I've started using Safari religiously now. When Chrome first came out, it was barebones, fast and did the job. This is what Safari currently feels like, so I'm using it. Fast, stable, and does the job.

Now Chrome feels like it's just another bloated browser. Which is slow, and hogs my computer. </opinion>

psn 5 days ago 1 reply      
https://plus.google.com/103382935642834907366/posts/XRekvZgd... is a Chrome developer talking about cache metrics within chrome. He claims the cache is capped at 320MB. Now the graphs in the article never show the cache size hitting 320M, so possibly they are both right. ;)

I would prefer it if the article had more information on how to reproduce their tests. For example, they claim a faulty hashmap implementation. This seems like it would be possible to benchmark. Instructions on reproducing the 100ms delay between button click and network traffic would be cool too - as would data on how much worse that makes facebook's latency. Also, is their cache backed by ssds or spinning disk?

I'm also impressed that the speed of context switches matters on websites.

The jump to claiming that chrome caching is tied to ads is interesting. Perhaps the author could fill in more details.

stanleydrew 5 days ago 0 replies      
"... and perhaps [Chrome's aggressive caching] simply is driven by the desire to collect more information to provide you with more relevant ads."

The whole article loses credibility with me because of that one statement. Surely this guy knows that a local DNS or document or image cache is not being used to provide the Google mothership with more data to improve Adwords performance, right?

ChuckMcM 5 days ago 0 replies      
There was in interesting "Ah ha" moment in the development of the Xerox Star system when they figured out all the layers of abstraction meant that each character placed was taking a lot of subroutine calls. Flattening the architecture resulted in a 10x improvement in performance. It was an amazing result.
linuxhansl 5 days ago 1 reply      
I have done my own tests a while ago (with Firefox and Chromium) and have concluded that for the sites that I frequent Firefox performs much better and uses less RAM.
Every now and then I repeat that experiment... So far always with the same outcome.
The notion that Chrome is faster is mostly measured by benchmarks; for my browsing behavior that does not translate to real real life performance.
aristidb 5 days ago 1 reply      
I don't buy the claim that process isolation is superseded by NaCl-style validation.
STRML 5 days ago 0 replies      
When it comes to browser benchmarks, there is a lot of emphasis on JS performance, page load time, and memory consumption. But one area where I've seen Chrome absolute fall apart is scrolling performance. Safari regularly gives me 3-5x the frame rate when scrolling, to the point where some websites are nearly unusable on Chrome (say, Reddit with RES) but are butter-smooth on Safari.
polskibus 5 days ago 0 replies      
Opinion on process isolation is the most controversial statement in the article, but the other claims are more interesting and easier to verify. If the findings are confirmed by others, it will hopefully drive webkit/chromium ecosystem towards improvement.
chadaustin 5 days ago 1 reply      
Having tested the interactivity of various WebGL applications on low-to-medium-end graphics cards, I will say that Chrome's does have significantly higher latency than Firefox. Try this demo:


Crank the number of instances up until the frame rate drops (on my Intel HD Graphics 4000 it's about 20,000) and then drag your mouse. Notice that the drag latency is significantly worse in Chrome than Firefox.

barista 5 days ago 2 replies      
A quote worth noting from the article: "Some of these issues - such as the "infinite history" or the antiquated style of process isolation - may be driven by Google's business needs, rather than the well-being of the Internet as a whole. Until this situation changes, our only recourse is to test a lot - and always have a backup plan."
ybaumes 4 days ago 0 replies      
I am just wondering here: two blog post from a startup in "stealth" mode. One about CSS "advanced" tricks. The other one about criticizing Chrome browser. Are those guys about to release a competing Web-Browser? :P Too less cues to know, but still the question popped up in my mind.

It would explain the criticizing tone of the article. Don't make me tell what I didn't tell: they could be proven right or wrong, it is not my point. I don't want to follow the debate about Chrome performance here. But what I suggest is: unknowing the real goals of Aptiverse's business and their interests I would backup a little bit and try to look at the big picture. And avoid religious Emacs/VI war.

But well then, I am trying to make bold bet anyway. They could be about to release a new ground-breaking web-browser in the near future, make everyone switch and fix the issues they announced in their blog post. Don't know what future is made of! :-)

xpose2000 5 days ago 0 replies      
This is a fantastic blog post, and I am thankful Alex took the time to write about it. There is no question someone over at the Chrome team is starting a conversation about these findings.

The best thing about Chrome is that they move fast. So I suppose the first step is to get an official response by someone over there....

damian2000 5 days ago 0 replies      
I started using Chrome in late 2010 and used it continuously until about 3 months ago. It started suffering the problem of tabs just freezing about every few minutes of browsing. This behaviour started happening around the same time on two different machines - one quad core desktop, another lenovo laptop. Since then I've gone back to FireFox, but this article is making me think I may just need to do a fresh install of Chrome.
dbloom 5 days ago 1 reply      
"This is because the synchronization needs to occur over a low-throughput, queue-based IPC subsystem, accompanied by resource-intensive and unpredictably timed context switches mediated by the operating system. To understant [sic] the scale of this effect, we looked at the latency of synchronous, cross-document DOM writes and window.postMessage() roundtrips."

Web pages running in different Chrome renderer processes can only communicate using postMessage. WebKit's design makes it practically impossible to access DOM or JS objects across different processes or threads (the only browser that can do this as IE -- top level browsing contexts have run in different threads in IE since the beginning).

You can test this hypothesis by creating two same-origin documents in different processes. In the first window, do window.name="foo"; then in the other, do window.open("javascript:;", "foo").document.documentElement.innerHTML="hello"; this will work in every browser except Chrome.

Chrome actually provides a way for web developers to explicitly allow a window.open invocation to create a new renderer process (see http://code.google.com/p/chromium/issues/detail?id=153363 ). This way, the author can allow Chrome to use a new process if they don't need access to the popup beyond postMessage.

So, I have no idea where that peak 800 millisecond DOM access latency came from, but it's not from IPC across renderer processes. I'd love to see the benchmark that was used to get that number.

33a 5 days ago 0 replies      
The only real wtf here is the history issue. The rest of the stuff -- especially the "antiquated" process isolation -- seem like reasonable trade offs. Switching to a better hash implementation should solve 90% of the performance problems.
martinced 4 days ago 0 replies      
I regularly delete Chrome's cache because I did somehow "discover" that behavior intuitively a long time ago.

That said, it's totally silly to criticize security measures for slowing down a bit page rendering / navigation.

I'm taking a 50% slower Internet today if, in exchange, it's 100% secure. I know it's not doable and won't happen any time soon.

But those willing to sacrifice security in the name of perfs should be shot to dead.

ww520 5 days ago 0 replies      
While we are at the Chrome performance problems, I have encountered one recently when running Javascript code in Chrome. I have job progress data shipped back from the server to the browser asynchronously, which drives the progress bar and the data are concatenated together for display. Chrome simply can't handle long string of concatenation. It just hangs. Other browsers have no problem.
zobzu 5 days ago 1 reply      
So uhm, it seems like firefox is faster than chrome after a week of use :p
benologist 4 days ago 0 replies      
That's interesting that Chrome's caching is so broken, I wasn't aware it actually existed at all because I use the real internet that is not next door the googleplex and every time I hit the back button I enjoy a 1 - 5 second break waiting for the page to be completely reloaded.
Revisor 2 days ago 0 replies      
Two days later and this article doesn't exist. So much for link rot.
waltz 5 days ago 0 replies      
Chrome should get rid of that hideous download bar
Introducing Google+ Sign-In: simple and secure, minus the social spam googleplusplatform.blogspot.com
303 points by iProject  4 days ago   171 comments top 36
paddy_m 4 days ago 9 replies      
If google wants me to use and depend on their services they need to take google apps for domains seriously. I have three google apps for domains accounts, and a regular gmail account.

One apps for domain account is tied to my job, another my personal domain, a third to a former job/personal domain that I registered services with. I used my gmail account to access services that google doesn't make available on google apps for domains.

It seems that no matter which google service I'm using, I'm logged into the wrong account. I frequently can't log out from the other account properly on the login page so I have to go back to a mail interface. It is an utter mess. I don't care about google connecting the dots and realizing that I'm the same person in all the places. They make it so frustratingly hard to use and depend on their services that I'm actively looking for alternatives.

Linkedin handles it fine, when someone tries to friend me on my professional email address with linkedin, they know that I'm the same person. Google+ doesn't. I don't have a Google+ account on my preferred email account because I can't figure out how to enable it for that domain. I get Google+ friend requests regularly on every email address I have.

robomartin 4 days ago 2 replies      
As I see Google expand it's service offerings I find myself excited with the potential yet refraining from using any of these services for a very good reason:

As an entrepreneur you are always up against the very real probability of Google shutting down your account due to unknown violations. This topic has been discussed on HN before. I have seen it and experienced it first hand with clients. You account is auto-magically tagged and permanently suspended and you are screwed. Say goodbye to your docs, email, storage, adwords, adsense, plus and now logins.

I would really like to hear from someone at Google on the reasons why your company will not come out and offer:

(a) A solid guarantee of non-termination of services

(b) Real customer service

(c) A sensible mechanism through which honest users of your services can deal with TOS violations (and learn how to fix problems) without risking loosing it all.

There's more, but I'm busy. The point is that Google offers a lot of neat stuff but the risk is too great. It's like jumping off a plane with a parachute while someone retains control of a "deploy disable" mechanism. You don't know if you are going to crater yourself on the fifth, the hundredth or the nth jump. You just know that it could happen and you will never know why.

JoshTriplett 4 days ago 2 replies      
Smart: with people starting to become aware of just how much access Facebook apps get to your social network, and already well aware of how much apps spam that network, offer apps that put the user in control of that: https://lh3.ggpht.com/-6MCVkHL9Rbs/USvqcyXRUCI/AAAAAAAABGI/o...
wereHamster 4 days ago 3 replies      
As a developer, how is that different from logging in via Google OAuth?
nullc 4 days ago 1 reply      
How does this compare with Mozilla Persona?

Persona uses cryptographic tokens so that identity providers can't spy on what sites you're using, and can't selectively deny service to various sites.

I think that people should resolutely refuse to use any identity service that doesn't have at least those properties.

jug6ernaut 4 days ago 2 replies      
Not on topic not off topic.

But until g+ allows linking of multiple gmail accounts to one g+ account i will never be using it.

Ever tried switching email address on g+, nightmare...

newishuser 4 days ago 0 replies      
minus the social spam... for now while we try to gain users.

If they were serious about it, they'd put it in a non-changeable clause in their TOS. Otherwise it's just marketing fluff.

ecaron 4 days ago 2 replies      
Most interesting point: http://www.thefancy.com/ (the promo site in the video) ISN'T EVEN USING THE SERVICE!!!
bitcartel 4 days ago 1 reply      
Doesn't the combination of Google+ Sign-In and Google Wallet remind you of Microsoft Passport[1]? I wonder if people who had concerns over a decade ago, will have the same concerns now.

[1] https://en.wikipedia.org/wiki/Microsoft_account#History

m_eiman 4 days ago 4 replies      
minus the social spam

Somehow I find that hilarious.

jacquesm 4 days ago 0 replies      
Google+ is social spam, and one of the few varieties that is extremely hard to get rid of. Most of the other ones you can simply blackhole.
OlavHN 4 days ago 2 replies      
If all you want is a simple, privacy friendly login then check out Mozillas persona: https://login.persona.org/

Chances are your users won't have it already, but it's the only single sign-on solution I would use without calculating how much privacy I'm willing to "sell" for not having to register yet another time and remember yet another password.

danso 4 days ago 1 reply      
OK, I'm going to go off-topic and sound like a crank...but is the font-size for Google's blogs kept at 13px because:

1) To keep consistency across every service (search, analytics, maps, etc)

2) Because it's what users like, according to in-house studies

3) Because...why change it?

Not all the Google blogs use Arial (http://chrome.blogspot.com/ uses Open Sans). I'm not trying to be completely snarky here...If it is indeed a best practice, then that's good to know. The width of the Google blogs do conform to showing 80-or-so characters a line, though at 16px, the characters-per-line is about 70, which isn't bad either.

(yes, I know HN is at 13px too...but a discussion board with variable length of text and a higher value in being able to see more entries at once is different than the narrative paragraph form)

robot 4 days ago 0 replies      
Terrible idea. I hate the (mis) connected nature of google services. E.g. I don't want to see Google+ contact's recommendations on my youtube page. Now I can't imagine the same happening with even other apps.
seldo 4 days ago 0 replies      
Please correct me if I'm wrong, but it seems there's still no offline permission to share on a user's behalf. It seems to be a deliberate design decision, but it makes life tricky for somebody wanting to make a social media management platform (ahem) since there's no mechanism for scheduling future posts, etc.
hakaaaaak 4 days ago 0 replies      
I don't want to use Google+ because everyone I care about uses Facebook, and even that I'm growing tired of and use less than I did for a few years.

I'll continue to use my Google (Gmail) account for authentication to StackExchange and a few other sites, because it doesn't make me use anything but Gmail. But, if Google starts forcing me to use Google+ actively, I'm going to stop using it for authentication.

mikeevans 4 days ago 1 reply      
bsimpson 4 days ago 1 reply      
I've already taken the time to implement a server-side login using OAuth2, as documented by Google here:


According to these new docs, I need to use the Google+ JS to do client-side authentication, then pass the token to my server:


I have no interest in building a new code path to support Google login, when I can use the OAuth setup I'm already using for 3 providers (inc. Google). It would be nice if you'd just post the CSS or PNGs you're branding as Google Login and let me use the backend I've already plumbed.

brown9-2 4 days ago 0 replies      
Nice dig at Facebook here:

In addition: Google+ doesn't let apps spray “frictionless” updates all over the stream, so app activity will only appear when it's relevant (like when you're actually looking for it).

edit: referring specifically to how Facebook markets it's sharing options as "frictionless": http://en.wikipedia.org/wiki/Frictionless_sharing

pgrote 4 days ago 1 reply      
Can anyone find a working example outside of Google of the 2 Step authentication working with the Google+ Sign-In?
BenoitEssiambre 4 days ago 2 replies      
I wonder if Apple's rejection of apps that track their users* will result in this API being blocked on iOS?

* http://www.tuaw.com/2013/02/26/apple-rejecting-ios-apps-for-...

mixedbit 4 days ago 1 reply      
Great, add to this 'minus centralized' and I'm all in. Or wait, Mozilla Persona already does this.
Djehngo 4 days ago 0 replies      
I don't know much about the specifics of facebook apps, but could anyone outline the differences between facebook's approach to apps and google+'s?
david_glazer 4 days ago 0 replies      
To ecaron and others asking -- we're doing a gradual rollout over the course of the day, as are our launch partners. You'll see the feature in their apps soon.
znowi 4 days ago 2 replies      
Apparently, this worked out so well for thefancy.com that they took it down. I can only see the usual suspect: Facebook and Twitter sign-ins.

In fact, I've checked all the sites listed in the article - none of them have Google+ sign-in.

Also, they say you sign-in via Google account, but I suspect it also requires a Google+ profile in order to use this feature.

kmfrk 4 days ago 0 replies      
Great to see an alternative to Facebook log-in. It's usually either Facebook log-in or e-mail based log-in, which works really poorly on mobile, when you don't have something like LastPass to autofill.
lnanek2 4 days ago 0 replies      
Reminds me of the huge threads of people upset about needing Google+ accounts to post reviews on apps on Google Play now, lol. Guess Google tried eating their own dogfood on this one and it didn't go over well.
marban 4 days ago 1 reply      
Apple should have long released an equivalent for iCloud accounts.
donniezazen 3 days ago 0 replies      
What really surprises me is the blatant permissions required by most applications specially on Chrome OS. Many of the applications/extensions I have had opportunity to observe in past few days outright require "all data on all websites."
StavrosK 4 days ago 2 replies      
Wait, does this mean apps can finally post to G+? It looks like I can finally write a simple app that can cross-post my Twitter stream to my public G+ circles.
sunils34 4 days ago 1 reply      
Anyone else having trouble working through their examples? It seems like they haven't made their example repositories public yet.
avodonosov 3 days ago 0 replies      
What is so new? It's OAuth 2.0 (see google+ docs: https://developers.google.com/+/api/oauth). OAuth 2.0 is supported for a relatively long time by Google (the old docs: https://developers.google.com/accounts/docs/OAuth2
combataircraft 4 days ago 0 replies      
After I lost the Youtube account that I used for 4 years, thanks to their fucking robust login service: Go fuck yourself, Google

If you guys wanna see the future of this project, just try to create an account and upload a video in Youtube. Youtube is a Google company, and they fuck Youtube's membership system up.

neves 4 days ago 0 replies      
With this new signin, will it be possible for someone to develop an application that automatically publishs my site RSS feed in Google+?
fyi80 4 days ago 0 replies      
It's almost as thought Google designed the service for the benefit of users (who will then vote for developers with their feet) than for the benefit of spammers....
mehulkar 3 days ago 0 replies      
I'm confused, didn't Google+ Sign In already exist? I know I'm using it already...
       cached 3 March 2013 03:11:01 GMT