hacker news with inline top comments    .. more ..    12 Jul 2011 Best
home   ask   best   8 years ago   
Google made my son cry sunpig.com
573 points by rostayob  8 days ago   265 comments top 62
DannoHung 8 days ago  replies      
Google needs a fucking customer support line already. Make it a 900 number if they need to and charge $20 per call, but for the love of cheese the number of times something goes horribly wrong and there is little to no recourse is silly. They refuse to let people pay for their services and thus establish a billing verification channel but they're asking users to put tons of important information into them with no recourse if something does happen.
zwieback 8 days ago  replies      
I must be a total minority here but as a parent of a 9 and 11 year old I'm shocked how many commenters recommend "just lie" or even teach their kids that lying is ok on the internet. Maybe this particular kid is a total outlier but I can say for sure that my kids and their friends are definitely not ready for any kind of sophisticated reasoning about when to apply which morals. At that age they are also fairly unable to separate fact from ficition and news from gossip.

The age limit of 13 seems pretty reasonable to me and if as a parent you think your kid is so mature (hint: he isn't) then it is definitely your responsibility to act as a guardian.

Google didn't make your son cry, you made your son cry. And that's fine, we all make our kids cry from time to time. Explain the mistake you made to your kid, figure out what to do in the future and move on.

jdvolz 8 days ago 3 replies      
Am I the only person who thinks this is a great way to teach your son about civil disobedience? It's clear this law, while well intended, isn't meant to cover this specific situation. I would argue this type of civil disobedience is the first step in getting the law changed (in this case, to something more reasonable, or requiring that parental consent be available and expedient).

It's important for children to understand that laws aren't written in stone and that if they dislike a law they can work to change it. Feeling helpless and acting helpless isn't in the best interest of anyone's child or our children's generation as a whole.

tybris 8 days ago 3 replies      
I think he learned a valuable lesson about how to use the Internet: lie about everything.
mscarborough 7 days ago 1 reply      
I'm surprised at all the histrionics going on in the article and this thread.

"Google ... plans to cut him off from his family until he's 13."

First, take a deep breath. Then, get another email address that you can control, and back it up. See if the grandparents still have copies of their correspondence for the kid to read. Use this as an opportunity to teach the importance of backing up data that is important to you, and why you can't trust free online services to always look out for you.

Currently I'm in India, and today witnessed children sifting through open piles of garbage and panhandling in the middle of traffic. So it's kind of maddening to then witness the stunning lack of perspective these parents demonstrate when their child is temporarily cut off from site update emails and using chat to talk to them while sitting in the same room.

Yes, I understand the data loss making a 10 year old "enormously upset", but if these seemingly technically-savvy parents didn't yet realize the necessity of owning and managing data that is important to the family, then I'd hope that point isn't lost. In the time spent to write a hysterical blog and more responses in the comments, a simple solution to ensure this did not happen again could have been implemented.

dexen 8 days ago 4 replies      
Why is that parents can't give consent to their young (<13y/o) child using Google account?

Parent logs into his/her account, parent creates kid's account, parent states real age (10 years), parent expresses consent, child uses the new account. Is it that complex?

yanw 8 days ago 4 replies      
Your son joined a service he wasn't supposed to, then joined an adjacent service that still requires an invite and that triggered a mechanism that kicked him out and he gets upset, you evidently don't think it's your fault for not reading the TOS and not being familiar with the american COPPA law and you think it's Google's fault.

Congratulations on proving that link-baiting works very well even on HN.

ern 8 days ago 3 replies      
I think it's unfair that under 13s aren't allowed to use Gmail. But being able to use email, code in Python and use Powerpoint, doesn't mean he has the maturity to use social networking.

The internet is a cruel place, and hysteria about online predators aside, I think that the biggest risk to kids is from their own peer group. I recently encountered a fake profile on FB that was harassing high school kids, including a cousin, by spreading rumours about them. The rumours seemed silly to an adult, but the reactions of the victims on the perpetrator's wall were telling: begging, swearing, threatening (incidentally, Facebook's abuse system was pretty useless, I got the account killed because I figured out who the bully probably was, and dropped a few not-so-subtle-hints threatening to expose her). If teenagers are so distressed by online bullying, it would be worse for pre-teens.

I have sympathy for Alex and his parents, but I don't blame the law for blocking young children from accessing these services, especially social networking sites.

ComputerGuru 8 days ago 2 replies      
COPPA gives an (easy?) way out - the parents just have to fax in their consent for their underage son to use their service. There is no law stopping the kid, Google probably just doesn't want to be inundated with such requests.
GFischer 7 days ago 0 replies      
The author made a followup post here:


This is what it says:

"Hey ho. Commenting here because I feel chased out of my own blog. I'm trying to figure out if I want to write a follow-up blog post, and if so, what I would write in it. More importantly, who would I be writing it for? There may be some catharsis for me in writing a response, but it would also involve me stewing in asshat soup for even longer while I composed it.

The main thing I would want to clarify is that the technical problems are not actually the heart of the matter for me. Being responsible parents, we set Alex's email up in such a way that we get copies of all his incoming messages. We can probably reconstruct large chunks of his correspondence to date. I'm not even sure if Alex thinks of email as a long-term thing, though. He archives messages, but I don't know if he considers them anything other than ephemeral.

Secondly, we can set him up with a new email account somewhere else. No problem. Offline, IMAP, webmail, whatever. That's easy. (Although I would very much prefer not to have to run my own email server, in the same way that I prefer not to fix the engine of my own car.) Alternatively, we can just do what everyone else does, and simply lie. It wouldn't be the first time, and it won't be the last. (#include relevant discussions of "legal" vs. "moral".)

What really made me angry was the emotional harm. I don't like using that phrase, because for me it brings to mind stereotypical unreasonable lawsuits, but that's what it is. An authority figure in Alex's life turned round and damn near bit his hand off, when Alex thought he was following that figure's instructions. It feels like a violation of trust. No matter whether we get his old email back, the original violation remains. Hence the title of my post: Google made my son cry. When you hurt my kid, I get angry.

I completely understand that Google's hands are tied because of COPPA. As soon as they knew that Alex was younger than 13, they had to act, and they can't "un-know" that information. My instinct says that this is an unintended consequence, though. I find it hard to imagine that "weeding out underage Gmail users" was listed as a goal on the G+ rollout plan.

What would make me happy, as a parent (first of all) and as an interaction designer (because I find it hard to leave the professional side behind)? What would make this right?

* If 13 is the hard age limit for using Gmail, Google should ask for your age when you sign up for a Gmail account. That way, you know in advance you're going to have to lie, rather than having the truth come up and bite you in the ass two years later.

* Instead of the harsh, default TOS violation message, a sympathetic and apologetic error message tuned for the specific circumstance of discovering that you are too young to use the service. Think about it. In this specific case, what do you know about the user? You know that they're a child. Design for this. Error messages are bad enough for grown-ups; they're double-bad for kids.

* The option to retrieve Alex's old email, instead of just discarding it.

* The option for us to give parental consent for Alex to have a Gmail account. I love Gmail. I would much rather Alex had a Gmail account than that we have to arse about with Thunderbird and our own IMAP server.

* Even if there is nothing they can do, an apology would be nice. Just because they're legally in the right, doesn't mean that they feel good about it. Show this."

ck2 8 days ago 1 reply      
Valuable lessons to teach about backups and maybe not putting data into the cloud that can be local.

My 2012 project is going to be to quit gmail somehow and get back to imap with local storage.

Why not buy the kid his own domain name and teach him how to set it up and use a local email program (Thunderbird?)

neworbit 8 days ago 1 reply      
Yeah, Google's pretty much required to do this by US law though (the Children's Online Privacy Protection Act) - I'll leave the "think of the children" jokes to other folks.
w1ntermute 8 days ago 6 replies      
Who gives their real DOB when registering for a website? I've been using January 1st, 1975 as my birthday ever since I started using the internet.
corin_ 8 days ago 2 replies      
Correct me if I'm wrong, but the under 13 law (in US and some other places, or "policy" rather than law for Google internationally) is only without a guardian's permission, so if a letter was written on behalf of him, they would reactivate it?

Well, certainly that's the case with the law - as to Google policy, that's where you should correct me if I'm wrong.

Edit, on a side note, if the author is the poster here (or reads HN either way): I really like your writing. The story itself normally wouldn't make me care a huge amount (a short version is "a ten year old can't use a 13 and over service"), but I actually found myself really empathising and feeling upset on his behalf.

brudgers 7 days ago 0 replies      
I will agree that children under 13 are perfectly capable of using email safely with adult supervision.

However, the circumstances involved show why 13 years of age may be considered a reasonable minimum age for using Google's services, because the incident which sparked the account being locked was a 10 year old signing up for a social network designed with the assumption that its users would be capable of make sophisticated decisions regarding privacy and be reasonably able to detect ill intent or predatory behavior in an online environment.

While I can understand that the motives which led to the creation of the original email account were based on sound parenting and offered clear benefits for a child, it is hard to imagine sound rationales for giving a 10 year old unfettered access to a social network.

From email to social network there is a quantum leap in the level of sophistication required to safely navigate the service and I see Google's stance as not only justified but reasonable. The argument that it is ok to lie about one's age breaks pretty quickly - very few people are comfortable with 12 year old girls telling grown men they are 18.

rfrey 8 days ago 0 replies      
call your congressman if you feel the law is unjust

He probably doesn't want to make the long-distance call to his congressman, given that he's in the Netherlands.

sltkr 8 days ago 0 replies      
I hate to be that guy that links to xkcd comics, but here it goes anyway: http://xkcd.com/743/

Google is under no obligation to allow 13-year-olds on their service anyway, and I'm sure the age limit comes from legal restrictions, not just ageism on Google's part.

Fortunately, e-mail is already an open protocol, and you can get a working e-mail address anywhere. I understand the attraction of Gmail (it's free, user-friendly and offers a lot of storage) but it comes with some conditions; that's part of the deal.

petewailes 8 days ago 0 replies      
This also surely means that the Dear Sophie video shouldn't be possible, as the kid, having just been born is thus under 13.

Link for those who don't know what I'm on about: http://www.youtube.com/watch?v=R4vkVHijdQk

maeon3 8 days ago 1 reply      
You are exposing the kid to adult problems, and expecting an infant to behave in in a legal and socially acceptable manner. I'm not saying not to let the kid on the internet, I'm saying that this needs to be an educational experience for a kid, not a situation where we all complain about regrettable situations.

Why don't we let kids drive cars? All the kid has to do is lie on the form when taking the drivers test.

csomar 8 days ago 3 replies      
This is why I'm going to setup my own mail server. I don't want to wake up some days and find out that all my emails where deleted or locked because of any stupid or not stupid reason. Emails are quite important. They hold very important/confidential information. Your email is also the key to remember forgotten passwords, your conversations with clients, and many other things.

I have purchased the cheapest Linode VPS for this particular reason. I tried Live Mail (the Windows Application) with IMAP and it's really cool. The editor is also better than the Gmail one. I'll miss some features, but it's okay.

Seriously, if you don't want to get hurt, get a VPS or a dedicated. It's not expensive. You host your emails, websites, repositories and everything. You do scheduled backups to Amazon S3 and you are just fine.

I'm going to write about how awesome a dedicated server is, once I complete setting up my server and create my blog.

blahedo 7 days ago 0 replies      
I'm surprised at how many people in this thread are focusing on the "Google locked the account" as the bad part of this. The clear fuck-up on Google's part is rather that they didn't provide any avenue for Alex's parents to accept the contract on his behalf.

Nobody would be complaining (other than the usual light grumbling) if the lockout message had been something like this: "Parent permission required! Our records show that you are not yet 13, so we have blocked access to your account. To restore access: If you are at least 13, click here to send proof of that. If you are under 13, have a parent or guardian click here to link your account to theirs and accept the terms of service on your behalf."

defdac 8 days ago 0 replies      
This got me thinking. Are there an equivalent of streetsmart on the web - "websmart"? I can't see trace of it in this kids parents or the kid himself. Isn't this sort of useless restriction the first thing you learn to circumvent when you enter the web? It's a web page/service for god sake, not a life threatening mechanical contraption that might chop your head of if used improperly.
beaumartinez 8 days ago 1 reply      
Can he not request his mail over POP3 or IMAP and store it locally? Or is his login terminally locked?

What an appalling user experience"and on so many levels. It should have at least warned him that by setting his age he was in violation of the TOS.

pathik 8 days ago 3 replies      
What's the big deal? Google is required by law to do that. Enter a fake birth date.
flocial 7 days ago 0 replies      
I think a lot of people are missing a more important discussion. Should Google be allowed to cross-check a customer's data across all their services? Think about it. If you or your company uses Google Apps, you have Gmail, Youtube, adSense, Ad Mob, and accounts on a bunch of other services that got bought, they know what you search for, and now they even have an approximation of your social graph with Google+ (although it's not much different from your Google contacts).

Banks are regulated by laws that restrict certain arms of their businesses from collaborating too closely (particularly sharing financial information) and I don't think Google should be any different). Was it ok for Google to associate the information entered in a Google profile to shut down his child's email?

The problem with this system is that honest people are penalized and liars are not punished. Regardless of how this man handles the situation, that is not something I would like to face as a parent, to have my child punished for being honest and having to choose between social justice through lying (the child clearly has parent supervision and approval) and letting the child become embittered for losing a significant part of their digital identity (I'd recommend using offlineimap next time though).

thricedotted 7 days ago 0 replies      
I was 10 when COPPA first came into effect, but even before that I never put my actual age/birthday into accounts I registered, and if it was an email service that required an "actual" name from me, I always used some silly pseudonym. All this so I could play Scrabble, chess, and Battlefield with strangers on various websites, email my fourth grade teacher, make a Homestead chatroom, and tell the internet how much I loved SpongeBob SquarePants. Until I turned 13, I never batted an eyelash about lying about my age on the internet -- it was simply something I thought I was expected to do, not because I thought the government wanted to keep me off the internet (which they did, but my parents didn't, so whatever), but because if everybody at least pretended to be over 13, then those under 13 might be safer. My offline and online identities didn't merge until I was 17 or 18...at about the time Facebook started picking up speed.

Now, I don't think that's the right mentality to have, and it's based on false logic since being a teen still makes you prey on the internet, but it's the mentality that was imbued in me as a person who started using the internet pre-COPPA restrictions and, more importantly, pre-Facebook -- in an age when people weren't EXPECTED to have their offline identities connected to their online ones. Especially children.

His parents obviously knew about COPPA restrictions due to the YouTube account business, although I'm still confused as to why he wasn't asked for his age/birthdate on the Gmail registration page. No, their son shouldn't have put his age into Google+, especially if he already know that he couldn't use it to create a YouTube account; yes, Google should at least allow data export for the account (although they are by no means obligated to) and/or provide a streamlined process for parents to authorize the accounts of any users under 13. I remember GameFAQs reacted to COPPA by locking the account of any user under 13 until their 13th birthday -- this would be more reasonable to me, but it sounds like the personal data storage issue gets in the way of that.

Anyway, to me, the more interesting thing is that this post made me realize that I came "of age" (i.e., reached a point where I would be considered something of an adult rather than a complete child) at the same time the internet identity paradigm shifted from relative anonymity and "alter egos" to something much more closely interconnected to a person's real life. And so I wonder: if Alex had been born in 1991 rather than 2001, would this have happened with the theoretical Hotmail account he might have had? No, I think, because once upon a time, it was pretty much expected that a person would not be who they said they were on the internet -- and that was absolutely fine. And even moreso, back in the days when you COULD be a child on the internet, I don't think most children wanted to be known AS CHILDREN. Because seriously, who the heck wants to play Scrabble with an 8-year-old kid?

So, I guess as a kid who grew up before social networking became big, I still think kids are better off lying about their ages anyway. Those who know them in real life will understand that they're circumventing COPPA, and those who don't will possibly be less prone to being creepy/condescending/what-have-you. While I'm sure that this can be interpreted as victim blaming and everybody should have a right to feel safe on the internet while using their true identity, COPPA serves as something as an arbitrary age of consent, since 10-year-olds could unwittingly provide information that gets them kidnapped, just as 15-year-olds can unwittingly make babies. But if you're a 10-year-old who's mature enough to be conscious about privacy, or a 15-year-old who's mature enough to know about safe sex and birth control, then have at it, I say. The system is there to protect, but if you're not in need of the system's protection, then go ahead and circumvent it.

tldr, sorry your son cried, but it would have been easy enough to prevent, and pretty much the expected thing to do during the pre-social networking era.

Joakal 8 days ago 1 reply      
Puzzle Pirates handles this better by freezing the game account until the user reaches the estimate legal age.

Avoids COPPA hassles and issues with deletion.

SMrF 8 days ago 0 replies      
It boggles the mind that this was actually implemented. Some poor schmuck had to sit there and write the code to delete little kid's emails.
raganesh 7 days ago 0 replies      
Google recently ran the "Dear Sophie" commercial. The core theme of the commercial is against Google's ToS.

TechCrunch article on the same along with Google's BS response: http://techcrunch.com/2011/05/09/attention-dear-sophie-inspi...

scotty79 8 days ago 0 replies      
He forgot to teach his kid important lesson.

On the internet you can and should lie, cheat and steal, just don't harm real people.

motters 7 days ago 0 replies      
Well, when you live inside of a walled garden the proprietor can kick you, or your son, off the grass for any ephemeral or arbitrary reason they happen to have just thought of.
willvarfar 8 days ago 1 reply      
I hope the googlers who browse here will be able to sort out a special mail-log as a parting gift
chrisbuc 8 days ago 1 reply      
Interestingly, I've just taken a look at the gmail signup process, and the birthdate field appears when I select location "US" but not when you select "UK"

I'm sure I remember seeing an google advert recently (in the UK) where a father sends emails to his child over several years for the child to receive when they're old enough to use email - and I'm sure the child's email was a gmail account (I may be mistaken, though).

TorKlingberg 7 days ago 0 replies      
A scary thing is, if I signed up for Google+ and accidentally chose 2000 as my birth year, my Google account would have been locked. That includes Gmail, Google Apps, Google Code and probably Android. I guess making phone calls would still work, but who knows in a future when we all use IP telephony.
savramescu 8 days ago 1 reply      
This is most likely an automated trigger that blocked & scheduled for deletion that account. Even for a company as big as Google it's impossible to have these type of things reviewed by humans. What I do hope is that they'll create a channel for complaints if the user should want to.
What I don't understand is the way the parent behaves. He knows he's in the wrong and he still feels outraged because Google blocked the e-mail. Even though nobody reads the ToS it doesn't mean that they are moot. Google didn't make his son cry, his father did.
RyanKearney 7 days ago 1 reply      
ABC Liquor made my son cry when they denied him the sale of alcohol at the age of 8.

No, seriously, there's an age limit that he agreed to when he signed up.

stallker 8 days ago 1 reply      
Al giorno d'oggi i servizi di hosting costano veramente poco, così se qualcuno mi chiede di consigliargli un buon servizio di posta elettronica (gmail, hotmail, ...) io consiglio di registrarsi un dominio e di attivarsi le proprie caselle di posta, gestendole in quasi completa libertà, invece di sottostare ai capricci delle aziende 'che non vogliono essere il male'.
Mi ricordo ancora oggi del mio account @mac.com che doveva restare gratuito per sempre... e poi per potere accedere mi chiesero di pagare (e ancora peggio di possedere una carta di credito... ai tempi le prepagate non esistevano ancora).
Scusate se scrivo in italiano... se in qualche modo questo commento può essere utile (e cioè se vedrò un paio di punti assegnati) cercherò di tradurlo al meglio :)

edit: thanks to Vivtek for translation :)

SoftwareMaven 7 days ago 0 replies      
I wonder if Google was headquartered in Utah, where the number of engineers with kids would undoubtably be MUCH higher, if this would be a solved problem already. The law certainly has ways of letting under 13 onto the web, just ask Disney.
michaelschade 7 days ago 0 replies      
What would be really awesome of Google to do then is, if they do lock an account out due to an age-based TOS violation, still provide access to Google Takeout (and add Gmail to the supported services list) so the kid could at least easily get his data back.

IANAL, so I don't know if he technically would not be allowed to access Google Takeout either via the TOS, but if Google's lawyers could incorporate an exception of some sort for age-based violations, then this would at least be a super nice thing for them to do.

Poiesis 8 days ago 0 replies      
Is it a TOS violation for someone else to use your account? Adult signs up, kid uses account. Seemingly all perfectly legal, right?
tommi 8 days ago 0 replies      
It's a sensational story about the required 13 years of age to use the services.
dkarl 7 days ago 0 replies      
Sheesh, teach him about appropriate times to lie, already. You shouldn't tell anyone on the internet you're under eighteen unless you're signing up for summer camp.
dschobel 8 days ago 0 replies      
Great headline, total non-story. It'll be interesting to see how high this one goes on HN...
dev1n 5 days ago 0 replies      
if lulz security ever takes down another organization please let it be google. They need to learn that taking people's data is not something individuals will take lightly, nor should it be included in a bloody ToS. Nor should there be any reason why the boy's parents couldn't sign off on the contract as his legal guardians on the internet, as they are in real life. Google does not need to keep a 10 year old's email's to his grandparents because of a ToS breach. big impersonal corporations FTL.
tobylane 8 days ago 0 replies      
I was expecting that the child searched some odd word combination that is some horrible (yet brilliant) internet meme like rule 34 or jailbait. This is comparatively boring, COPPA faxes?
woodall 8 days ago 0 replies      
Just a suggestion, pretty sure it won't work, but has the author tried downloading the messages using IMAP or POP?

Other than that, it really does suck but it's not a quick or easy fix.

dholowiski 8 days ago 1 reply      
Should have gotten him his own domain name (through someone other than google) and used backupify to back up his email. Then when google decides to shut you down, you still own your identity, and your data. Actually this applies for everybody, under or over 13.
dendory 7 days ago 0 replies      
He could take that as a challenge and learn to buy his own domain, build his own site, install his own webmail system. That way he will never have to worry about a cloud service shutting him down.
wnoise 7 days ago 0 replies      
Minors: the last minority it's still okay (and legally mandated) to discriminate against.
metaprinter 8 days ago 0 replies      
On the internet, I was born in 1901.
coffie6423 7 days ago 0 replies      
I have been playing with computers ever since I remember. My first CPU was 8 bit. At that point I was 7. I have not stopped my obsession with it. In the meantime, before I reached 18, I had disregarded laws that will not allow me to access sites.

I have not paid much attention to these laws. Thinking back, though, I think I should not have been spending too much time playing around on computers, but enjoying playing outside.

VladRussian 7 days ago 0 replies      
this is one of the reasons you never enter real data into online services
yawniek 7 days ago 0 replies      
backups, backups,backups...

he could start writing the book:

learn backups the hard way

jpr 7 days ago 0 replies      
Yay, let's link every service ever together, what could possibly go wrong!
felipeoc 8 days ago 0 replies      
In Brazil every kid knows how to lie the date of birth in order to create an Orkut account.
Iv 7 days ago 0 replies      
Am I an asshole if my first thought was "that's what you get by putting your data in the cloud" ?
publicplanking 7 days ago 0 replies      
First World Problems
gaetanomarano 7 days ago 0 replies      
[ goopl.us ] millions people will cry due to Google
svankie 8 days ago 0 replies      
I think -and with all due respect to you, and your son-... this is extremely exaggerated.
dstein 8 days ago 0 replies      
Orwell would have called this situation getting "ungoogled".
goombastic 8 days ago 1 reply      
A minor is not likely to have immediate spending power, only influence. Google is in the business of making sellers meet buyers. No matter how hard we look at this, that's the fundamental nature of "the Google." It is probable that Google's segmentation of the market shows most minors as being engaged best via TV.

Most of us tend to forget that we are the product that Google is marketing.

jellicle 8 days ago 3 replies      

REGARDLESS of what you think you need to do to comply with COPPA or any other law in the United States or any other jurisdiction;

IF you have automated processes that cancel accounts and freeze data and do not offer at a minimum, an opportunity for the person affected to retrieve his/her data entrusted with you;

THEN, this will keep happening (Google-made-me-cry stories).

THEREFORE, in order to reduce the number of Google-made-me-cry stories, you should:

IMPLEMENT a system to allowed users adversely affected by your automated processes a way to RETRIEVE their data, all the time, no matter what, come hell or high water.

IN FACT the account_delete() function shouldn't even take an ARGUMENT about whether to allow data retrieval; account_delete() should have a non-overridable call to allow_account_export_for_thirty_days(), if you KNOW WHAT I MEAN, which I nearly think that you DO.

BECAUSE this isn't rocket surgery.

AND BECAUSE we get upset if we lose our data. We become WROTH. You wouldn't like us when we are WROTH.

IT is the LEAST you could do. Seriously, it's the minimum. The absolute least. You could do more, if you wanted to. But this is the least.

SINCERELY, The Internet.

Nobody Understands REST or HTTP steveklabnik.com
513 points by dermatthias  8 days ago   133 comments top 30
bradgessler 8 days ago 7 replies      
The biggest problem with today's REST implementations is that they're essentially a database serialization layer. Consider how a RESTful Rails model is typically represented as:

book: {
name:"To Kill a Mocking Bird",

How do you get more info on the author if you only have this piece of information? Rails/ActiveResource guesses through convention: "/authors/2", but that might not be the case, which makes this approach very brittle.

A better more "RESTful" approach might be:

book: {
name:"To Kill a Mocking Bird",
author: {

The REST client would then be able to traverse the representation without making guesses at the URL, and if the end-point of '/authors:id' changes for whatever reason, the href would be updated accordingly.

Pagination/large data-sets could be solved as well:

books: [
name:"To Kill a Mocking Bird",
author: {
rel: {
prev: "/books?page=1",

... and a bajillion other common RESTful API problems through better convention.

I'd agree with the author that REST is misunderstood, but my opinion is that its misunderstood on the grounds that today's "REST" implementations are lame database serializations. The web has been doing this since the <a href/> tag was conceived, but for some reason, modern REST implementations left this out.

rkalla 8 days ago 3 replies      
I thought I finally had REST figured out until I read this.

Does anyone else see a diminishing return on pedantically following the REST-prescribed design and actually creating an API that people are familiar with out of the gate? I feel like if I followed this article to the T in my current design, anyone trying to integrate with it would spend so much time reading my API documentation just to figure out why they weren't getting an XML reply that it would stop being productive.

I am working on an API for imgscalr right now and I think I have it about 80% RESTful at the moment -- the parts I'm not doing is paying any attention to the headers either coming or going between client or server.

I'm using the more recent "classic" /path/object.{format}?arguments format that I have seen folks like Wordnik and Vimeo use.

It may not be purely RESTful, but it is intuitive and I can't help but think: "Remember 3-4 years ago when REST wasn't all the craze and no one knew what it was? The web still managed to function back then..."

I'm trying to mix some practicality in a bowl filled with "best practices" and come up with something that most people can stomach.

I hope I hit that mark, but we'll see. As far as I'm concerned I'm sticking with the versioned URLs because I find it more intuitive for endpoints that change, get renamed or are removed than slamming one inside of a mime type or header or even a query string param a la AWS.

wyuenho 8 days ago 3 replies      
I read the post and I have to say that he's got a nice flamebait title but totally avoided the thorny issues that people argue about. In fact, I'd like to be pointed to a solution for the following problems:

1. I'm an old Web programmer, and my introduction to the Web started with HTML, not HTTP. I don't just write APIs, I write Web apps. I find it difficult to explain to people what this means:

    <form action="/some/noun" method="POST">

If you are religiously RESTful, you probably think this is fine. But I'm a religious English reader. When I see the word "action", I think of a verb, not a noun. When I see the word "method", I think of "how", not "what". So when I look at the HTTP spec, all the HTTP "verb"s look to me like how-I-should-do-something, instead of what-to-do, and the resources (URLs) look to me like the what-to-do, instead of what-they-represent.

Small semantics issues I suppose, but here's another one:

2. HTTP is not a programming language, and yet it demands a (very) finite set of actions and an infinite set of objects to model the real world, where there are an infinite number of actions and objects. What I mean is, in Java or whatever OOP language, I can define classes to model objects and define methods in classes to model actions on objects, but I'm not sure if I can do it pragmatically in HTTP without getting yelled at.

3. HTTP statuses. Almost the same problem as the above. I have many different kinds of statuses, not all of them fit in the finite set of HTTP statuses, and they don't always provide the granularity I want. Can I return a non-standard status number? How would the clients behave? I have no idea.

4. Being RESTful means not being stateful. But you see, there's this thing called session and login cookies and many other tracking cookies that I have to take care of. Again, I don't just write APIs, I write Web apps. I would like to not do multiple handshake requests just because a paper says I should. I would also like to not get yelled at when I decide not to.

5. HTTP is RESTful, thus HTTP is REST. Please don't tell me HTTP is the best we can do. Can I have something more minimalist, extensible and powerful enough to model the real world?

A troubled Web dev.

jballanc 8 days ago 3 replies      
Very good read, and thorough. I particularly like the transaction example. It seems like a common idiom that trips people up with REST.

However, I do have a problem with REST that I've been dealing with lately. Specifically, the question of web-hooks. Many services today allow you to pass a URL that they will hit with a POST request whenever something happens. A good example is the GitHub post-receive hook (http://help.github.com/post-receive-hooks/). So, to be a good student of REST, I create an /update resource for the POST (similar to the /transaction example from the article). However, /updates might come in a variety of formats. Not just JSON vs XML, but GitHub vs Gitorious vs Beanstalk vs etc.

So, how do I handle these "formats". Presumably the "Accept" header is out of the question (unless the provider happened to know about MIME's vendor extensions and used them). So then is it acceptable to add a parameter? Use "/update?from=GitHub" for example? Or, is it appropriate to use an extra path element like "/update/GitHub", since the resource really is a "GitHub update", not just a vanilla "update"?

heyrhett 8 days ago 0 replies      
He's right, but older web developers might remember the alternative, which was having no design pattern at all.

Most web developers aren't going to read the computer science papers about REST, and how strictly you want to adhere to it, depends on you, and your development team. It's a design pattern, or a tool, but it's not a religion.

On that note, I've gone into several job interviews where they ask me to explain what REST is, and I always start with, "REST stands for Representational State Transfer...", at which point, I get the feeling that the interviewer wasn't aware of that, and I wind up telling them way more about REST than I think they wanted to know.

Sidnicious 8 days ago 5 replies      
I had a really interesting conversation about this with a coworker a few weeks ago. We were talking about URL design. I argued for URLs like this:


He argued for URLs like this (note the pluralization):


My case boiled down to, “A URL represents the path to a resource. You should be able to remove any number of parts from the end of a URL and be left with a different, meaningful URL. In the case of search, the terms are options that describe what you want returned by the search, not resources.”

His case boiled down to, “A URL is a sentence. You should be able to read a URL as English and get a good idea of what it represents. In the case of search, adding more path components adds words to the sentence to make the search more specific.”

He pointed out (paraphrasing) that URLs are a language " and languages evolve. URLs as paths better embodies the RFC, but a new style of URL might be more meaningful on today's (and tomorrow's) web.

glenjamin 8 days ago 6 replies      
Is there any way to make the browser do an Accept: application/csv header on a hyperlink?

I'm pretty sure users like their "Download as CSV" links, which I've generally done as /normal/resource/url(.csv)

While this post sets out the ideals, I think there are some cases where for usability, you have to do something less than ideal.

comex 8 days ago 1 reply      
Some of this feels like trying too hard to adhere to HTTP. For example,

> Accept: application/vnd.steveklabnik-v2+json

This declaration loses information, because it no longer contains the MIME type for JSON in a standardized format. Assuming the server responds with the same string for Content-Type, any application that does not know specifically about this API can no longer recognize that it's JSON and, e.g., pretty-print it for a user, as I haven't seen done for JSON but is regularly done for XML by browsers.

On the other hand, the original suggestion:

> Accept: application/json

works in theory, but in practice makes it more difficult to test the API in a browser. This is not the end of the world, but there does not seem to be any real benefit in using Accept. I cannot think of any practical situation where a tool can use the standardized header for an advantage...

lazylland 8 days ago 0 replies      
Here's something I've observed:

i) most successful "RESTful" APIs don't really follow all the REST principles (e.g Flickr, Amazon, Dropbox). My thumb rule is this: If an API does not start from a "mother" URI that gives you the most updated list of resources that can then be requested by the application, it is not really HATEOAS.

ii) a purely resource-oriented view of your entire API space shoehorns you into doing really strange things to keep REST "purity"

So my conclusion is that using an architecture/concept originally intended for humans navigating hypermedia documents may not be a natural fit for parts of your API that cannot be modeled as such. See the Dropbox REST API documentation (http://www.dropbox.com/developers/docs#api-specification) (" Section: Deviations From Standard REST Style") to see an example of the pragmatic decisions taken.

rubyrescue 8 days ago 2 replies      
good article but...he says version numbers in the url are bad but doesn't say why. using accept headers for versioning is a hassle for every client and makes browser based testing much more difficult. also a v1 user really might not be the same as a v2 user so they shouldn't be the same resource.
strmpnk 8 days ago 1 reply      
I've personally given up trying to save the term REST. It was hijacked and will never recover completely at this point. What I've been looking for is a good alternative name. Sometimes I'll write out representational state transfer which is clever enough to get past most REST pretenders but I have yet to find something short.
maurycy 8 days ago 0 replies      
A very good and comprehensive writing.

One thing that I cannot find mentioned neither in the article nor in comments, is the confusion related to the idea of state.

While REST is, by definition, stateless, it merely describes the session, not the manipulated data. There's no way to avoid, at least implicit, object's state. For example, if user's password is not empty, it means that the user already set the password.

More comprehensively, with /users/1/edit, or whatever, it is frequently expected to get a different validation error, depending on the flow, such as a paid account might require more billing related details than one without email confirmed.

Of course, it is a nightmare to maintain such matters implicitly. That's why Ruby on Rails plugins like acts_as_machine, and similar, come handy. They do provide an explicit description of the object's behaviour, easy to transform into documentation, depending on the current state.

The idea shows its full potential with multipage forms. Each step of the form might be described with a different state, stored in the state attribute, leaving the controller RESTful, and the model's validations easy to understand.

A yet another confusion comes with too close database mapping. To stick with Ruby on Rails, there is nothing preventing the developer from creating his own setters and getters, like def vattr=(); end; def vattrr(); end.

The framework passes the value of a virtual attribute, using params, to #update_attribute, and other methods, the same way it does for regular attributes created automatically from the database's schema.

Very frequently such attribute provides a much cleaner way to represent the model, rendering either the HTML or the API much more easier to write or understand.

archgoon 8 days ago 2 replies      
I don't think that I can fully agree with the idea that a news article written in English is not different content from the German version.
palves 8 days ago 1 reply      
While I generally agree with the principles underlined in the article, using the Accept-Language header is definitely not the right way to control internationalization.

Remember that one of the advantages of URLs is the ability to easily share them, however I'm not sure I'd be comfortable sharing content that could show up translated to some recipients, based on the language of their browser/application/computer. For example, most CMS systems assume that the content can be completely different between languages (for the same article): you can have the full text in English and only a teaser in other languages.

Maybe not a pure REST approach but using '/en','/pt','/fr' in the URL has proven to be much easier and safer, from my experience.

ericflo 8 days ago 2 replies      
The problem with posts like these is that they say things like "THIS IS BAD!!!!!1" without saying why.
wanderr 8 days ago 0 replies      
If nobody understands REST, and as other articles have claimed, nobody does it right, then why do we keep trying to use it?
Switch to something simple that everyone can understand like JSON-RPC and quit worrying about pedantry.
extension 7 days ago 0 replies      
You can't satisfy the HATEOAS constraint by simply returning URLs in the JSON response from your API. The structure of the data is still tightly coupled to your own application, and so must be any client that can make use of it.

It is essential that RESTful applications be able to evolve independently from the client. To allow this, they must use forms of hypermedia generic enough to serve as the engine for all present and future versions of the application. If the client has any code specific to your app, then your app is not RESTful in any scope beyond its own.

I'm not convinced that the whole resource vs action thing is all that important to REST. It's an ideal that has been largely ignored in practice and the web has been quite successful without it. Contrast this with HATEOAS which has been the unavoidable reality of the web since day one.

decklin 8 days ago 1 reply      
I don't understand the point of "uri":"/transactions/1". Isn't the new resource's URI already part of the response (in the Location: header)? It's sort of like saying GET /posts/show/1 vs. GET /posts/1.
clintjhill 8 days ago 1 reply      
Content Negotiation is a critical part of REST APIs and it's my observation that most simply ignore or default to JSON in all cases. Good REST APIs allow the client to "choose" the mime type. Without this part of REST - you have no "representational".

On that topic, to rely on an 'Accept' header is pretty risky. That presumes the client will always have control over the headers. It is in my opinion always wiser to make the API determine mime type by extension (.html, .xml, .json etc).

binarymax 8 days ago 1 reply      
This is a great article. One challenge I am facing now is both building a RESTful API, along with a UI that uses the API. The biggest question I have is the use of shebangs in urls with the ajaxy app. We must support IE so pushState is out, but shebang just seems like a hack. I think at this point I have no choice but to implement shebang but I wonder if there are any viable alternatives?
thedebuggr 7 days ago 0 replies      
Excellent article... We followed all of these Rest principals when we designed apis for HP cloud print (i think it will soon become public)..except

1) Representing all resources with noun - We had a tough time representing all resources with Noun. One of our APIs is
Post on \PrintJobs\ - creates a new print job

But printing can only start when all the data (content to be printed) is uploaded on the server. So client needed an API to tell the server that it can start printing..something like this..


one way we thought to avoid this was to have a represent it job state and client can change them like this..

Put : <job>

But there are cons

1. These were not actually states, these were actions(verbs)..because state would be initialized, printing etc..
so if client does Get after making it Put..it will get "printing" not "Print".

So we were tangling with keeping semantics clear and making it easy at the same time. Hence we went with these resources. Do you think it could modeled better?

2) When we think of versioning, we always assume that only the representation can be changed..why not behavior? Take for e.g. if api implementation changes but not representation..clients may be dependent upon the implementation (i know this is bad! since implementation details are getting leaked out from the API)


ams6110 8 days ago 0 replies      
I've been working with/learning about Webmachine lately. A really nice framework for building REST APIs.
mberning 8 days ago 1 reply      
I really dislike creating resources to represent transient actions. Not a big deal in the case of a bank transaction as that is something you could easily imagine needing to be stored for later retrieval. A different example is relating one social network friend to another or searching for specific people on the site. Those are things that, to me, are much more borderline and I would err on the side of not representing them as resources.
mainguy 8 days ago 1 reply      
I've had this discussion about hundred times now. REST "standards" are as important and significant as brace indentation "standards". A big problem with REST is that it is NOT a canonical (or even important) standard, but rather a useful pattern than can be used to make things exposed via HTTP more intuitive. The evil side effect of this is that a metric crapton of architects/engineers are wasting fifty bajillion programming-hours arguing irrelevant details about who's doing it "right" instead of building useful software. You cannot do REST "wrong" and more than you can do software "wrong"... Folks who argue about the "right" way of doing software are usually "wrong" because they are focused on writing software instead of solving problems.

We need to keep our priorities straight.

latch 8 days ago 0 replies      
It really is a good read, I need to digest it, but my initial reaction is that some of this isn't pragmatic. Versions in URLs makes for dead-simple routing in any framework. Also, many APIs are used in a way where you know consumers will create a resource without requesting it (or at least, not within the same session). So why return any location information (whether in a header or in the body)?
brendoncrawford 8 days ago 1 reply      
The title seems rather sensational. Is that really necessary?
ghostwords 7 days ago 0 replies      
Ironic that the author's homepage (http://steveklabnik.com/) is a confusing pretend console that takes several seconds (on every visit!) to reveal useful information.
dreamdu5t 8 days ago 0 replies      
REST is great and all, but browsers don't allow it. The only thing you can do is GET, nothing else is supported cross-domain.

No matter your thoughts on REST, it's dead. It's never happening. This argument has gone nowhere for 10 years.

Very few if any websites conform to the spec, and browsers have made it impossible to do so.

Stormbringer 8 days ago 2 replies      
Rest was a really big deal in the Java web-app world for about a year...

It was back when early versions of Struts were 'the designated alternative', and in the bad old days of J2EE and JAX-RPC.

Then Java EE 5 came out, which solved large chunks of the pain that J2EE inflicted, JAX-RPC got replaced with the infinitely better JAX-WS and there was a new breed of web frameworks as well, which blew Struts out of the water.

About that time REST essentially became 'yesterdays technology, solving yesterdays problems'.

I find it interesting that the guy banging the REST drum is a Ruby fan. Has REST always been part of Rails? Or is it something that has crept in over the last couple of years?

Is there anything genuinely new here, or is it the same old story, some dude clinging desperately to an obsolete technology?

iandanforth 8 days ago 2 replies      
This is an excellent example of a spec being deemed more important than a useable system.

Frankly, I don't give a damn about the REST spec, and neither should you. When I see an API I want it to be simple and clear.


Hey, it's a verb and I've got a pretty good idea of what I'm going to get back


Now I really know what I'm getting. The simplicity and usability of this structure absolutely trumps a spec compliant call that involves request headers and nouns.

If you're building a system that requires having read someones dissertation, you're not doing us any favors. Especially when it comes to an API. Keep it simple, stupid.

Remember that your understanding of what a URL 'is' or 'should be' comes from a great deal of technical experience. If you're not working day in and day out to make powerful tools accessible to people WITHOUT such experience, please stop programming. Really, get out of the pool. Whatever awesome knowledge you need to make a system work internally is invaluable, but your interfaces should make the world a simpler, more magical place.

User testing in the wild: he has never used a computer jboriss.wordpress.com
496 points by tbassetto  5 days ago   199 comments top 32
spiralganglion 5 days ago 4 replies      
The company I work for produces software for users with zero computer literacy. We're a very small outfit serving a very specific niche. We produce new and highly specialized/distinct programs at a rate of about one or two per week. Our users are often subjected to very tight time requirements, so we can't expect them to develop familiarity over a gradual learning curve. They must immediately know what to do, and our software must support them, computer skills be damned.

Almost ironically, I struggle to hold our team to our own UI best practices; to ensure our interfaces and content are approachable. We're always crushed by deadlines " the time it takes to be sure we haven't made any literacy assumptions is time we don't have. It's my job to make developing this sort of UI/UX absolutely painless. Unfortunately, I get almost no opportunities to actually test with our zero-experience users. This article was a wonderful read, and gave me a very specific type of knowing satisfaction. It's a rare opportunity indeed.

As for those best practices, here are a few examples:

• Emphasize actionable items with animations, and textual and pictorial descriptions of the actions that must be taken. Instead of saying "right click", we might show a picture of the mouse with the right button highlighted, with a "clicking" animation indicating the action to be performed.

• Use iconography and terminology derived from the subject matter or real-world objects, instead of common "abstract" UI elements. For instance, a light switch (indicated as actionable, of course) instead of a check box.

• Simplify user interactions and interfaces to the absolute minimum. Reduce the actions the user must perform in order to be satisfied. Reduce the number of options presented to the user at any one time.

In many ways, designing an interface for a zero-experience user is like choosing a programming language: You want the language that lets you describe exactly the program you need to make in as few instructions as possible. Likewise, you want an interface that lets your users describe exactly the action they need the program to perform in as few interactions as possible.

ajays 5 days ago 5 replies      
Sometimes I think technology just leaves people behind, with no hope of catching up.

About 10 years ago, one weekend I drove up to an ATM in Upstate NY, and found an elderly couple standing there, looking confused. After a minute, I stopped the car and got out. Both were well-dressed (probably coming home from church); the gentleman was about 90; his wife was a similar age.

"Is everything OK?" I asked.

"Could you help us?", she said (he was too proud to ask for help, I guess).

"Sure! What can I do for you?" I replied.

"You see, the bank sent us this card and said we should be using it, instead of going to the teller inside. But we don't know what to do with it."

Wow. I was shocked. The bank (HSBC) had not even told them how to use the card. And I was surprised that there existed people who didn't know how to use an ATM in this country!

So I showed them where to insert the card; told him to enter his PIN (while I looked away so I wouldn't see it). I advised them about the security implications; and how to always collect the card after you're done (those ATMs kept the card for the duration, unlike newer ones where you just swipe).

I was left with a sad feeling after that, which I can still remember. If I'm ever designing software for general use, I always think about that couple and try to see it from their eyes.

melvinram 5 days ago 1 reply      
Very interesting experience. The real issue is deciding on what assumptions you want to make about your audience. Even people who are not completely new to computers may act like people who have never used one before so making as few assumptions as possible is probably best unless you have a strong degree of confidence.

A few weeks ago, I visited a cousin who had recently bought a new fridge with "high-tech" water dispenser. I'm a big water drinker. When I went to the fridge to get some cold water, I felt really stupid for not knowing how to work a freaken water dispenser. It had a ton of buttons the real button to make it give you water looked like it was part of the door, not a press-able thing. The design could have been done better.

How many times have you been at someone's house and needed to use their microwave and it takes more time figuring out how to make the thing go than to actually heat the food? And even if you've used the exact same microwave 4 weeks ago, it still feels brand new and you feel just as lost.

Whether it's directions to a location or how to use an app/device, it may not stick.

Designing for computer illiterates but decently intelligent people seems like a worthy ideal to strive for. You may never get to a point where someone brand new to computers will feel comfortable with your app but keeping it in mind might help guide us into making small tweaks that can add up a big difference.

One example: With WordPress, you can add a search element to your site/blog. The default language of the label is "To search, type and hit enter." This is probably more clear than "Search this site" or plain "Search" but maybe not as clear as "To search, click here, type and hit enter."

Yes, it's more verbose. No, I'm not suggesting that WP should change the default text.

You have to strike a balance between being clear and not boring your audience by telling them what they already know but when in doubt, err on the side of clarity.

pradocchia 4 days ago 1 reply      
Joe knew nothing about computers, so he focused on the only item he recognized: text. Icons, buttons, and interface elements Joe ignored completely

Reminds me of my mother. She had a stand-alone word processor back in the day, w/ keyboard, monochrome screen, floppy drive, and daisy wheel. All commands were performed through the keyboard, with prompts on the bottom two lines of the screen, ala emacs.

She was real pro w/ this thing. She taught herself how to use it, and never needed any help from me.

Fast forward to her first personal computer, w/ mouse and icons, and she didn't get it. 10 years later and she still doesn't get it. In fact, it is a major source of anxiety. She doesn't explore the interface because she might get lost and won't be able find her way back to where she was. What do all those icons do? Who knows. She follows a very narrow course through the 4 or 5 tasks that she's familiar with, and that's it. She's almost superstitious about it.

None of this would be terribly remarkable if I didn't know she'd been such an expert user of the old standalone word processor. But she was. And whatever it was about the old machine that worked, it didn't carry over to the new age of mice & GUIs.

[for a similar perspective, see the discussion over at metafilter: http://www.metafilter.com/105309/You-have-to-click-on-the-te...]

ck2 5 days ago 5 replies      
A person in 2011 who has never used a computer has far more serious issues (or "differences") to the way they approach life than you can solve by redesigning menus and layout.

This would be like approaching someone in their teens who still cannot read and trying to design a book you are writing to be more accessible to them instead of your general readership.

It's simply a matter of hand-on, over time. I've converted a few AOL users over the years to Firefox, etc. and there is absolutely nothing you can do to improve their experience beyond a very basic level. They just have to use it for a year and go through their own trial-and-error of learning.

jamesgeck0 5 days ago 2 replies      
My grandfather bought a computer in 2000 to replace his ancient word processor. When I visited him, he said he'd been using it a lot with Microsoft Works. But I couldn't find any documents on the hard drive. It was only when I found a huge drawer full of used floppies and remembered what the "save" button looked like that comprehension dawned...
binarymax 5 days ago 5 replies      
She should be commended for her patience and willingness to help this man. Several years ago I spent about 2 hours helping an elderly woman do pretty much the same thing, who did not get nearly this far and she gave up. The concept of a mouse moving the cursor on the screen was beyond her comprehension, yet otherwise she was a perfectly intelligent, well-read woman. It may have been my fault for not explaining it properly, but it is certainly true that modern interface design obviously takes for granted that we already know the basics. Who would have thought that 'help' offers none? And 'suggested sites' gives some bizarre privacy warning?

I wonder, however, how Joe would have fared with an iPad?

Edit: oops on the gender.

Joakal 5 days ago 1 reply      
Funny thing about Firefox 4 release is that it automatically hides menu bar which I thought was stupid. That's right, even help is hidden unless the user presses alt or right clicks to enable menu (Even as experienced as I was, it took time for me to understand why I couldn't find it).

However, if the menu bar was enabled, the user could go Help->Firefox Help and just at the bottom of screen without scrolling is 'Getting started with Firefox'.

Unfortunately the first video talks about bookmarking facebook, doing random searches, keeps talking about how awesome Firefox is and all fast paced and not slow at all.

deadmansshoes 5 days ago 1 reply      
In these cases I've often thought it would be useful to have an "interactive" character guiding you around the application, such as a dog, or maybe a paperclip for a word-processing program.
hnsmurf 5 days ago 3 replies      
This is interesting but entirely useless. Though he's never used a computer, someone already has used this one and changed some things about it.

#1 IE defaults to a blank page in what appears to be private browsing mode, rather than Bing as it does on any new windows install. He's somehow running IE on a Mac which may be why.

#2. Someone checked out San Francisco Yelp on Chrome and as a result there's a link for it.

#3. "We shouldn't assume that new users will inquisitively try and discover how new software works by clicking buttons and trying things out." That's probably misleading for 99.99999% of your audience. Yeah, the one adult on the planet who never used a computer before might be scared to death to play around with it, but you shouldn't design with that in mind (unless you're somehow aiming a product at them, in which case good luck with that sir). Put a 7 year old on a computer and he'll figure out how to find a restaurant in 10 minutes.

aorshan 4 days ago 1 reply      
I used to sell computers at Best Buy in an area that was predominantly elderly, and let me say it is quite a difficult procedure to walk someone through using a computer. Every day someone would come in that said they wanted a computer but had never used one before. I would spend hours showing people how to do things, writing up lists on how each task is performed, etc. It can be very challenging.

I found the best way to help these people is just to put them in front of a computer and walk them through the basics. Also metaphors are huge. It is always easier to understand something when you can relate to it. For example: My documents is like your filing cabinet. Everything is organized into folders so you can find where it is.

The most interesting thing was when the ipad came out. We were seeing people who barely knew what the internet was trying to buy and use one of these things. Try explaining 3G to someone who doesn't have a cell phone. Almost impossible. I remember one man who was so frustrated that he couldn't set up email that he announced that he would give $20 to the person who would do it for him.

kia 5 days ago 1 reply      
This reminds me of my first experience when I started to use Linux (SSH, terminal only) and Vim.
sjs 4 days ago 1 reply      
People generally say "time cures these problems" but I'm starting to wonder. Things change so rapidly, someone who is 60 now and is learning to use a mouse and keyboard might be utterly lost in 20-30 years with whatever advances have been made.

When I'm 60 in ~30 years maybe I'll be clinging to ancient things like notebooks and tablets because I know how to use them, and kids will point and laugh while they use the modern stuff.

lian 5 days ago 1 reply      
I agree with what I think Boriss' point is " that our interfaces are not natural. They require us to build a new system of patterns to match with encountered interfaces of a similar kind, in order to know what we're doing. Same is easily said of learning any new language, visual, written, or spoken.

But to suggest that iconography and buttons in general are unique to digital interfaces is inaccurate, and recounting one man's first interaction with a computer as "user testing of browsers" comes across as a sensational misrepresentation of what user testing is, and what education-by-interface should be.

Let's not show an entrenched English speaker Japanese and claim that it is the language's responsibility to immediately map to his mental model of English. Learning falls on a motivated student (which Joe, with self-proclaimed "no excuse[s]" for never using a computer, was not) matched with an expert evangelist like Jennifer Boriss, in the event of a total failure of comprehension.

sheffield 5 days ago 3 replies      
The world is full of people who have never used a computer. They are called children.
rythie 5 days ago 1 reply      
No search engine that I could find [Google, Bing, Duck Duck Go, Dopile, Ask - though the logo is close] specifically prompts you on how to use it. For example they could say "What are you looking for?" for new users.
pwhermanson 4 days ago 0 replies      
It seems to me that the question of the day is..what IS "intuition?" Most UI designers will create an interface that relies on typical design standards that any competent user would understand, such as home icons, menu bars, banners, footers, thumbnails etc. There are good reasons for this; namely because many interfaces target a market of experienced users.

Designing an "intuitive" interface true to the word is almost impossible. Experienced users can look at a new UI developed with standard design principles and navigate through it without frustration. But this is not called "intuition;" This is called past experience.

Now, rollover pop-up text that describes functionality may add a level of intuitiveness to a system. But why create a help menu for how to use the mouse or how to single click in a text field before you can type in it? Many of those users who aren't experienced are left behind only because it is usually not economical to market to them.

mnemonicsloth 5 days ago 4 replies      
Would you treat a customer this way?

During the interview Joe was "stressed," "taxed," "frustrated," and "confused." He was asked to try and fail to do things the author already knew he wouldn't be able to do. Repeatedly. The author was surprised that he would take failures personally, and described ending the interview as "cut[ting] Joe a break."

Really very generous, to cut Joe a break from the interview he volunteered for.

There is a serious lack of empathy on display in this post. Joe deserves an apology.

ThomPete 5 days ago 1 reply      
The problem is thinking that the metaphors we use are actually descriptive to outsiders.

There is no such thing as an intuitive interface that isn't learned.

I had the same encounter with my mom and although she had used a computer before the experience was just as crazy.


Here is an excerpt from the conversation.

Mavrik 5 days ago 18 replies      
Here I want to ask a question: did any of the HN users ever get helped by anything put into the "Help" menu in an application?
radarsat1 5 days ago 2 replies      
The funny thing is that as an "advanced" user I use the terminal all day long, but we assume the mouse cursor is easier for inexperienced users. But something about that old DOS prompt was not so bad: you just learn the commands, type them, and see the result. In a lot of ways it's a more straight-forward interaction than mousing around.
pseale 4 days ago 0 replies      
This sounds like how I helped my grandma with her Outlook/phone/digital photo woes. With some things (email) she was extremely successful; with others (digital photos, saving attached photos from emails) she remained lost forever.

She could have benefited from a dumbed-down interface for the things she struggled with. Picasa was as close as I could get as simple photo management, but she needed something even more seamless and simple.

It makes me wonder why there aren't more companies creating products like the Jitterbug ( http://www.greatcall.com/ )--for those of you unaware, the Jitterbug is a cellphone with very large buttons and a presumably easy-to-navigate menu system, with concierge operator service for remedial support tasks ("I need to check my voicemail").

Maybe we have tried making extremely simplified UIs for common computing tasks, and failed (Clippy/MS Bob)? Is there an extremely simple photo management app (or something on the Mac) that I'm unaware of?

ma2rten 5 days ago 0 replies      
I think there are two lessons to take away from this.

First, the mall can be a great place to do user testing, if you want to reach a broad audience. Except that I would imagine that you get more male participants, because they are waiting for their female partners more then the other way around.

Second, you need to test with your actual target audience. For Mozilla that is at least people who know how to use a computer to some degree.

athst 4 days ago 0 replies      
This reminds me of those Burger King "Whopper Virgins" commercials where they tested BK and McDonald's hamburgers in remote places where no one had ever heard of either restaurant before.

It's entertaining and an interesting experiment, but I'm not sure how much it can really teach us about design for 99% of people who will be using the product.

Zarathust 4 days ago 1 reply      
I remember the early days of my parents

"Click on the ok button"
"I don't see it (x5)"
"There is a gray rectangle with OK written on it, is that the OK button?"

"Double click on the icon... no click twice... yeah, like this but faster... faster... no slower than that..."

Really, its like when learning a new programming language, you just need a motivator. My mom learned it to build a genealogy tree and my dad now plays card games online.

Joakal 5 days ago 1 reply      
For some statistics: 2,095,006,005 or 30.2 % of the world are Internet users.


I couldn't find any statistics on computer use, so the number is likely higher.

xbryanx 4 days ago 0 replies      
I applaud the author for doing this sort of user testing. Instead of getting a focus group to come to you, bring your test to them. Besides the mall, you might have fun trying this out at your local museum as well.
arvinjoar 5 days ago 0 replies      
Reminds of finding a tribe that has never been in contact with other humans. The importance of the internet really becomes clear when reading about people who've never tried it.
Angostura 4 days ago 0 replies      
It strikes me that my parents could make an absolute mint volunteering for user testing.
godarderik 4 days ago 0 replies      
Reminds me of http://xkcd.com/627/
Tichy 5 days ago 0 replies      
Now I went looking for the "Nightly Help" item in my browser, but I guess it only applies if you have installed a nightly build.
httpitis 5 days ago 0 replies      
I have several projects atm and feel a bit stressed. In my experience, laughter will help in these situations and reading about Joe's first experience with IE really made my day:

Joe: “I don't know what anything means.”
(Joe reads the text on IE and clicks on “Suggested Sites”)

Me: “Why did you click on that?”

Joe: “I don't really know what to do, so I thought this would suggest something to me.”

(Joe reads a notification that there are no suggestions because the current site is private)

Joe: “I guess not.”


To clarify: I was laughing at our industry as a whole that expects users to be computer literate to the point where ppl like Joe have to struggle really hard to get even the most basic thing done.

How Running A Business Changes The Way You Think kalzumeus.com
465 points by JacobAldridge  3 days ago   98 comments top 24
staunch 3 days ago 2 replies      
I'm worried you've fallen out of one trap (salarymanhood) into another (highly paid consulting). I'm sure you're good at consulting and it's clear from the way you write that you're excited to finally get paid what you're worth for a change.

I'd just hate to see you wake up in a few years in a very similar situation as you were in as a salaryman.

It sounds like you're significantly increasing your cost of living: new apartment, getting married, treating money differently ("whats $2k when my comfort is on the line"), etc. If you're not careful you're going to need to consult full time just to get by. Good bye startup. No time for that. Your new wife quit her job six months ago and that new car isn't going to pay for itself.

My advice: put off the enjoyment of making real money and get back to investing time in AppointmentReminder or something else that will pay big scalable dividends.

That's what I'd say if we were having coffee :-)

patio11 3 days ago 5 replies      
As always, I'm happy to talk about it. I think I specifically owe jdietrich a shoutout for his comment here http://news.ycombinator.com/item?id=2667481 . I knew in the back of my head that I care about being happy. It was not obvious to me other people cared to read about that aspect of the business.

Back to our regularly scheduled tactics/strategy discussion next time.

JacobAldridge 3 days ago 0 replies      
Well we now have a better idea of the psychology behind 58,363+ Karma.

Patrick - as a business (not competent programming) guy who runs his own small business, and consults / coaches many much larger businesses, this was probably the article of yours I've had most empathy (and a thrill of excitement) reading. I mean, the HN-man-crush has been there for years, but I really received a lot of value feeling your feelings of suddenly being an international business consultant and being good at it. Even your writing style here seemed more ... feely, though that may have been me.

And if that empathy gives me any credibility to support a key piece, more people should add 50% (or more - one of my mentors told me recently to 2x + $150 my price) more often. You are almost certainly more experienced and confident than you think you are. Recognising that is paying massive dividends for me.

ChuckMcM 3 days ago 1 reply      
Fascinating story and great insights. I think you undervalue your introspection.

It raises an interesting question though, if you were in a class that graded on a curve, did you do just enough to get an A or did you always get enough to insure it would be an A minimum?

Then the harder aspect of that, did your getting an A ever result in someone else getting a B grade? If it did would that make getting the A 'better'?

The question relates to the 'game' aspect of success. At Google, for example, when I was there it had a lot of money and not a lot of real[1] projects. So a number of people used gamification as a means of defining success. Specifically they would seek out 'win' such as having their project grow at the expense of others, or create the maximum amount of change in the shortest amount of time, or any number of ways to create a scoring system and then to 'win' based on that scoring system.

The insight you had, and I came to later, was that if you're button is 'win' and you take away the obvious 'company gets "better"' scoring system, people invent their own.I concluded that one of the jobs of 'management' in that scenario, is to help define a scoring system that allows folks who are 'wired to win' be successful and not be destructive to those around them.

[1] 'real' in the sense that few projects would make money for the company or cause it to lose money, they existed primarily as science projects to keep the engineers busy.

kyro 3 days ago 1 reply      
This was great, Patrick.

I've been going through a hugely eye-opening period of my life where I'm learning lessons that your article echoes. The largest of those lessons are: A) Your main obligation is to serve yourself and to allow yourself to make decisions you are truly happy with, and B) Much more than "It's not about what you know, but who you know", I'm finding that it's really about "what you know about how to deal with people you don't know." And for me, not knowing about the latter prevented me from realizing the former, and your story about missing the Delta flight not only validated those points to me, but really hit home.

Additionally, I'm finding that the way I viewed my dealings in life and overall progression as a person was completely backwards: I would look at my past attempts, from social to professional, as a long string of failures that would only continue to stretch onward, both discouraging me and crushing my confidence. But in looking at my attempts as isolated, bunkered events, the spread of potential damage is significantly decreased, which has done quite a bit to boost my confidence in that I'm more willing to take that much more of a risk. If the bomb blows up, leave the bunker and move on to the next one with your newly acquired knowledge and experience. And no one really remembers that bomb exploding as the explosion was merely a psychological dramatization. I know you somewhat touched this point in a more business-negotiating context, but it's one that's had a universal effect on how I deal with others in any context.

Anyway, really nice writeup; I enjoyed it quite a bit! More articles like this one would definitely be appreciated.

GotToStartup 3 days ago 4 replies      
"I have since found that many, many people I respect likewise worry they're faking it. Anybody in my audience got the same issue?"

It's funny, when I started out in the professional programming world I had a ton of confidence. I felt unstoppable. Back then, I didn't know shit about programming but hey, how hard could it be. Then I started learning and slowly my confidence starting dwindling away. The more I learned, the less confident I became. I was humbled by the smart people I learned from. I realized how little I actually know. Now I'm noticing how big of an issue confidence has has become.

"I have found that actually showing confidence issues, on the other hand, does not do great things for one's business"

I've found that showing lack of confidence hurts in most areas of life. The less confidence I speak with, the less people take me seriously though. It's ridiculous. Now, whenever I speak with certainty & confidence, it feels like I'm faking it. It's a huge internal struggle and it's interesting to hear others perspectives on this.

justinph 3 days ago 6 replies      
I take great umbrage with his graph depicting teachers both as relatively high paid and not working that hard. He says he's been a teacher, but given the plot on the graph, I highly doubt it. It's way harder than you think, and unless you're a tenured professor at a university, teachers make shit.
Omnipresent 3 days ago 3 replies      
I've been coming to HN for months and months always dreaming of doing something on the side along with my megacorp job but I have not started on anything. If I get an Idea, I wonder about it for 2 to 3 days thinking about reasons why it won't work and forget about it. I think about at least opening my own small consulting company on the side but then think how would I get any clients. This has basically been going on for quite a lot of months. But I end up going home, sitting in bed and still contemplating things. For what its worth, I was happy before being bitten by the startup bug, I guess not knowing what things CAN be like is better than knowing what things CAN be like but not being able to do anything about it. Knowing that I need to change my attitude and finish things, reading this article made me fill and mail the registration for my LLC.
icey 3 days ago 1 reply      
This should be recommended reading for anyone suffering from self-doubt before making the leap into self-employment.
astrofinch 3 days ago 0 replies      
Does the median investment banker really make that much? I was under the impression that the mean investment banker income was high, but there was a large amount of skew due to high salaries of the folks at the top.

I was also under the impression that the job involved a soul-crushingly large workload...

gwern 3 days ago 0 replies      
> My friends also tell me that I'm almost a different man these days than even two years ago. The most striking quote to me, from my best friend: “You look… healthy.” Apparently the old day job was beating me down so thoroughly that I looked about as bad as I felt, and even on those days when I wasn't dog tired I walked with a bit of a stoop. These days, I even stand straighter. I think that is almost too convenient to be true, but hey, it's a story.

Could be testosterone; it's extremely sensitive to status changes, see the review "The Role of Testosterone in Social Interaction" (abstract: http://www.sciencedirect.com/science/article/pii/S1364661311... ; PDF: http://dl.dropbox.com/u/5317066/piis1364661311000787.pdf )

ignifero 3 days ago 0 replies      
Many things one can relate to in there. For example, I just realized I also like praise for vanity/insecurity reasons. That's also the reason to write this comment.

Confidence? You need to become a little macho to survive in business, but it's also addictive. Overconfidence is a double edged sword, it's good to keep the humility to yourself.

Whether having your own job/business can change you? I believe not, it just allows you to be 100% yourself, disinhibited, not trying to cover up the sharp edges of your character that you usually cannot display when you are a gear in a corporate machine. For me it was also sort of like going back to childhood.

And it's a lot of fun (but i think that's the endorphines from the sense of power you get).

Historically, excluding feudal and industrial/postindustrial europe people were a lot more entrepreneurial, they would either be farmers, cobblers, smiths; in general people were in charge of their art. Maybe they were also happier back then.

klbarry 3 days ago 1 reply      
This is an excellent article, and fascinating to read. However, 5/6 of the way down the page, a blue share bar appears on top that I cannot click out of. It is quite annoying.
mashmac2 3 days ago 0 replies      
A (humorous but) very engaging similar story: http://lifelessboring.com/less-boring-life-start-time/

Less facts, more stories, but another perspective on the 'be high status' concept.

waterside81 3 days ago 0 replies      
Fantastic read. People in general, but it seems developers particularly, greatly underestimate their worth and talents. A friend of mine was looking for work as a freelancer and asked me to what he should ask for by way of a rate. I asked him how much he'd be happy with, he replied "60". I said, "so ask for 100 and negotiate down if you must". He was blown away that someone would pay that much.
aklein 3 days ago 3 replies      
RE: Working harder is not correlated to more money

But what about working smarter? Sure, such a thing is harder to measure, but it's pretty much the only gauge when you're talking about meritocracy. Working harder, not smarter, is the make-work bias.

Luyt 3 days ago 2 replies      
There is a strange layout error on Patrick's site. When I reach the end of the article, suddenly some kind of overlay pops up, and makes the text unreadable. See http://www.michielovertoom.com/incoming/kalzumeus.png for a screenshot.
astrofinch 3 days ago 0 replies      
In three words: "Be high status".
vaksel 3 days ago 0 replies      
the confidence to charge more is very important.

if you know what you are providing is quality, you can charge for it and people will pay for it. Sure you'll get a bit more rejection...but those cheapskates wouldn't have appreciated your work anyways.

and hey if they say no, you can always go back a few weeks/months later, and tell them that you are running a discount

matthiasb 3 days ago 0 replies      
"Money is also the convenient method of keeping score for optimizing businesses, which feels like a game to me. I really enjoy winning games with complicated rules sets, especially by optimizing the heck out of play, because optimization is often as much fun as actually playing the game."

It reminds me a very inspiring talk by Seth Priebatsch called "A game layer on top of the world". I was at SXSW 2011, you can listen to it here: http://schedule.sxsw.com/events/event_IAP000325

kenjackson 3 days ago 0 replies      
Good article, but have serious reservations as to if he knows the full extent of being a paperboy. That's a surprisingly hard job.
mcmc 2 days ago 0 replies      
Your skills don't just scale down to asking out a date or going to city hall. They can scale up to $ billion mergers

Maybe the world would be a better place if you had influence over that kind of semi-arbitrary wealth transfer as opposed to whoever has it now.

Create 3 days ago 0 replies      
These are old basic ideas[1] on pursuing happiness, in a slightly rehashed way, with the ask culture (how does that work in Japan?) thrown in with some randian self determinism.

[1] Schopenhauer http://www.gutenberg.org/ebooks/10741

Tichy 3 days ago 1 reply      
Thank you for the inspiring write-up!

Btw, is it intentional that the blog suggests sharing the link on Delicious? Is Delicious still a secret weapon perhaps?

XKCD's Randall Munroe on Google+ requiring your gender to be public google.com
459 points by macrael  4 days ago   283 comments top 40
cletus 4 days ago 8 replies      
I have mixed feelings about this. I'm a guy so obviously don't have the experience (any) women have but I will say this.

Three things will essentially give away your gender:

1. Your stated gender;

2. Your name (with a high degree of accuracy in most cultures that I'm aware of); and

3. Your photos.

So for (1) to have any impact, (2) and (3) must be hidden. Since all profiles are public, I'm not sure you can hide (2).

Give all that, I'm not sure I understand the rationale for hiding gender but, like I said, I don't have the experience.

That all being said, I really don't see the issue with hiding it.

I strongly encourage people who feel strongly about it to be vocal about it and ask for either the ability to have it not stated or to hide it (like you can with things like the number of "followers" you have).

EDIT: on the accuracy of gender prediction from Facebook profiles:


I realize this isn't exactly the issue here. Most people concerned with harassment probably aren't worried about computer models that can predict their gender based on their name, information from their profile or their writing style. I imagine harassment is far less systematic than that.

EDIT2: I would contend that a bigger factor in whether someone gets harassed is how they present their profile rather than a single field.

For example, if your profile is public, has pictures of how partying and getting drunk, has many messages about what a party animal you are and/or your dating life, some will see that (rightly or wrongly) as an invitation for attention (good or bad).

I would be very interested to hear from people who have been harassed or bullied online or have been the victims of such crimes in the real world and hear how they use social networks and how they present themselves online. I suspect they tend to keep everything private.

I'd also be interested to hear how important it is that gender is shown on a profile. It's all well and good for us to speculate about this but I really would like to hear from some people with first hand experience.

fleitz 4 days ago  replies      
I take great offense to my culture being defined as "relentless treatment of women as objects teaches them that they are defined by the one thing that men around them want from them"

Yes some people do that, but VERY few. It's as silly as thinking that all gay men speak with lisps, yes some do and those that do are very identifiable as likely gay. Yes there is always that guy in the bar that is inappropriate with women, and he will get noticed, but did anyone bother to look at the VAST majority of men who do not engage in that behavior. These are also the same idiots who are getting into bar fights with other men. This doesn't make it acceptable but it's hardly a hallmark of my "culture". There are people who just don't respect other people in every culture.

As to being bigger and stronger, perhaps we should look to the nation of Japan and the feats its military was able to achieve with men roughly the size of north american women. Women are perfectly capable of defending themselves, not that they should have to, just like smaller men are perfectly capable of defending themselves, not that they should have to. These are again averages and if you look at the deviances you'll see that there are a lot of women who are larger than a lot of men.

Also, keep in mind that a man is twice as likely to be assaulted as a woman so from a statistical perspective it is men who should be fearing for their safety
as they post their gender online.

I personally think it's a good idea for Google to make the settings private but it doesn't need the invocation of chivalric myths and the slander of an entire culture for it to happen. Frankly, the idea that women can't defend themselves and we need to add privacy settings to protect them seems more to perpetuate the ideals of chivalry than feminism.

silencio 4 days ago 2 replies      
I'm just glad Google+ has an "other" option to begin with. Facebook lets you hide gender (which would be nice to have in google+), but they only offer male/female.

Really, I'm more disgruntled that Google+ lets you put down your relationship status and types of relationships you're looking for, but no way to specify which genders if any you are interested in talking to. I've been mulling over removing that part from my google profile because I can't mark that I'm only interested in women for relationships and dating. I have some female friends that would prefer to talk only to other females as well, it doesn't even have to go as far as preferences for dating.

Human sexuality and gender is so complicated that I'm willing to give a pass to any company that at least tries to make an effort to be more inclusive. They sure fall short here and there, but maybe with better education and awareness and bug reports, that will change.

macrael 4 days ago 6 replies      
He's written about gender very well before.[1] It is certainly a subject that I don't know very much about, but I appreciate that it can get very complicated very quickly. What are the good reasons for requiring it to be public?

Secondly, do you think that "other" is enough? To what lengths should developers go to handle rare corner cases?

[1]: http://blog.xkcd.com/2010/05/06/sex-and-gender/

scythe 4 days ago 2 replies      
>Many women grow up with a sense of physical vulnerability that's hard for men to appreciate. Our culture's relentless treatment of women as objects teaches them that they are defined by the one thing that men around them want from them

Daaaaaamn are people ever good at misinterpreting this line. It doesn't matter whether women are at actual risk; it's about the perception of risk. They're your customers, not your students or children or friggin' royal subjects.

Answering the question of actual risk has basically turned into a playground of competitive sophistry. On the other hand, perceived risk is goddamn obvious, and it's what matters. You don't start a social network by alienating people, regardless of whether they're 'right' or 'wrong' to feel the way they do.

Dove 3 days ago 0 replies      

    Many women grow up with a sense of physical 
vulnerability that's hard for men to appreciate. Our
culture's relentless treatment of women as objects
teaches them that they are defined by the one thing
that men around them want from them"men who are
usually bigger, stronger, and (like any human)
occasionally crazy. This feeling"often confirmed by
actual experiences of harassment and assault"can lead,
understandably, to a lifetime of low-level wariness
and sense of vulnerability that men have trouble

This is so absolutely dead right on the money, I find myself wondering where a male author gets such an insight. I feel this way, and I was raised in idyllic suburban circumstances surrounded by loving and honorable men.

(Edit: Here's an old comment of mine on the phenomenon of women preferring gender anonymity online: http://news.ycombinator.com/item?id=750413 )

JabavuAdams 3 days ago 1 reply      
Some data points:

1) I'm a 6'3" brown guy. I never get heckled when I walk down the street. I'm reasonably handsome, but in general, I don't have the sense that a lot of women are checking me out as I go about my daily business.

I was surprised to learn that my wife would get catcalls when she wasn't with me in our old somewhat sketchy neighbourhood. It never happened when she was with me, so I was like "WTF, people actually do that?"

2) At a previous job, I had a long walk to the coffee shop in suburbia. One time I was walking about 20 m behind a couple of women. I found one very attractive. I noticed that almost without exception, guys driving in oncoming traffic would crane their necks to look at her. I sometimes do this too, so I'm not suggesting that this is wrong per se, but it is very noticeable.

Imagine you're just stepping out to run some errands. Almost every guy you see checks you out. I'm not going to argue about whether this is right or wrong. I'm just pointing out that many women's experiences are very different from men's. It's a weird vibe when you can't go anywhere without being obviously on display.

3) Tall people get paid more than short people. Many short people I know are very aggressive, as though they've become accustomed to defending their turf. I'm taller than almost everyone I meet, so when I'm in an elevator with someone taller, it feels wrong. Subconsciously I'm thinking about how I'd win a fight with them. You could argue that this is just weird and neurotic, but my wife says the same thing. She knows how to incapacitate a man, but again there's just this back-of-the-mind threat assessment that's overlaid on everyday situations.

4) Sexually, mechanically, it's less threatening to probe things with your appendage than to let something into an orifice. In a non-sexual context, you'd poke a lot of stuff that you wouldn't eat. In many cultures male-male anal sex isn't considered gay for the top. Only the bottom is gay. So there's probably something biological going on here.

So to all those arguing about probability of violent sexual assault, etc. You're missing the point. It's a completely different vibe, and you won't be able to speak intelligently about gender and social issues until you understand that.

redrobot5050 3 days ago 0 replies      

>> Our culture's relentless treatment of women as objects teaches them that they are defined by the one thing that men around them want from them"men who are usually bigger, stronger, and (like any human) occasionally crazy. This feeling"often confirmed by actual experiences of harassment and assault"can lead, understandably, to a lifetime of low-level wariness and sense of vulnerability that men have trouble appreciating. <<

I want to comment on the attitude Randall is projecting in the above referenced quote. It's a commonplace attitude in the modern world today. That a woman's only protection is a man's forbearance. I feel this attitude is also toxic to our social fabric -- it really is just another form of gender bias. Attitudes like this lead to strange unintended consequences: Single, unmarried men cannot be seated next to unaccompanied minors on a plane. Men are now less likely to come to the aide of a screaming or crying child in public.

Just because some Vikings rape and pillage does not mean that all men do. Just because my grandfather was of German descent and fought in WWII should you assume he was a Nazi (he was a medic for the Allies).

Google+ is supposed to have privacy options "superior to facebook". (And considering they also have access to our search history and email, they had better be). Women online (and this is likely not their first social networking experience) have the same access to those privacy tools as everyone else. Let them block the harassers and those that objectify them.

(But still some really good points made about co-opting "Other").

rimantas 4 days ago 8 replies      
I don't get this trend at all. Something is wrong with priorities and perceived risk vs. real risk.
It's pretty difficult to assault someone physically over the internet (http://bash.org/?4281). On the other hand, woman broadcasts her gender when in public. Will x years from now we all be walking in some kind of uniform enclosures as to protect from anyone knowing if one is male or female?

Also, in some languages name is very clear indication of the gender. And even some ambiguous nickname won't help, because in some languages you usage of verbs, adjectives etc. differs depending on gender.

Recently I saw a story about some kindergarden in Sweden where kids were not allowed to say "he" or "she" when talking about person but rather had to use something equivalent to "it" (I don't think English has equivalent to that, Russian language has "оно" for neuter nouns).
To me it looks extremely stupid. But I guess it is easier just to ignore our differences than teach to cherish them and respect the other side.

nl 4 days ago 1 reply      
The linked essay[1] is worth reading. I had no idea that sex testing was so complicated - it explained to me a lot about why sex-testing for (usually) women's sport isn't as simple as I'd assumed.

[1] http://linuxmafia.com/faq/Essays/marriage.html

dazzer 4 days ago 4 replies      
Guys, lets not get carried away by the issue here.

The issue is NOT about gender identification. It is Google+ not providing the ability to hide your gender on your profile (I won't say they're FORCING you to post your gender).

The issue of Gender Identification is merely an example provided to justify the usage of such a feature. So let's avoid a massive gender debate here, when you can read all about it in the post itself.

jordanb 4 days ago 4 replies      
This seems like a really pointlessly long rant that boils down to a feature request: Change the "other" category to "other/not-disclosed".

Also do these women who don't want to disclose their gender really need Randall Munroe to file the bug report for them?

vacri 4 days ago 3 replies      
I've always found Munroe's position on gender equality weird - despite what he says, he 'others' women in his main work. Female stick figures have long hair, even if the strip has nothing to do with gender. Male stick figures have no such indication. That is: 'male' is 'default'.
olalonde 4 days ago 1 reply      
He's quite a bit harsh with his own culture (presumably the American culture). American culture is way ahead of most cultures in terms of respect for women. Travel to Africa, Asia or South America and you'll realize your culture isn't all that bad. (Disclosure: I'm not American)
andreyf 4 days ago 3 replies      
Why not simply reword the question to ask whether you prefer to be referred to as a "he" or "she"? In the rare case that it doesn't align with your genetic or anatomic gender, it's not exactly the end of the world.
ern 4 days ago 3 replies      
I'm not sure why Google is getting a free pass on the public profiles requirement. Every other social network I've used has an option to block search engines from indexing your profile.
ignifero 4 days ago 1 reply      
The main question to ask is: do the benefits outweigh the drawbacks? For developers, when google opens up their platform, having the gender by default will make it easier to make a better interface and use pronouns correctly. On the other hand, i dont know many apps that distinguish gravely between men and women. The name of a person and their photo is usually enough to infer sex anyway. So, they're just making it easier for a developer to have the sex of the user. Another useful variable would be language.

I actually think the friends' list maybe should be private, but gender should be public by default. I think Mr. Munroe's concerns are completely unjustified. It's kind of horrifying too, it paints things as being really bad for women in america; I doubt it's really that bad. I find the whole "attracts more attention" argument rather weak. After all, when you introduce yourself in the real world, its apparent from either the looks or voice whether you're male or female.

JohnLBevan 4 days ago 0 replies      
One advantage of publicly disclosing information about gender is that you know it's public. It's possible to glean someone's gender from the language they use (see
http://bookblog.net/gender/genie.php), meaning people who kept their gender private may be lulled into a false sense of security. Admittedly I still agree that you should always have to option to select which of your details to make public (or to limit which groups/circles this information is available to), but thought I'd chuck in a counter argument to keep things interesting.
ignifero 4 days ago 1 reply      
I support the ability to hide sex as an option, clearly on the grounds that more options are better. But the logic presented here to support it is really wrong. It's the same logic by which women hid themselves in burqas, long dresses, and the shadows of their men for centuries. If anything, having sex open might encourage everyone to be more aware of the issues that arise and fix them.
spiffworks 3 days ago 0 replies      
Is there any particular reason that Buzz and Plus need public profiles? I really like Plus, but I have a friend who has voiced a few significant concerns where it defaults to public on some occasions(such as when you change your picture). Especially given that Plus is so integrated with the rest of Google's services, I want to fully understand the privacy implications before committing to it.
skrebbel 2 days ago 0 replies      
I don't think most posters in this thread realise how many flat-out nutcases there are out there.

My girlfriend's 90+ year old grandma used to be occasionally harassed on the phone because she was listed as "Maria Lastname" in the phone book (in Denmark, where this is common). I can only assume that the callers didn't expect her to be 90+. The harassments stopped a while after she changed it to "M. Lastname".

My conclusion: some people will go pretty far to get in touch with the other gender. If people want to hide their gender online, they should be given the possibility to.

Tharkun 4 days ago 0 replies      
I'm all for not asking for gender information in the first place. It's completely irrelevant in all but very few situations. Ending up in bed with someone who has different bits than you expected, is awkward. Everything else is just pointless.

The only real reason why computer systems ask for gender information is so they can address you "properly". Some languages have neutral pronounds (their, them, etc) for that, others don't. If your users are using a language where this doesn't exist, tough luck for them. I'm sure every language at least has some kind of rule (ie "use male pronouns when in doubt") of dealing with these situations.

My Facebook profile at least has the option of not showing my gender, even if it doesn't let me select Other or NoneOfYourDamnedBusiness.

kevinpet 3 days ago 0 replies      
The argument that it follows from name is a red herring. If I create a photo sharing service, should I require you to list a race and justify it by saying that it can be inferred from your photos anyway? To summarize:

name: relevant because it's the center of identity, which is what the product is about.
sex: not a necessary feature of a public profile.

If 99.9% of your users say "um, sure, I wouldn't mind sharing that", and 0.1% say "hell no, I absolutely don't want to share that", then you make it optional unless there's some important reason to not make it so.

afterburner 4 days ago 0 replies      
So he's saying extend the ability to make profile details private to the gender field. Sounds fine and logical to me.
asdpalpl4444 4 days ago 0 replies      
The reason is this: Advertisment!

Advertizers pay more if the ads are "targeted", the more information you have the more "segments" of customers you got. Google gets 98% their revenue from advertizing, which means they want as much information as possible to target as good as possible so that they can sell you more crap!

Just try to give as little information as possible everytime you deal with companies as google.

thurn 4 days ago 4 replies      
Correct me if I'm wrong, but isn't it correct to say that there are two genders, but not that there are two sexes? Since gender is only a social construct, presumably the prevailing views of the society in question are what defines it?
parfe 4 days ago 1 reply      
Every single reply to his post includes a picture. Tempest in a teapot.

It seems even people who care about this issue enough to post don't care enough to protect their likenesses.

brianmatter 4 days ago 5 replies      
i'd love to know what makes "Radall" the expert on what "Many women grow up with"
dreamdu5t 1 day ago 0 replies      
This is why social networking sucks: It's all about putting yourself in a box, which is the last thing I want to do socially. I want to express myself, not be placed in an echo chamber.
tmcw 4 days ago 0 replies      
As a heterosexual, male-identifying, rather vanilla-sexed individual, I instinctually chose 'Other' nonetheless when I signed up for Google+, much like Facebook, which still refers to me as "you" or something like that. Computers are not for that.
benmmurphy 4 days ago 0 replies      
i don't see how an option to hide your gender solves randall's problem. if most people who are hiding their gender are women then hiding your gender is a credible signal that you are a woman.
jrspruitt 4 days ago 1 reply      
I understand the issues that arise with forcing people to expose more about themselves, than they are comfortable with. From a personality standpoint, my google+ account is a well defined sliver of who I am as a whole, by design. Mostly because I consider it something that could be put on a resume.

As far as the social issues of such public knowledge, I wonder, is hiding from the problem, by sexually, racially, and or religiously homogenizing profiles ever going to help cure the problem in society that makes, making these things public, an issue? Certain males, act like jackasses around women, is putting them in an isolated bubble going to cure the problem?

Does training people that you can't say xy or z around people of a certain race, stop them from being racist? It just makes them Pavlov's Dog, they know saying those things are socially bad, and keep saying and doing the same exact things, when society is more lax about those things being said or done to a different group of people, say, homosexuals.

Sure it makes it harder for them to find people to act that way around, making it seem like its less of an issue, but does nothing to change the mentality that causes the behavior, they'll just find someone else to do it to, that is more socially acceptable, like Muslims. Hiding from it, is not the way, dealing with it, which is going to cause some discomfort is the you cure it.

paganel 4 days ago 0 replies      
This all could be have been averted had Google not forced its users to make their profiles public.
hexadecimator 3 days ago 0 replies      
Google have taken Randall's feedback into consideration and have added the feature to hide one's gender on Google+ profiles.

Women using the service are reporting that their low-level wariness and sense of vulnerability has lessened somewhat as a result.

"Hiding female identity from male view on the internet is very important and is likely to lead to real social change," a spokesperson from Google added.

9999 3 days ago 0 replies      
That Randall Munroe is a real person's person.
beatpanda 3 days ago 0 replies      
Diaspora got this right, and Google+ should have copied it that way they copied the UI for aspects for "circles".
mikecaron 4 days ago 0 replies      
baby 4 days ago 0 replies      
This subject is so much interesting it is now the top submission of HN frontpage⸮
philthy 4 days ago 0 replies      
Oh fuck off! If you want to be a woman, you're a woman, a man, then you are a man.
temphn 4 days ago 0 replies      
Everyone, including Randall Munroe, is free to note the "obvious fact" that men make most unwelcome sexual advances.

No one is free to note the "obvious fact" that men make most of the welcome technological advances.

What every programmer should know about time unix4lyfe.org
433 points by enneff  8 days ago   126 comments top 31
dirtyaura 8 days ago 5 replies      
> Timezones are a presentation-layer problem!

I want to correct this common misconception that UTC is enough. Calendar time with all human traditions involved is more complex than a simple timestamp.

The advice above is incorrect for calendar and scheduling apps, or anything that has a concept of a repeating event.

An example: we have a weekly meeting occurring 9AM Monday in San Francisco. You are in London and want to attent the meeting over Skype. When is it in London time?

It depends.

On 7 Mar 2011 it's at 5pm

On 14 Mar 2011 it's at 6pm

On 29 Mar 2011 it's at 5pm

To make these calculations, you need to know timezone & daylight saving time (DST) rules of both your current location and the home location of the event.

A "DST zone" of a home location of a repeating event has to be saved together with a time and thus it's not just presentation-layer issue.

geuis 8 days ago  replies      
"Timezones are a presentation-layer problem!
Most of your code shouldn't be dealing with timezones or local time, it should be passing Unix time around."

I can attest to this. At a previous job our entire API used UTC. It was clean and worked at every layer of the app, from django to our client-side javascript. When we needed to display a human readable version, we did the translation at render time. All interactions with time as data was done with the UTC timestamp and saved much headache.

A couple months before I left, one of the engineers proposed switching everything over to a textual representation according to ISO_8601. I forget the nature of the argument, but it was inane(to me). This actually led an extensive back/forth email exchange between various members of engineering, me as one of the frontend engineers, and even the engineering manager who seemed to favor the idea.

I argued, "why change the entire stack which works just fine, etc etc". Fortunately, in this instance a heavy workload and group apathy about taking on unnecessary additional work allowed this entire concept to wither and disappear after a couple days.

tseabrooks 8 days ago 1 reply      
As someone working working on time sensitive code on embedded systems (DVRs that get UTC from the broadcast), I can certainly agree with the issues laid out in the post.

As an example: We have some certifications our product must pass and the certification body plays a 4 minute looping broadcast stream with the test condition in it. It turns out I handled the time jump hat occurred when the stream would loop around poorly and this caused about 1 week worth of headaches and delays in getting our certification. None of my code expects time to be ever increasing now.

dkarl 8 days ago 0 replies      
Backwards jumps in time burned me once. The user was running my software on machines that had a bug specific to certain Opteron multiprocessor chipsets where a process migrating from one processor to another would sometimes see a backwards jump in time, even when the system's time was marching forward predictably on each processor. It just goes to show that you're always doing distributed computing, even if you don't know it.
psykotic 8 days ago 0 replies      
Erik Naggum's paper The Long, Painful History of Time is a must-read: http://naggum.no/lugm-time.html
projectileboy 8 days ago 3 replies      
I'd like to add one to the list - store your Unix time as a 64-bit value, to save your client/employer some headaches in 2032. I doubt I'm the only HN user who was spent a lot of time in '98 and '99 fixing Y2K problems.
oasisbob 8 days ago 1 reply      
Unix time: Measured as the number of seconds since epoch (the beginning of 1970 in UTC). Unix time is not affected by time zones or daylight saving.

I don't think this is strictly correct. This implies that someone could start an atomic stopwatch at midnight on Jan 1, 1970, and it would match Unix time. It won't.

Because Unix time is non-linear and will either slew or repeat seconds when UTC has leap seconds, the hypothetical stopwatch would be ahead of Unix time by 34 seconds.

... at least this is how I understand it. Every time I try and wrap by head around the differences between UTC/TAI/UT1, my head really starts to hurt.

petercooper 8 days ago 0 replies      
UTC used to be called Greenwich Mean Time (GMT)

Sort of. This could be misleading because GMT and UTC are still two different things with different definitions. Wikipedia is a good source of info on this, but for starters:

UTC is closely related to Universal Time and Greenwich Mean Time (GMT) and within informal or casual contexts where sub-second precision is not required, it can be used interchangeably.

So not strictly, but practically.. ;-)

lysol 8 days ago 1 reply      
I like to rip on MySQL as much as the next guy, but the article is incorrect about MySQL DATETIMEs:

DATETIME: Eight bytes:
A four-byte integer packed as YYYY-10000 + MM-100 + DD
A four-byte integer packed as HH-10000 + MM-100 + SS

Storing UNIX time as an integer would be silly, considering:

TIMESTAMP: A four-byte integer representing seconds UTC since the epoch ('1970-01-01 00:00:00' UTC)

roel_v 8 days ago 0 replies      
Don't blindly follow the advice at the end of this article! The issues he identifies are real, but the 'solution' only work in a small subset of use cases. When one needs a longer time span than [1970-2038], Unix timestamp is horrible - how are you going to represent a date of birth in it for people born before 1970 (yes they do still exist!)? There is no guarantee that negative timestamps will work!

Also it doesn't take different calendars into account, still doesn't work with leap seconds, doesn't deal well with time spans (t1 - t2 specified in seconds can be a lot things in reality), ...

Use a proper date time library to deal with dates and store them in your database in a string format, including the time zone. It depends on your application which time zone (UTC or local), but in general UTC is best, and the local time zone could be a second column if you need the info (or it could be a property of the user, but e.g. many calendaring application then screw it up in the UI layer...)

I'd like to read a book on the UI issues associated with dates and times, anyone know of something like that?

rmc 8 days ago 0 replies      
Another thing to add: When asking people to put in the timezones, don't ask them for a UTC/GMT offset, and the dates that DST starts/ends. Instead ask them for the tzdata format (e.g. "Europe/London"). Then you can localize that wherever you want.
kamagmar 8 days ago 0 replies      
> UTC (which is an arbitrary human invention)

Hmm, i wouldn't call it totally arbitrary. UTC = TAI + LS, such that |UTC - UT1| < 1 second, where:

* LS are leap seconds,

* TAI is "physicist" time, based on the ticking of atomic clocks at mean sea level. The length of a second is constant.

* UT1 is "astronomer" time, the rotation angle of the Earth with respect to the quasar reference frame. The length of a second is not constant.

The Earth's rotation is slowing down, so UT1 is gradually drifting away from TAI. UTC is a pretty natural scheme to reconcile these two systems.

MarkMc 7 days ago 0 replies      
The problem with time-based bugs is that they are often subtle. I've had time-based bugs that only appear between 11pm and midnight; or only during daylight savings time; or only where the client is in a different timezone to the server.

Also, it is very common for business applications to deal with 'dates in the calendar', for example:
a) John's birthday is 26 August 1966
b) The loan was borrowed on 16 January 2006 and repaid on 9 September 2009.

I suspect most programmers will disagree with me, but in my experience it is NOT good practice to use a timestamp class to represent such things. It's better to use a class specifically designed to represent a date in the (Gregorian) calendar. In fact, I created an open-source Java class for this purpose:

sehugg 8 days ago 1 reply      
Also beware storing milliseconds in 32-bit quantities (as if you'd ever! but it happens).

GetTickCount is the poster child for this class of bugs: http://en.wikipedia.org/wiki/GetTickCount

In fact some versions of Windows CE intentionally set this value to (0xffffffff - 10 minutes) before bootup so that bugs were more likely to come out in testing, rather than showing up 42 days after bootup.

Also, don't store time intervals as floating point, especially if you're working on a missile system: http://apps.ycombinator.com/item?id=1667060

aaavw 2 days ago 0 replies      
Other little know facts about time:

The first day of the week can be sunday or monday depending on where you are.

The way to count the weeks isn't the same everywhere.

Some advice:

Default to using ISO 8601 whenever possible http://en.wikipedia.org/wiki/ISO_8601

Don't ask for more precision then you actually need (Don't ask date & time when you only need year & week)

Don't store dates and times with more precision then was actually entered (e.g. Don't ask for year & week, and then store the (calculated) first day of the week.

On my first large project I made the mistake of asking for the year & week while storing the calculated first day of the week, however using the wrong first day of the week and the wrong numbering of weeks…

sgerrand 8 days ago 3 replies      
As per gakman's comment in the Google+ crosspost[1], be wary of the Unix millenium bug[2] if you use integers for timestamp storage.

[1] https://plus.google.com/106356964679457436995/posts/Hzq2P7V6...
[2] http://en.wikipedia.org/wiki/Year_2038_problem

jen_h 8 days ago 2 replies      
"The system clock can, and will, jump backwards and forwards in time due to things outside of your control. Your program should be designed to survive this."

This is one of my favorite go-to test cases. I've found some really fantastically interesting, catastrophic network halting badness with this really simple test.

rubashov 8 days ago 0 replies      
Fails to mention the distinction between Zulu and Solar time. All the times mentioned are based on cesium atomic clocks. Satellite and military applications are often instead based on when the Sun is exactly opposite the Greenwich Meridian, re-synced daily.
JonnieCache 8 days ago 0 replies      
For anyone else who has just learned about UT1 time and wants to know what it's current value is, here's the link:


Today, UT1 - UTC = 82ms.

melvinmt 8 days ago 2 replies      
One notable addition: relative time is the same for everyone.

What I mean by this is that instead of messing with timezones (by trying to guess the user's timezone or even worse, asking for it) in most cases it is sufficient to tell the user something has happened x hours ago, or y days ago.

If you're programming in PHP, I can recommend this book: http://www.amazon.com/architects-Guide-Date-Time-Programming...

laut 7 days ago 0 replies      
"Other timezones can be written as an offset from UTC. Australian Eastern Standard Time is UTC+1000. e.g. 10:00 UTC is 20:00 EST on the same day."

Every programmer should know about DST. Offsets are not always enough.

When it's winter north of the equator, some countries are on summer time (DST) south of the equator.

jorangreef 8 days ago 2 replies      
In the future, the world will use UTC and sunrise and sunset will happen at different times, relative to where you are.
maurycy 8 days ago 0 replies      
For a much more detailed perspective about time, and still rather accessible, check Poul-Henning Kamp's work:


nivertech 8 days ago 0 replies      
The most important thing a programmer need to know about time:
"Don't use t+1 or t+N in your timeseries backtesting code ;)"
rvkennedy 8 days ago 0 replies      
Julian Date FTW! Seriously, JD is much smaller than Unix time, so it's less wasteful of numeric range for most practical purposes. And its use would eliminate a barrier between the computing world and that of science.
JohnLBevan 7 days ago 0 replies      
It's about time someone posted about this.
Great summary - when I first started working on an international system I was hunting for this kind of article. Now if someone could only do one on languages, regional settings, character sets and encodings. . .
altrego99 8 days ago 1 reply      
MySQL (at least 4.x and 5.x) stores DATETIME columns as a "YYYY-MM-DD HH:MM:SS" string

Wow that's terrible!

tintin 8 days ago 1 reply      
Does NIST (and other sync tools) keep in mind the round-trip of a request (RTD / RTT)?
wooptoo 8 days ago 0 replies      
> When storing time, store Unix time. It's a single number.

This is BS. ISO-8601 (MySQL time) is way better and is not prone to the 2038 bug. Unix time has 'scalability' issues.

lacerus 8 days ago 1 reply      
How can I make Ruby on Rails use unix timestamps instead of MySQL DATETIMEs?
closedbracket 6 days ago 0 replies      
I thought this was some productivity spiel.
Warren Buffett: I could end the deficit in 5 minutes. ritholtz.com
428 points by pitdesi  4 days ago   179 comments top 33
johnnyg 4 days ago  replies      
A republic or democracy presupposes that the majority of representatives will get it right eventually. However, we've seen in the Roman Circus and we see now that there is a weak spot to this thinking. Eventually the elected body will split into a faction that represents business interests and a faction that trades entitlements for votes. The latter faction eventually gains control to an extent that they bankrupt the whole. We are nearing that stage now. Few Republicans will oppose entitlements and both Mr. Bush and Mr. Obama are guilty of ramp ups in deficit spending.

Buffett's proposal would patch this historically reoccurring weakness of representative forms of government. As hnsmurf points out, it would also create a slippery slope where no representative could be reelected if they vote for X, Y and Z policies that are not systemic threats.

As our government is not responding to an issue which can literally ruin us all, it seems to me that Buffett's proposal is the lesser of two evils. Stability demands a solvent government.

sajid 4 days ago 2 replies      
I think people are missing the point, his suggestion is not meant to be taken literally. What he's trying to say is that reducing the budget deficit is more a question of political will than economics.
nhaehnle 4 days ago 7 replies      
This does not address the question of whether a balanced budget is even desirable. Equating the budget of the currency issuer with the everyday experience of the budget of the currency user is a fallacy.

Looking at the respective balances of the three sectors of government, domestic private, and external, it is obvious that flows are conserved. Given net imports (i.e. more money flowing into the external sector than out of it), a balanced government budget can only occur if the private sector is in deficit, i.e. more money flowing out of the private sector than flowing into it.

Empirically, external balances change only very slowly, unless artificial trade barriers (tariffs etc.) are raised.

So in the end, the political choice is between deficits in the private sector, and deficits in the government sector (and of course a range of choices in-between).

lucasjung 3 days ago 7 replies      
One big problem I see with this: in time of war, it is often not only necessary but desireable to run a deficit. Imagine if we had been forced to run a balanced budget during WWII! I would imagine that in such dire need, members of congress would "take one for the team" and run a deficit in order to sustain the war effort, but then you have the classic "changing horses mid-stream" problem when you turn over literally the entire legislature in the middle of a war.

I think that a much more practical constitutional amendment would be to simply prohibit congress from appropriating funds in excess of revenues unless a war has been declared. There is a risk of congress declaring needless wars for the sole purpose of justifying deficits, but that would require the cooperation of both parties, and I would bet that the opposition party would see more potential gain in opposing the war and demagouging its supportors than in letting the majority party have their war of convenience.

hop 4 days ago 1 reply      
Buffett's father was a 4 term congressman and an almost Ron Paul-like libertarian, btw.


T_S_ 3 days ago 1 reply      
I liked the preface to the comments section below the video:

Please use the comments to demonstrate your own ignorance, unfamiliarity with empirical data, ability to repeat discredited memes, and lack of respect for scientific knowledge. Also, be sure to create straw men and argue against things I have neither said nor even implied. Any irrelevancies you can mention will also be appreciated. Lastly, kindly forgo all civility in your discourse . . . you are, after all, anonymous.

Robin_Message 4 days ago 2 replies      
Would Warren Buffett fire the entire management of any company he owned that borrowed more than 10% of earnings in one year, regardless of circumstances? Because that is what his suggestion amounts to.
mmcconnell1618 4 days ago 1 reply      
The only problem is that the sitting congress would need to pass the law making themselves ineligible for re-election.
davetufts 4 days ago 0 replies      
What about laws that state only Congress can declare war or the rules of the War Powers Resolution? These don't stop the executive branch from engaging in war. Similarly, Buffet's simplistic solution wouldn't stop future deficits, because the ruling party could so easily redefine what a deficit is or what the GDP numbers are.
goombastic 4 days ago 3 replies      
I ask this here because this is a hacker forum. Why is it that in this day and age that we still implicitly entrust another person to make decisions on our behalf? What do you think would be the kind of systems we need to build to make democracy more participative? What do you think would be the pitfalls we should avoid with such a system?
gojomo 3 days ago 0 replies      
What if instead of a stick " no reeslection for you! " we used a carrot? What if the sitting lawmakers who voted for a balanced budget eventually get a giant financial bonus? (To minimize monkeybusiness, we could require it to have been balanced in retrospect, say via assessment 2-10 years later.)

People " even Congresspeople! " respond to incentives.

Let's assume that the goal " the fiscal stability of a balanced budget " would be a noticeable boost to our $14-trillion-plus economy. Then the incentive could be quite huge " perhaps a million dollars per congressperson per year in balance " and still pay for itself, many times over.

Other interests are making millions per year from the legislative 'generosity' that results in a perpetually out-of-balance budget. Why not pay directly for the alternative result we prefer?

yaix 3 days ago 1 reply      
Why does this populist nonsense get so many votes? Typical generalized politicians bashing. If you feel that you rep. is so evil, than just don't elect them. Better still, stand yourself and do a better job. Or at least help the guy you think will be doing a better job. It's all about the participation of the Demos, that's why they call it democracy.
cafard 3 days ago 1 reply      
You can fix failing schools in 10 minutes: establish that teachers can be fired if the test scores aren't OK. This has the disadvantage that it's a hell of a lot easier to go back and tweak the tests handed in (see Atlanta; see some DC schools) than it is to educate the kids.

But the test scores look great.

jws 3 days ago 1 reply      
One possibility is that the job of congressman becomes a 2 year job and you have to dole out enough goodies in two years to get a secure post-congress position.
hnsmurf 4 days ago 3 replies      
That wouldn't end the deficit, that would just ensure the deficit was 0 the day before elections. Also there's a slippery slope. This same logic, if we allow it to be applied to the deficit, could be applied to other things. No congressmen could be reelected if gay marriage is legal, etc.
AdamN 3 days ago 0 replies      
It would take more than a law to block reelection for sitting legislators - it would take a Constitutional amendment. I'd like to see Buffet get that done in 5 minutes.
MarkMc 3 days ago 0 replies      
I thought the more interesting part of the interview was when he said that social security payments should have higher priority than bond interest payments. That sounds it would result in a worse credit rating and much larger pain in the long term...
vorg 3 days ago 0 replies      
> I could end the deficit in 5 minutes. You just pass a law that says that anytime there is a deficit of more than 3% of GDP all sitting members of congress are ineligible for reelection.

Incentives matter, but this incentive would attract candidates who don't want re-election, perhaps old and sick people who expect to die or retire.

Also, how do you measure GDP? Whenever someone drinks a pint of whiskey at the bar, then drives home and kills other motorists, the whiskey sold, car fix-up costs, ambulance and hospital fees, insurance and re-insurance premiums, prison costs, and court settlements all contribute to "GDP", even though real quality of life has gone way down.

And of course any law passed can be repealed by the same margin.

ck2 3 days ago 0 replies      
Right, they'll do that right after they give up their gold-plated healthcare and instead take the government offering for the uninsured.

Gabrielle Giffords would be permanently disabled and disfigured, unable to ever speak or move because of lack of therapy if she was an average citizen standing in that crowd, with the average american insurance or lack thereof.

I love how the topic is constantly steered off healthcare. Remember the mosque in NYC? Remember how all that noise suddenly disappeared?

Androsynth 3 days ago 0 replies      
Wouldn't the unintended consequence be that the parties become even more powerful than they are now? All the long-standing politicians would move out of official govt capacity and into essentially the same position in their parties, while unknown pawns get elected to the official positions.
sethg 3 days ago 0 replies      
Budget deficits shouldn't be any more of an automatic trigger for re-election than the unemployment rate, the inflation rate, the number of body bags coming back from a foreign war, or any other undesirable thing.
Brewer 4 days ago 1 reply      
Warren Buffet for Secretary of the Treasury
maxxxxx 4 days ago 1 reply      
I don't think it would stop the deficits. Instead we would get a new Congress every 2 years with crazier and crazier representatives.
shareme 3 days ago 0 replies      
Better idea... Vice Presidents who still hold shares in companies that still hold gov contracts despite censure..Impeachment as the whole 3.4ths of current deficit was by start of wrong wars Iraq especially..
WalterSear 3 days ago 0 replies      
That wouldn't end the deficit: it would give us a permanent deficit of 2.99%. Still, an improvement.
Troll_Whisperer 3 days ago 0 replies      
>“I could end the deficit in 5 minutes. You just pass a law that says that anytime there is a deficit of more than 3% of GDP all sitting members of congress are ineligible for reelection.”

I understand his line of thinking, but the question is could he pass that law? He has a substantial amount of money that could be spent on lobbying, media, etc. But how do you get people who have spent a career chasing power to sign a law that will strip them of that power?

rnernento 3 days ago 0 replies      
What's sad about this is we shouldn't need to pass a law, voters could easily enforce this. There is a massive problem right now with a lack of accountability, not just for the debt but for all the horrible decisions congress makes.
gavanwoolery 3 days ago 0 replies      
<TROLL> Nice, but I can end it in 4 minutes: STOP. SPENDING. MORE. MONEY. THAN. YOU. HAVE. </TROLL>
jasonmoo 3 days ago 0 replies      
my god cnbc is obnoxious. 9 logos on the same screen. breaking headlines of the interview currently in progress. 5 different bars all blocking the view with equally unimportant text. and the swoush sound effects... seriously you guys. seriously.
skybrian 3 days ago 0 replies      
Some people will play to lose.
JohnLBevan 3 days ago 0 replies      
Spending more than you earn? Idiots in charge. Cut back on essentials, keep the things that make you happy, still get re-elected. Hmm, anyone else see a minor flaw?
greyfade 3 days ago 0 replies      
Or, you know, he could pay his taxes.
naughtysriram 3 days ago 0 replies      
cool... :)
Learn C The Hard Way learncodethehardway.org
411 points by mcantelon  9 days ago   244 comments top 27
DannoHung 9 days ago 4 replies      
The biggest problem with C is not the language C, for it is a small and mostly simple language with a few warts (I'm looking at you, pointer syntax), it is the ecosystem into which you are thrust when you first use it.

That is, the ecosystem of, "What can I include without dicking around with compiler and linker settings, which I do not care to learn very well because I am just starting?", and the ecosystem of, "Why are all these standard libraries full of functions that all the documentation tells me not to use?", and most importantly, the ecosystem of, "Oh, this looks like a nice library that would make my life easy, (and later), wait, why isn't my program working on this other machine? I copied the binary over? Wait, what's this about a missing so? Oh, that's the library I installed, wait, how do I put it the same directory? Oh my god so many configuration settings! Wait, why can it still not find the library? It's right there now! What's LD_LIBRARY_PATH? LD_LIBRARY_PATH is bad? Why doesn't -R work? Oh, that's only for Solaris? What's the equivalent for friggin' Linux?! Ah, rpath, wait... it's trying to find the ABSOLUTE path? UGGARRHGHGHAAHHHH! Okay, finally, $ORIGIN... now let me just put that in the make file like they said I should.... AHGHGHGHGHGHGHHHHHHHHHHHHHHH!!!!!!!"

Which is to say, the ecosystem of fucking ratholes that have built up over 40 years of poor tool design that cannot be corrected now due to historical precedent.

hp 9 days ago 4 replies      
Ohloh says I've changed at least half million lines of C code (https://www.ohloh.net/accounts/rhp/positions/total)
Play me a tiny violin ;-)

What kinda bugs me is that whenever people go to teach C, they make out like it _has_ to be a low-level exercise, as if writing in C suddenly means you can't use abstract data types or object-oriented style or name your functions properly or have Unicode support.

For example, people teach libc string APIs like scanf() and strtok(), which should almost never be used. (See http://vsftpd.beasts.org/IMPLEMENTATION for one take.) Instead, use
http://git.gnome.org/browse/glib/tree/glib/gstring.h or
write your own like http://cgit.freedesktop.org/dbus/dbus/tree/dbus/dbus-string....

If you're going to display user-visible text, you are pretty much required to link to GLib or another Unicode library, since libc doesn't have what you need (unless you want to use the old pre-unicode multi-encoding insanity).

Don't use fgets() and other pain like that, use g_file_get_contents() perhaps, or another library.
(g_file_get_contents is in http://developer.gnome.org/glib/stable/glib-File-Utilities.h...)

You need help from a library other than libc to deal with portability, internationalization, security, and general sanity.

Maybe more importantly, a library will show you examples that in C you can still use all the good design principles you'd use in a higher-level language.

I told someone to "use a string class" in C recently for example, and they said "C doesn't have classes" - this is confusing syntax with concepts.

C requires more typing and more worrying about memory management, that's all. It doesn't mean that all the best practices you know can be tossed.

There's a whole lot to be said about how to write large, maintainable codebases in C, and it can even be done. It's not something I would or do choose to do these days, but it can be done.

One other thought, two of the highest-profile C codebases, the Linux kernel and the C library, have extremely weird requirements that simply do not apply to most regular programs. However, a lot of people working in C or writing about C have experience with those codebases, and it shows.

nikcub 9 days ago 4 replies      
I always had an idea of a 'for programmers' series of books for those who know how to program in one language (say, C++, Java or PHP) and wish to pick up a new language

eg. 'python for programmers' would not need the first half of it dedicated to explaining strings, loops etc. and could get straight into it from a programmers perspective - a bit like K&R. You could then dedicate more content to explaining philosophy, design decisions, internals, history, politics (learn all the in-jokes ;)), etc.

this would also be a good format to learn new paradigms, eg. 'functional programming in scheme, for programmers'

arkitaip 9 days ago 3 replies      
Zed, your level of productivity is truly inspiring. The best of luck to you.
JoshTriplett 9 days ago 4 replies      
When I first learned C, I did so under DOS, an environment in which you could declare a pointer to video memory, make a magic call, and start drawing graphics. I found that a memorable way to learn pointers. Sadly, doing that in the modern world requires quite a bit more setup.
alnayyir 9 days ago 0 replies      
I have the "learncthehardway.com" domain, waiting for Zed to stop being so insanely busy so that I can do the hand-off. :)
gregjor 9 days ago 1 reply      
I'll be interested to see how this compares to K&R, which not only teaches the C language but also C idioms and the reasons for using them. K&R is still one of the very best programming books. Every other C book I've read is inferior. Peter van der Linden's "Expert C Programming" is the only book on C besides K&R that I've learned anything from.

Good luck, I'm all for more programmers understanding C but I wonder if the wonderful days of programming close to the hardware are ancient history. "[P]eople are deathly afraid of C thanks to other language inventor's excellent marketing against it." Maybe, but I think the raison d'être for C is not apparent to programmers who started with Java, Python, or Ruby.

rpearl 9 days ago  replies      
Do people really think C is some mysterious, inscrutable language?

"To many programmers, this makes C scary and evil."

Is this actually true for people? I find C code generally very easy and straightforward to understand; there's not any magic behind the scenes, like there is in any language that's more "high level" than C.

leon_ 9 days ago 0 replies      
I'm skeptical that it will be an alternative to K&R 2nd ed but nonetheless I'm interested in the result.
briandoll 9 days ago 0 replies      
I'm very excited to see Zed working on this. This exercise-driven tutorial format seems efficient and practical, but what makes this really stand out is Zed's approach to the overall goal.

I greatly appreciate an 'opinionated' programming book. I've probably heard more debates on formatting and style for C than any other language.

rgrieselhuber 9 days ago 0 replies      
ctdonath 9 days ago  replies      
I look forward to the content. As a beginning C++ instructor I find there is something lacking between the truth of the language and the conventions for presenting it. Nobody, AFAIK save for the truly hardcore student, has nailed it.
mikeocool 8 days ago 0 replies      
Oh man, totally looking forward to this. It seems like so many programmers are kind of afraid of C because it's reputation and avoid learning it because they're language of choice is 'more productive.' Which is really unfortunate, I've found having a good amount of C is hugely beneficial to understanding what's going on under the hood when you're using a higher level language, even if you rarely actually program in C itself.

Plus even if you do primarily program in higher level languages, it's a great tool to have in your belt when you need to fix a bug in a library whose bindings you're using in higher level language, or when you legitimately do need to eak a little more performance from a particular piece of code.

Also, love that the book starts by teaching you how to use make as well, so many C books gloss over the tools.

getsat 9 days ago 3 replies      
Why is %d used to interpolate an integer into a format string? I don't recall seeing this done for any reason before.

I hope Zed actually covers how dangerous format strings can be if not handled properly. Format strings are still (hilariously) one of the major exploitation vectors in C-based applications today.

Edit: According to Wikipedia, %i and %d are synonymous. Sorry for the confusion.

emehrkay 8 days ago 0 replies      
I jokingly made this suggestion to him on twitter. He posted a few "assignments" and we (I assume it was more than myself participating) posted pics of our console output.

This guy loves to program

Sapient 9 days ago 1 reply      
Having read a fair bit of LPTHW (though I had no actual interest in the language), I am really excited about this.

One of the best things about LPTHW was the context it was written in, and if LCTHW is written in the same way, it should be a really awesome read!

derleth 9 days ago 1 reply      
Isn't "C For Programmers" essentially "HOWTO Use Pointers"? Is there another really complicated idea that C has which most of its heirs do not have?
raniskeet 9 days ago 0 replies      
How about having a webpage with recommended libs for newbies to use? Sort of like NodeJS modules page.
pbreit 9 days ago 2 replies      
Has anyone actually used "Learn Python the Hard Way" in a beneficial way? I started it several times but never got very far and just learned Python from other sources. I didn't really care for the approach.
newcguy 9 days ago 0 replies      
I know a fair amount of C. But I am still looking forward to this book as I hear that LPTHW taught something to even intermediate level people. Besides the exercises are usually good and would like to solve them.
drivebyacct2 9 days ago 1 reply      
It should say "Learn C and make the hard way".
seagaia 9 days ago 0 replies      
I hope this book will show lots of new C programmers the beauty of pointers in hand-holdy detail ('cause that's the level needed, I feel). Maybe basic stuff about VM, so all the pointer operations make sense (everything is a byte at some offset etc.).

At least I didn't fully appreciate C until I understood some of the underlying concepts.

Looking forward to reading this!

tomrod 8 days ago 0 replies      
Nice! Where's the rest?
auston 9 days ago 0 replies      
Go Zed! I'll buy this when it's ready for payment!
swindsor 9 days ago 0 replies      
The problem with C isn't C. It's shitty C programmers.

Learn how the language works, follow good patterns, and expect some bumps in the road.

Most of the time, though, you can use a different higher level language, and be a happier and less stressed programmer

Why I read Hacker News even though I understand very little of it alexrosen.com
368 points by alexmr  6 days ago   85 comments top 34
duopixel 6 days ago 1 reply      
Sponge learning is awesome, but you must always remember to act upon it. Knowing that CoffeeScript is hot in the web dev scene is great, but in the end it amounts to little more than industry gossip.

True understanding comes from actually trying to do it yourself, technologies stop being buzzwords and they become tools.

That said, kudos to the OP for trying to Learn Python the Hard Way!

rlander 6 days ago 0 replies      
Two years ago, when I started reading HN, I was a php programmer who didn't even know what functional programming was.

Now most of my personal projects are written in my new favorite language, Erlang. Sponge learning is awesome, specially when you supplement it with lots of hard work. Thanks HN.

eneveu 6 days ago 1 reply      
I like Alex's concept of "sponge learning" and reducing "unknown unknowns". I've actually been doing this unconsciously for quite a while.

Let's say there is a debate about the best VPS provider on the HN front page. I have no need for a VPS right now, and I sadly don't have the time to read the whole debate.
Instead, I skim the discussion, bookmark it (on pinboard) with appropriate tags, and know it will be there when I do need to choose a web host.

This also applies to "unknown unknowns": a month ago, I saw the discussion on CloudFare ( http://news.ycombinator.com/item?id=2631019 ). I made a mental note that some services might actually help mitigate DDOS attacks, and made a bookmark for later use.

I could make an analogy with a database: I don't have enough time / memory to learn and remember everything I read on HN. Instead, I use my brain like an "index", the database being my Pinboard bookmarks. I think it's time to expand to other databases, too: I should try out EverNote or Workflowy to store free-form thoughts and other "non-bookmarkable" stuff.

Sandman 6 days ago 1 reply      
What I noticed in these 847 days I've been here is that HN's comments spoiled me. I now seek the same level of discussion on other sites and most of the time find myself disappointed.
schme 6 days ago 1 reply      
I have been the victim of sponge learning for many years now, HN being part of it for about a year. I can talk about a wide range of techy subjects but I've never really made or done anything to show for it. I learn bits from here and there without never going very deep. I've read through (and done most of the exercises from) K&R and Dive Into Python to name a couple, yet I haven't written a project over 500 LOC.

I've loved technology as long as I can remember, but when it comes to my local circles I've always been alone with it. Sponge learning is great and (as the writer mentioned) it deduces the amount of unknown unknowns, but without peer encouragement or -at least- approval it's very difficult to actually do something with it.

My sincere respect for everyone who has done something with their passions (that includes you alexmr!)

raju 6 days ago 1 reply      
Great post.

I have often thought about the way I learn, and it's very much 'sponge learning' (nice term BTW).

I am on a journey to learn Clojure, and improve my JavaScript skills. Much like the author, I read blog-posts, books, the Google groups as well as take any code samples found there and play with them in the REPL. A lot of the posts (especially some on the Google Groups) don't always make sense to me - but I hope that I will have filed it away somewhere. Maybe someday it will all come together :)

Again, nice post.

blackboxxx 6 days ago 1 reply      
I did the exact thing with Slashdot, when I first got on the Internet in '98. And I'd read Linux Journal although much of that was over my head as well.

But slowly you learn, and get to know the stuff, and then it gets boring and so you check out something else you know little about. That's what happens to me.

I think you're on to a good strategy alex.

seagaia 6 days ago 3 replies      
Hey, this is good. And it inspired the guy to go deeper into some of the subjects!

Sometimes, a problem is that people only go to sponge learning...and then stop. As a professor of my friend's said...people are getting better and better at being able to talk about something for five minutes...then that's it. Thanks to wikipedia, lots of people can seem smart, but not actually understand something in depth.

I find XKCD also to blame for part of this. If I had a dollar for every time someone made a joke about the Axiom of Choice...

farnsworth 6 days ago 1 reply      
I did this with Reddit years ago when much of the front page was programming/computer-related. I realized it was an awesome subject, spent a lot of time trying to figure out what they were talking about, and eventually changed my major to software engineering.
topbanana 6 days ago 1 reply      
The most upvoted comment on the post (Martin Doms):

Everyone on hacker news is motivated by money. It gets old. There's a huge vibe of "I don't care about this technical mumbo jumbo any more than I have to to make a quick buck". It's VERY trendy/hipster culture there. They jump on all of the silly buzzword bandwagons and distrust tried and true technologies.

I'm not saying I don't read the site - some of the articles are very good. But I don't like to be around people primarily motivated by money. Those kinds of people make me very uncomfortable.

pknerd 6 days ago 1 reply      
Best thing about HN that it filters out crap and produces quality stuff. Just because of HN I came across two entrepreneurs who are more than helpful to guide me offline whenever I need.

Thanks PG and Team to give such a quality site. Now I don't visit TechCrunch etc to find out Information. HN does it for me and saves my time

P.S: I am already a techie but a Biz noob and HN is helping me to become an entrepreneur.

jasonrodriguez 6 days ago 1 reply      
I'm right there with you. I have been an avid reader of HN for going on 2 years now. While I can't sit down and develop killer software from scratch, I am slowly learning more and more about technology and programming, and a lot of it is thanks to the great HN community.

I just started ready the updated edition of Learn Python The Hard way, and really enjoy it. It's the first book on programming that I have read that throws you right into the thick of things, get's you started writing code from the outset. Feel free to send me a message or email me if you want to bounce and ideas off of each other with Python or anything else, I get the impression we are both starting off on the same page. Should be a fun adventure!

bprater 6 days ago 0 replies      
And even when you understand a lot about these technologies -- it can be a great reminder of things to dabble in and see if they fit your model of how you work. This week I jumped into using Less (a CSS tech like Sass) after noticing a post on it.

How happy I am -- Less (or a similar tech) is now going to be a permanent fixture in my webdev world!

jechen 6 days ago 0 replies      
This is exactly the kind of mentality that one should develop on HN (or if they want to get anywhere in the industry). It reminds me of a recent post I read that people aren't intrinsically separated into "technical" and "non-technical" people. If you have the patience and the will, you can become competent at either. :) Read/learn on!
jorgeortiz85 6 days ago 1 reply      
Eternal September.
lambersley 6 days ago 0 replies      
I was referred to HN by a former colleague only 4 months ago. I'm the farthest from being a programmer of any sort, but I work in and around technology and he knew I was somewhat of a 'knowledge whore' aka philosopher. I like being in the know. "Sponge learning" is a great practice. I walk away from the monitor each day knowing what I don't know.

Thanks HN

kahawe 6 days ago 2 replies      
It is interesting how synonymous "hacking" and "programming" has become with "web programming" all of a sudden over the last few years...
canistr 6 days ago 0 replies      
Judging from the fact that he helped make twordsie, I wouldn't say he's exactly at level zero. Rather misleading.
Dramatize 6 days ago 1 reply      
I think this is why I love listening to Build and Analyze by Marco - http://5by5.tv/buildanalyze
elebertus 6 days ago 0 replies      
this is almost exatcly how I learn. It is certainly the reason why I read hn, and associate with people who are generally much more experienced than I am (they're great friends of primarily).

I am still very much learning about programming in general, but the beat advice I ever got was this: just write programs any way you can, and learn what you did 'wrong'. there are always different ways to solve problems but the best way to get better is through practice.

its cool to see someone else (and by the comments, many others) doing the same thing I do.

SmartFone 6 days ago 0 replies      
I've been reading HN for over a year even though I'm not the best developer. It simply teaches useful info about how to get things done that I would not get otherwise.

For instance, the case studies on starting a T-shirt company Snowpocalypse 2011 - bam! Knowledge of how to do that. Or the posts on business models in the music industry, links to Mixergy, et cetra, et cetra.

HN basically is extremely entertaining - and the most valuable business site I read.

aorshan 6 days ago 0 replies      
Awesome post. I am in the exact same boat as you. I read this stuff every day as inspiration and to learn more about the world of programming and computers. I am also working through python to learn my first language (chose python because of xkcd). Feel free to email me if you want to discuss difficulties or challenges with programming in python or in general.
ericelias 6 days ago 0 replies      
Alex, thanks for the post. This is definitely how I read HN and the links to the learning resources has helped accelerate learning new material.
127 6 days ago 0 replies      
You can certainly get part of the big picture from reading Hacker News, but if you're going to learn anything in depth, I seriously suggest taking a class. That way someone else has already done all the hard work in collecting all the material in easily digestable chunks and even gives his or her valuable time in trying to make you understand it all.
dhughes 6 days ago 0 replies      
It's nice to know there are more of us spongers out there, some of us don't have a blog though suspicious look
tilt 6 days ago 0 replies      
I think you might be happy to hear this, I'm a noob as you are and TIL that I'm "sponge learning" aswell! Thanks!
maren 6 days ago 0 replies      
Totally agree - I'm a complete newbie when it comes to tech but I am learning at a fast clip because of HN :)
krashidov 6 days ago 0 replies      
Besides the technical stuff, the links and discussions here on HN have helped me with entrepreneurial concepts the most. It helps when really established and well known people, and people who have plentiful experience in starting, running, and marketing a business are discussing things.
boscomutunga 6 days ago 0 replies      
Sponge learning is very good, especially when one wants to learn new vocabulary and tech jargon.
Hari_Seldon 6 days ago 0 replies      
I would class myself as an advanced user, not a developer but someone with interest and enthusiasm for technology. The main reason that I visit HN is that for me, the level of debate is higher. Far less fanboyism and trolling than most tech sites and IMHO - up there with slashdot. That's high praise for me \. is my favourite site
hackermom 6 days ago 1 reply      
Alternative title: Why I read Startup/Popular Blogstar news even though I care for very little of it.

Anyone else who has noticed how radically the news content on HN has changed since just last year? HN is dead, long live the new HN.

kurrent 6 days ago 0 replies      
whew, i thought it was just me
known 6 days ago 0 replies      
it, definitely reduces my unknown unknowns
matmann2001 6 days ago 0 replies      
Nailed it.
Very clever story telling using HTML and Javascript... hobolobo.net
332 points by dclaysmith  8 days ago   28 comments top 10
silvestrov 8 days ago 2 replies      
For each page, you must use the horizontal scrollbar to see see the animation and the rest of the images.
hobolobo 8 days ago 0 replies      
Well, this is awkward. (Check u/n)
I am unable to claim responsibility for this :)
mambodog 8 days ago 1 reply      
I am working on something similar to this, though I've implemented a renderer like that of a game, with all visible elements being rendered at 30 fps, foregoing DOM manipulation for writing HTML text directly to innerHTML[1], and culling non-visible elements. This avoids the slight jerkiness that exists when scrolling on the linked page.

[1] http://www.youtube.com/watch?v=_RRnyChxijA&t=22m56s

kungfooey 8 days ago 0 replies      
Wow. This is fantastic. Clever story, clever execution, clever little surprises in the illustrations. Can't wait to see what else this guy comes up with.
jpdelatorre 8 days ago 1 reply      
Looks really cool. This would be an amazing tablet app for children. +1 if there's a voice over option. Although it seems a LOT of work to put together.
petewailes 8 days ago 5 replies      
So, I've got a question... Whilst this is undeniably cool, can anyone actually anything beyond short children's literature being told this way?

As a more random note, what innovation have people seen/would people like to see in the literature space? How would you tell a novel online?

Discloser: am writing a novel, and reserve the right to totally take any ideas from this and incorporate them. If I do, you'll get a credit in the book.

ineedtosleep 7 days ago 0 replies      
Microsoft also made something similar to show off IE9's HTML5/CSS3 capabilities. I don't have a link handy, but it should be easy to find.
inportb 7 days ago 0 replies      
I really enjoyed the experience!
nerdinexile 6 days ago 0 replies      
You know what this'd be great for? Narrative puzzles. Imagine if Planetarium (http://www.beholder.co.uk/planetarium/) had had access to this technology.
sigvef 7 days ago 0 replies      
http://hobolobo.net/what-is-this-thing thinks I'm using Internet Explorer, when in reality I'm using Chrome 14.0.803.0 dev-m.
Why the #AskObama tweet was garbled on screen hanselman.com
319 points by brianwillis  4 days ago   76 comments top 23
pak 4 days ago 3 replies      
"This is SUCH a classic sloppy programmer mistake that I'm disappointed"

Oh come off of it. This happens everywhere on the web on probably something like 25% of websites. And it's NOT always the consuming program's fault: very often somebody upstream, e.g. the hosting company, the person that wrote the HTML, the source of an RSS feed being inserted into the page etc. etc. forgot to encode something the way somebody else expected, and you as the poor guy at the end of the chain gets a document with multiple encodings improperly embedded into it. Inevitably you have to make some bad decisions and not all corner cases are handled.

Somebody once reverse-engineered the state chart for how Internet Explorer handles documents with conflicting encoding declarations and I kid you not, it must have had >20 branches spanning a good few pages. Officially, the correct order of precedence is (http://www.w3.org/International/questions/qa-html-encoding-d...):

1. HTTP Content-Type header

2. byte-order mark (BOM)

3. XML declaration

4. meta element

5. link charset attribute

but that's not how every browser does it, because the W3C sort of declared that after things on the Real Internet (TM) had already gotten out of hand. I hate to resuscitate Joel posts but Unicode is not easy to implement right.

giberson 4 days ago 5 replies      
Maybe I'm just a terrible programmer, but I think the author may be a little over emphasizing the seriousness of the bug. To me, this is one of those throw away issues that you keep in the back of your mind. Unless I'm coding something that is extremely datacentric and critical in that sense. But it's not like its on one of my "top 20 must run tests" or anything. It's always one of those issues I ignore or assume is correct until I find out it isn't. When I find out, it's simply a matter of tossing in a code page translation at either the input or output end and I'm done with it.

Or maybe I've just been fortunate enough to be in an environment where an occasional goof of this caliber doesn't have any serious consequences.

js2 4 days ago 1 reply      

  $ python
>>> print u"\u2019".encode("utf-8").decode("Windows-1252")

yahelc 4 days ago 1 reply      
'So do political nerds get to moan because the author referred to Boehner as "the Senator"?'


pilif 4 days ago 0 replies      
Errors like this is what me and my coworkers jokingly refer to as US-UTF8 (no offense meant). In a country that's dominated by ASCII, "supporting" UTF8 means "emitting the same data as usual but declare it as UTF8).

Sure there might be some misunderstandings with special punctuation characters as evidenced by the article, but such issues generally get low priority.

In countries where the language isn't representable in ASCII, we can't use US-UTF8, but have to resort to "real-UTF8" which means dealing with legacy systems that don't do UTF8 (which is what happened in the article we're currently commenting on), dealing with browsers who lie about encoding, and dealing with the fact that a string length isn't its byte length any more even if it doesn't contain "fancy" punctuation characters.

All that makes me wish I could do US-UTF8 too :-)

pavel_lishin 4 days ago 2 replies      
Did they see the encoding mistake before they showed it?

Because I wonder how difficult it would be to create a string that says something innocuous in UTF-8 (e.g., "When will you bring the troops home #AskObama") but in ASCII would read as something totally different, but legible (e.g., "the secret priests would take great Cthulhu from his tomb to revive His subjects and resume his rule of earth...")

zach 4 days ago 1 reply      
Proof that even completely ordinary string data used in the most USA-centric domain imaginable STILL needs proper encoding.
markbnine 4 days ago 1 reply      
What a cool shot. The prez with a common bug on his screen. And a bug I can fix! Still, even though this is an easy fix, he's going to need to open up a ticket.
efalcao 4 days ago 1 reply      
Hey I work for the company responsible for the visualization behind the president and the content on http://askobama.twitter.com

Let me take this very excellent opportunity to say that we are looking to hire a full time "front end" developer. You'll get to work on badass projects like the Obama Town Hall. Ideally, you'd be located in Austin. Find me on Twitter @efalcao to learn more.

kragen 3 days ago 0 replies      
Part of the problem is that UTF-8 makes things really, really simple, and bulletproof, and then people have to go and create problems again.

Listen. Any time you use an encoding other than UTF-8, you are creating incompatibilities. If your stated intention is to facilitate communication, you are failing. You are a bad person. Stop doing it. The only possible excuse for using a non-UTF-8 encoding is to frustrate communication.

(It's too fucking bad HTTP mandates that the default charset is ISO-8859-1.)

anigbrowl 4 days ago 1 reply      
I find it infuriating that this sort of thing is still a problem. I'm constantly seeing mangled apostrophes in places like Google reader too.
luigi 4 days ago 2 replies      
What modern software stack uses Extended ASCII as its default encoding? The last time I dealt with this problem, it was in 2005 or 2006 and I was working with PHP.
Jach 4 days ago 1 reply      
Zed Shaw, can you make a post called "Programmers Need To Learn Unicode Or I Will Kill Them All"?
dabent 4 days ago 0 replies      
That's a lot of detail, but a very good explanation of what happened.
zipdog 4 days ago 1 reply      
What bugs me is not the mis-encoding (though that's a fail), but that people "struggled to understand" it... surely everyone's seen apostrophes turn into these special characters on enough web pages over the past ten years to have recognized what's happening when it does.
winsbe01 4 days ago 0 replies      
thank you for the fascinating article! I've seen this bug in other places, and I never knew what it was (and usually brushed it off instead of digging deeper to find it).
nextparadigms 4 days ago 1 reply      
Why does it say 3 hours ago under the tweet? Wasn't this in real time?
Jach 4 days ago 0 replies      
Well, it could have been worse. They could have shown \'
ignifero 4 days ago 1 reply      
So does HN support utf8 ¢ðrrꢆl¥?
gutini 4 days ago 0 replies      
An error like this should not detract from the value Mass Relevance delivers. Clearly an event like this or similar events like the Oscars in which they take part are better, more engaging because of their involvement.
joeyh 4 days ago 0 replies      
tl;dr -- mojibake
mahmud 4 days ago 0 replies      
He had to do a twitter townhall because El Jefe couldn't get a G+ invite :-|
ignifero 4 days ago 2 replies      
You have to give it to Microsoft. They use Word even for 140 letter documents now! (I understand spelling is a reason, but browsers have spelling now)
GoDaddy SSL Cert Scam rentzsch.tumblr.com
312 points by dchest  1 day ago   114 comments top 33
ilikepi 23 hours ago 3 replies      

At work we use RapidSSL (a division of GeoTrust) for a handful of certs. Last night I received an email with a banner warning me, "Your certificate is ABOUT TO EXPIRE". The email goes on to list the expiration date as "Oct 12, 2011". Four months is certainly generous notice, but I've always taken this as a simple marketing attempt to maintain customer loyalty.

Usually I take these emails as tickler reminders and delete the first couple. When I eventually decide it's time to renew, I pull up the site by typing the URL into the browser. Upon reading this article, I wondered whether following the link in the email would result in a different pricing structure. As it turns out, the answer is yes, though after playing around, it doesn't appear to have anything to do with the email link.

The first page of RapidSSL's order form handles both new orders and renewals with a pair of radio buttons. Another section of the form allows you to specify the validity period from one to five years. The prices appear alongside the choices, and are currently the same for both initial orders and renewals.

First I visited "www.rapidssl.com" and clicked the "buy/renew" link for a single domain cert. I got an order form with the following prices for 1-5 years:

49, 86, 122, 159, 196

Then I pasted the link from the email (which contains a fairly simple query string that does not appear to have a unique identifier in it) into a different browser. I clicked the "buy/renew" link for a single domain cert, I get the same form with the following prices:

79, 138, 198, 257, 316

It's interesting to me that the difference in price actually increases as the validity period increases:

30, 52, 76, 98, 120

Still more interesting, after resetting the browser and pulling up "www.rapidssl.com" directly, the prices are completely different:

29, 51, 72, 94, 116

I tried the email link one more time and got the 49-86-122 pricing again. Then I tried it one more time and got 19, 33, 48, 62, 76. So clearly RapidSSL is varying their prices on the fly, presumably to gain insight as to what people are willing to pay. I was ready to claim the link in the email yielded higher prices, but that seems not to be the case. So I guess after all that, this isn't particularly interesting. I'll definitely hit the site a few times when it comes time to purchase though.

Unfortunately the pricing structure for a wildcard certificate never seemed to vary.

asciilifeform 17 minutes ago 0 replies      
All SSL certs are a rent-seeking scam.

Pay the protection money, get a string of bits which cost the vendor nothing to produce. Or choose between zero security or users' browsers whining about "self-signed certificate" every time they visit your site.

gst 23 hours ago 4 replies      
I never understood why GoDaddy has such a monopoly-like status - even in the startup scene. I've only used their services once (because someone transfered a domain to me and prefered to do this as GoDaddy-internal transfer), but the first thing I did was transfering the domain to another registrar (the one that I typically also use for my other domains).

Reasons why I wouldn't use GoDaddy:

GoDaddy is not really one of the cheapest registrars.

I find their pricing "tactics" (as also mentioned in the article) very questionable.

Their whole website isn't just really appealing to me (I know, very subjective).

RyanKearney 1 day ago 3 replies      
>I called GoDaddy Support this Sunday afternoon. While it was a long distance call, I only had to wait about a minute to reach a person in their Billing Department. They were happy to refund me the $49.99 after I deleted the cert and sent me the instructions to disable auto-renewals I linked to above.

This times 1000

I experienced this exact same issue. I was pretty pissed to say the least but I called, got a human in about 60 seconds, and they refunded me as well as told me how to disable auto renew. I see no problem here.

CoffeeDregs 23 hours ago 7 replies      
Okay, I use godaddy for domains and DNS. Never had a problem with them. But these 'godaddy sucks' posts and the godaddy buyout are starting to worry me. Who would you recommend as a replacement for registration and DNS?
fomojola 1 day ago 2 replies      
HAHAHAHA. Well, it actually gets worse. If you cancel the auto renewal, then go into Google and search for "ssl certificate" you'll get a wonderful ad (at the very top) that is for $12.99 (with the quote "why pay more"). You can then buy that cert and it gives you the exact same thing as the renewal (admittedly a bit more work, but is the convenience of auto-renewal really worth $37?).

Been doing this for the last 3 years: they are TRULY retarded for using such a scheme but hey! It catches some people, so I guess tactics like that got them the $2bn "investment" from the friends at Silver Lake.

jbyers 23 hours ago 0 replies      
The author's first point is incorrect.

GoDaddy doesn't take a month off the length of the cert. They do start sending you reminders 60 days ahead that say your cert needs to be renewed in 30 days, but you get your full extra year. I've had the pleasure of doing this dozens of times for our certificates, the last thing we buy from GoDaddy after moving our domain business elsewhere.

wccrawford 1 day ago 2 replies      
'Scam' is a really strong word and denotes an illegal action.

While these are shady practices, they are not illegal.

And the 1-month ahead renewal is not shorting you of a month. It's preventing you from getting into a situation where your cert expires because your CC details were invalid and it took to long to replace them. It also gives you time to configure your server, etc.

They are hardly the first company to offer a different initial price than the renewal, either. I hate that tactic, and watch for it, but it's not even unethical unless they don't tell you about it.

aneth 23 hours ago 3 replies      
Godaddy is he only place I've found "Extended Validation" certs at a reasonable price - $99 instead of $499+. I hate their website and crosselling, but I do appreciate as the author points out that they have people you can call - how many registrars have that?

Are there any alternatives for EV certs that are not a ripoff?

onomojo 23 hours ago 0 replies      
I had the exact same thing happen to me. One of many reasons why I've not only stopped using GoDaddy for myself but also why I've decided to REFUSE to work with them for my clients. If my clients use GoDaddy, they can either get off GoDaddy or find another developer. Sometimes you have to force morality upon those without. :P
powertower 23 hours ago 0 replies      
Domains are GoDaddy's loss-leader.

All profits come from cross-selling, up-selling, and shady tactics.

A registrar that has sold 1 million domains at $10/year price, and does nothing else, is one that will make at most about $25,000/year in profit max after various costs (reg fees, support, etc), but more likely will be in the hole.

I stopped blaming GoDaddy a long time ago. This is just the nature of the game.

sandaru1 23 hours ago 6 replies      
Any recommendations on where to buy a good ssl certificate?
unreal37 22 hours ago 3 replies      
This isn't really a scam. I have dozens of domains with GoDaddy, as well as some of their other services. "How can I get the cheapest price" is a game we all play with them. Revision3 has a handy page with GD discount codes, and I've been referring to that page for years. I am helping keep Digg in business from the affiliate fees.

Can we agree the "auto-renew" was not scammy? They didn't rip you off a year. Just reminding you 60 days early as they should.

Can we agree its not shady or unethical to charge different prices for 1st year versus a higher price for subsequent year renewals? Or different prices for different people, in some type of A/B test? Everyone does that. Even amazon.com shows different prices to different people.

Can we agree their customer support was really helpful to you?

So what's the problem exactly?

plasma 16 hours ago 0 replies      
Another "scam" I associate with GoDaddy is that when you pick to pay for the Whois Privacy protection, you also get a 'Business Registration' fee added (like $5/year or something trivial).

All this fee does is list your domain name or something similar in a GoDaddy ran business directory -- useless.

It's an extra charge they hope you don't notice, and it's only added to your cart when you add Whois Privacy protection.

You need to remove it from your cart afterwards.

jonathanjaeger 22 hours ago 0 replies      
Same thing would have happened to me but my credit card on file expired. Talked to customer service and was never charged. Despite some of the obvious disadvantages of using GoDaddy, I've always gotten great customer service from them.
winternett 21 hours ago 1 reply      
The same thing happened with a Network Solutions hosting plan I had. They auto-renewed me when I had over one month before renewal. Their service had been horrible on Drupal sites. Just the DNS resolution to my hosting account was taking 2-3 seconds. I enlisted an up-time monitoring service and found that my site was down frequently even while I was paying for this renewal I did not want. Shame such a dominant company in the 90s has basically laid the road map for shady hosting.
vidyesh 23 hours ago 0 replies      
Never liked GoDaddy's service. There are several reasons why. So moved to namecheap.

But the point here is GoDaddy by default puts all your services on auto-renewal. I am a bit paranoid over what goes on in my accounts ( especially PayPal) so i had disabled the auto renew when i saw it.

Talking about price hike, thats a marketing strategy. You usually don't get coupon codes for renewals ( if you do get, those are usually for bulk renewals ).
These service providers always lure you to register at special prices so you stick with them forever and in this case it auto renewed :\

About the cert. expiration, that seems a bit odd but better talk to GoDaddy Support, they would help you out.

phil 20 hours ago 0 replies      
So obviously they should disable auto-renew by default and start emailing you the day before expiry, right?

Except that's nuts -- many of their customer's certs would lapse before they renewed. That's so bad that most sites should even put up with the extra 30 bucks to reduce their risk.

hippich 22 hours ago 0 replies      
For anyone who needs SSL certificate without perks, consider free one from http://www.startssl.com/

It do not offer strong encryption and do not do personal identification (obviously - it is free), but it is very cost-effective solution to have https:// on your website to prevent eyes droppers sniff traffic.

(not sure if it is enough for e-commerce, like google checkout tho)

Now you have no excuse to not have https:// in your website where people enter their passwords =)

hughesdan 23 hours ago 0 replies      
Was start date of the renewal term synced to the end date of the expiring term? If so it doesn't sound so shady to me. It seems logical that they would notify you and confirm your desire for a renewal prior to the end of the previous term rather than wait until the absolute last moment, especially with something like an SSL cert.

I'm not saying GoDaddy isn't shady. And they certainly are aggressive with their auto-renew policies. Heck how do you think they afford Superbowl ads and Danica Patrick at the prices they charge :) But the experience you described doesn't sound like a scam to me.

jeromeparadis 19 hours ago 0 replies      
I also use GoDady because they are cheap and it does the job. For DNS, I use DNS Made Easy because it's never a good idea to have your DNSes at your registrar (if you ever need to move).

The trick with GoDaddy, don't check the box to leave your credit card with them. You'll then have to manually renew all services and you never run into the risk of forgetting to uncheck some auto-renew option...

frankdenbow 23 hours ago 0 replies      
They auto-renewed some auction service for $75 that I have never used or heard of. Really sick of Godaddy
layzphil 1 day ago 0 replies      
I don't really see the problem here. GoDaddy products can be had very cheaply, they are so cheap with coupon codes the probably potentially make very little per sale.

All insurance companies work the same way, try hard to get a new customer, milk them dry on the tail end because they are too lazy to search out a better deal.

lamnk 23 hours ago 0 replies      
It's well known that domain/hosting companies often offer great discount for first year/payment, then charge for full price later. For example, Godaddy's $1.99 .info or Namecheap's free first year Privacy Guard or Gandi offers a free domain with their SSL cert.
apedley 22 hours ago 2 replies      
The $12.99 price is a special price and always has been. You can still find discount codes and apply it to them when you renew to get it at the same price.

Godaddy can be insanely cheap if you never auto renew and always manually renew with discount codes.

Though yes you need to get off Godaddy. As do I. Just waiting for a little more revenue from my site to move to Rackspace Cloud :)

mancjew 14 hours ago 0 replies      
Thanks you just saved me $70 bucks, I got charged extra for one year already and they didn't refund me after I complained.
jivejones 23 hours ago 0 replies      
I had the same problem, signed up last year, set it up a month later and now I'm getting time to renew emails. Also although its 'easy' to disable the auto-renew I've had products that still renewed after disabling the auto-renew.
WettowelReactor 20 hours ago 0 replies      
This makes me happy that we decided to go with Digicert. Although not the cheapest their customer service is above par. We just got a renew (not auto-renew) notice 60 days from expiration. Not only where they offering a 15% discount on renewal but for every day early we renew we get 2 days added to the new cert. I.E. renew 60 days early on a 12 month cert and they give us 14 months.
richcollins 22 hours ago 0 replies      
Same thing happened to me for a $200 dollar cert. I complained through their support ticket system and they issued me a refund.
AltIvan 11 hours ago 0 replies      
Use paypal guys. All those auto-renew things get 100% visible on your paypal dashboard so its pretty easy to remove them all.
Metapony 17 hours ago 1 reply      
I know people who work for GoDaddy and the confusing website is part of the upsell. That GoDaddy would screw people with SSL certificates is no surprise.

My requirements for hosting are always 'Anyone but godaddy."

desaiguddu 8 hours ago 0 replies      
Screw you GoDaddy !
PaulHoule 1 day ago 2 replies      
Complain all you like but it seems at any given time I'm working for at least one organization that is running an expired SSL certificate on a server I need to use. More of these organizations should be using auto-renew.
Create a Robot Image from any text string RoboHash.org
306 points by e1ven  4 days ago   101 comments top 29
e1ven 4 days ago 4 replies      
I created this as an extended-weekend project, after realizing that I'd need these hashes as a part of larger project I'm working on.

Basically, Text goes in, Picture of a Robot comes out.

Where I'm using this is sort of like an identicon, to help quickly identify a poster's 4096-bit public keys, and see if you're talking to the same man.

Is it perfect? No, but it's a quick visual guide to any text, in the form of faces, which are easy for people to remember.

tptacek 3 days ago 1 reply      
You write really good web site copy.
praptak 4 days ago 1 reply      
It's similar to the StackOverflow April Fools' Unicorn Avatars: http://meta.stackoverflow.com/questions/37328/my-godits-full...

Which you can try out at: http://unicornify.appspot.com/use-it

MattBearman 4 days ago 1 reply      
I love this, simply because http://robohash.org/mattbearman kinda looks like me :D

My one criticism is that it took me while to figure out (and I'm web dev) It wasn't clear until quite far down the page that you need to just put the text string after the URL.

I'd recommend having a text box into which pasted text can be robohashed prominent on the homepage, as well as clearer instructions.

Edit: just noticed there is a text box, was that there before? It could definitely be more noticeable :)

erikwiffin 3 days ago 2 replies      
It would be awesome if http://robohash.org/google.jpg generated a jpg, and http://robohash.org/google.png generated a png.

It would be even more awesome if http://robohash.org/favicon.ico generated a .ico file.

vog 3 days ago 0 replies      
I find it pretty clever to generate Robot faces rather than whole robots or other pictures. Human brains are optimized for face recognition, which is why we can tell even minor differences in faces far easier than minor differences in other pictures.

Therefore, generating human faces would serve this purpose even better, but those are at risk of falling into the uncanny valley. (http://en.wikipedia.org/wiki/Uncanny_valley)

Using clearly non-human faces (such as Robot faces) avoids that problem.

jawns 4 days ago 2 replies      
So THIS is what the Googlebot looks like!


Luc 3 days ago 1 reply      
Very very nice. This has convinced me to use this technique for non-player characters in a game I am working on. I see you licensed the artwork from three artists. Did you have it especially drawn for you, or was it already released under some CC license?
gus_massa 2 days ago 0 replies      
It has a problem with the current and parent directory links. (I don't know if it's possible to fix.)

http://robohash.org/. (doesn't work)

http://robohash.org/.. (doesn't work)

http://robohash.org/... (does work!)

aquark 3 days ago 0 replies      
This is brilliant.

We have a stress testing tool that uses little images of various robots in its UI to represent different test patterns ... now I can automate them!

andrewcooke 4 days ago 2 replies      
this is cute. if anyone is looking for a more abstract approach i threw some code together a year ago that generates colourful "mosaics" - http://www.acooke.org/hash-icons.html i really need to improve the page and release the code...
wicknicks 3 days ago 1 reply      
Wow! Very nice morning treat :-)

R2D2 and C3P0 look like this:


C3P0's got horns!!

evilswan 4 days ago 2 replies      
OMG - π-bot has a cylindrical head! http://robohash.org/3.14159
spyder 3 days ago 0 replies      
I quickly made a bookmarklet to robotize HN usernames:

  javascript:(document.body.innerHTML=document.body.innerHTML.replace(/<a href="user\?id=([^"]+)">([^<]+)<\/a>/g,'<a href="user?id=$1"><img src="http://robohash.org/$2?size=24x24">$2</a>'))()

carbocation 3 days ago 1 reply      
If/when you debut the [robohash] watermark in the image, it would be great if you would also debut a paid plan without the watermark. Plus, paid plans give people confidence that your service will continue to exist.
FrankBlack 3 days ago 1 reply      
I think this is broken. I entered, "Bite my shiny, metal ass!" and all I got was some weird, Barney-like purple robot. I'd suggest special sub-routines for certain phrases including, but not limited to: "Ex-Ter-Mi-NATE!", "Danger, Will Robinson!", "Crush, Kill, Destroy!", "Beedeebeedeebeedeebeedee!", "We've got movie sign!", "Blah, blah, blah", "I'll be back", etc.


ayanb 3 days ago 0 replies      
The Html source has a random robot as part of the author signature. This is neat!
wbhart 3 days ago 1 reply      
If I put a % anywhere in the string (except at the end where I think it is ignored) it doesn't give me my robot, but a broken link!
capnrefsmmat 3 days ago 0 replies      
What sort of "Super-Awesome new forum" is this for?
LXicon 3 days ago 1 reply      
if you go to http://static1.robohash.com/ you get the same page as http://robohash.org/ but the IP used is not my IP.

nice project though. :)

tibbon 4 days ago 1 reply      
Any open/permissive license on the output and/or code?
tomatohs 3 days ago 1 reply      
An easy way to flip the images left and right would be great. I love the first set of robots, but I wouldn't use them in my website as they'd be placed on the far left of the browser window, looking away from the page.
nawariata 4 days ago 1 reply      

    Dr. Chandra, RobotCrunch

Subtle jab at Arrington? =)

jjclarkson 3 days ago 1 reply      
The similarity between http://robohash.org/yes

and http://robohash.org/no

is striking.

cappaert 3 days ago 0 replies      
Anyone else notice the Microsoft bot has a 7 (as in Windows 7) on its head?


rhdoenges 3 days ago 1 reply      
I love some of the alt-text on the robots. Very polished.
jonovos 3 days ago 1 reply      
Strange. No matter WHAT STRING I ENTER, it ALWAYS creates the SAME robot. Is this site just a psychological experiment designed to collect user names??
cwe 3 days ago 0 replies      
Sad to see Bender in this state: http://static1.robohash.com/bender
melipone 3 days ago 2 replies      
I like it but shouldn't it do similarity instead of producing a unique bot? For example, "similar" strings should produce similar bots.
Advanced Javascript tips and tricks google.com
307 points by ck2  7 days ago   35 comments top 10
tomstuart 7 days ago 3 replies      

  list = list.sort(function() Math.random() - 0.5);

Please don't shuffle an array like this. Array.prototype.sort requires the comparison function to be referentially transparent (i.e. to always return the same result when given the same two elements to compare), otherwise the sort order is undefined. For example, imagine how far from "shuffled" the resulting array will be if a bubble sort is used with a randomised comparison function.

Use a Fisher-Yates shuffle instead.

ck2 7 days ago 1 reply      
BTW I also just noticed Resig's next advanced JS book is almost done (finally!)


and there is a 50% off code that is working for July 4th - july450

which makes it $16 for the early-edition PDF-only version

(or $20+$5 shipping for dead-tree version but it's $25 on amazon anyway)

If I learn just one new trick for $16 it's probably worth it.

ErikCorry 7 days ago 0 replies      
Lots of the stuff in this list is only available in Mozilla browsers. It's not part of the ECMAScript standard:


Optional named function arguments

let (in the 'remove an object from an array' example)

"Convert a string into a charcode list" (both methods)

toSource method on an array ("Array iteration pitfall")


ck2 7 days ago 0 replies      
There is a handy index of them all near the bottom:


yid 7 days ago 1 reply      
Wow, I'm seriously overjoyed to discover the "yield" operator, which I did not know existed (it barely shows up anywhere!). No more hackishly using window.setTimeout() to yield in JS pseudo-thread simulations!
tlrobinson 5 days ago 0 replies      
Most of these tricks involve non-standard features of Mozilla's dialect of JavaScript.
IanDrake 7 days ago 0 replies      
I use the pattern listed under "Objects private and public members" frequently and feel they missed an important point.

They really should add something like:

function MyConstructor( pub, priv ) {

  var thisMyConstructor = this; //**Copy the 'this' variable**

var privateVariable = priv;

this.publicVariable = pub;

Otherwise "public" variables can't be accessed in private functions because "this" no longer references the object. So, from what I've learned it's always best to copy "this" to a private variable and use the private variable for consistency.

Yansky 7 days ago 1 reply      
I don't understand the need for the first example: Array.prototype.push.apply(a, b);

Isn't that what the concat() method is for?

perlgeek 7 days ago 3 replies      
I find some of them horribly obscure

     +new Date() // 1259359833574

Oh come on, magic constants? How do you check if that's the right number?

    function PrefixInteger(num, length) {

return (num / Math.pow(10, length)).toFixed(length).substr(2);

Is there no sprintf in Javascript? Or did I misunderstand what the function does?

30kloc and $0 revenue. Lessons from my failed startup (& code release) truffles.me.uk
298 points by timruffles  3 days ago   97 comments top 36
jdietrich 2 days ago 3 replies      
Essentially none of those 30kloc were part of the actual product, just set dressing. You could easily launch the same basic product without writing a single line of code, just handling everything through e-mail attachments and a paypal button. I don't believe that the user experience would be significantly worse for it.

In the middle of the article, the OP lists various mistakes he made, but I think he's basically wrong on all counts. His essential mistake IMO was launching too late. In six months of work, he gained no insight whatsoever into the market. He could have learned just as much with a handwritten flier on the college notice board - "Your mock exam reviewed by a postgrad, £10. Email foo@bar.com".

For the technically-inclined, coding is the perfect form of procrastination. It can absorb a near-infinite amount of time and feels quite productive, but it's usually a distraction. Steve Blank's most important message is that in an early stage startup, your job is to learn about the market. Anything which doesn't connect you with your customers is wasted effort.

DanielBMarkham 2 days ago 3 replies      
Great article. I don't think we can repeat this enough:

Hard work != value. Clever code != value. Writing something hackers think is cool != value.

Sometimes I think the hardest part of startups is re-aligning our value system from what we've learned in school and society into something that's actually useful for startups.

pigbucket 2 days ago 3 replies      
Completely missing from your postmortem (from which I learned a lot and for which I am very grateful) is the fact that the service you offer, to judge from the demo alone, is frankly not very good. Perhaps your analytics show that few visitors bothered to look at the demo, so maybe the point is moot, but I think the demo is awful, and if I wanted to take over this business, I would completely redo it, or remove it altogether (sometimes it's better not to show the product!).

I'm not talking about the implementation, which is great. I'm talking about the actual advice given in the demo, which you are offering as an example of the kind of thing students should be willing to pay for. The first comment is, essentially, use “and” instead of “&.” The second is, in effect, “make this bit a separate paragraph, and tie it in better.” And so on. The advice is generic or, when concrete (as in the case of “use and”), banal. There is very little of it. And there is very little of value in it. And since it's a bit of a struggle to read the handwritten text of the sample essay, it's even harder to tell if the generic advice is relevant--except in the case of the advice given for the conclusion, which is so general as to be universally applicable, which is not to say it is good advice.

I got a sense from your postmortem that you in part want to blame your lack of success on students not being interested enough in their own studies to pay for your service. I've taught thousands of students, so I know well how few are willing to write out practice exams, and how few of those are willing to seek out feedback. But a very small percentage of a very large number can surely translate to a modestly profitable business (especially, in this case, if you had plans to expand into the huge American market and into the college essay review business, which is what my crummy site is trying to do). God knows it's hard to get students engaged, but the ones who visited your site were looking for something, and I don't think they found something worth paying for.

pgroves 2 days ago 0 replies      
The market wasn't there but I disagree that that means he should have started with little or no product.

I forget who said it, but the best advice I've heard from a V.C. is that one of the biggest mistakes they see is founders going overboard trying to avoid making the mistakes their last startup made.

That said, I had an experience at a startup that did what the author now considers "the right way." We went out and sold before we had a product built. We figured out the pitch that the customers wanted to hear and had all of our best leads ready to go. But then it took more like a 12 to 18 months to build the thing, not the 3 to 6 we were promising. Unless you've built something exactly like the current product before, there are always technical problems you don't anticipate, and they always get solved the same way: add more engineering time.

Your earliest/best sales leads are a precious resource. Do not look like a dumbass in front of them. The second batch is not as easy to find as the first or they would have been in the first batch.

pnathan 2 days ago 5 replies      
Someone called Humourisok posted this, but it is dead for some reason. I thought it was a good idea, so repost:


Humourisok 20 minutes ago | link [dead]

from the tech point of view you have an open platform to share and annotate scanned docs. Sort of "web 2.0 Sharepoint". The niche that I see for such a service is legal. Lawyers can receive, annotate and remark on clients drafts for proposals, contracts etc. So it's something like Scribd+ or Docstoc+, for closed network of service provider & his/her clients, where a lot of paperwork is required. Legal services seems like the case.

ebiester 2 days ago 2 replies      
There's a more fundamental flaw, something that you wouldn't have uncovered by interviews....

1. For the money to get someone to review your paper, you can get someone to write it for you. http://www.bestwritingservice.com/ has essays for ten dollars a page. If you're willing to pay someone 20 bucks to review your essay, you're willing to pay 50 to write it.

2. Most universities have writing centers where people will review your papers for free. These places are oddly underused. The people who would go don't need them, and the people who don't know don't realize they do.

babul 2 days ago 0 replies      
It's sad no one ever paid for the service, but if not don't talk to customers or potential customers (people who pay, not "users" i.e. in the sense of people that do not pay), you'll never know what they want. Generally, it's only when people part with cash that you know you are providing value.

However, major kudos for releasing the code and design docs so others can try some tangent, along with the post-mortem so others can avoid similar pitfalls. That's seriously cool and not something I often see people do for projects they invested so much in. Thanks.

SoftwareMaven 2 days ago 1 reply      
There are a lot of times that it doesn't make sense to write any code before selling the product, but there are also times it does. The whole decision comes down to "Can I convince somebody this will work?"

The less likely your product is to be implementable, the more likely you will need code up front: 140 character mini blogs? Sure, fake it with photoshop. Real, Turing complete AI? You better have a prototype because nobody will believe you can do it.

Most startups tend to lean towards the former, but don't get sucked into that mentality if you lean towards the later. You'll be wasting your time.

teadrinker 3 days ago 1 reply      
I'd argue the main reason it failed was it was a bad idea. Their was no market for your product no matter how well you made it.

Try not to take away execution lessons when the idea was poor. The execution was fine and if you'd have used a good idea you'd be doing reasonably well now.

As an aside, does anyone have links to other startup postmortems?

wiredfool 3 days ago 2 replies      
Sales cycles can be a real problem, especially if the average sales cycle is greater than your runway.
Vivtek 3 days ago 0 replies      
Nice writeup! I agree with you - I love reading post-mortems. Success stories are worthless (too much survivor bias) but post-mortems really tell me something.
ctdonath 2 days ago 0 replies      
FWIW: I had a student cheat by using a paid answer service during a final exam (in class but done online, easy to abuse a website when I'mnott looking). I figure it cost him over $300 to buy the answers (obviously not his writing style and proficiency); still failed the class.

Make sure assisting on those "practice" exams aren't real ones.

pnathan 2 days ago 1 reply      
Hi Tim,

I would argue that the majority of your target demographic doesn't have the inclination to put disposable income into this.

Most of the time, when I needed help, I'd find someone who could help me for free.

Maybe it's different in the UK and other non-US places, but here, IME, there is no large-scale culture of hiring tutors.
People typically hire tutors when they are out of their depth.

Just my thoughts and experiences. I wish you the best next time!

dusklight 2 days ago 0 replies      
Personally I think the main problem was lack of commitment in customer discovery and how much were you paying the PHD students? Why weren't they motivated enough to help you advertise? In the US, most graduate students assist professors in teaching classes, so they would have direct contact with the people who would want your services the most.

What was your motivation for your startup? Did you just want to make a buck, or did you really care about helping students do better in their exams? Do you think the decisions you made would have been different if you had different motivations?

hristov 2 days ago 1 reply      
I think he just misjudged how most students study. In law school almost all of my exams were essays. The fact is that most people did not study by writing practice essays.

To answer an essay question well you need to be able to do two main things: know the information the question asks for, and present that information in writing. For me and everyone I studied with the first part was crucial and the second not that important. Everyone trusts their own writing skills to write a proper answer once they have all the info.

So when people study, they concentrate on memorizing the information, not on writing the answer. People just assume that come exam time you will be able to write the answer.

Of course it would be very nice to be able to write a bunch of practice answers, but usually there is not enough time to study, you always feel like you do not remember all the info that you are supposed to remember, so you spend most time trying to remember more things.

dusklight 2 days ago 0 replies      
Uh so you wrote that bad code isn't a factor ..

imagine if it had taken you 2 weeks to write the code instead of 6 months and you spent the rest of the 2 years on customer discovery instead, imagine if you were able to make significant feature changes to your product in a few days based on what you found out about what your customers wanted .. do you think you would have been more successful?

The fact that you used lines of code as a metric for how much work you put in, and the fact that you think 30k is a lot of code .. and you used php/flex .. I don't want to rain on your parade but there are MUCH MUCH better coders out there, who can do stuff much much faster. I don't necessarily recommend the following languages overall but you might want to check out ruby or python and see what is possible in just a few days.

kmfrk 2 days ago 0 replies      
Failed or not, this will still be very valuable on your resumé, when or if you apply to other companies.
dholowiski 2 days ago 0 replies      
Interesting thought about phd students being a potentially untapped resource for startups. Anyone want to launch phdturk? The domain name is available (for now anyway)
mdpm 2 days ago 0 replies      
First: a time / value mismatch; students don't want to spend more time doing something, then waiting before they get feedback, and your PhD students are taking longer to crit, annotate, explain their reasoning etc. through an interface than they would take vocally. In fact, a paid telephonic [ VOIPic? - Ed. ] mentorship service would probably do better.

Second: you didn't understand the market, not just your customers. The market is _everyone_ you have to deal with, not just those that buy the bread.

Third: I'd place PG's #5 (Obstinacy) covers both your 'knowing how to code' problem, and the fixated / obliviousness.

Knowing how to do something is just knowledge. Knowing why, when, and when not to is wisdom. In the end, it sounds like you're glad that you could afford the lessons.

christonog 2 days ago 0 replies      
I wouldn't say it was a total failure. You learned something, and you can always reuse code (such as the 700 lines for credit card payments) for other projects.
hezekiah 2 days ago 2 replies      
You coded it in six months and the whole project start to when you gave it up was only a year? Most startups I know of take several years to get any revenue at all. You need to have brass balls and a rich friend / family / side consulting to keep eating and paying rent / expenses.

You received 3000 GBP in startup money competitions, no strings attached, the first year. That's pretty damn good. I know startups that have raised a million dollars and don't have that much revenue.

Don't forget advertising. Sure you need lots of hits to make good revenue, but I know guys living off only ads for their apps. They also offer paid versions, but these tend to be a minority of the revenue. Don't underestimate what adsense/admob plus some social media exposure can get you.

You probably don't realize how successful you are already. That leads me to believe that if you stick to it, you're going to be quite successful. It may take 20 years, but eventually you're going to get some traction.

It's not the idea. It's not really even execution. It's persistence. If you keep trying your startup long enough, you'll eventually make enough to live. Maybe not be rich, maybe not make as much as you could have in a big corp (TM), but you'll survive, and you'll be your own boss.

My family has been doing startups for literally generations. I'm not rich, and neither are they, but we've survived. We did it by being persistent.

Stick with it, and I know you'll succeed. Don't give up.

drewcrawford 3 days ago 1 reply      
How do you create a poll ad on Facebook? I thought you had to get a sales rep and drop $25k to do that...
vaksel 3 days ago 0 replies      
that's why it's important to stick to the minimum viable product philosophy.

if you can do everything manually and just forward emails...do that until you it gets big enough to require automation

bricestacey 2 days ago 2 replies      
Another idea is to market to teachers. Scan in homework, grade/annotate on the computer, and send results to student and parents. Then, teachers wouldn't have to lug all that paper around, parents are involved in the feedback loop, 9 month sales window, doesn't require institutional commitments (any teacher could use it).
iiilx 2 days ago 0 replies      
Dang great story. I've been working on a few projects here and there. The first one was too big a project and I called it quits after 2 months because 1) I did it for learning purposes and 2) it was too big to complete and launch in regards to other competitors. But 3 years is a long time to spend on a project. There are definitely lessons to be learned here and as long as you don't lose hope, you will eventually find something that works. Your mention of testing if people would actually buy your service/product w/o writing the code behind it is a great idea, much like what I read in the 4 Hour Work Week. Definitely something entrepreneurs should apply if possible in order to reduce the amount of time potentially spent on doomed projects or projects that need to pivot.
pbhjpbhj 2 days ago 1 reply      
From the article:

>Please take the code (30k lines, PHP/Flex), design & docs and make a go of the business.

Could the OP please give a more formal license statement, even if it's just on this page?

Also, as others have said/hinted the execution looks (after a brief glance) to be pretty hot. The design is certainly crisp and clean and the screencaps look well laid out. Pivoting seems a good option.

denysonique 2 days ago 0 replies      
Maybe if you made the app free to use and have introduced a karma system , such as the one on StackOverflow, it would maybe make your (ad)venture more successful.

Personally the Flex UI puts me off -- the first impression after clicking the demo button. (The site frontpage looks ok)

I agree that a simple text annotation version would be much better and appealing. (its easier to upload a .doc or .pdf of your work, than scanning it, people who prefer to handwrite are less likely to use any online services than those who prefer doing stuff on their computer when possible

rglover 2 days ago 0 replies      
The only thing about this that irks me is not writing code until you have interested users. Wouldn't it be odd to say "oh, my product? It's coming, and it's awesome, but I haven't coded it yet." I'm all for the fake it till you make it but perhaps a bit too much here.
Hisoka 2 days ago 0 replies      
WHen I first visit your landing page, and stared at it for 5 minutes.. I still didn't understand what the site is about. I kept asking myself HUH? Huh? I still dunno what it's about.
amadoru 3 days ago 0 replies      
Failure is a lesson learned. Now you know a few things that don't work so next time you'll know to be cautious about 'em. All the best!
robjohnson 2 days ago 1 reply      
Thanks for providing so much detail into the inner-workings of your venture. Most people wouldn't have the guts to put themselves out there like that. If you think about wealth in terms of 'prevention of loss,' you've just made everyone on this forum quite a bit wealthier.
shapeshed 2 days ago 0 replies      
good to see some honesty in the often over-hyped world of startups
mgl 3 days ago 0 replies      
Lessons learned, experience gained, time to move on and start another project - All the best!
pixcavator 2 days ago 0 replies      
The problem with how seasonal this is seems exaggerated. Just rename it hwbuff.
danberger 3 days ago 0 replies      
Thanks for sharing your story dude. I'm sure it wasn't easy.
denysonique 2 days ago 1 reply      
Why haven't you used Rails for this project? I can see on GitHub that you know Rails. I believe that using it you would have developed the app faster.
Once Greece goes... lrb.co.uk
296 points by andrewcooke  8 days ago   193 comments top 16
lyudmil 8 days ago  replies      
Every time I bring this up I get down-voted, but I cannot resist.

No one argues that the Greek economy was in good shape. It clearly had severe problems with corruption and inefficiencies, which were brutally exposed when the global financial crisis hit. Everyone suffered, but because of the problems in the fundamentals of the economy, Greece suffered disproportionately more. However, the European Central Bank lent the "bailout" money demanding cuts to public spending that, in the current economic situation, would have very likely worsened the Greek economic situation. Greeks realized this and protested, but were (understandably) dismissed as spoiled brats, demanding an unsustainable, comfortable lifestyle.

Now that the likely, predictable outcome is looking even more likely (namely, default), journalists are still omitting that crucial part of the analysis. Many economists warned that in a crisis of demand, which is what we're experiencing now, cutting government spending is a bad idea. In a situation of such great uncertainty in the market, the government is the only source of demand big enough to make a dent. It must, of course, borrow the money and therefore increase its deficit by doing so, but that's a worthwhile thing to do when the alternative is default. After the economy has stabilized, the deficit problem can be overcome by growth. Moreover, even if deficit reduction is your priority, if the economy is shrinking you're always going to be fighting a losing battle no matter how many spending cuts you make.

To summarize my point, the Greek economic turmoils are less of a cautionary tale of the perils of uncontrolled spending (although they clearly are also that), and more an illustration of the negative effect the austerity measures recommended by the ECB are having on the economies they are imposed on. It should give leading European nations pause when considering what to do with the rest of the troubled economies in the eurozone.

fleitz 8 days ago  replies      
Markets are pricing greek debt as defaulted because it's the most rational thing for the greeks to do, and the most rational outcome. Greece holds power over the EU to the degree that its financial insolvency can bring the whole system down. (Technically, it's a power transfer from the EU to US as the fed has already bailed out the EU banks in anticipation of the Greek default)

When you owe the bank $1 million the bank owns you, when you owe the bank $469 billion, you own the bank. The average greek is smart enough to know this and knows that the closer they get to default the better the deal they will get. The banks have two options, get nothing, or get something.

Also, if the Greeks' can't pay at a AAA rating they certainly can't pay at AA rating, nor A, not BB, so the end game for rational thinkers is default because as the rating drops the inability to pay increases. Since Greeks hold EU notes and EU denominated assets they can't even be screwed via an exchange rate mechanism. If Greece defaults Europe basically has to eat it, and it puts Europe in a much worse negotiating position with Spain and Portugal.

Furthermore, with regard to bond pricing there is no such thing as a bad bond, only a bad price, hence they are quickly being priced to zero. It's similar to the whole subprime thing, guys who bought subprime post Aug 2008 actually did alright because the prices were so low that you'd be somewhat likely to get your money back.

Aloisius 8 days ago 1 reply      
The Eurozone could go belly up because of a cascading failure. The US may default because conservative politicians think it is "not that big of a deal." China is scared of an economic slowdown and inflation. And everyone thinks we're in a bubble and we're about to hit a point of irrational exuberance.

Interesting times.

JanezStupar 8 days ago 4 replies      
There are two sides to this article one is correct and the other is deceitful. I assume that this article was written by a Greek (I infer this from the first person accounting of situation).

The true part of the article is the part about debtors options and possible scenarios.

The deceitful part is the part about "ordinary Greek not understanding the situation and having no part in it". In eastern Europe we have a saying that someone is "indebted as a Greek", meaning that someone is perpetually taking loans to repay old ones while having not a slightest intention of ever paying them off. And this proverb is centuries old AFAIK. So all this protesting going on, pleas of "ordinary Greek people" are an elaborate scheme of shedding guilt. Modern Greeks as a nation are an entitled (an order of magnitude more than attributed to gen-Y) and lazy bunch. Boasting their "heritage", while they have nothing in common with the antic culture.

Any businessman worth his salt will be weary of doing business with Greeks - thats how bad in general their ethics situation is. While I cannot offer any meaningful opinion about how to get out of this mess. I can try to provide some insight into how Germany and France got into this mess. The first would be that greedy coke powered bankers got all optimistic that Greeks will repay their debts this time and went on to issue insane amounts of subprime loans, ok this is not what happened.

What did happen was that western world knew full on from the beginning what would happen - but proceeded anyway, since Greece was too strategically placed in the cold war and could not be lost to Soviet influence. The Greeks being smart, knew that and took full advantage. What happened after the cold war, was basically the subprime mortgage scenario of US played on a national scale - it is fraud committed by German and French bankers over the people of EU. I'm not believing anyone "in the know" telling me with a straight face that they didn't know that Greeks were cooking their books.

So in a sense like US subprime fiasco is fraud committed by US elites over people of US, European sovereign subprime debt crisis is also a fraud committed by European elites over their peoples.

I recommend reading this analysis of Greek[1] and Irish[2] debt crisis. It has to be some of the best journalism I have ever read.

[1] http://www.vanityfair.com/business/features/2010/10/greeks-b...
[2] http://www.vanityfair.com/business/features/2011/03/michael-...

Let the Greek diaspora and leftist lunatic downmodding begin!!

Edit: Indeed it was not written by a Greek. But the part about people of Greece not knowing what is going on is pure bullshit - I am not accusing the author of having an agenda. However I am accusing him of not having balls and bringing it out.

abalashov 8 days ago 0 replies      
A recent Der Spiegel article (http://www.spiegel.de/international/europe/0,1518,769329,00....) made a titular remark that I found noteworthily pithy:

"The Euro Is a Fair-Weather Construct"

mkramlich 8 days ago 2 replies      
This article reminded me of the larger issue: why do so many modern, national governments seem incapable or unwilling to ever operate with a balanced budget? Why do deficits and debt seem to be the norm? Why all the excuses? Is it a kind of stupidity brought about by having a large group of people each pulling in different directions? Or is it by design and due to malevolent intent? Just curious what everyone thinks.
sek 8 days ago 2 replies      
The reason for this big imbalance is the focus of the German industry on exporting goods.
Every time the Euro is lowered the German exports are heavily increasing what makes the problem even worse.

Different countries with the same currency was a stupid idea to begin with.

yaakov34 8 days ago 6 replies      
I feel like I should have stopped reading this missive after the first phrase, which is "The economic crisis in Greece is the most consequential thing to have happened in Europe since the Balkan wars."

The Balkan wars were in 1912-1913. I can think of a few other significant things that happened in Europe since then. This crisis - it is really more of a tantrum than a crisis, since the Greeks know perfectly well they are on the hook for the money they spent on themselves - doesn't even register as a blip. It's not going to collapse the economy of the 400 million people within the EU/eurozone area, and even if it did, it still wouldn't reach the significance of 70 years of revolutions and communism and dictatorships and the freaking Holocaust and a couple of world wars, now would it?

This sort of wild-eyed panic mongering by people who take a bath on their real estate or stock purchase, and think that they are living through the worst crisis in the 7,000 years of recorded history, is beginning to wear thin. It's annoying even as deliberate hyperbole.

On top of this, the economic points made are stale and unconvincing. He talks about low interest rates being appropriate for Germany, but not for Greece. Well, guess what? You don't have to lend at low rates to Greek institutions. You can take a risk premium on top of the basic Euro central bank rates. People weren't doing that because they thought that Greece would catch up economically to the Euro average; it didn't, and the risk premiums went up. Hardly worth killing the Euro zone over this.

EDITED to add: he probably meant the wars in former Yugoslavia, rather than what's actually known as the Balkan wars. OK, but frankly, this is still crap, since clearly the creation of the Euro block itself and the unprecedented economic expansion in its new members is far more significant than a tantrum in 3% of the Eurozone. And the economic points are absolute garbage: yes, Argentina recovered, because it is a mining/exporting country and commodity prices skyrocketed. Not very relevant to Greece.

Tomek_ 8 days ago 0 replies      
If you haven't already you should also read http://www.vanityfair.com/business/features/2010/10/greeks-b... to get more of a perspective on what went wrong in Greece.
jamesgagan 8 days ago 1 reply      
"There is a good moment in one of the otherwise terrible Star Trek movies..." - a knife to the heart in an otherwise interesting article. ;)
sprovoost 8 days ago 1 reply      
Some people have jokingly suggested that Greece should just sell a few islands. I'm just curious how much they'd have to sell to make e.g. $100 billion.
I think it would be kind of cool (and historically ironic) if they sold some land to China and let them build a few descent city-states in the area in the next year or so. A couple of million extra people should prop-up the Greek and EU economy.
joe_the_user 7 days ago 0 replies      
The Greek economic situation is unsustainable. The US housing market is unsustainable. The Chinese housing market is unsustainable. I could make a longer list if anyone wanted.

My point is that this article seems to imply that Greece will be the first to go. Maybe but maybe not. If doubt shifts to US, say, the euro might look at great investment by contrast for a while.

jodrellblank 8 days ago 1 reply      
Is there any personal punishment for leaders ruining a country? There would be if the Greek ministers were committing war crimes, or if they were driving without due care and attention. Why not for "running a country without due care"?
tluyben2 8 days ago 0 replies      
What does Greece 'do'? I can tell you what France exports/makes, Germany, Netherlands, Italy, even Portugal, but Greece; do they actually do anything? Is anything created there? Do the Greek actually work? I've been on vacation there a few times, and i've never seen people so lazy; we went into restaurants and actually had to literally kick the waiters to serve us; they were annoyed that customers came in.
patfla 8 days ago 1 reply      
I found this more compelling and succinct:


cynusx 8 days ago 0 replies      
In my opinion the EU needs to trace the contagion effect and limit its effects.
It can do this by offering to take over all credit default swaps on Greece's bonds, no sane economic actor is going to refuse that when a default is imminent.
What happens then is that the ECB absorbs all losses from a Greece default, blowing a large hole in its balance sheet.
However the ECB can just print itself back into solvency.

The aftermath will be a period of high inflation.

Unannounced Facebook feature uncovered lifeisagraph.com
284 points by ghostmachine  5 days ago   53 comments top 16
agscala 4 days ago 2 replies      
Now that Facebook actually has something to worry about slightly, it's kind of cool watching Facebook and Google both scramble to win over the users with these awesome A+ features one after another.
smackfu 4 days ago 0 replies      
Odd to think it will be called Facebook Vibes when the chat isn't called Facebook Peep. Probably just a codename, and it will end up being called Facebook Music.
budgi3 4 days ago 3 replies      
Heard that Facebook are integrating Spotify. Maybe that will be 'Vibes'?

Some more speculation here:

masnick 4 days ago 3 replies      
I would speculate that this could be something like http://turntable.fm built into Facebook.

If so, what a great way to keep users actively using Facebook: I can imagine someone spending a lot of time doing other things on the site while listening to music with their friends.

sausagefeet 4 days ago 0 replies      
In all honesty the only feature one social network has over another is where my friends are. I never check the stuff otherwise.
lojack 4 days ago 0 replies      
This all seems so familiar...

In a completely unrelated note, apparently Myspace sold last week for around $35 million.

eiji 4 days ago 1 reply      
I still woundn't mind some investigation on how the call/video feature works.
The post mentions some java. We are not talking about applets here are we?
Qz 4 days ago 2 replies      
I still don't understand why I would want to pay for music through facebook.
untog 4 days ago 1 reply      
Personally, I'm more excited about the fact that it requires an app ID. I'm very interested in users being able to record video from within Facebook and upload it.

Anything to escape the awful Flash implementation of it...

ajhit406 4 days ago 1 reply      
Strange that this was posted on July 4th and is now just getting promoted / submitted.
The_Igor 4 days ago 0 replies      
Beautiful! Competition is good for the consumer.
bhartzer 4 days ago 0 replies      
You would think they would use another filename that wouldn't reveal Facebook Vibes.
uvTwitch 4 days ago 0 replies      
So, Facebook is going the way of MySpace then?
shimsham 4 days ago 0 replies      
this will surely be their spotify-based app.
balakc 4 days ago 0 replies      
FB giving Google a run for its money
JacobIrwin 4 days ago 0 replies      
So what, Jeff is proud of his discovery. So what, he made a few snarks.

I appreciate the info and he's ultimately correct. "[I] heard it here first."

My experiences as a Recruiter on Hacker News voltsteve.blogspot.com
262 points by Peroni  7 hours ago   88 comments top 30
edw519 1 hour ago 3 replies      
How I deal with recruiters:

If they need understanding of the technology, I will gladly help them with that.

If they need understanding the domain knowledge, I will gladly help them with that.

If they need understanding of interpersonal, organizational, or "soft" issues, I will gladly help them with that.

If they want referrals, I will usually do what I can.

If they don't call back or follow up, I will eliminate them.

If they are ever dishonest in any way, shape, or form, I will eliminate them and tell everyone I know.

For a recruiter, brutal honesty can overcome any perceived weakness and enable others (even us hackers) to be on their side.

Steve, thanks for your brutal honesty here at hn. That's the best we could hope for and should be a model for any other recruiters lurking here. Respect.

swombat 6 hours ago 3 replies      
I don't want an apology on behalf of the very angry minority, not even close.

You may not want one, but you deserve one.

It's sad to see that even without the visibility of the mob amplifying itself in public, you still get a private lynching of sorts... Perhaps the same people who sent those emails can come out of the woodwork now and apologise. That'd be big of them.

Mz 4 hours ago 0 replies      
I spent a lot of years being all helpful in public and had the living shit kicked out of me over it. So I spent a lot of time working on how to make peace with my internal wiring (where I am sincerely just a helpful person...and often wish I could gnaw my left arm off and escape this trap) and the kind of reactions that gets when acted on publicly. So this is my personal opinion about why this kind of thing, which you would think would be well received, typically goes over so very badly:

When speaking in public, especially on the internet, you are speaking to a very diverse crowd. It is inevitable that some of the people "listening" will have serious personal issues: They had abusive childhoods, they were badly burned in some way by someone "like" you in some way, they got taken advantage of in some gruesome fashion by someone claiming to offer help, they are still suffering for it, they are currently in an abusive situation of some sort...etc.

Any time someone as an individual offers publicly to personally do something for a bunch of total strangers, well, you can't equally "love" everyone. And some people have a very hard time accepting "love"/help...whatever you want to call it. I've worked hard at trying to put info on websites, instead of making public personal offers, in part to make it less personal. People can read it and see if it makes sense to them or not and it punches fewer of those buttons because it is more "information" and less "a person/personal favor". And someone will always be left out. You had to close the offer and only got to 80% of what was sent to you. The folks who didn't get something for free will feel (somewhat irrationally) kind of screwed over. You can't do that kind of thing for everyone. So it's best to handle things more discreetly.

I try to not make "blanket" public offers I can't back up. There isn't enough time in the day to give away everything for free to every single individual in need. I try to find ways to make the world a better place without it being so personal, without it being so much about me helping lots of other people individually. Because one of the things I have found is that making a personal offer like that gets read by the crowd as "ego". People think I am attention-mongering or something and if someone else hasn't had enough ego strokes for the day or I am threatening to steal their thunder or something, watch out! There will be hell to pay.

The people in the world who are in a lot of pain, so much pain they would piss on you to that degree, they need a lot more love and assistance than reading their resume is going to provide. And they basically feel like it's just not fair that others are getting what they need and they are not. I know that in part because I was an abused child and I spent a lot of years feeling angry and jealous and invisibly left out and so on. And it often struck me as cruel when other people would try to talk to me about things in a well meaning way but still could not/would not meet my needs. So if I can't genuinely help someone who is living with some kind of enormous suffering, I try hard to not step in it, to not say anything that will sound like rubbing their face in their suffering and all that they don't have. It's part of why I have left some of the health lists I have left: I got myself well and I share my story in hopes of helping others get well but it mostly gets rage and abuse heaped on me. I actually understand their emotional reaction: They are doomed to a cruel fate and my presence just makes them all the more painfully aware of how unfair it is. I still don't know how to resolve the situation. I don't feel right about withdrawing entirely and leaving them to their dire fate when I know it's possible to get healthier. But what I have been doing hasn't been terribly effective and seems to just rub salt in a very, very, very bad wound.

Anyway, this is not about "me". I just tell my story as an example, because I am still compulsively helpful and public lynchings have yet to cure me of that.


xxjaba 7 minutes ago 0 replies      
Being the son of a recruiter and a software developer myself I've had the pleasure of meeting many good recruiters and many bad ones. I've noticed that the key differentiator between the two is that good recruiters understand how to build solid relationships with people that are based on trust, honesty, and integrity with mutual financial gain being necessary but not the foundation of the relationship.

Bad recruiters build relationships based on mutual financial gain and little else.

In the short term the bad recruiters often come out on top since treating people as numbers leads to higher short-term throughput, but long term the solid relationships are what will make a recruiter a success. They are what lead to referrals both from managers and candidates, allow bad news to be communicated without hesitation or undue stress (as honesty is a basis of the relationship), and best of all move with the recruiter as they change firms and grow as a professional.

I very much look forward to seeing your post about how being a software developer gives you an edge over your peers in the recruiting industry.

thaumaturgy 6 hours ago 0 replies      
1. Unfortunately, one of the consequences of anonymity is that it allows people to not be responsible for their actions. That's endemic to any anonymous forum; the only thing that varies is the level and amount of abuse. Anonymity has its advantages, but this is an inescapable disadvantage.

2. People's reading comprehension aren't perfect, or even all that great. People -- myself included -- often seem to miss points being made in discussions and subsequently leap to conclusions that are usually a result of some combination of their own mood, biases, and prejudices.

3. I personally don't see anything wrong with you doing recruiting work here -- so long as you advertise it clearly as such and make it entirely opt-in. i.e., there are monthly posts on HN for people looking for work (freelance and otherwise), and as long as you were clear and asked them ahead of time if they were interested, it shouldn't be a problem. That's just my take on it though, others here may have some strong aversion to recruiters or something.

You do have a lot of value to offer here, you just have to be careful about that line between offering value and taking advantage -- just as everyone else does here.

bambax 4 hours ago 3 replies      
Although I'm currently self-employed (and therefore neither trying to recruit or be recruited) I have dealt with recruiters before, both as a client and as a candidate.

I don't think recruiters are hated by their clients; they offer a service: an expensive service that they usually don't do very well, but they're willing to work hard, they can be called at any time, filter as many hundreds or thousands of CVs as needed, so it's not all bad.

The hate, I think, comes from the candidates. The reason is because recruiters treat candidates as meat, and it shows. It's not just a problem of domain expertise, it's a problem of human compassion.

I read a study a while ago that showed that people don't sue incompetent doctors more than others, even when faced with complications; they sue doctors who they think don't care about them.

Recruiters don't need PhDs, they need to be perceived as caring (and the most straight way to acheive that is to actually care).

michael_dorfman 6 hours ago 0 replies      
I know this wasn't a pity post, and that you're not looking for an apology, but I just have to say, I'm a bit disappointed that some portion of the community interpreted took time out of their busy day to give you flack for an act of kindness, when you specifically set things up in a way to show that your intentions were altruistic.

Your original post was classy, as was this follow-up. Well done, sir.

patio11 6 hours ago 1 reply      
I am sorry that members of the community treated you shabbily.
alain94040 6 hours ago 1 reply      
The hate mail is weird. I made a similar offer two years ago (http://blog.fairsoftware.net/2009/05/13/being-a-new-cs-grad-...), received a lot of resumes, and I can't remember receiving even one complaint.
maxklein 5 hours ago 0 replies      
The problem with hate mail is that it's a lot more affecting than positive mail. The best way to deal with it is simply to smile and delete. Everyone is entitled to their opinion - but they are not entitled to change _your_ life.
trotsky 6 hours ago 1 reply      
even if we aren't one of the 'cool crowd'

Funny what a difference a couple of decades makes. Saying something like that in 1991 about programmers would have been obvious, biting sarcasm.

mgkimsal 4 hours ago 3 replies      
@peroni - this is a little offtopic, but hopefully not too much, and I'd like your opinion.

Many other creative disciplines offer agents/managers/handlers for the 'creative' - think sports players, writers, actors, bands, etc. I've been wondering if a model like this would work in the tech industry for developers. I'm not sure developers would go for it, since many tend to have a 'DIY' attitude about everything.

What I see in the agent model is that someone follows you and your career for the long haul, and finds you work that helps advance your careers (gets you better parts in projects, better gigs for the band, etc). I've never met a recruiter that has kept in touch with me for more than a month or so after a successful placement. They're only working for the employer, because that's who pays them.

Would developers be willing to fork over 10% of their pay to an agent who negotiated better pay and benefits for them, helped get better gigs, etc? As attractive as this model sounds on paper, I'm wondering if this has a snowball's chance of working.


Oh, and thanks for your offer to the group, even if it was abused by a few people. I do this occasionally for members of our local php user group, and it's fun to help people understand how to promote themselves more positively. :) Never done it on the scale you did, and can't imagine the time/effort involved!

josefresco 1 hour ago 1 reply      
Honestly the one takeaway I got from this is that there are roughly 45 active HNers that I absolutely do not want to interact with.

While I know Peroni will never share those email addresses (he's much to polite) I somehow wish we could see which users are that rude/psycho to send this guy hate mail and stalk him (albeit online with the exception of the one nutcase who called his boss)

mike-cardwell 6 hours ago 0 replies      
Every community has idiots. The ones who emailed you can be easily dismissed as fools, but the guy who phoned your company went too far and owes you an apology and explanation. Stuff like that can seriously affect peoples lives and is totally unnecessary.
MattBearman 6 hours ago 1 reply      
I think we can safely say it's a tiny minority of HN users that would respond in that manner.

I'm glad to see you've come back to HN, and although you say you don't want an apology, I hope those responsible (especially the one who phoned your boss) do apologise to you.

I'd like to say its a shame recruiters have such a bad rep, but 99% of the ones I've dealt with have been a lot more interested in getting their commission than getting me the right job.

That said, I've met some genuinely awesome recruiters, and you seem like one of those, so keep fighting the good fight :)

allantyoung 6 hours ago 1 reply      
It's unfortunate a few knuckleheads decided to "teach you a lesson." You can't please everyone.

Thank you for wanting to contribute to the community and giving a gift to people who were not confident of their CVs and resumes. I'm sure you were able to help at least one person drastically change their CV for the better.

Can you elaborate on your "edge" when you worked as a recruiter with a tech background?

skimbrel 2 hours ago 1 reply      
Wow. I'm no huge fan of recruiters, but I'd also never send anonymous hate mail to one. Sorry you had to deal with that, and I'm glad you're making the effort to stick around on HN.

If I can ask one question, though: Why do some recruiters seem keen on ignoring the phrase "I'm not interested in new opportunities at this time"? I have set my LinkedIn profile to say this, and it's the first thing out of my mouth when I get cold-called, but there are some who are not stopped by it. It'd go a long way in my view if recruiters would simply take it at face value when I tell them I'm not interested at the moment.

ajennings 1 hour ago 1 reply      
Thanks for coming back!

If there were any "common themes" in the resumes you reviewed or if you have any general advice for the HN crowd regarding resumes, I would love to hear them.

scdc 1 hour ago 1 reply      
You were smart to tell your boss ahead of time.
donaq 6 hours ago 0 replies      
People like you make HN worth visiting. Good luck with your startup!
44Aman 6 hours ago 1 reply      
It always amazes me how people will actually take time out of their day to personally abuse someone. Great response post and best of luck with your recruiting!
Valien 1 hour ago 0 replies      
Good post. I spent 3 years in the Tech Recruiting industry. Did sales, recruiting for both direct-hire and contract. There are a lot of bad apples out there because it's a low-barrier career. But solid recruiters are a gem and take care of their candidates. Most good recruiters make more money than most developers out there and know their industry well. There are those that are idiots and don't know jack about IT (I'm an IT guy so I did well and understood candidates and clients).

Reason I got out of it was that my passion is in IT so I got back into that world. Now I get to listen to shoddy recruiters calling me and I usually laugh at them... :D

So ignore the bad candidates and focus on the good ones. They are the ones that will put food on your table.

martswite 6 hours ago 1 reply      
A nice article. It's a shame that people misunderstood your intentions regardless of how clear you were. I'd say you deserve an apology.

Just from reading this article my perceptions of recruiters has changed slightly, though I fear recruiters such as yourself are few and far between? Hope your start-up becomes what you want it to be. Good luck Peroni

Alan01252 2 hours ago 1 reply      
I was one of the few guys who missed out. :( If you do ever get round to it, it would be greatly appreciated still.

I also appreciate this follow up post, I looked a couple of times at the previous user name and realised you'd stopped commenting. It did make me think at the time maybe it was a (rather elaborate)scam to harvest C.V's after all. I'm glad to know I was well and truly wrong.

praptak 6 hours ago 0 replies      
Hats off to you, OP for not having gotten discouraged by the hate. Rock on.
roel_v 5 hours ago 1 reply      
I think you're entirely within your right to post the abuser's email addresses / HN handles on your blog or elsewhere.
shailesh 1 hour ago 0 replies      
I'm sorry to learn that you're were treated in a rather indecent manner by some; hopefully the immature response of those folks doesn't deter your noble initiative.
tomjen3 4 hours ago 2 replies      
I understand why those persons send you that email (not that I agree with it). Wild guess only one or two of the CVs had the personal details removed?

It would seem to be an excellent scam and since there are 80k visitors to HN, it isn't strange that a few tenths of a percent of the userbase should have encountered really unethical recruiters and be mad enough to do something about it.

Just the way things are, I guess.

agilebyte 5 hours ago 1 reply      
Great post Steve! I guess much like some developers contribute to open source software projects, 1 recruiter wants to do the same in his field.

Looking forward to meeting you on the next HN London meetup.

jsavimbi 6 hours ago 0 replies      
No good deed goes unpunished.

Also, stop calling me; I'm not interested in working with Flash/Flex, servlets and C# on a Tcl app for a Fortune 500 company within 200 miles of my local area.

JQuery 1.6.2 syntax error? You may be the victim of SEO. encosia.com
255 points by gavingmiller  6 days ago   135 comments top 29
pierrefar 5 days ago 2 replies      
Hello all

I work at Google as a Webmaster Trends Analyst to help webmasters with issues like this one.

Looking into this, the first thing I noticed is that the blog.jquery.com seems to be blocking Googlebot from fetching its pages, but the site responds normally for web browsers: it returns an HTTP 500 error headers for requests using a Googlebot user agent. You can see this yourself using a public tool like Web Sniffer to fetch the page spoofed as Googlebot ( http://web-sniffer.net/?url=http://blog.jquery.com/2011/06/3... ) or using Firefox with the User Agent Switcher and Live HTTP Headers addons.

Unfortunately this is a very common problem we see. Most of the time it's a mis-configured firewall that blocks Googlebot, and sometimes it's a server-side code issue, perhaps the content management system.

Separately from that, I also notice that the blog.jquery.it URL is redirecting to the blog.jquery.com, suggesting they are fixing it on their end too.

If an jquery.com admins want more help, please post on our forums ( http://www.google.com/support/forum/p/Webmasters?hl=en ).



patio11 5 days ago 2 replies      
On the plus side: there are a lot more interesting things a spammer could do with a copy of jQuery than accidentally include a syntax error.
Encosia 5 days ago 4 replies      
In case the spirit of my post isn't clear, let me be the first to acknowledge that I wouldn't have run into this problem at all if I had been less careless. The purpose of posting this was to raise awareness and hopefully help others avoid making the same blunder (and to point some links at the correct site with good anchor text).
gojomo 5 days ago 2 replies      
Google didn't just misrank this fraud; they also provided the loot (AdSense revenue) that likely motivated the crime.

They should ban not just jquery.it from both natural rankings and AdSense, but every other site on the same AdSense account and with the same registered domain owner.

VMG 5 days ago 2 replies      
No, "being in a hurry" doesn't excuse downloading and including jquery from the wrong website. He is lucky that there was a syntax error and the script didn't work, this could have turned out much uglier.

Edit: the headline should be: "Everybody watch out, a fraudulent jquery website ranks higher in google than the official website". The syntax error is the best thing that could happen.

dlikhten 5 days ago 4 replies      
HA! I started reading and researching and it just made me laugh.

Guess what you get when you go to http://duckduckgo.com/?q=jquery THATS RIGHT, an official site logo, because Gabriel is f-ing awesome and I love DDG's little almost insignificant features like showing you the official jquery website vs what you THINK the official one is, since google never helps you there.

Also I have adblocking and opt-out from google's ad tracking on so I never suffer these things. But that's what makes DDG so amazing, that opt-outs don't mater Its just so clutter free. Putting things into context vs just presenting you with data. Note that in my search results I even get the nice icons indicating if the result is spam or not. That website for the fake jquery is... well its not even on first 100 search results, may be blocked.

Thanks DDG, you just justified your existence yet again.

rsoto 5 days ago 2 replies      
This is very weird. jQuery.it has the same PageRank as jQuery.com (8/10). This site dates back to 2007 [1] altough it started copying the jQuery site until 2009 [2].

It also has cloned the subdomains: http://dev.jquery.it/ and http://forum.jquery.it/

What this site appears to do is mirror the content of jQuery.com by copying everything and then appending the "Time to generate" string.
I just checked adblock, it also adds a Google Ad, which is the point to this.

Obviously Google has messed up big time, but also the whole web by linking so much a fake site that it has the same page rank as the original.

1: http://wayback.archive.org/web/20071001000000*/http://www.jq...

2: http://wayback.archive.org/web/20090601000000*/http://www.jq...

tghw 5 days ago 3 replies      
What I find incredible about this is that Google has gotten so good at returning exactly what we want that we no longer bother checking the authenticity of it, even when it's something specific. If Google was "lagging behind on the game" as some people are suggesting, this never would have happened because we wouldn't be trusting it to return what we want.
kristofferR 5 days ago 1 reply      
This should be easy to sabotage/fix for the real jQuery.com guys. Since the fake .it-site hotlinks directly to the css and custom javascript from jquery.com they can add some code that will warn users that the site is a fake, automatically redirect all traffic to jquery.com with a 301, add canonical headers etc...
po 5 days ago 0 replies      
This is also another example of why having more top level domain names will make things worse, not better.
gaborcselle 5 days ago 0 replies      
I highly recommend using the Google-hosted versions of JQuery rather than downloading them and hosting them on your own. You get the benefits of faster downloads through Google's CDN and since many websites use these, they're pre-cached in browsers:
AlexMuir 5 days ago 0 replies      
Not only has Google ranked the site highly, it seems to be the financier too. It looks to me that this was done just for the Adsense income.

Why this was done? Here were my first few thoughts:

1. Display ad revenue. - Maybe initially, there is Adsense markup but the ads aren't showing for me so perhaps Google has disabled them.

2. Affiliate income from the links to jQuery books - I can't see an affiliate code in the links so probably not.

3. Hijacking the Donate button - No. This leads to a blank page with just a Time to Generate snippet.

yaix 5 days ago 0 replies      
>> If you're in a hurry to download a copy of the latest jQuery revision

Pardon? If you download just any jQuery without even checking the domain you are downloading from, then you are very careless. That's just like typing your Paypal password into a form on a website that was linked in an email that looked like it came from Paypal...

Your copy of jQuery will be able to see anything that happens on the site you are writing, send any user password to a external server, read session keys, query your API for any data as a logged in user, etc. You could even build a botnet out of modified jQuery libraries.

Whenever you download executables, make sure you know where they are coming from!

JonnieCache 5 days ago 1 reply      
I bet there's a codepath in the magic google algorithm that says, "all things being equal, favor the page that has adsense." Except normally, things arent quite this equal.
dspillett 5 days ago 1 reply      
There is a fairly simple heuristic that could combat this, which I assume is possible with Google's architecture (which I know little about, so I could be wrong here!):

* if a page A refers to the same external css and images as page B on another site, and those external resources are local to B, then assume B is more original and should be ranked higher than A.

Of course the SEO people will get around this by making sure they take copies of the css and image assets as well as the html ones once this is implemented, but at least it'll save the "target" site a little bandwidth.

ljlolel 5 days ago 0 replies      
Great find. Google is really lagging behind on the game. An italian blog should never rank higher than the jQuery site. If Google loses our trust, and we have to be on our guard all of the time, ...
MatthewPhillips 5 days ago 1 reply      
How is this even possible? Doesn't PageRank work by counting links? Does jquery.it have more inbound links than jquery.com?
mrcharles 5 days ago 1 reply      
What worries me about this is the original intentions of the owners of jquery.it. Obviously they planned something malicious, and were setting up for it, only random chance resulted in them getting outed before they could begin deploying their actual malicious code.

Frankly, had you been more careful, worse could have happened down the road. Still, I would be interested in seeing exactly how jquery.it made it to the top of the search listings.

czDev 5 days ago 0 replies      
I don't think the author is to blame at all. I do stuff like this all the time - I'm working on something, google for it, download and keep on moving. I use google constantly throughout the day, and trust the top result to be authentic. As it turns out, that trust may be unwarranted.
AndyJPartridge 5 days ago 1 reply      
If I now do a search at google.co.uk for "jquery 1.6.2" the linked article is the first hit.

The .IT in question site is the fourth.

Things move fast on the interweb, I can't agree with anyone claiming this is Googles fault.

With the size of the database, the breadth of queries that are done against it and the myriad of possible returns - how could they reasonably police it?

eps 5 days ago 0 replies      
In short -

Beware of downloading JQuery from jquery.it, which may appear before jquery.com in related Google searches. The end.

chrisjsmith 5 days ago 3 replies      
I think the blogger was being an idiot. You should check the authenticity of what you are downloading, not just snag it.

It's like eating a kebab dropped in the street.

lhnn 5 days ago 0 replies      
What if Google put subtle warnings on websites from other CC TLDs than .com, .net or the TLD you live in?

Alternatively, Google could just work on spotting phishing and spam sites.

scottkrager 5 days ago 0 replies      
The victim of SEO?

No, the victim of a scam and Google. The site barely has any inbound links, if this is SEO, they suck.

This is a google fail, not an SEO fail.

iter8n 5 days ago 2 replies      
I would have just typed in 'jquery.com' and then clicked the link for the download page.
ldar15 5 days ago 1 reply      
"MAJOR BUG! Google search engine found to be open to SEO abuse!!!"

Except that this wouldn't be news. And because it wouldn't be news, the blame falls entirely on the author.

The author got fished. Kudos for letting everyone know about it. -kudos for blaming google.

bhartzer 5 days ago 0 replies      
I'm amazed at how many people jump to conclusions--and say that a bad Google search result or search spam is always the fault of SEO. SEO is not evil, and it is not all search engine spam. Most of the time the SEO that I do has to do with more with cleaning up bad or sloppy code and web design errors.
EricR23 5 days ago 0 replies      
The jQuery team is well aware of this issue.
fendmark 5 days ago 0 replies      
Saying that you're a victim of "SEO" is about as accurate as saying you are a victim of "Web Development."
So you want to write a fast Python? alexgaynor.net
256 points by ericflo  1 day ago   63 comments top 11
thristian 1 day ago 3 replies      
Dear PyPy developers: while I'm happy to download binaries and run them out of my home directory for something I use all the time (like Firefox), for less-frequently used tools I'd much rather set up an Ubuntu PPA to install things system-wide and have them kept up-to-date without my having to think too hard about it.

Unfortunately, the only PyPy PPA I can find on launchpad.net[1] hasn't been updated for a year. Please set up a new PPA, or update the one you have - a lot of curious Python tinkerers would love to try out PyPy on their pet projects!

[1] https://launchpad.net/~pypy/+archive/ppa

wbhart 1 day ago 4 replies      
I have some questions:

* Is the Jit in PyPy standalone, i.e. can it be used by other projects independently of Python? Is it documented?

* How does PyPy compare with highly optimised C?

* Assuming that the benchmarks that used to be at the Computer Benchmarks Game for PyPy are somewhat representative of overall performance, why is there still such an enormous difference with optimised C?

* There used to be this thing called restricted python. If one limits oneself to using that only, are benchmarks much better?

* I read somewhere that some projects have merged or combined forces. There used to be this thing called Unladen Swallow. There was also Psyco. Have either of these merged with/been absorbed by PyPy? Are any other such projects still going?

* Cython is another fast project. If it became part of mainline Python, would PyPy become irrelevant?

callahad 1 day ago 1 reply      
Yeah, that's it. Time to start using PyPy as the primary implementation for some toy projects and see how things go.

For folks that want to test their projects against various version of CPython, PyPy, Jython, etc., check out tox: http://tox.testrun.org/

sqrt17 1 day ago 0 replies      
This reminds me that most of what PyPy delivers today - 10x speedup, full range of the Python language, was available within CPython in a module called Psyco that you could easily install.
Like PyPy for a long time, Psyco was only available on x86.

Psyco's author, Armin Rigo, then got disgusted with Psyco and went on to work on PyPy (possibly for more sanity and better funding).

So, yes, I'd be quite happy to use PyPy, even by default, if it was as easy to install as CPython (or ghc, for that matter, which is a bit larger than CPython but also quite easy to install) and worked out of the box. I definitely was when it came to Psyco.

mattlong 10 hours ago 0 replies      
So I really like python and would love to contribute to a project like PyPy, but I don't have much (aka any) experience writing interpreters, compilers, etc. What's the best way to start learning about these things?
ohyes 1 day ago 4 replies      
You can not write a static compiler for python, because python does not have static typing, and it is a dynamic language. So that part is a tautology.

I suspect the author is trying to say that you can not write a compiler to machine code for python. This is wrong.

Compiling dynamic languages to machine code has been done dozens of times in languages with equivalent or greater dynamic properties (Common Lisp, Scheme, and Smalltalk, for example). I guess an example of proof of concept here is that Python was implemented in Common Lisp as a DSL (macros), and it works on the machine code lisp implementations.

The truth is that no one can be bothered to do it, because there is little to be gained from a faster python implementation. All of the slow code is in little parts that can be rewritten in C (or whatever faster language... so almost any language).

The mentioned Python compiler projects are all 'research,' as far as I can tell. Doing something that is actually known to work and is difficult would be of no use to someone who is interested in tenure.

DrJ 1 day ago 0 replies      
If anything, PyPy's blogs and updates are really interesting to read. (not to mention the awesome work those guys are doing!)
glenjamin 20 hours ago 0 replies      
Does anyone know what the state of PyPy with regards to Python 3 is? I had a quick google around but could only find an april fool's joke from 2008!
scorpion032 1 day ago 0 replies      
What is the Pypy's plan of action for Py3k?
lysol 1 day ago 1 reply      
I started messing around with PyPy and love the idea of it. Is there a good Postgres lib for PyPy yet? I've been hooked on Psycopg2 since I got into Python and would love to take advantage of the speed boost from PyPy for my surrounding code.
schiptsov 1 day ago 3 replies      
Perfect is the enemy of good enough. The huge goal of CPython (especially 3.x - those who still stuck on 2.x are, well, just stuck on 2.x) is that it is good enough, was designed to be good enough and simple. Need speed? Write extension is C. It is simple and it was designed to be so.

Most of people still didn't get it. CPython 3.x is good enough for its purpose and its goals. It's evolving according to its philosophy (http://www.python.org/dev/peps/pep-0020/) and it is really really good (If you understand some general principles like The Middle Way, Being Good Enough, Divide Et Impera and so on).

Making things too complicated is as bad as making them naively oversimplified. ^_^ And porting everything to JVM is just some kind of sport.

Being simple extendable and at the same time close enough to a hardware and using optimizations provided by an OS is much better.

Twitter acquires BackType (YC S08) backtype.com
258 points by razin  6 days ago   48 comments top 14
nestlequ1k 6 days ago 1 reply      
I don't get it. Are startups now just a new resume? How are BackType users supposed to react to this? How are users supposed to trust other API startups if they can just get the rug pulled out from them like this?

I'm happy for the team, but is there not any way they could have transitioned the project to other developers and still joined twitter fulltime?

swombat 6 days ago 4 replies      
[ YC08 ]

BackType has raised a total of $1.32m according to http://www.crunchbase.com/company/backtype

No speculation as to the size of the acquisition, but I guess anything between $10-100m is possible, which would give YC a return of about 3% (6% adjusted down to 70% twice) of that, or somewhere between $300k and $3m?

"YCombinator: turning $15k into $300k in 3 years"

Not bad.

Edit: This is based on the idea that BackType is successful, and had other options (which may not be the case, since their QuantCase/Compete graph is going down)... if they were about to go bust, the price could be considerably lower... but if they were doing well, I imagine investors would have blocked a sale lower than $10m.

plinkplonk 6 days ago 2 replies      
Old readwriteweb article

"Secrets of BackType's Data Engineers - How do three guys with only seed funding process 100 million msgs a day?"

http://www.readwriteweb.com/hack/2011/01/secrets-of-backtype... HN discussion http://news.ycombinator.com/item?id=2097926

I am not a Clojure fan, but I found BackType engineer Nathan Marz's fusion of Datalog, Clojure and Hadoop to create Cascalog very impressive, and was looking forward to Storm.

icey 6 days ago 3 replies      
A) Congratulations to the BackType team! I wonder if they're the first Clojure-heavy startup to be acquired. It will be interesting to see what happens to their technology stack after a couple of years.

B) Does this impact the open-sourcing of Storm?

joblessjunkie 6 days ago 3 replies      
I wish that when a headline announced "Big company acquires little startup you've never heard of" that it would be accompanied by some explanation of what the little startup actually does, and why it is interesting.
thecoffman 6 days ago 0 replies      
Congrats guys! I worked with Nathan, and he's a brilliant guy. Well deserved success.
swannodette 6 days ago 1 reply      
I wonder what affect this will have on the open sourcing of Storm.
brlewis 6 days ago 2 replies      
"we will discontinue the BackType product and API services"

Besides Google Alerts, what alternatives are out there?

randall 6 days ago 1 reply      
Black shirt acquired! Congrats guys!
siculars 6 days ago 0 replies      
Looks like they shut their free api down around noon today. Not even a tweet. Boo.
pdelgallego 6 days ago 0 replies      
Congrats to the guys of BackType.

I have been very tempted to apply to their internship during the winter.

edawerd 6 days ago 0 replies      
Congrats guys. Well deserved.
ddemchuk 6 days ago 1 reply      
and yet no profit has been had...good job twitter, good job
chrisvallejos 6 days ago 0 replies      
Congratulations to BackType!
MIT 6.006: Algorithms in Python mit.edu
252 points by helwr  7 days ago   26 comments top 7
sajithw 7 days ago 0 replies      
It's a bit misleading to describe this as "algorithms in python". You'll find that the course is almost entirely theoretical (as it should be) and that there is a small implementation component for each problem set that just happens to be in Python.
niyazpk 7 days ago 3 replies      
Waiting for the video lectures...
Bogdanp 7 days ago 0 replies      
nsomaru 7 days ago 1 reply      
does anyone know of a directory of all MIT CS lectures which may not be available on OCW? would be great to have such a list. extra brownie points for Python... :)
scorpion032 7 days ago 0 replies      
Always, Always been a fan of algorithms taught in Python.
morazow 7 days ago 2 replies      
Erik Demaine great lecturer.
pbreit 7 days ago 2 replies      
Could Khan do each of these in about 7 minutes?
US claims all .com and .net websites are in its jurisdiction theinquirer.net
250 points by pixdamix  6 days ago   153 comments top 32
Silhouette 6 days ago 3 replies      
England, February 2014: In other news, the Internet Service Providers' Association announced today that no major English ISP now relies on Verisign, the US company formerly responsible for administering major domains such as .com and .net worldwide.

This follows a ruling at the European Court last year that Verisign's actions in blocking the domain of German business Musikjetzt GmbH constituted an unlawful restraint of trade, and a subsequent European decision that all primary DNS management should be run under the newly formed United Nations Internet Oversight Service.

The Musikjetzt service allows music fans to stream their favourite songs on demand under the new copyright collective licensing regulations introduced Europe-wide in early 2013, and has sharply increased the consumption of music by independent artists.

Shares in major US record labels have fallen over 40% in the past year, which industry insiders have repeatedly blamed on the way that Europeans "don't respect copyrights." As one CEO put it, "If they won't respect our rules voluntarily, we have to make them respect them."

A spokeman for the US Immigration and Customs Enforcement agency said "Economic attacks on fundamental US industries are a bigger threat than terrorism, and we will always respond accordingly."

No-one from the Recording Industry Association of America was available for comment.

dsl 6 days ago 3 replies      
FYI, .com/net/org have always belonged to the United States.

In the same way that .ca belongs to Canada, com/net/org/us belong to the US. Think of them as the sponsoring organization that originally created them.

The only thing the US government has ever given up is control over the registry and DNS management. Under a MoU[1] that facility was handed over to ICANN with the understanding that they would select US based private sector companies to take on the duties.

Other TLDs that are sponsored internationally but managed in the US (like .me or .ws) is a whole different issue, but this one is pretty clean cut.

1. http://www.icann.org/en/general/icann-mou-25nov98.htm

Shenglong 6 days ago 2 replies      
Is this a joke? I thought it might be serious until I read:
ICE is not focusing its efforts just on web sites that stream dodgy content but those that link to them

Please tell me this is a joke. I don't know whether to laugh or be sad.

tomp 6 days ago 0 replies      
Barnett, assistant deputy director of ICE: "The idea is to try to prosecute."

If I remember correctly, in the few cases that the domains were confiscated, there was no prosecution, no courts involved. The owners of the domains had practically no means to question or challenge the seizure. At least that's what the media reported at the time.

arihant 6 days ago 1 reply      
I'll get downvoted for this.

Argument (I don't completely agree, but someone will make it sometime)- I think it is not good for humanity to trust the jurisdiction of a country which has demonstrated tainted judgement by getting involved in nuclear weapons and given their recent involvements in the middle east. The United States is not the country whose jurisdiction should control any form of worldwide open platform.

Just a thought. This stuff needs some sort of international law. No jurisdiction in the world is good enough to rule the web, in any damned way. We cannot take our narrow minds into the future for our race.

vacri 6 days ago 0 replies      
"By definition, almost all copyright infringement and trademark violation is transnational."

By definition? By definition!?

If that's the case, then as long as the bulk of pirates are in the same country as the copyright owner, then by definition, no violation has occurred.

clistctrl 6 days ago 4 replies      
I ask this completely seriously. What would it take to declare the domain of the internet as its own sovereign entity? The internet to me has become greater than just a communications network. It is a place where people connect/work/play. DNS is a natural resource, and should be regulated by all that is affected by it.
daimyoyo 6 days ago 2 replies      
If these sites are in the jurisdiction of the US, aren't they also entitled to the same right of due process? Have any of these seizures been challenged in court? And if so, what's the status of the cases?
romland 6 days ago 0 replies      
Hmm. Personally this is how I always thought of the original generic TLDs (com/net/org). In my head I think I even applied the idea to .xxx, .aero and what-not as well. Pretty much how I expect Libya to do whatever they want with the .ly domain.

This seizing of domains has been kind of the de-facto behavior for at least some five years by now. In my head this new policy does not change anything (don't run gambling sites on a .com domain etc?). Hell, I might even go as far as to say that it might be a positive thing if there was no such thing as a generic TLD. Most corporations registers all their domains globally anyway (whether that is good or bad is another story).

Not the most relevant Google query, but it takes the idea home, I guess: http://www.google.com/search?hl=en&q=us+seizes+domain+20... -- I didn't bother looking for older entries than that.

jxcole 6 days ago 0 replies      
I think they may be shooting themselves in the foot with all this litigation against copy infringers. Once it becomes impractical to share files using bit torrent, people will probably just switch to mildly less convenient but more secure methods, like free net.
ebaysucks 6 days ago 3 replies      
Suddenly I am happy only the .org was available for my new project.

I am wondering though: Couldn't the US make similar claims on .org and .us (and .edu, .biz?) domains?

chrisjsmith 6 days ago 2 replies      
Centralised DNS = bad. That's the issue.
imrehg 6 days ago 1 reply      
Why is online piracy such a big business (and hence a problem to the rights holders)? Because there are no comparable legal alternatives. So instead of technology and business innovation, let's do legal innovation and sue them people regardless of where they are.
jbronn 6 days ago 0 replies      
Verisign is operator of the authoritative domain name registry for the .com and .net top-level domains. Verisign is headquartered in Virginia, and as such, the "property" of the domain is located in the United States and is subject to the jurisdiction of our courts.

This isn't new, and it's why anti-cybersquatting legislation (15 U.S.C. §1125) can be enforced.

dstein 6 days ago 4 replies      
Then .com's should be phased out. Migrate all .com to .co.us.
turbojerry 6 days ago 0 replies      
I wonder where this will end? Claiming all packets that go through the US are in its jurisdiction? All packets that go through routers supplied by American companies who provide finance for the router? All packets that go through routers owned by a company who has 1 or more American shareholders?
jrockway 6 days ago 1 reply      
Maybe all those .ly domain names aren't such a bad idea after all...
tnorthcutt 6 days ago 3 replies      
Perhaps I'm missing something, but why would ICE have anything to do with copyright in the first place, regardless of whether their jurisdiction claims are upheld/fair? How does copyright fall under either immigration or customs?
nhangen 6 days ago 0 replies      
I get that they can take the domain away, but to seek extradition and US charges in court seems absurd.
imrehg 6 days ago 1 reply      
Oh dear, why did I by a .net for my personal domain.... ><
brudgers 6 days ago 0 replies      
tl; dr

ICE spokesperson: All your domain are belong to U.S.

suprgeek 6 days ago 0 replies      
Intentionally or not this is an excellent way to force the "distributed control" issues of the Internet. It is only a matter of time before other countries (non-US) demand greater say in the control of the policies. This should be an interesting issue and relevant to all users of the Net in the long run.
nodata 6 days ago 1 reply      
Everyone else claims .us is in the US jurisdiction.

How will this stop anything? Wasn't .com handed to the UN to manage?

noarchy 6 days ago 0 replies      
Are there currently any TLDs that are not under the control of a country?
bad_user 6 days ago 1 reply      
Well, PirateBay is a .org
crististm 6 days ago 1 reply      
That's why I want to see alternative DNS services (TLD) take off...
generators 6 days ago 1 reply      
if they even remotely try it, I bet each country will have their own dns server and broken internet. this clearly show that How gradually, USOFA do not have any intention to keep internet open. so it would be wise to move away from them while we can. ( only sometimes, once in a while, why it seems that china is better ? )
Uchikoma 6 days ago 0 replies      
+1 for having more than one domain for your (user content generated) startup.
canadiancreed 6 days ago 0 replies      
Sounds like a good time to start selling those .com/.net domains I've got stashed away.
ao12 6 days ago 0 replies      
All your base are belong to us
BasDirks 6 days ago 0 replies      
I do not condone any lulz that may result from this, but this is the equivalent of dropping your soap in prison.
Companies that make money by distributing misleading versions of VLC l0cal.com
244 points by etix  5 days ago   77 comments top 14
jbk 5 days ago 3 replies      
Disclaimer: VLC dev and VideoLAN chairman

I think the worse part of all this mess is that Google refuses to act and stop those. This was requested quite a few time and Google told us to go away because we didn't own all the trademarks in the US (even though we still have copyright).

Moreover, the safe-browsing initiative, used in Chrome 12, is a complete joke. Reporting one of those websites make the safe-browsing re-scan the website, and find absolutely no issue with it and white-label it, which is even worse...

I contacted the Safe-Browsing initiative to report the issue and they told me "that their wasn't any issue on those websites...". Right...

Of course, running any of those executables on your Windows machine makes MSE (or other antivirus) scream...

I hope that Google fighting spam initiative will improve the situation, but seeing http://vlc-download.com/ on the first page of "VLC" search makes me wondering...

troymc 4 days ago 0 replies      
Last week, I changed my default search in Chrome to DuckDuckGo. Today when I do a search for VLC Media Player I get the "VLC media player" Wikipedia article in the red box at top, and http://www.videolan.org/vlc as the top search result, with a nice little "Official site" label beside it.

I'm increasingly delighted by DuckDuckGo.

darklajid 5 days ago 5 replies      
I wonder if there are any SEO people out there, doing pro-bono (is that even the right term?) work for open source projects like this?

It should be possible to fight back (or, as was discussed/suggested before, search engines are just broken).

rwmj 4 days ago 0 replies      
One problem with VLC is the genuine site's URL is not obvious. It is:


but it's competing against (spammy) sites like "vlcdownload.org".

If they had vlc.com or changed their name to videolan, then it'd be better IMHO.

MetaMan 4 days ago 0 replies      
I think the real issue is that there is a misalignment of "business models".

On the one hand you have an open Source project with little funding relying on a small group of volunteers acting mostly out of a sense of social responsibility and on the other hand you have dishonest rip-off artists able to make money for free with little or no practical sanction applied.

Its not really google's job to police the web (Note I'm not condoning Google's behaviour). The extent to which they do this depends on how well that policing activity aligns with their business interests.

The root problem is profit Vs non-profit in an environment with dis-interested / conflicted and or toothless regulatory bodies.

IMHO Money is metaphor for power and as long as VLC/VideoLAN is a 'not-for-profit' organisation they will have problems.

billpg 5 days ago 1 reply      
So distributing copy of VLC with lots of malware added but still conforming with the GPL is okay?
TeMPOraL 5 days ago 0 replies      
Seeing that I am thinking more and more about creating a personal "never ever work with those people/companies" database...
zenspunk 5 days ago 4 replies      
Should Google somehow run background checks on every advertiser to see if they're breaking some US law? (or other countries' laws?) What broken laws should justify removal?

Should this be before or after they allow them to advertise? If before, this would inconvenience the majority of advertisers who are legitimate. If after, should Google investigate every incoming report of illegitimate advertising? Or, how many reports should warrant an investigation by Google?

Regardless, can Google remove these Adword listings without legal issues (i.e. without risking being sued)?

Getting these scammers off the front page of search would be relatively easy - it can be solved algorithmically. They're probably working on it now, with their anti-linkspam initiative.

But I don't see how Google could get them off Adwords without employing hundreds or thousands of people to review advertisers, but this would create more problems of greater magnitude than it would solve.

They could crowdsource it to narrow the (retrospective) review process, but this would create a secondary market of advertising, which I doubt Google wants, nor users would want to deal with.

I can't think of a way for Google to solve this problem without creating larger ones.

It's the responsibility of governments -- not internet advertising platforms -- to police copyright law.

mwill 5 days ago 1 reply      
Worth noting it seems many of the sites listed at the end of the post are now offline.
shadowflit 4 days ago 0 replies      
So of course I agree that spam results are the heart of evil. But I'm confused. After reading the DDG comment, I plugged both "VLC" and "VLC Media Player" into both google and DDG, expecting to see bad results at google. Instead, the top 4 results (ignoring ads, of course) all point to videolan.org. Is this a case of my results being pre-filtered or something? I don't recall hitting the "this is stupid, make it go away" button too often on Google.
arihant 4 days ago 0 replies      
To me it appears that most have not changed the name and they are hosting the download files for free. Not all darkness here.
Zeus-TheTrueGod 4 days ago 1 reply      
sudo apt-get install vlc.
Really easy, so may be google is not the best way to download and install software ?
pavel_lishin 4 days ago 0 replies      
Why do you consider VLC crap, and what would you suggest as an alternative? Bonus points if the alternative works on all three operating systems that I use (OS X, Windows XP, Ubuntu.)
omouse 4 days ago 1 reply      
How can you say "intellectual" property and GPL in the same sentence? That's fucked up, seriously. The whole point of the GPL is to help erode the copyright system and make it unnecessary.

Of course this situation is not specific to VLC, other open source products are affected by this scourge and there's not much we can do about it. They have the money to buy adwords, we don't. Sadly, as a non-profit organization we don't have the money to sue them.

Really? You would sue them? That's kinda dumb don't you think? Kinda gives legitimacy to the shitty copyright system...

Anyway, my solution would be to ask for money so that you can afford to take some action.

The other half of this solution is to setup a few spammy/malware-looking websites that offer the genuine product. Out-spam the spammers! There must be a reason people are falling for the spammers' marketing after all.

And judging by the domain names, you failed to pick up on that marketing. They have some key domain names; downloadvlcplayer.net, vlcdownload.org, vlc-media-player-blog.com. Those domain names should have been bought up a while ago. Create a new domain, something like free-vlc-download.com.

Courtney Love does the math (2000) salon.com
246 points by hezekiah  4 days ago   65 comments top 14
api 4 days ago 2 replies      
Generally speaking, the creative industries are full of people and businesses that operate by screwing over creative people.

They view creative people the way a miner views a resource in the ground: as something to be strip mined and then discarded. I've encountered raw contempt... in a sense they are jealous of the ability of creative people to be creative, and this fuels their desire to co-opt it and take some of that glory for themselves.

But, part of the reason there's so much of this is that creative types are often horrible businesspeople and have no desire to learn. Instead, there is this myth that you get "discovered" and then someone else does the business for you.

Reality: you get "discovered" by a predator. If you don't want to be prey, you have to do it yourself.

Edit: this doesn't mean you have to be a 100% indy do-everything-yourself self-publisher or bootstrapper. But going into things with your eyes open, reading the fine print, and thinking like a businessperson is part of doing it yourself. Businesspeople do go into business with other people and other businesses, but they don't think "wow! I'm getting discovered, now I'm set!" They think "hmm... what's the value proposition here?" and they run spreadsheets and they look for hidden places where they might lose value or not get enough value for their money. Then they push back, and negotiate. Think like this or you get screwed.

Oh, and if it sounds too good to be true it probably is.

alanh 3 days ago 0 replies      
Wow, what a read! Thanks!

1. Related: Michael Jackson calls head of Sony, his record distributor, a devil. What a video: http://www.youtube.com/watch?v=Wt6zVypo72E

2. Love's thesis: Through lobbying and collusion, the big labels (she calls them distributors) essentially own artists, which she calls “slaves” and “sharecroppers.” Following, an excerpt from the Sponsorships section.

> When I agreed to allow a large cola company to promote a live show, I couldn't have been more miserable. They screwed up every single thing imaginable. The venue was empty but sold out. There were thousands of people outside who wanted to be there, trying to get tickets. And there were the empty seats the company had purchased for a lump sum and failed to market because they were clueless about music.

> It was really dumb. You had to buy the cola. You had to dial a number. You had to press a bunch of buttons. You had to do all this crap that nobody wanted to do. Why not just bring a can to the [venue] door?

> … They were a condescending bunch of little guys. They treated me like I was an ungrateful little bitch who should be groveling for the experience to play for their damn soda.

> I ended up playing without my shirt on and ordering a six-pack of the rival cola onstage. Also lots of unwholesome cursing and nudity occurred. This way I knew that no matter how tempting the cash was, they'd never do business with me again.

> If you want some little obedient slave content provider, then fine. But I think most musicians don't want to be responsible for your clean-cut, wholesome, all-American, sugar corrosive cancer-causing, all white people, no women allowed sodapop images.

> Nor, on the converse, do we want to be responsible for your vice-inducing, liver-rotting, child-labor-law-violating, all white people, no-women-allowed booze images.

And that may be the least interesting part of the screed.

joejohnson 4 days ago 7 replies      
I can't believe Courtney Love wrote this. I had a low oppinion of her, but this seems really well written. Also, she's a fan of Neal Stephenson? That quote almost makes me wonder if this were written by some nerd and attributed to her...
daydream 4 days ago 2 replies      
See also: The Problem With Music by Steve Albini


zwieback 3 days ago 0 replies      
This piece is interesting to read 11 years later, amazing how much the distribution question has already changed.

My kids pretty much use Grooveshark, Pandora and iTunes to play music. CDs are only used in the car and even there we frequently use MP3 players. Even though we still have a vinyl record player for my old Blue Note records it's not used very often.

What hasn't changed is the fact that there's a lot more record companies do than distribute the final product. It's pretty clear that the reason these companies have so much power is that they produce and market artists. Without that power the distribution wouldn't be so valuable. Someone still has to pay for studios, producers, designers, publicists, etc. This is particularly true for bands that survive not so much on the musical skill of their members but the overall sound and image.

wtvanhest 3 days ago 2 replies      
I do not disagree with Courtney Love that the system is not great for artists but the solution is probably not in the distribution method, or the structure of the financing. It is most likely in solving the cost problem.

If it costs $500,000 to produce a record, like she says it does, that would create limited room for a great number of bands and artist to record. The market size ($s of world wide discretionary income) can only support a certain level of production.

Figuring out how to lowering that number would be far more productive than trying to create the next huge app which helps starving artists with terrible recording quality get their music heard or some other distribution method.

(She also fails to add in concert revenue which may be lucrative for artists)

ldar15 3 days ago 0 replies      
I have a promising start-up, with several hundred users in specific geographic locations. I will need "$4.6m" to scale, and I want to take out $1m for the cofounders.

In our market, 32,000 such companies launch each year, and of those, only 250 generate more than $200,000 in revenue. Only 30 generate $20m.

What is a fair percentage to offer the VCs?

Yes, I appreciate that there are many differences between bands and start-ups, but if, as she says, only 250 of 32,000 albums sell more than 10,000 units, then this $10m the record company makes from her band must go, in a large part, to cover the costs of funding all the bands that dont make it. Maybe they are still making a handsome profit, but its not as unjust as she makes out.

viggity 4 days ago 1 reply      
Please don't editorialize in the submission title

"Exactly how record companies screw over successful artists [2000]"

would work just as well.

clobber 3 days ago 0 replies      
nate_meurer 4 days ago 0 replies      
Be sure to read the part about Mitch Glazier, starting half-way down.
Luyt 3 days ago 1 reply      
This is one article in a row which describes how the recording industry exploits creative persons. It looks like you can't earn much as a musician.

Yet, I see many rappers living in multi-million houses and owning Ferrari's etc, in MTV Cribs. Do they do something different?

MostAwesomeDude 3 days ago 0 replies      
From one musician to another: Do not get signed. It will destroy you. :c
danbmil99 3 days ago 0 replies      
Somewhere, I read a very similar piece by TLC
badhairday 3 days ago 0 replies      
Wow, I remember reading this exact article when I was in a middle school music education class.
ITerm2 1.0 Released iterm2.com
242 points by creativeembassy  4 days ago   113 comments top 29
tptacek 4 days ago 6 replies      
I wasn't a fan of iTerm "1". What's new in 2? Someone got a summary? I don't see it on their site.
niels_olson 4 days ago 4 replies      
some other resources for those interested in terminal apps, what are some others?

Guake: http://guake.org/

Yakuake: http://kde-apps.org/content/show.php?content=29153

Visor: http://visor.binaryage.com/

SIMBL: http://www.culater.net/software/SIMBL/SIMBL.php

Solarized: http://ethanschoonover.com/solarized

creativeembassy 4 days ago 4 replies      
I've been using this replacement for Terminal.app while it's been in beta, and it's fantastic. It natively supports splitting, windowing, and tabs, and it has great keyboard shortcuts for navigation between all of your windows. It also has fullscreen mode (and top-of-screen mode) if you like to dedicate a Space to it. There's a Solarized theme for it if you're into that sort of thing. It supports Growl if you can't stand not being bugged about unnecessary information (or you can turn it off if you're the productive type).

This is the very first thing I install on a new Mac for development. I highly recommend it.

xer0x 4 days ago 1 reply      
+1. This is a great OSX terminal app. I love how quickly it has grown and improved.

I encourage more folks to try it out. You'll love the color themes, split windows, built-in visor hot-keys, and more.

johnbender 4 days ago 0 replies      

    #container { margin: 0 15%; }

looks much better as

    #container { margin: 0 auto; }

I expect downvotes but its a great app and it deserves a great website.

icefox 4 days ago 1 reply      
Woot 0 cpu usage when it isn't doing anything!
markbao 4 days ago 0 replies      
iTerm 2 is essential.
andrewf 4 days ago 0 replies      
I mainly use iTerm2 because, unlike Terminal.app, it has gpm support. Being able to use a mouse while editing files over an SSH connection, without having to think about it, is a big win.
peterb 4 days ago 1 reply      
ITerm2 combined with zsh and oh-my-zsh gives you super powers.
kungfooguru 4 days ago 0 replies      
I don't use screen locally so when I ssh into boxes and use screen I'm not screen in screen and have to double-a. So I like tabs.

A feature that would be awesome (if it doesn't exist, by default at least it doesn't) is being able to have tabs per split.

OSX's window manager is so poor in my opinion that I would love to be able to have a full screen iterm2 but I like to have one terminal on the left and one on the right which has many tabs -- just helps with the cluster I'm dealing with. So without being able to have tabs only on the right split I have to use two iterm2s.

Just a thought.

grandalf 4 days ago 1 reply      
This looks great. Two questions:

- How does one change the background color for the panes that don't have focus? The black vs charcoal distinction is a bit too subtle for me.

- Is it possible to map command-` to cycle between panes? If so, how?

TylerE 4 days ago 4 replies      
Does the font rendering seem very different to anyone else? Using the same font (Anonymous Pro 14pt), I had to increase the vertical spacing from 1.0 (as it was in iTerm) to ~1.18 to get the same spacing. Bold is rendered differently (worse) too. It does seem quite a bit snappier on my old G5 though.

Comparison shot: iTerm on the left, iterm2 on right:

draebek 4 days ago 0 replies      
I find iTerm/iTerm 2 invaluable for full screen mode, ability to turn off scroll bars (and still have a scroll back buffer--can't do this in Terminal.app and it kills me), and copy-on-select.
beck5 4 days ago 1 reply      
Been playing with it this evening and it will be replacing terminal for me. I also found this nice collection of themes to pimp it out a little:


deweller 4 days ago 4 replies      
I'd like to try iTerm2, but "groups" in Terminal.app is a must-have feature for me.

Anyone know of a workaround for iTerm2 that will let me save a group of windows and starting commands?

dkastner 4 days ago 0 replies      
I forked tmuxinator to generate the appropriate applescript that will set up iTerm according to your tmuxinator config: https://github.com/dkastner/tmuxinator/commit/c96d04d994cd8c...
ducktype 4 days ago 1 reply      
Wow, looks like they've fixed most of the problems I had with it in the past. The one thing I still miss from yakuake is to be able to select split-panes by numeric hotkey. Seems like you can only do it for separate tabs and windows, but my preferred workspace is a 2x2 visor window.
mrkva 4 days ago 1 reply      
Quick question - is it possible to underline links a let them be opened by single click?
joshu 4 days ago 4 replies      
How do I switch between split windows?
scottschulthess 4 days ago 1 reply      
Great job developers of iTerm2, it's really a pleasure to use on a day to day basis, if only it had really cool integration with tmux so I could actually use tmux instead of hate on it.
angerman 4 days ago 2 replies      
Awesome! iTerm + zsh...
If only I could disable the scrollbar :/ On a related note, is there a show/hide animation like Visor too? I liked the "slide in/slide out" animation a lot.
phlyingpenguin 4 days ago 2 replies      
Is there a changelog somewhere obvious that I'm missing? It appears I've gone from 0.20 to 1.0, what am I getting here? The one in the source tree appears to be quite out of date.
singingwolfboy 4 days ago 1 reply      
The SVN repo doesn't have a tag for version 1.0. I know it's a quibble, but it's useful for people who maintain package managers like Macports. :(
fedorabbit 4 days ago 0 replies      
split pane seems to require configuration since default is "cmd+d" which is set to be shown desktop on some mac.
shapeshed 4 days ago 0 replies      
happy beta user here rolling zsh with tmux and solarized. Looks great, works great
jcoder 4 days ago 1 reply      
I just think it's interesting that iTerm2 has one author, but iterm2.com has three.
nnutter 4 days ago 0 replies      
-1, click through three pages to get from "Download" to an actual download.
ahmetalpbalkan 4 days ago 0 replies      
I love iTERM!
SeoxyS 4 days ago 9 replies      
You have to be kidding me, right? This app is so bloated and unpolished"it really doesn't feel like it belongs on the Mac. I'll take OSX Lion's sleek Terminal.app over iTerm any day. My favorite new feature, it lets you customize ANSI colors!

Screenshot of Lion Terminal:


Edit: I know I'm going to get tons of downvotes for this. But it's my opinion that something sleek and simple is much more powerful than something with tons of bells and whistles, especially when it doesn't look very good.

Edit2: To all those who bring up window splitting, the default terminal app does it too, as well as native fullscreen:


Clojure on Heroku heroku.com
240 points by joshuacc  6 days ago   27 comments top 5
wingo 6 days ago 0 replies      
Remarkable. Congratulations, clojure folk, for a fairly mainstream Lisp coup.

[Edit: Also, props to the Heroku folk for doing something a bit off the beaten path. I'm sure clojure is lovely, but it wasn't the "obvious" next thing to work on.]

olifante 6 days ago 2 replies      
sweet but surprising. This would probably never have happened if the author of Ring didn't work for Heroku.

Anyway, definitely a major milestone for the most elegant language of the last 5 years.

olifante 6 days ago 4 replies      
This also means that technically there is no reason why Heroku Cedar couldn't support other JVM languages, such as Scala. It would be fun to watch Scala and Clojure fight it out on an even playing field.
ericlavigne 6 days ago 0 replies      
Excellent news!

Heroku is the only reason I gave Ruby/Sinatra a try for a while. I love the idea of having Heroku-style deployment without giving up Clojure.

choffstein 6 days ago 1 reply      
Very interesting. Seems rather niche, though after the recent sale of Phenona (which I believe was on Hacker News a couple weeks ago), I can see why everybody would be rushing to become the cloud-deployment solution for any language vertical.
Sublime Text 2: Beta sublimetext.com
236 points by creativityhurts  11 days ago   90 comments top 38
daeken 11 days ago 2 replies      
I've been using Sublime Text 2 since the first alpha and absolutely love it. Insanely customizable, really well laid out, great project management, fast as hell, etc. I'm still using 'E' on Windows, but on OS X this is all I use.
tel 10 days ago 1 reply      
Honestly and evenly, if I'm a proficient vim/emacs user, why would I want to try this out?

I know there's plenty of market not underneath that hypothetical, but an editor has to answer that question to even register with me these days. I also assume I'm not alone.

trustfundbaby 10 days ago 1 reply      
You know what I love about Sublime? It this nifty little feature where if you're looking at files in your file list in the side bar ... clicking through them brings up the content of that file in the tab you were last editing (no opening of a new tab) ... and when you go back to editing your file ... the content shows back up in the tab.

So you can look through files very quickly, just by clicking through them, instead of opening 20 files only to close them all when you find the one you want.

And if you start editing the content of a file you were just perusing, a tab opens for that file automatically. tres cool.

... totally sold me on sublime.

dtalen 11 days ago 8 replies      
As a longtime vim user I'm interested in knowing if there's anyone that's switched to Sublime Text (or TextMate, or any other similar contemporary editor) and if so, how has it gone? There seem to be a lot of cool features here but do they outweigh the benefit of knowing that they key bindings you've learned will continue to serve you for decades?

Please, this is not flamebait. I'm interested if anyone's made a switch from an old standby like vim/emacs to a new editor and how they've fared. Maybe it's time for me to start looking at all the new editors out there.

chime 10 days ago 0 replies      
I just gave it a try and absolutely love the minimap feature. Definitely helps with browsing through my code quickly. Once it had code-folding, I will hit 'Purchase'. Until then it's TextWrangler for me.
flocial 10 days ago 0 replies      
Ever since I stopped waiting on TextMate 2 and learned to love myself more, I've moved on to vim and now emacs. I'd be weary of any editor that isn't open source or has a solid organization behind it.
veidr 10 days ago 1 reply      
I am really sick of new 'text editors' hitting the scene that can't handle editing text other than English.
Corrado 11 days ago 3 replies      
I would say this is more than a replacement for TextMate on OS X. Stop waiting for a TM update and jumpt to Sublime Text 2. I've been using it since the early alphas and it's always been top notch.

The only thing that bothers me right now is the slightly different keyboard shortcuts between Linux and OS X, but I think you can "correct" those manually by editing a couple of config files. Other than that, I LOVE this editor! :)

fingerprinter 11 days ago 1 reply      
I LOVE this program and I can't wait for it to be in the Ubuntu Software Center...everyone should be able to get and use this really easily.
mrinterweb 10 days ago 0 replies      
For Ubuntu and Debian users, I would recommend installing this from the PPA. https://launchpad.net/~webupd8team/+archive/sublime-text-2 Installing from this PPA worked well for me and it would appear to be up to date.
STHayden 11 days ago 0 replies      
I use it and love it. If you ever tried 1.x and have not tried 2.x then you should give it another try. It's worlds better.
loevborg 11 days ago 0 replies      
Sublime Text claims to be an editor for prose as well as for code. But does it allow you to use good-looking proportional fonts with good line spacing? Yes, in this respect (though in no other) a text editor should be like Word. I write all my "prose" in a simple text editor (Vim), but I dislike the limitation of using only fixed-width typefaces.
palves 11 days ago 1 reply      
How does it compare with powerful IDEs like Intellij/PyCharm or Eclipse? I mean, does it make sense to have an editor that is both good at "code, html and prose" (debugging and refactoring comes to mind...)?
frsandstone 11 days ago 0 replies      
Their server is getting hammered right now. Anyone have a mirror?
lobster_johnson 10 days ago 0 replies      
As a TextMate user, I love Sublime and I'm trying to migrate over.

The built-in project-wide search is extremely slow (it seems to search absolutely everything and consumes 100% CPU while doing it) and seems unfinished. I really miss AckMate (https://github.com/protocool/AckMate/wiki/Usage).

Also, some files with canonical names (Gemfile, Rakefile) don't have file extensions nor shebang lines, and so Sublime can't determine the language for syntax highlighting. Is there a way to fix this?

drewjoh 11 days ago 1 reply      
I'm loving Sublime... except the character spacing is weird for me (running on OSX using Droid Sans Mono). Has anyone else experienced this or know a solution? Sublime/Textmate example: http://cl.ly/050P2l37121b2R0P0a3V

Update: After going through other mono fonts... it seems like all of them are spaced just a little farther apart than what they appear like in Textmate, Espresso, etc.

sgrytoyr 11 days ago 0 replies      
ST2 is fantastic. One of the many benefits compared to TextMate is that it supports Emacs-style marks, which enables commands like kill-region and yank.

I have created an "Emacsify" package with some important keyboard shortcuts and additional commands. You can find it here: https://github.com/stiang/EmacsifySublimeText

florin_ 10 days ago 0 replies      
Been watching sublime for some time now after I gave it a short try. If only these lightweight editors provided CTRL-click type navigation I'd be sold. I use IntelliJ IDEA now - it is a powerhouse of irreplaceable help. It works magic with Java/Groovy/JavaScript/CSS/HTML navigation.

I need Sublime to provide type navigation. Forget debugging and other features.

newman314 11 days ago 3 replies      
Does it do language autocomplete?
JeffJenkins 10 days ago 0 replies      
This seems pretty cool, but is there a way to filter out certain file/folder patterns (or globs) on a per-project basis rather than globally?
d0m 11 days ago 2 replies      
How's the keys customization? Is there a vi-mode key binding?!
georgemcbay 10 days ago 2 replies      
I like this as a code editor, but the lack of even a rudimentary project/directory view (other than the file list overlay which I don't like at all) kills it for me.
beck5 11 days ago 0 replies      
I bought the alpha a few months back because I was very impressed with the demo. Its fast, looks good and has good amount of power, power close to Vim level in my opinion. But at the end of the day I use Vim because it is so ubiquitous (and open).
Xavura 11 days ago 0 replies      
I've been using Sublime 2 since early alpha, it is... aptly named. I've tried dozens of editors and eventually settled on TextMate many years ago.

Within 2 days, Sublime had completely* replaced it--something that many editors have failed to do.

I can't wait until I get paid, so that I can throw money at them.

* I still use TM on occasion for its GUI theme/bundle etc. editors.

orta 9 days ago 0 replies      
I've wrote a ruby gem to act as an equivalent of TextMate's mate command, OS X only I'm afraid.

gem install slime

yannski 10 days ago 1 reply      
Poor syntax highlighting for HAML and coffeescript highlithing is non existent... This is why I love vim and the Janus "bundle" https://github.com/carlhuda/janus/ : they are always up to date.
jbrowning 10 days ago 0 replies      
Here is an alternate download location from the developer:

Source: http://twitter.com/sublimehq/status/86799940021518336

Inufu 11 days ago 2 replies      
Why should I use Sublime Text and not emacs? (note that I'm not experienced with emacs)
chrisrogers 10 days ago 1 reply      
I am a big fan of this project, and it's made some great progress over the months. Only thing holding me back right now: code navigator. The overview display is nice, but a full code navigator would seal the deal.
XLcommerce 10 days ago 0 replies      
I really like the feel of sublime text, however there's one feature keeping me on Notepad++ which is double click to highlight text also highlights all instances of that word in the document.
AaronMT 10 days ago 0 replies      
Selecting text shows invisible characters, awesome (it's the little things).
swah 10 days ago 1 reply      
I can't stand the black tabs.
derencius 10 days ago 0 replies      
from textmate, to vim and now sublimetext2. I'm not that proficient on editors, but sublimetext is being great. fast and simple very configurable. my editor of choice for a couple of months.
tomrod 10 days ago 0 replies      
How does this compare with Coderoom?
crazymik3 11 days ago 0 replies      
Happy to say that I've already been using it for a while. Big fan.
KevBurnsJr 10 days ago 0 replies      
Poor support for PHP 5.3
sashthebash 11 days ago 1 reply      
Where is the Peepcode Screencast or something similar for this that teaches me the basics in about an hour?
thaumaturgy 11 days ago 1 reply      
Wow, this looks great! I really dig the no-distraction mode, I did something similar with my terminal program and I love it.

clicks Download

...oh. 10.6 required.

Shucks. At least I got to see pictures of it, I guess.

       cached 12 July 2011 15:11:01 GMT