skysight-inc/HackerNews huggingface dataset:
You're looking at the top of the bottom -- at the people who excel at programming tasks so undemanding that they can be solved largely by copying code from the internet and modifying it slightly.

Now imagine one of these "top programmers" trying to write something like -- and I'm pulling this out of a hat -- Redis. It's a database that stores the entire dataset in memory, has a handful of useful data structures (e.g. lists, sets), and lets you do a bunch of operations on them via a network. It supports master-slave replication. It can persist to disk either by periodically flushing the current state or by writing a log of all commands. It can handle very large numbers of open connections. It's extremely fast, and widely used. Can you imagine the looks of frustration on your colleagues' faces when they try to google how to make something like that, and their searches fail to produce usable code? Not all problems are like this, but many are.

Real top programmers tend to wind up with tasks that they can't just google. Don't lose hope!
This is a myth and not true. While it may be difficult it is possible.

From the horses mouth:

Discharge in Bankruptcy
This is not an automatic process—you must prove to the bankruptcy court that repaying your student loan would cause undue hardship.

If you file Chapter 7 or Chapter 13 bankruptcy, you may have your loan discharged in bankruptcy only if the bankruptcy court finds that repayment would impose undue hardship on you and your dependents. This must be decided in an adversary proceeding in bankruptcy court. Your creditors may be present to challenge the request. The court uses this three-part test to determine hardship:

If you are forced to repay the loan, you would not be able to maintain a minimal standard of living.
There is evidence that this hardship will continue for a significant portion of the loan repayment period.
You made good-faith efforts to repay the loan before filing bankruptcy (usually this means you have been in repayment for a minimum of five years).
Your loan will not be discharged if you are unable to satisfy any one of the three requirements. If your loan is discharged, you will not have to repay any portion of your loan, and all collection activity will stop. You also will regain eligibility for federal student aid if you had previously lost it.

https://studentaid.ed.gov/sa/repay-loans/forgiveness-cancell...
You are definitely right, I focused more on the "go home to family" part.

Many I know at Apple have had relationship issues with significant others and family due to the sometimes grueling pace and "CIA spy" level secrecy some teams are forced to have even with their spouses.
Copy and paste is the most basic form of reuse. Don't underestimate it.
I think the answer to your question is that there is not one type of 'top developer'. Some people are good at implementing features fast, some at designing scalable architectures, some are experts at designing algorithms, some people know every detail about how a given system works (an api, database, operating system, cpu) and some can find bugs very quickly in code they've never seen before.

All these require a different mindset and different approach. There is not one way to become successful.
Biopunk
On that note, Godspeed with Star Fighter. I hope it changes the hiring dynamic for programmers the whole world over.
Very nice writeup!

Idea for improvement: Instead of directly jumping to the supplied function, jump to something that first calls the user-supplied function, and then munmaps stack and syscalls exit.
I'm a "Senior Architect" at my company which involves various daily responsibilities (sometimes coding, sometimes scrum master, sometimes client meetings) but ultimately I'm accountable for delivering the final product. The ultimate driver is always to finish the project moreso than to do something cool and find the ultimate gleaming elegant solution. It's almost always best to choose a approach quickly rather than spend weeks and weeks evaluating. Secondly, choosing a cutting edge technology or really anything you're unfamiliar with is a major risk that your timeline probably can't absorb. I don't have all the answers. In fact, I'm probably pretty behind at this point because I'm lucky to spend half my time looking at code. If the youngsters on my team have some new approach that they think will work and can convince me, I will definitely accept it. In fact, there are devs on my team successfully executing with a framework I still haven't bothered to learn. They're cranking it out with excellent results so I'm happy to leave them to it.
no. top developers care about only themselves, that means they won't copy and paste others' code, they make algorithm their own! However they enjoy being inspired from the code and try to optimize the code.
> ...harder to do in startup-sized companies; namely hardware engineering and mass manufacturing innovation.

Don't forget all the hardware companies you know today were once startups. Yes there's a current fashion to call companies that are basically small businesses "startups", but the term encompasses a far more profound class of enterprise.

And Apple itself was founded by an engineer (Woz) who first got his start at a big company, HP, which is celebrated as a hardware startup that grew.

I think the article and your comment do get to an important point, which is that Apple is big enough to have solid (and at the moment very successful) processes and infrastructure so that you only get experience in that matrix, and don't have to spend any time learning stuff outside your own area. You can, of course, and plenty of companies have come from Apple alums.
It would be fun to take the "square" identicons and run them through a pixel scaler to make them more organic http://en.wikipedia.org/wiki/Hqx
Planarian Regeneration Model Discovered by Artificial Intelligence
I think there is a huge difference in what would be considered "fair use" in a commercial, value-generating software product. Fair use as I understand it usually applies to entirely personal use, or quotes used in an editorial, analysis, or critique.

If something I wrote, even just a few lines, is used to generate profit for someone else, and I did not permit that or place it in the public domain, I'm not sure a fair use claim would hold up. IANAL.
> It is of course not the same question: the article poses the question "would you like to have this nice thing?", and the reversed form I posed is "are you willing to pay for it?"

It isn't a matter of willingness to pay. If the seller doesn't want you to "buy" something (e.g. privacy) then they can set the price arbitrarily high so that you won't.

> I think you have rather casually tossed out the proposition that the status quo brings the customer negative value, without supplying any justification for that claim.

Why do you imagine the merchant is offering the "discount" if it isn't net profitable? When the merchant makes money by exploiting the data they collect, whose pocket does that money come out of?

> I also think that your proposal of passing legislation to force all merchants to raise their lowest prices is unlikely to prove popular.

I don't recall proposing that merchants be required to raise their prices, only that the prices they charge be the same regardless of whether customers use loyalty cards.
Hey! I'm sorry to hear that people treated you poorly. That's really shitty and in an ideal world people would treat you as an individual, and not as a representative of a disease.

> John Forbes Nash Jr

That's not really fair - John Nash was an exceptional person in a myriad of different ways. He's very much an exceptional case in the same way that Stephen Hawking is very much an exception when it comes to ALS.

In general, it's a pretty poor idea to confront someone suffering from disorganized thinking caused by schizophrenia about that disorganized thinking (maybe not in a clinical context, I wouldn't know). Just because John Nash was able to function to a high degree without medication doesn't mean that everyone will be able to, or that it's fair to hold everyone to that standard.
Wait. I'm sure in a desperate moment you see no light ahead or way out, but this moment will pass and your urge will go away. Please talk to someone, look for help, professional or not. Just talk to someone about these feelings. "Nine out of ten people who attempt suicide and survive will not go on to die by suicide at a later date" (http://www.hsph.harvard.edu/means-matter/means-matter/surviv...), which shows that what seems like an existencial crisis tied to your identity is often an acute crisis tied to current circumstances, which can and will go away. Please wait.
You need to to start caring about solving the right problems and not any problem that has already been solved.

The best way to get things done is to re-use code. The best code to re-use is something that hides lots of complexity yet has a simple interface.
I think this is helpful more in helping future developers reading the code have more context about what the code is, why it's there, and where it came from, rather than anything to do with ownership claims.

Often times code taken from SO solves the problem but noticeably is structured differently from the rest of the codebase--often with good reason--and this helps the new dev go look back at the SO conversation and see what problems this is solving / if it can be removed.
The days of the week
A year in most industries doesn't really provide the death of experience necessary to make informed judgements. My advice is that when something doesn't quite add up is to presume that I don't have the big picture. If I were in your shoes, I'd wonder about how the business model drives behavior. Consulting is different from product development. Operations in a cost center are different than in a core revenue unit. Companies that compete on price are different than those that compete on specialized expertise and different from those who operate on socializing in the good old boy network.

This is the time to learn. It may be that you are working in a soul sucking workplace. But still reach for a deeper understanding not easy assumptions.

Good luck.
Government here in Canada blew $200m on a glorified database that never worked either. Contract given to a crony corp of the political party in power of course. http://www.vancouversun.com/life/Auditor+general+slams+troub...
Thanks, I am reading many things about good code and I have never seen such advice.

"Good style", "best practice", all of this comes from an observation made by somebody who can justify it is good practice by some real evidence.
If you were using if-elseif like a switch statement, then maybe there should be an else. If the if conditions are not related, then I don't see why there should necessarily be one.

Please enlighten me by pointing to the relevant online resources.
> Don't forget all the hardware companies you know today were once startups.

Unfortunately the winds of VC have changed a lot since then. Originally, VCs were willing and eager to invest millions in a promising innovation. Now they expect you to demonstrate traction before any large investments—which is infinitely harder with hardware startups.
Radiaciones, salud y descanso por Joan Carles López
Learn Dvorak and save your hands (and maybe career). And type faster, in a few months.
Is there no risk of an interrupt or a signal happening in between un-mmap'ing and calling exit, that would cause stack pushes?
> In France all TGV lines converge to Paris. Try going from Lyon to Bordeau, and you are fucked, you need to go up to Paris and then down to Bordeau, which is utterly stupid. Either a car or a plane trip is faster.

Isn't that just because traveling from Lyon to Paris or Bordeau to Paris is far more common than traveling from Lyon to Bordeau. No one is saying that trains should replace all other modes of travel, just that they are useful for high traffic routes.
Code posted on SO doesn't need to be written by the person posting the code.
Have you ever heard stories like "Hilbert's Hotel"?

Given an infinite hotel (each room labelled with a positive integer), you can empty half your rooms by moving the person in room x to the room 2*x, which gives you all the odd rooms to fill with a new infinity of people, effectively doubling the size of your infinite hotel?

This is very similar -- except it works over the real numbers in 3D space. In particular the cuts are "inifinitely fine". Given any point p, and any distance d, there will be a point less than distance d from p which is in a different "slice".

Imagine (while this isn't in banack-tarski) making a "slice" which is all numbers of the form 1/x for all integers. Clearly this "slice" could really exist, but mathematics can of course define it and operate on it.
It's finitely many pieces, but not in the way you think. Each supposed piece isn't something you could carve with a knife, even if we defined "carving" as a mathematical operation. It's just a set of points with coordinates that obey a certain rule.

In mathematics you can say things like "the set of all points in the sphere with irrational coordinates" and think of that as one "piece" of the sphere but it doesn't correspond to anything in the real world.

I'm not a mathematician either, but I think the consequence is just that mathematical points are rather weird and admitting any infinite set of points (however disconnected) as a volume produces weird results. What we think of as a "piece" isn't just an infinite set of points.
I really enjoyed http://cacm.acm.org/magazines/2015/1/181633-the-tears-of-don... ("The Tears of Donald Knuth"), which describes Knuth's reasons to study the history of a field, and also describes some of the disciplinary and institutional difficulties involved.
Yes, water fluoridation happened, at least in part, because of large company lobbying.

This has no impact on its health benefits, however. For $1 a year, we get less cavities. This isn't marketing bullshit, it's science.
One should remark that the price of your services does not depend solely on how much value you're providing. That value is just the upper bound of what you can charge. The other factor is what somebody else would charge to do the same service (it doesn't even to be a service of the same value, just a service perceived to have the same value --and people are notoriously bad at estimating that value in software). That's why in practice consultants find it impossible to increase their rates above market average unless they have a very strong brand.

I would certainly be curious to know how much patio11 is really making from his consulting business. It sounds like he would be making at least $300,000 (a lowball estimate of $x0,000 would be $15,000, and a lowball estimate of how many weeks he works in a year would be 20). And possible up to $1.2M (40 weeks at $30k).
> What should go in the else?

What's left. What else should go in else?

BTW, the original example not disimproved by AutoRefactor was okay.
This is not true. Pixar was originally Lucasfilm's computer graphics division lead by Ed Catmull. It was separated and sold to Steve Jobs.
StackExchange content is licensed under Creative Commons.

http://blog.stackoverflow.com/2009/06/stack-overflow-creativ...
You do have a choice. If fluoride scares you so much, stop brushing your teeth and buy a water filter.

Oh, and eat a diet that has no carbohydrates in it.
It's not that we rely on such things, but that these things are unavoidable consequences of choices we make that seem to be perfectly reasonable, and result in useful math.

Phrasing in the other way:

As we develop math that we find useful and powerful, we find that we have to make choices. Those choices have consequences, and sometimes as we explore the consequences we find that really strange things happen.

We can go back and make different choices, but in practice we tend to find that no matter what choices we make there are odd and hairy things that result.
Actually, people aren't listening to your anti-fluoride woo because they're well aware of the situation.
A fractal tends to be kind of contiguous - for most points in the fractal there's a neighbourhood of those points that's also in the fractal, and similarly for points not in the fractal. These are "dust sets", dense everywhere in the sphere and their complements also dense.
> Except AFAIK there are zero features in POSIX that came from GNU/Linux.

My point is that commercial unixes are old, dying, relics that don't define what unix is anymore, Linux does (and to a lesser extent, so do the BSDs). There is no such thing as a "real unix" anymore.

> Also CDE is not what one would expect from a 2015 workstation.

The unix workstation/desktop market was lost long ago. Unfortunately, Linux hasn't successfully recovered it and, IMHO, never will. The commercial vendors stopped caring when big hardware margins dissappeared and the opensource community lacks the unifying vision to build something sensible.
I had an interesting conversation with a developer on another team a while back.

The team had a client that wanted them all to cross-train to do both web and droid development. The developer thought this was horrible. We have developers here that have decided they want to become an expert in Java. So why should they be asked to do web development? Or droid? Shouldn't the client just add to the team?

As sz4kerto points out in another comment, the problem here is that people tend to define the problem in their own personal terms instead of the larger context. The larger context here was: The client has money. They are willing to train you to learn all kinds of cool stuff. In return, they want to share with you the larger business problem in hopes you can help them solve it.

Thinking in terms of the technology (or solving some technical problem) really misses the boat with what goes on in a lot of development teams. The "people part" of development is far more important than anything else. Find out what sort of people problems you are being paid to solve. Focus on that (while doing a good job technically, of course).
Superlubricity – tuning friction to the point where it disappears
Wonderful - someone has apparently gone through and down-voted every comment in this sub-thread. We're obviously not supposed to use things like MD5 and code snippets to discuss literary references.
Pandora delivers music that you can listen to; unless your startup delivers food that I can eat, I don't really see how the two are all that similar - unless you're suggesting people print out the emails and then eat them.

But hey, perhaps I'm too stupid for your startup (usually I just make a sandwich for lunch, so I'll probably cope either way!).
Indeed. std::unordered_* implementations are hogtied by the interface and complexity requirements in the C++ standard (it basically mandates chained buckets), and more generally the need to work with almost any hash function (linear probing would suck with crappy hash functions for example).

Jo Muñoz wrote a cool blog series on the current implementations in circulation, the flaws with the interface, and how his implementation (Boost multi_index) made further optimisations despite the constraints.

Don't miss the other two parts of the series - look under October on the right. He did extensive bookmarks in November as well.

http://bannalia.blogspot.co.uk/2013/10/implementation-of-c-u...
> My impression, which comes from meeting a handful of Apple employees and several friends who took jobs and later left, is that the culture of Apple is that of “show up, do good work, cash the paycheck, and go home to your family.”

I have a lot of friends and former colleagues who are at Apple and you're wrong about the 'go home to your family.' At least the friends I have (mostly nerds admittedly) are routinely in the 60-70 hours mark (have only one exception and he's worked at Apple since the 1980s). But they seem to like it.

> It is not one of “Let’s conquer the world and become bazillionairres while we’re at it” — the Google culture — which is more prone to eventually jumping ship and creating a startup.

This feels more like Google propaganda. My impression is that google folks seem to work a lot less (long hours its true, but less) than the Apple folks. Unlike Apple I only know nerds at google -- no marketing or business folks, so it could be different.

But of my google friends there are two groups: the übernerds who get to work on whatever they like (basically research) and they seem to have a lot of fun. A bunch of them are former colleagues from PARC and MIT, so they are doing the same kind of work we did years ago -- probably Microsoft research is the same.

The rest are doing product work of some sort of another and none of them seem particularly happy. A lot of them are on the market (I have hired a couple). It feels like Google has reached the microsoft phase: they have two real cash cows and are struggling to find more. Product managers have a lot of sway. They aren't really organized like an effective business.

Apple went through that mode and was within a few weeks of dying. Luckily they debugged themselves. My Apple friends, even those deep in the bowels of tools or drivers, amazingly are still super excited by the Apple products (I guess they would have given up by now if not).
With all respect, I think you're doing a little leaping too, though your intentions are good. If someone thinks that schizophrenic means unemployable, that person is wrong and should be corrected. We shouldn't try to pretend that schizophrenia (and other illnesses) aren't what they are for the sake of the opinions of healthier people.

Here, think of it this way: how would you respond to someone that said, "He's paralyzed from the waist down so he can't control his legs ... and therefore he's unemployable"? (Assuming of course that the job doesn't actually require working legs.)
Are you aware that probably 1 billion TV's can decode it? If there is ever a codec that can be called a "forever codec" it's MPEG.

And what is the expected lifetime of those billion TVs?

Let's talk again in 30 years and see if MPEG-2 and H.264 are "forever codecs" with widespread easy support then.
"Why should there be an escape?"

Because there is for every other type of debt?
Location Voitures Economique Agadir – Dida Cars
> You can correct a schizophrenic.

How about, instead, "You can correct some schizophrenics"?

For me, that would put them on about the same level as Tea Partiers or AGW deniers -- I'd treat them as individuals and make a judgement call based on whether I might be able to have a reasonable conversation with that particular individual.
>though I don't have a citeable source on hand for that.

https://isocpp.org/std/status
The Concept of Scientific History, by Isaiah Berlin (1960) [pdf]
I think he is referring to the game demonstrated @ 11 minutes in the linked video that uses 3d models which appear to be embedded within the source code.
Like a Word document---mixed text, images, etc.
theres a strong need for a revolution of ads in my opinion, who doesnt have adblocker or sth similar nowadays. Guess the ones that can do that will be the next google/facebook revenue-exploding wise:)
> Product managers have a lot of sway

Can you elaborate on what you mean to say here? Is it that PMs have a lot of influence compared to engineers?
Yet another example how C# developers can't write C++ code. :)
Procedural Modelling of Buildings [pdf]
Which company any are you referring to, Apple or Google? I am starting at Google[x] in two weeks for exactly that reason.

I just spent the first 11 years of my career helping build a solid software organization (I was employee #14-ish, and I'm the most senior engineer whose job is primarily code-related) in Cleveland. It's now a well-oiled machine, but it's lost some of the spark and excitement of the first years I was there.

I decided to go with Google[x] because I'm looking for an organization where they are all about doing exciting and innovative things, with the stability and perks of a big corporation.
Talks transcripts