skysight-inc/HackerNews huggingface dataset:
So I don't work in a scientific field, and I'm not a "programmer" or "software engineer". I am a business analyst. I am a business analyst who CAN code. My code isn't always pretty, and I recycle a crap ton of boilerplate and hack the hell out of django apps. And I read the heck out of HN and have spent 5 years slowly refining my design chops. But most importantly, I know top-to-bottom the ins and outs of my business. So when our call center shopped around for a software solution to provide a call center full of agents realtime access to their stats, we were given a 3 month time frame and quoted $100k+ for a solution. So I wrote and deployed a web based results dashboard of realtime stats over two weekends. And we were just quoted a price on a quality management tool for $225k. Guess what's next for me? I've been an agent on the phones. I've sold in a retail environment. I've been the corporate trainer dealing with the LMS. Domain knowledge plus tech chops has proven a powerful combination for me.
Like most things the French government do, it's obsolete before its even begun.
Learning Rails made me a better designer
DHH strongly despises HN[1].

[1] https://twitter.com/dhh/status/289669574427820032
I like dark high contrast themes, this is not.
Smart and simple though.
"Choose the next best move in chess or go for example (or design a simple sudoku solver). "

You make the assumption that your candidate knows anything about those games. If you placed me in front of a chess board, said "these are what the pieces do" and then asked me to tell you the next best move, that move will either be A) blindingly obvious to anyone who has played chess for years, or B) too difficult to someone who has never played the game before.

Reapply the same paragraph to Go and Sudoku. You've created a filter for someone who plays games, not problem solving skills.
VM real time visualizations using cubism and salt stack
Ahhh, NaPTAN, that was what it was called.

Thank you, I gave up a long time ago with the project that was going to use this data.

Glad that things are getting better at least.
Nice!

One comment: At :45, when the character clicked the clock at "02:28 pm" the voice read it as "2 hours 28 minutes". Probably need a better time->text conversion.
Actually using something like a math notation to solve a programming problem is asking for too much. What are those general problems which can't be solved by standard libraries, frameworks and IDE's these days?

And even if you are facing problems that mandate you to roll out your stuff how much of that requires these math tricks.

Given all this, if you truly want to hire a math geek to get some magic done. I guess you are looking at a very small pool of people to hire from and it should hardly be a problem to hire one.
That's always been wrong http://news.bbc.co.uk/nol/shared/spl/hi/europe/09/eu_budget_...
>That is likely just my misreading of the wiki page.

I would say the fault there lies 100% on the docs, not you. The docs are heavily focused on using the attributes that are provided out of the box, rather than on how to write your own.

>But then it jumped straight into the bind and apply tags

That's the equivalent of lift:surround. There's nothing special about those tags, they are just part of the set of default splices that you can use.

>With the latest lift templates, there are no custom tags. Nor are there custom attributes.

What are there instead? The docs still appear to be talking about lift:stuff tags and attributes. There aren't really custom tags or attributes in heist either, unless you want there to be. You are really just binding some haskell code to a tag or attribute. That tag could be a real html tag (like the splice included by default that is bound to the html tag, which consolidates multiple head tags into one). Or it could be a any tag you make up, like we bind a splice to the <user> tag which replaces the contents with the user data.

>Also, I'm highly curious on the upsides of the Haskell framework you are using.

Shockingly enough considering how haskell is known for slow compile times, faster compilation is one of the upsides. Mainly we used snap because it gives us the same thing we liked about lift (templates), but with no assumptions about how things have to work, a more helpful community, and a better language.
Empirical evidence from over 10 years suggests you're an outlier.
Will browsers immediately fail the connection, or will it try to make the connection and wait for a timeout? I generally use 0.42.42.42 because Class-A addresses can't start with 0, so they fail immediately.
With all the Sublime/Textmate theme tools lately, where are the gvim <--> Sublime Text conversion tools. There are a few one-way options, but none that work both ways. Are there significant technical challenges in pulling this off, or is it a matter of interest in the tool?
I'm not sure if I'm that guy or not... but anyhow, here's the hiring process that's given me some good results.

Note that this requires that your team does pairing.

Interviewing answers three questions: Can they do the job? Do they get along with the team? And, can they adapt when the game changes?

Before your phone interview, let them know that you want to do a short screen-sharing and pair-programming exercise via Skype, in their own personal development environment.

Start with a chat over Skype. Talk to them a bit about their preferences and experiences at other companies. Are they comfortable to talk to? Do they have opinions about the stuff they've worked with? This is important -- A Java developer that doesn't have a vocal preference on checked exceptions or static typing probably isn't very experienced.

Then give 'em the FizzBuzz.

At this point, do you want to hire them?

If so, it's time to invite them into the office.

When they come in, at the very least you should buy them lunch and pay for transportation. They're taking a day, not paid, to come and interview with you -- show some courtesy.

Have them sit down and pair with three of your more senior engineers for a few hours each, both as a pilot and a copilot.

At the end of the day, take your group of three, and see how your interviewee did:

1. Did the candidate demonstrate the expected level of knowledge and contribution?

2. Would they feel comfortable with the candidate as their direct boss?

3. Would they be upset if this candidate went to work for the competition?

If somebody can get through the phone screen and a day of pairing, they're probably competent, and likewise want to continue working with the people they paired with.
I've worked to two programmers who could not code. I mean literally not code. You cannot imagine how frustrating this became before the managers finally got rid of them.
Yes I won't disagree that the technology is getting better and that we are getting closer to achieving it. But a commercial fusion reactor in ten years seems very unrealistic with the current regulation and standards set by current government regulatory bodies.

When I was in school studying nuclear engineering, the running joke was that fusion will always be N amount of years away from happening. It seems like every year or so a new company or group of researchers has found a breakthrough that will allow fusion to happen in N amount of years even though we have yet to reach breakeven in a research setting.
"On the other hand, if I'm hiring someone for a high pressure job I don't want them to fail when under pressure."

But those are in no way the same kinds of pressure. The pressure of being able to meet a release date, design incredibly safety sensitive algorithms, etc, are completely different from the social pressure of having someone evaluate work you normally do by yourself, in real time.

This kind of interviewing would work well for the kind of stress a salesman gets, not the kind of stress a software engineer gets.
I see a load of porn sites. Just how does this Make The Internet Not Suck? (damn it's even more annoying to write incorrect casing than read it.) I thought this was going to block the fifty "Share this! Email this!" buttons on websites or something... If you don't visit porn websites, you won't visit these domains anyway; what's the point in blocking them in a huge hosts file?
That one was mine (in its original conception, at least). :)
A great programmer doesn't "fizzle" in front of a difficult interview question

How do you know this?
I have a similar story with Microsoft when I interviewed with them my senior year also. I feel like I nailed everything except for the puzzles, and also got denied. My favorite one I "failed" on was:

Given a node of a linked list, delete that node. The expected answer: Copy the next node's contents into the given node. Then delete the next node. Just simply never occurred to me to use a memory copy in a linked list. And this is despite the fact that I could immediately reason about the solution he gave me and point out a flaw in it (deleting the last node is impossible).
Yours is a minority viewpoint here, and I wish it got more explanation.

If the bureaucrat's only two options were a) let the guy have the boat, or b) take the boat so someone else can sort it out, then I'm definitely more sympathetic to the bureaucrat here.

Is that understanding correct?
Is there any transcript available?
Tesla Motors To Be Profitable Selling Electric Cars By April, It Says
I met someone recently who was a photographer/editor/camera op and recently made a thousand dollars for some editing work on a commercial. The person that gave him the gig was a former partner of a now famous producer. The editor found out later that the entire budget for the commercial (the project he was working on) was $50,000.

He also found out the entire thing was filmed on an iphone and the producer pocketed the rest of the money.
Just an interesting note to point out that the man who's wife spoke with Obama did get a lot of calls / interest from companies across the country, but because of a custody agreement needs to stay in North Texas, which I'd be willing to bet contributes much more to his difficulties finding a job than H-1B visas.
Ask HN - Which Sublime Text packages / plugins do you use?
Well I used ST2 before as a lightweight editor but reverted back to IntelliJ IDEA for "serious" work.

Now I want to try it for good and have purchased a license for ST3.

I want to keep it lightweight but want good Git support. Especially diffs and logs.

Specifically looking for something Git related, but other recommendations too welcome!
As someone that just went through a whole slew of interviews I would say I agree with this to some extent. I'm a frontend developer and while CS principals are important, asking questions that are not practical to everyday development, are counter-productive and do not give you a view into how that person tackles a real problem.

Things like "write a function that performs merge sort", are bullshit because you would never do this in real life, largely because languages have sort methods that are already extremely performant. Plus a lot of languages will already be using some variant of merge sort and exposing it as a "sort" method.

If you are given a problem like "create a tabbed news component" or you're asked to do a small project (nothing longer than an hour), I think you can still get a good understanding of how people solve problems. This is less stressful, less "gotcha" mentality, and a fair approach.
I ended up realizing in my junior year of high school that liberal arts were enjoyable. Graduated with a degree in CS and a minor in creative writing and I'm very glad I did it.

I also think that reading and posting on places with high quality discussion like HN and reddit circa 2008 can really improve your communication skills.
Completely agree. I recently had an interview where I was asked to solve a job scheduling type problem. So I see the potential graph, remember topological sort and bingo!

Right after that the interviewer told me they have a lot of code that manages assets that have priorities between each other and that this is the kind of problem they solve regularly.

It was a good question: it wasn't too hard as to take hours to solve, it was a decent test of how I was able to choose an appropriate representation for the data and it applied to a real world problem they solve.
Doesn't this violate the HN etiquette?
Linux kernel patches surface for Chromebook Pixel
The Long Thought
No, different specific architectures can have more than an order of magnitude difference in performance per clock in ways that don't have anything to do with the instruction set used.

In this case, the Pentium 2 is an out of order 2-wide superscalar architecture and so is the A9 ARM processor talked about in this article, but the ARM 11 in the RasberryPi is a 1-wide in order processor, which mostly accounts for the wide disparity in performance. You'd actually normally expect the difference to be larger, but ARM instructions are a bit more powerful than x86 instructions so you'll tend to need less of them[1]. But x86 is more efficiently encoded, so you only need the same number of bytes of instructions to accomplish the same task for each.

The best way to compare different processors is by benchmarks. But remember to choose a benchmark that looks like what you're trying to do, because different architectures can excel in different situations.

[1] x86 has the advantage of having combined load/store and operate instructions, but ARM has 3-operand instructions, twice the registers instruction predication, and a free barrel roll when using it's ALU. Changes to the x86 instruction set since the Pentium 2 make things more fair.
I think the point of the article is this:

Trivial puzzlers like:write a fizzbuzz program, swap two variable contents without using a temp variable, how do you count the stars in the universe

Just encourage people to game the system. It's impossible to get real insight from them, because you can't differentiate between those who worked it out, and those who have read about it. If you're in an interview by now and someone asks one of these cookie-cutter questions like: how much storage is required to store satellite images for Google Maps? or How would you count the starts in the universe?

If you're good at problem solving but haven't though it through before you might come up with a general ballpark solution, or you might freeze under pressure of the interview of course.
If you're a slick liar and have been reading codinghorror, you'll have an answer down pat for this category of questions before you even enter the room, one which you cribbed off the internet, as you will for all the other common categories.
If you're so incompetent that you're neither, I guess you'd be weeded out - not a huge win - I wouldn't expect such people even to get to interview, which is a vastly expensive process (in time and money).

In contrast a real world problem, if the discussion is led properly by the interviewer, offers the opportunity for real in-depth discussion about the sort of problems you're going to be expecting this programmer to tackle every day - what trade-offs should they make when designing data structures to balance normalisation and speed, which libraries would they use to solve a particular problem, which problems they have seen in the past which are similar and how did they solve them, etc etc. and it also deals with cultural fit. There is not a clear dichotomy here between logic (puzzles), and wishy-washy cultural fit (a chat about code) - an informal chat, if held properly, can provide far more insight than a set of questions.

This depends entirely on the sort of job you're hiring for of course, but if you're hiring a web developer then a good background in interview teasers is not really on the list of desirable attributes, but a good understanding of real code is. I guess if you don't control the entire interview process and/or work at a large organisation, this sort of filter might become appealing because of the standard of interviewees you receive, but that's a reaction to a failed process.

One hiring project which I really admire is the stripe CTF as it selects for a certain type of person that they're obviously keen to find. It's a puzzle, but one so original and unique that it's very hard to game, and also one which records the users' attempts in real time (if they keep logs).
This is as true today as it has been for the past 10-15 years. "highly specialized knowledge" == "cheap talent". And as has always been true, you get what you pay for.
Those are systemic changes, though. Breaking up banks, reinstating Glass Steagall, that sort of thing. I don't think those solutions are out of reach. It will be tough, but it certainly seems doable.

It is a shame that politicians are demagoguing with all this "they need to go to jail" talk, because it is a distraction from the actual problem. That is simply that when too much leverage is applied to the same bet and hedged in the same way by everyone, it will blow up catastrophically when things go bad. That has nothing to do with legality or fraud or any such thing, and everything to do with regulation. It was a political and intellectual failure, not a moral one.
Ask HN: What you wish you knew about Photoshop?
I'm writing a short ebook on Photoshop for web and UI developers. I welcome your suggestions on what to include in it.
We're a startup and have hired 2 (and soon to be 3) folks on H1B visas. These were folks who got their Masters degrees here, who are brilliant and who'd have otherwise left.

While I don't dispute that there are holes in the program and abuse that happens, it has enabled us to find some folks for our team who have put us as a company on a different trajectory.

Disclaimer: data point of one.
I'd recommend Gas Mask for anyone editing their hosts file:

(Plug for own site with similar stuff):
http://pineapple.io/resources/gas-mask

Gas mas direct link:
https://code.google.com/p/gmask/
Yet if tech workers are in such short supply, why are so many of them unemployed or underpaid? According to the Economic Policy Institute (EPI), tech employment rates still haven't rebounded to pre-recession levels. And from 2001 to 2011, the mean hourly wage for computer programmers didn't even increase enough to beat inflation.

I think anyone who is actually any good at programming could disagree with that statement.

There are 2 problems with H-1Bs:

1) Body shops in northern NJ bringing mediocre talent here, lying on their resumes to get them placed, and then paying them 1/10 of what they're billed as indentured servants.

2) Not enough visas for qualified people, partially because of 1.
Another piece of recycled fear-mongering garbage.

From all the people I know around here who're on an H1B, the salaries are quite on par with US nationals. I do admit that I don't know anyone working for the companies named in the article (TCS, Infosys).

The issue that needs more discussion is why not let US-educated non-immigrants have an easier path to Permanent Residency vs. letting them leave the country to start companies back in their homeland.
Looks interesting, but it'd be nice to get the detailed, technical description of it, rather than some journalist's take on things.
https://code.google.com/p/gmask/
You assume people working at programming jobs for years on end have a clue... that's not always true. I've worked with people who couldn't do fizzbuzz, or describe the difference between an interface and an abstract class, or any other basic programming stuff.

If they throw you an easy pitch, knock it out of the park and they'll ask you something more difficult afterward.
Whatever happened to picking at random? It's optimal unless you know some other method of narrowing down the list isn't pathological.
those that forget history...
> On the other hand, if I'm hiring someone for a high pressure job I don't want them to fail when under pressure.

Programming is not like in those hacker movies, we don't have to solve problems in 60 seconds while getting a blow job[1].

[1]https://www.youtube.com/watch?v=rUY8HysBzsE
Thanks for the kind words! I won't be accepting donations of any kind with this, just time from people working on it; donations make things far more complex, and it's not hard to fund it out of pocket.
How Come Martin Brodeur Is Still So Good?
The story is that 37signals doesn't require engineers that actually need to be creative to solve complex coding problems. They require coding monkeys, because the real work is in the product design and not in the algorithms. The guys at rethinkDB may have to ask trickier questions...
I do tests for prospective candidates, but my approach is slightly different.

After the interview I email them a small unfinished program. I then give them a set of instructions on what I would like them to do to finish it off, and they can then do it at home on their own dev setup; with the internet and any other resource they would normally use for development.

I give a coding style guide, and in the areas where some specific technique is required I make that explicit.

The app has a few bugs in it, and some of the techniques asked for are slightly leftfield.

I instruct them that if at any point they have any questions then feel free to email me - and they won't be marked down for asking questions.

In fact I mark candidates up if they ask questions.

The task shouldn't take more than 30-45 mins for a decent coder.

I find this to be a really valuable approach to seeing how a coder works. It shows how they work with others' code, it shows they can follow instruction, it shows they can communicate when unsure rather than hiding away and it gives a good guide to their style of coding.

It's a far less confrontational approach, and gives the candidate the best chance of showing what they can do.

In the interview I tend to be much more interested in the person, because I'd rather have a coder who is slightly less capable that I can train, than a coder who is amazing at everything but won't fit in. I'll still discuss past projects and dig deeper where necessary, but I like to find out how they influenced the outcomes of projects rather than get too deep on algorithms and the like.

So far it's worked very well :)
The problem with this though is the meta-strategy of interviewing. Unless your interviewer tells you up front whether or not it's okay for you to ask an unlimited number of questions, you're basically guessing at it.

I know several companies that interview with a "hint" system, where every time you ask a question, they just give you a hint to the problem, generally regardless of the question asked, and then mark it down. Too many hints and you're passed over.
Being in IT since 1997 I definitely agree with this. I have seen way to many job postings for positions that want a great deal of experience and well below market pay. Eventually these get filled by H1-B visa holders.

Overall I see H1-B visas as a means of companies to suppress wages of domestic IT workers. I know entirely way too many good software engineers and developers looking for jobs for there to be a "shortage".

That being said I am very aware that my comment like the rest of the comments is anecdotal. I am hopeful more objective numbers can be found that will allow us to have a more informed conversation on this.
There's not any useful code yet. The Github repo is primarily to be used for issue tracking and all that, but 99% of design is happening on IRC right now.
Nice list to go trough in boring times @ work.
Thanks.
This will lead you to a decent user interface for printing as well.
Thanks for pointing out Stanford Encyclopedia of Philosophy, great resource.