skysight-inc/HackerNews huggingface dataset:
I wonder if this could be related to the job expectations of the different groups. CS majors (my experience, anecdotal) tend to have a few set ideas on the sorts of jobs they'll take or that are out there. Employers also seem to make assumptions about what roles they'll hire them into or that they can perform effectively. However, I've seen liberal arts majors in a much wider array of jobs: management, sales, HR, various sorts of assistants, PR, all in one enterprise setting.
It would be interesting to see numbers on how often people who tell pollsters they are "considering" a course of action in a survey actually follow through. I never know how seriously to take that sort of data. Based on what I know about how inertia affects most people's decision-making (mine included), I'm guessing the portion of people who act on their consideration is pretty low.
I don't understand why people are forced to write on whiteboard. Some get very stressed and lose their ability to think, some can't multitask (paint on whiteboard, think and talk to the interviewer at the same time). Just give them the task, give them a computer, give them 30 minutes of privacy and then let them explain the complete, working and tested solution - you get better results as this situation is more like regular coder's daily routine.
The whole reason why I preferred this setup and not straight hosting on GitHub Pages (which works great for low-traffic content) is that I want control. Control means also adding dynamic behavior when you need it.

A pure static solution like Cloudfront doesn't allow dynamic behavior. One incredibly useful use-case is having redirects, because your content moved around, after a cleanup, or a migration, or something. HTTP redirects are useful for moving the Google juice you received on your original link, doing Javascript-redirects does not work in the same way.

So I like the idea of a static site, but sometimes you really need dynamic behavior. Also, I hate the www. prefix for some reason. I think it is obsolete. It's just an opinion, but I hate that Google's App Engine or Cloudfront doesn't let me go naked.

The problem is that the DNS RFC (RFC1033) requires the "zone apex" (the naked domain) to be an "A Record," not a CNAME. And these services insist on CNAME. It is understandable why, because CNAMEs scale better and a CDN (for instance) couldn't function properly with A records, but I hate this situation it nonetheless. In my view, root domains should be used naked, not with the "www." prefix.
Great app, thank you for sharing those data
Very interesting! I'll re-read the code.
You ask general generic questions and you will get general standard answers. Try asking engaging questions that can get more specific answers. Like "can you give me an example where you devised a creative solution to a problem?"
> When I send people my resume, I at the very least expect them to read through it.

Wait till you're on the employing side, like, even, your boss asks you to look over /100+ resumes/ that are 95% irrelevant.
I wouldn't take it personally. People get hired for all kinds of reasons, and not getting a specific position just means that they didn't think you were the best candidate for that position. It certainly doesn't mean you are a bad developer or anything is wrong with you. It could be they were looking for someone more experienced, less experienced, different experience, salary expectations, the job description they gave didn't accurately describe the position they are hiring for, etc...

If an employer says they will get back to you and 2 weeks go by, it's worth contacting them and asking if they have made a decision yet. If they say yes and you don't have any clue why they wouldn't have hired you, I don't think it hurts to ask them why not. You might get a BS answer or you might get some good insight.

Just keep improving your skills, and keep looking.
I second this. I added 'AppiRater' (https://github.com/arashpayan/appirater) to one of my popular apps which users weren't reviewing. As soon as I added AppiRater the number of reviews increased a lot. I also noticed that it didn't increase the number of negative reviews which was a surprise.
26% MBA Founders, $5.3M Avg. Funding for 25 Startups From TC Disrupt 2010
Try Appirater: http://arashpayan.com/blog/2009/09/07/presenting-appirater/
Yeah, I read it before you changed the title.

I agree that EC2 isn't value for money if you're looking to rent a server for a month at a time.
(posted to blog as well)
would like to know more about the strengths/weaknesses of these development resources. For example, one of the things i love about the django dev server is that it "listens" to all the project dependencies and restarts when any file is saved (which has saved me from trying to understand why something I fixed didn't work and discovering that it's because the changes weren't .pyc'd)
You read my mind...I had actually thought about that and put it off because...the FEC data is just an annoying unnormalized Excel spreadsheet. It wouldn't be hard to include, I just didn't get to it yet.
Nope! Whenever you see an American ignorantly claiming the US as #1 in something you can safely chalk it up to American Exceptionalism. http://en.wikipedia.org/wiki/American_exceptionalism

It's a neat little ideal that helps people assert we, as Americans, are intrinsically better than everyone else, by fiat.

It avoids all the hassle of constantly working to live up to our own ideals, or expending any effort to improve ourselves as a nation. Also people holding that mindset generally learn much further right/conservative than the average American. And keep in mind America has two parties, Moderate Right and Extreme Right. We have no left wing to speak of, when compared to European politics.
I'd immediately switch to a blogging platform that was like tumblr or blogger but with an easy way to include code.

Currently what I do is paste only short sections into the blog and link to the proper syntax highlighted code on pastebin, or if it is on Googe code or github directly to it there.
"Of the several articles decrying the MVP...", not sure that's what's going on here.
This story blew my mind. Love the perseverance!
Why are some programmers paid more than others?
Hi, I'm the author of this post.

Wordpress is great for starting out and in general the smart choice as you'll find tons of already-made plugins and themes.

However, I like control and I find Wordpress to be a hassle when I want to customize or optimize the setup. But if you don't want to spend too much effort and simply don't care about customizing it, there's no better alternative than Wordpress.

But make sure to continually upgrade it to the latest version as Wordpress is the most targeted piece of software by crackers/spammers on the Internet. And if you don't, one day you'll notice Viagra-related ads or pornographic content on all of our pages. This is what I meant by static content being a lot more secure, although fortunately Wordpress is easy to upgrade these days.
> If I wasn't allowed to research those beforehand or have them explained then I would fail

It's implicit in all of these that the concept is explained to you. Nobody would ask you to "implement a X" expecting you to know what X was (be it Pascals triangle, fizzbuzz, map, etc) unless X happened to be a fundamental concept in the field you are working in (not the case for any of the examples so far)

> Therefore you would have to write up your own Array.prototype.map and Array.prototype.reduce to make them work. Is that true?

Yes, that's sort of the point here. Javascript has these functions as methods of arrays (in some implementations), but the idea of the test is to write your own. They're both pretty simple, basically a for-loop and some logic.

On another note I have a hard time believing you work in JavaScript on a day to day basis and are not working with arrays. If you use jQuery or a similar library, you are working with arrays all the time and also using map-like functionality even if you don't know it by that name.

$(".foo").click(function(){})

Takes an array of elements and maps over them.
Oh, I totally agree there; I mentioned in a different comment that the whiteboard coding problem is just one component of many that we use.
The main problem with asking the same question over and over again in interviews is that you are implicitly comparing the current candidate to previous candidates, which isn't fair.

If someone genuinely has never seen a problem before, and then figures it out in 45 mins, this person may look worse than someone who memorized the answer, and solves it in 10 mins.

The best solution is to give a previously unknown question to both the interviewee and the interviewer, and have them work out the solution together. It doesn't have to be a coding question, but the interviewer should be good enough to assess whether or not the person they are interviewing is good, not from how quickly they spit out an answer, but through how they work to get the answer.
Up in the air with small children
Not yet... really, it scales enough for us now. but i've noticed people pick Couch because they think it scales better than, say, MySQL out of the box but the reality is the opposite - you have to pull out the book of scale tricks much earlier w/Couch than w/MySQL.

Also, i really like Couch... so don't take what I am saying here or above as an attack.
(So I had 10 minutes to kill)
-----

import scala.collection.mutable.HashMap

import scala.math.BigInt

val pascals = HashMap[Int,List[BigInt]]()

def pascal(row:Int):List[BigInt] = {

val result:List[BigInt] = row match {

case 1 =>List(1)

case 2 =>List(1,1)

case n =>List.tabulate[BigInt](n)(x=>{

if( x == 0 || x == n-1 ) 1

else pascals(n-1)(x-1)+pascals(n-1)(x)

})

}

pascals+=(row->result)

result

}

(1 to 100).foreach(row=>println(pascal(row)))

------

Results:
----
List(1)

List(1, 1)

List(1, 2, 1)

List(1, 3, 3, 1)

List(1, 4, 6, 4, 1)

List(1, 5, 10, 10, 5, 1)

List(1, 6, 15, 20, 15, 6, 1)

List(1, 7, 21, 35, 35, 21, 7, 1)

List(1, 8, 28, 56, 70, 56, 28, 8, 1)

List(1, 9, 36, 84, 126, 126, 84, 36, 9, 1)

List(1, 10, 45, 120, 210, 252, 210, 120, 45, 10, 1)

...and 90 more rows
-------

Prints Pascal triangles some 10,000 rows & beyond. So where's my Google job ?:)

Kidding aside, In 1999,I got hired at Sun Microsystems based on a 1-hour written exam. Chap gave me a pencil, paper & few programming problems & left me alone in a room. No laptop, no books, nothing. After 1 hour, he grabbed my paper, looked through the work & said "You are hired". Then we went for coffee.

otoh, I didn't get hired at 2 quant firms in 2011 based on this Whiteboard style interviewing. I got the first puzzle right & then halfway through the 2nd puzzle the chap said "There's an easier solution" & then they upped the ante ( Stirling numbers & then convolution integral & then I think they decided I wasn't a good fit because I couldn't work out every single theorem right there and then. I can do any number of problems, but if you could please write them down on a piece of paper & leave me alone for an hour...I can't quite think and write in front of you while you are passing snide comments on my thought process. Most of my professors when faced with a problem they haven't seen before typically say "I'll get back to you", and then in an hour or two, they call me to their office and show me their work. They don't try to work out a solution right in front of a classroom of 100 gawking students. They do so in the privacy of their office. No offence ( cause I still want that google job :-)
Thanks, I didn't realize that it was open source. BTW, your build instructions in the README for OS X didn't work for me. I had to install repo manually, then do: ruby fetch-manifest.rb branch-1.8.xml
I think my choice of word was wrong, so I changed it. Thanks for removing your flag.
This probably won't be a popular opinion here, but anyone using the term "MVP" has always set off red flags of failure for me. The best products come from people who are in love with technology scratching their own itch.

People wanting to "do a startup" are most likely in for a world of hurt. If you're not writing code on a daily basis (because that's what you do!) and eventually writing code to solve a problem you're having, or just cause you have a cool idea, then the likelihood of success is basically nil.
Managing Data for a 21st Century Hegemony
Light sentence for 200 seniors who cheated on finals
The MVP is not dead. Crappy MVP's are dead. Totally agree with @avand, it's about scope vs. quality. Quality is where the "V" comes in. But I also agree with the author, in that private beta is the way to go if you are launching an MVP. That's what I'll be doing in about a month with my iOS app
To my knowledge, it has never been submitted. Perhaps you should; I'm curious as well.
I find it difficult to take you seriously when you make egregious errors in English grammar.
I'm in isolation reality--moot point.

I am not a game company, I inspire games. Nobody would buy a 640x480 game.

God said 640x480. Are you still in denial on God.

God says...
C:\LoseThos\www.losethos.com\text\SWIFT.TXT

ngers, out of different
countries, to venture with me, after the losses I had sustained,
and the hazards I had run?" I said, "they were fellows of
desperate fortunes, forced to fly from the places of their birth on
account of their poverty or their crimes. Some were undone by
lawsuits; others spent all they had in drinking, whoring, and
gaming; others fled for treason; many for murder, theft, poisoning,
robbery, perjury, forgery, coining false money, for committing
rapes, or sodomy; for flying fr
I have 3 1080p displays in my house. None of them are connected to my satellite box. Two are on my computer (including a 47" TV), and the projector is connected to a Roku for streaming videos. The satellite is only used for DVRing shows that we like to watch as a family, and it goes to a smallish TV in the living room.
I completed a large fraction of my thesis by speech, including coding and LaTeX. While there are tools to help with coding (there used to be many knowledgeable people at http://tech.groups.yahoo.com/group/VoiceCoder/, but I'm not up to date since my condition has improved) I wouldn't want to wish it on my worst enemy. I'm amazed that Hawking has te patience to function like that, he must be an extremely driven individual.
Yes, true, but curlers or rock climbers don't need to run the same way baseball players do.

All I'm saying is that there needs to be a multi-faceted look at a candidate. Some candidates are going to be so obviously poor that they do merit instant rejection. However, in my experience, that is the exception rather than the rule.
Why would I cut cable? That's where I get my home internet access...

(Oh, you mean television.)
RIAA: We Must Take A Shoot First, Ask Questions Later Approach To Censorship
> I'm not sure if you an immigrant to US, as I am.

Fortunately, I'm not :) I still live in Romania. I do work for a small startup who is owned by 3 Americans though, and I don't even bother to tell them how fucked up this all looks, they all know it.

Another related and not-so-cool story was when I went to London and when I saw all those surveillance cameras literally invading the whole city. Guys like Ceausescu or Stalin would have given their right arm to have that kind of tech at their disposal, but instead there I was, in the land of the Magna Carta being surveilled and monitored like not even my parents were during the ruling of a communist dictator. It's not even funny anymore.
this is absolutely true. almost 100% of job ads are terrible. They are focused exclusively on what the company wants. Instead the ads should be marketing to attract the best. The ads should explain why someone great would want to work there.
MVP doesn't really apply to VC financing in my opinion. Or, it does, but it stands for "Minimum Viable Pitch".

The whole POINT of a lean startup is not to go running for cash the instant you think you have a good idea. With today's scalable cloud platforms that start at zero dollars, low cost or free development environments, and plenty of freelance help when you need it, WHY do people still think they need $10 million to launch a website or build an app?

Especially their first one?

I contend that if you are building a product for the sole purpose of taking a juicy exit, then you are just taking part in the gold rush (and he's right, it is a gold rush). In that case, no amount of practical advice applies to you, because if you're being honest with yourself, your whole mission is to create the "Minimum Viable Pitch" that gets the VCs interested and then hang around long enough to get acquired.

And that has nothing to do with creating really good stuff.

Here's an idea: think of something you HAVE to build because you can't wait to start using it yourself. Define the "Minimum Viable Product" as that thing you have to build before you can start happily using it yourself. Now, go show it off. If people are interested, sell it or put in ads or whatever you have to do.

If it starts going like gangbusters and you need financing to grow or else you're really going to start pissing your customers off, then go looking for money with your now very REAL track record in hand. You know, because at this point you really NEED that money.

Seems like common sense to me. Also seems a lot more authentic and ethical.

But what if you really ARE building the next Facebook and need $50 million to spend on servers and office space and Aeron chairs and....

Well that's probably not your first startup, so nothing in the article is news to you anyway. If it IS your first startup, you crazy.
HN has been soundly trolled.

This guy -- who apparently rejects 99% of interviewees -- apparently runs a single-person company of dubious purpose. This absurdly trollish post is over the top because that's what ensured it a front-page showing.

Kudos on the pagerank earned by trolling the gullible folks on HN.
I think this response generally mischaracterizes the whole technique of whiteboard testing. If you got the general algorithm implemented recursively quickly, you're done. A bunch of logic errors? Oh well. The interviewer may point them out, at which point you can discuss them.

You do not have to create perfect code on the whiteboard. You just need to demonstrate that you can code. Sounds like you would have been fine.
FWIW, OpenDNS will not ever shut down our service and I doubt most of those other sites will either.

I keep seeing this "nuclear option" story and it's annoying. We will keep fighting against SOPA, but we won't shut down our service in protest, that would be far worse (and not effective).
The future of sharing
There are two scenarios here, and I think we are each discussing a different one.

The first scenario is where the attacker obtained the hash from the wire which is what I think you're assuming to be the case. Then yes, double hashing would protect against replay attacks.

The second scenario is where the attacker obtained the hash from the database which is what I assumed to be the case. Double hashing would not protect against these attacks (which are not, strictly speaking, replay attacks).

I'm not interested in belaboring this point any further, because I think you came up with a better solution to both issues in another post[1].

1 http://news.ycombinator.com/item?id=3425555
u mad bro, that u had to write so many lines, and yet your code couldn't print out pascal(5000)

u mad?

in ruby,

def fact(n)
n == 0 ? 1 : n.downto(1).inject(:*)
end

def pascal(n)
0.upto(n) {|r| print "#{fact(n)/(fact(r)*fact(n - r))} "}
end
In my experience, interviewers who give whiteboard problems are not expecting perfect answers or even syntactically correct answers, although if the interviewer sees a bug (e.g., missing some corner case), you may be prompted to look for it. The goal is to have a basis for follow-up questions like “how would you change it if the input was type Y instead of type X?” or “what’s the time/space complexity of that algorithm?” or “how would you write a test for that function?”
Just shows how far you came before making it to YC! Makes your stunning success in 2011 all the sweeter.
I think that's more cynical than is appropriate. You're assuming that every successful candidate is regurgitating this from memory.

Solving Pascal's Triangle is a straightforward yet not-completely-trivial logic exercise. It's the kind of algorithm design task that "serious programmers"[1] need to do, successfully, every day. Goofed logic bugs in algorithms are Very Expensive bugs. People who can avoid them are very desirable. This particular problem can be solved in just a few lines of code with no edge cases, which makes it a great candidate for a test to detect those developers.

[1] And yes, of course one can be a "successful software engineer" without being a "serious programmer". Writing CRUD logic and the like may be its own skill (and one not helped by algorithmic reasoning), but CRUD developers are cheap and plentiful. Tests like this give you a marker for the people who are hard to find.
Expound upon that.
Code Complete is very helpful, read it several years ago when I was starting. The biggest take-aways were DRY and proper encapsulation / abstraction. I should probably go back to it, I currently struggle with figuring out where to put stuff but maybe the stuff that went over my head the first time would help with that.

thx
In one month you pretty much have to do the first thing that comes to mind when the month is over.

If you take six months (or better yet a year), you have time to fall in love with an idea, go through the honeymoon stage of prototyping it over a week or two, then discovering you're not into it enough to make it a business. Repeat that cycle a few times, and eventually you'll find something with enough emotional staying power that you can't help but make it your life's work (at least until your next exit).

There's nothing saying this can't happen in a month. But if your attitude is that you're just auditioning ideas during your long time off, you're more likely to make your decision because of fit, not because of time.

By the way, if you have a significant other who doesn't appreciate seeing you idle, this approach is nice because it's indistinguishable from immediately getting back to work.
I was assuming the log() method was also part of the framework, and that this was just a framework-level excerpt... ;)

Perhaps such a core Log class could use a separate createLogMessage() method (or formatMessage() as I'd probably name it) that could be overridden in a subclass more easily than overriding the entire log() method.

I definitely agree that the API design and finding that balance is a big part of what makes coding an artform!
It's been seven years since I've taken an algorithm course, but I have a generic (assuming nothing about the input data other than it doesn't fit in a single machine's main memory and is uniformly distributed) solution in my head as well as a complexity time for it.

That said, I work on distributed systems for a living and have actually had to do similar things (manipulate data sets larger than a single machine's main memory across a cluster of machines).

On the other hand, that's not a skill 37signals needs. It's insane to think that Google, 37signals, and a random startup could and should use the same interview process.
u mad bro? your solution looks quite ugly

in ruby

def fact(n)
n == 0 ? 1 : n.downto(1).inject(:*)
end

def pascal(n)
0.upto(n) {|r| print "#{fact(n)/(fact(r)*fact(n - r))} "}
end
There's pandoc, http://johnmacfarlane.net/pandoc/ but it doesn't magically give you great page layouts in any format, if that's what you meant.