skysight-inc/HackerNews huggingface dataset:
If you're targeting a younger audience flowlab (http://www.flowlab.io/) is a great starter. Compared to Rocky's Boots and Robot Odyssey of my youth, there are so many great tools available to get today's kids into programming.
DEC VT220, here's a recreation of that font's appearance: http://asdasd.rpg.fi/~svo/glasstty/
If you refer to the picture, it's of Altair "the first home computer," the computer for which Bill Gates wrote his version of BASIC which was practically an OS for that computer.

http://en.wikipedia.org/wiki/Altair_8800

http://en.wikipedia.org/wiki/Altair_BASIC

Ever heard of the computer bus -- you know the thing that all extension cards connect to -- well on the panels of old computers you were able to see the state of the bus or to change it with the switches. You've actually felt the bits with your hands and saw them on the lights -- you were able to turn on and of each one with the switch.
> There's no need to squash commits with rebase.

Squashing is not the purpose of rebase. Rebase allows you to clean up history. Sometimes, that means _separating_ large commits into smaller, atomic ones. Sometimes that means re-ordering things to make more sense for the reader. And yes, sometimes, an atomic unit requires squashing two or more commits together.

Commits should be logical units of the codebase, not units of developer productivity over time.
> I have worked extensively on compilers, editors, debuggers, command interpreters, the Incompatible Timesharing System and the Lisp Machine operating system.

Glorious times! You might be given bare metal and full freedom to create new operating systems, invent languages and write compilers/debuggers/editors for them. Nothing can ever make a software engineer happier than this. In my view anyway.

Will this ever happen again?
Who develops the ultimate sharing tool for written online content?
Publicly funded research typically focuses on curiosity driven, high-risk, long-term research that doesn't have very good odds of ever producing a viable commercial product. Private enterprise focuses on short-term, low-risk research and engineering, packaging, marketing, etc. to bring safe-bets to market. For every big-pharma dollar spent to produce a new drug, ten government dollars were probably spent to get the underlying science to the point where pharmacorps were willing to touch it, and a hundred dollars more of government funding probably went off on various other tangents that turned out to be dead-ends.

On the other hand, academics often suck at commercializing their research. Bringing a drug to market involves many years of careful study and clinical trials that are utterly boring to most researchers in academia. You can't get journal publications out of your twentieth double-blind study looking for side-effects! Big pharma companies do perform a valuable service, but the rewards they receive are out of proportion. Multiple decades of monopoly are an unreasonable reward for performing this last step in development, especially when a lot of drug patents are the result of meaningless changes to existing products that are made solely to restart the monopoly clock!

Taking academic research and turning it into a commercial product does take time and money, and without patents this crucial last-step might not be adequately incentivised. However, If corporations want exclusive rights to commercialize publicly funded research, perhaps the public deserves a cut. Perhaps Pfizer, etc. should be on the hook to help fund some of the taxpayer funded research they benefit from. Either that, or some alternative way to fund commercialization of academic research needs to be found.
> What you want is a logical sequence of correct changes

Precisely! :)

> make sure your commit message are actually good enough that someone doing a code review can actually follow what you're doing

Yes, this is a very important point for rebasing.
Well, you're not really supposed to take the cigar smoke back into your lungs, so maybe that has something to do with it.
How do you find overall ios7 performance on the iPhone 4? I have a 4 but am reluctant to upgrade to ios7, fearing it may be too slow on the hardware.
This triggered some research, which linked me back to:

http://www.gwern.net/Nootropics#nicotine

Where you seem to suggest that actually you experienced no measurable benefit from nicotine, but the placebo affect was strong. Have I read that correctly?
The Physics of karate strikes
> I think this whole debate hinges on peoples' view of that sentence.

Prescient observation. How does clean history obscure things though? You mean as failed experiments get removed? Important things ought to be mentioned in commit messages. Relevant things to document can be showcased like "Tried X but it turns out Y is better because Z." I often find that code alone is not enough to describe why something did or didn't work. One ends up having to explain in commit messages anyway.
> This is a picture of me in 2009, right around when I started Pinboard. I'm standing on a balcony in Botosani county, Romania, in the poorest county in the European Union.

I had no idea (based on his name) that Maciej started Pinboard in Romania.
It's slow at times even on the most recent iPad. >5 seconds of complete non-responsiveness when you change a wallpaper, for example.
Interesting, I could see this working with an app that didn't have GPS permissions especially in rural areas where the roads might have a unique fingerprint. Through the mobile web APIs the phone's screen has to be on for the JavaScript event loop to run so that would be a harder way to do it.
I didn't tried too hard, but for 5 minutes I tried to find who is the author and failed. It is not good that GNU does not put some emphasis on people writing the software, I just see "GNU" everywhere and a citation of Stallman in the front page. Credit is due and is an important part of free software.
That magic hacking glow :-)
This is exactly how I quit a pack-a-day cigarette habit in my 20s: smoking a pipe. It allowed me to get some nicotine in, but was such a pain to pack/light that I eventually gave it up -- by that time I was sufficiently de-habituated from cigarettes that I never went back to smoking, except for a few times when I got really drunk (another habit I eventually gave up).
How can you have a lizard brain when lizards are an unrelated evolutionary branch? It should be a frog brain perhaps.
I have rented up to four apartments at a time on AirBnB in both DC and LA. Also I advised a good friend of mine, GSB grad and former investment banker, on how to use AirBnB so he could pursue a comedy career in NYC.

From my experience, if you are renting apts to put them on AirBnB, you seek out low cost apts where you a guaranteed a return. I don't think that apt pricing overall increases by this behavior, because as a sub-letter (unlike if you are paying a mortgage), you are looking for monthly positive cash flow because you don't get the real estate appreciation.

For the last three years, I just look for studios and small one-bedrooms that if rented for 12 or less nights covers the rent. So in DC, I'd never rent a $2000 month place for AirBnB because that would require me to rent out the place 15 nights a month just to break=even. Too much risk. But a studio at $1200 a month starts to make a lot of sense. Yet, I would not want to personally live in a studio.

So I don't think AirBnB leads to increases in overall rents. It does lead to winnowing of small cheap well located apartments though, that you would otherwise move from but now you have a great opportunity to hold onto and put on AirBnB indefinitely. Oh, and if you really get into AirBnB, it can really affect your relationship with your gf/bf . . . let me crash at their place for three nights so I can make this $450 :) But that's another story.
> Why is that unfair?

Because PHP isn't actually used like that. Most engineers use frameworks (like Symfony, Zend, Yii, Cake, Laravel etc.) or at least components of these frameworks if they work on something very complex. NIH is a thing of the past.

> If that's how PHP is used in practice then it's fair to complain about PHP.

If shitty developers use a language then it's fair to complain about said language? Really?
I kind of prefer the look of the beta controller more than the touch screen final version. It just seems like physical buttons would be easier to use. I'm sure some games will make use of the screen though. Really looking forward to trying it out.
Unfortunately, suicide will never be stopped. And what is suicide anyway? People later in life that are disease ridden and in pain would sometimes like to end their lives in peace without causing someone else to automatically become a criminal. Depending on who you talk to this is either a natural right or absolutely off the table.

These are not simple subjects and every case is as different as people are different.
Silent Circle's website is full of grammar errors and typos. The how-it-works videos don't tell you how it works and the videos are awfully cheesy.
Rose-tinted glasses. New bare metal just means an all-new set of hardware engineer droppings to work around. It gets old real fast.
People do present it or use it as a scientific fact.
Sound in user experience design 
Design is not just what it looks like and feels like. Design is how it works…and sounds.The web is home to thousands of sites dedicated to showcasing great design, but the majority of these are focused purely on the visual, meaning that the audible aspect of design is often overlooked.It’s an issue that user experience designer and musician, Jordan Kolasinski, addresses with his latest project, Beyond The Beep, a blog described as “a look (and listen) at the use of sounds in user experience design”.It’s a project that combines his love of both design and music
> When does the "next guy" ever look at revision history to see what's going on?

_All the time_. I read all the commits in the codebase I'm responsible for. I need to keep track of what people are doing and how the system is changing. This is also on top of the need for code review and ensuring each patch is correct.

Check out http://en.wikipedia.org/wiki/Atomic_commit#Atomic_Commit_Con...
To me that font feels just like those old and comfy shoes feel to you.
Haskell, fundamentally, is actually quite simple: it's just the lambda calculus. You could fit the typing rules on a single piece of paper, and the evaluation rules are even more trivial. It is very difficult to come up with a simpler model than the lambda calculus.

Sure, it might be difficult to learn, but that's very different from being complex. Haskell is, if anything, different--but this is also why it's so much more expressive! I think this is a great example of Rich Hickey's distinction between simple and easy. Also, learning a language to some level of proficiency is an O(1) cost but the benefit is O(n) to how much you use it, so I really don't think you should consider that much.

Avoiding a language because it seems difficult to learn is just shortsighted.

Now, Haskell does have some complexity that other languages don't. But this is mostly in the compiler and runtime system: things like the incredible parallelism and concurrency features. There are languages that have much simpler runtimes, but Clojure ain't it: the JVM is probably the most complex existing runtime, full stop.

Legacy code, also, is more a matter of being on the JVM than language design. If you have a bunch of legacy code in C, it'll fit better with Haskell than Clojure. Calling out to native programs from the JVM is a real pain. The Haskell FFI, on the other hand, is relatively nice.

More generally, I think the idea that every bit of power has a price is not accurate. I agree that language design is going to be a complex optimization problem against several axes. However, this does not mean every improvement along one carries a cost along another--not every language is along the Pareto frontier! Since all languages are imperfect, you can get strict wins.

Also, as I understand it, protocols do the easy part I talked about. Certainly useful, but not very interesting. I do not see how you would accomplish return type polymorphism in Clojure--something like the from_string function or polymorphic numeric literals--because the information needed is simply not there. I'm not saying it's impossible, but I've certainly never seen it done.
Well a reptilian brain is what he means :) Aren't reptiles common ancestors?
Pharma is a very bad example in this context.

See:

http://en.wikipedia.org/wiki/Evergreening
TypeScript is the best bet if you want to write today's JS the ECMA6 (Harmony) style. It's not like CofeeScript.
> If I were to summarize it with one anti-pattern, it's that PHP encourages people to mix unrelated parts of the program into one place, making testing, maintenance, and understanding nearly impossible.

Haha, you are actually the problem you complain about.

Half assed "developers" who try to build anything large scale with WP or Joomla, people who can't be bothered to keep up with the changes that happened in the past 5-10 years but still complain about how shitty everything is.
My two cents: don't do it. Sickly slow.
Yes, for small things I'd consider a Scheme — though I have to admit that every time I tried to use Scheme, it turned out that doing relatively simple real-world things (such as dealing with files or network) was unnecessarily complex.
I'm probably still very uninformed about Japanese society (it's complex), but they are probably more prone to suicide than others. From what I understand there is a huge emphasis on obligations to others, perfection, and the shame of failure. Traditional Japanese culture frowns on entrepreneurship, preferring obligation to a large corporation (who is in turn loyal to you), where it can sometimes be hard being so disconnected from the value you provide to society.

Most of hacker news will be lucky in this regard. Despite the occasional existential crisis, as entrepreneurs we're self selected eternal optimists. Sadly not everyone turns out so lucky.
The actual documentary is here:
http://www.saving10000.com/
QNX was beautiful. I worked with it for very little time, but I loved it. Elegant and well-thought. I also share your feelings about Mach.

Please, do continue when you have the time. Cheers!
I like jlgreco's answer to your this post.

Just wanted to point out that rebasing is not just to remove or squash commits. I use it to:
- _separate_ large commits into atomic, logical units
- fixup changes missed the first time around
- rewrite commit messages to ensure they're clear
- reorder commits
For the most part before bacteria.
This is really motivating. I have been putting off writing and it's been killing me. I keep getting all these excuses to not start now but I will probably have to make a commitment like this and stick to it. Thanks for sharing.
It does, especially in the embedded world. I spent a good portion of my two last years working on an operating system for very resource-constrained devices.

The web kids get all the rage, we get all the fun.
Surely the concept itself is sound if you forget the misleading names and the idea of three independent modules? The more ancient parts of the brain certainly are located nearer the brainstem, and the most recent ones near the surface.

Also, even though the brain appears on a high level to function as a coordinated whole, there are certainly situations where, for instance, the ancient FFFF[1] responses compete with whatever the neocortex wants to do. Indeed, there's even a plausible-sounding hypothesis[2] that subjective experience itself arises from conflicts between the different modules.

[1] Fight, flee, feed, reproduce

[2] http://www.rifters.com/crawl/?p=791
I wish I could see it live, on videos I find it cool and unsickening. It reminds me of holograms (probably mathematically similar), or the eye focus over interference patterns trick in physics book which let you see depth on a flat surface, again very similar to iOS7 parallax.
The fact that there are statistically significant differences between nations and cultures is an indicator that not every case is different.
But is all this real or a reverse sting dreamed up by the DEA? It seems a little odd that those mean old Colombians would hire a German and a former US Army type to supervise the loading of an aircraft in Colombia for a flight to New York. Wait a minute--that's beyond the range of piston aircraft.

It's one thing to interdict a narcotics organization. It's something else to dream up spy novel scenarios, pay informants $$$ to entice knuckleheads to sign up, and then announce arrests.
> nor do we like to have branches that live very long. Merges of branches that are old tend to cause more problems. Problems that would have fallen out on the developer side if they had rebased.

This is a great point. Keeping branches small avoids serious integration problems.
> Let me introduce you to my friend, Mister ConcurrentModificationException.

Thanks for reminding me of him. I have never seen him during my last five years of programming in Java. I hope he's alive and well.
I see now what you are objecting to. Thank you so much for taking the time to write it all out.
Apple loses patent, courtesy Steve Jobs' video
Gradual typing is not as radical, however, as a fully type inferred language, see:

http://research.microsoft.com/apps/pubs/default.aspx?id=1961...

I think we can go much farther in this area than we have with Hindley Milner. Of course, this is still research, but as long as you are claiming "biggest advance in the last few decades" I might as well just throw this out there.
> 1. needing to have reliable testing environments for QA/product people to try features, as many feature branches are worked on at once

Makes sense. Also, try using continuous integration (which should test every commit), and try teaching people to check out particular commits (by hash). I find that once people understand what "headless" means, and how to get out of it, `git checkout <commit hash>` is a very useful way to test _specific_ things.

> 2. new people having trouble with rebasing, or have to understand git just a little bit better than pull/push/commit.

I think the lesson here is that spending a bit of extra time teaching your developers (not to panic,) how git works, and how more obscure commands work, goes a long way.
Google Glass CT Scan
As in RocketSockets' Websocket implementation? I use that all the time at work.
I tried my hand at programming this one, I think:

http://startup.nmnaturalhistory.org/gallery/item.php?ii=26

You enter the machine code one binary word at a time using the toggle switches on the front panel.
By the time I was on dial up to a local unix mainframe it was 85 and I had an Amiga and a PC. I actually went and bought a second hand amber screen VT100 work-alike for $50 and started using it all the time because the terminal behavior was rock-solid compared to the emulators available, and the text was very easy on the eyes. Good times.
I don't understand the FPS debate. Do you know what's better for racing games?

http://i.imgur.com/HYOmoQl.jpg - Racing Wheel and Pedals

Flying games?

http://i.imgur.com/ejf4hPf.jpg - Joysticks

Fighting games?

http://i.imgur.com/2lrevkG.jpg - Arcade Sticks

There's one device that works best for every single game genre, and mouse and keyboard is that device for FPS games. Why do people expect one device to match the functionality of all of the above inputs. They're vastly different experiences, it's simply not going to happen. Controllers work great for action games, platformers, and overall, they're the best well rounded device. They're not designed to compete with the above controllers, they're a general input device, so they're not going to be as efficient as something built for a specific task.

If you're a hardcore FPS gamer, bring your mouse and keyboard into the living room, or play at your desk. This is no different than someone buying a wheel if they're into racing simulators.

I think Valve is achieving an even more well rounded device. By the sounds of things, it'll improve the FPS and RTS experience on a controller. It'll most likely make sacrifices to achieve that goal. For example, fighting games might work better on a more traditional controller. However, the Steam library has a much higher number of FPS and RTS games, so that trade off makes sense.
How about you just press a button on your phone and 30 seconds later hand a photo to somebody? There's immediate value in that for me, and I personally would rather do that than use a service (which I did do for years with the online vendors, and I had a crappy experience with all of them).

Plus I can tweak the print in Photoshop before and print direct from there. Each has it's place.
This may be the unpopular opinion, but I would never use this. It adds to much complexity in my opinion. To many things that can break. Sure it gives you a lot of stuff that makes things quicker to implement. Plus you have to abide by their design and now how you think it should work. And frankly that doesn't sit well with me.
All you need to move money from a credit card to your bank account is a card number. You don't have to collect, let alone verify, anything else at all.

If it turns out you don't have permission to do that, because the person presenting that card number is not the owner of the card, you'll lose that money, pay a fee, and your ability to accept other cards will be at risk.

AVS and CVC checks are tools to help you decide what payments you want to accept or reject. They're inputs for your fraud scoring algorithm. With some processors, you also get a discount for making use of them, as the processor and card network would both prefer not to have to drop you for getting too many chargebacks.
It will never be completely stopped without some seriously dystopian measures, but it can be very much decreased by disseminating information, investing in preventive measures, etc.
Did you just suggest that Japanese are committing suicide because they can't be entrepreneurs? (o_O)

In general, if you're wondering what causes high suicide rates, it's a lot more useful to look at societal motivators than race. As everywhere, there's a strong correlation between depression and suicide, and it's not hard to find the main causes. In Japan's particular case, the largest group committing suicide are the elderly, who have devoted their lives to their company and feel they have nothing left when they retire. The second-largest group is the unemployed, particularly those who have fallen into debt traps that very often ensnare family and friends as guarantors, with life insurance providing an "easy" way out. And the final group is students, who commit suicide to escape bullying or the immense pressure of their final exams.
Full Stack Ruby - ruby both on the server and the client
> In my ideal world, every commit is tested (with Jenkins, Travis, Buildbot, etc), and then if the PR includes tests for the code and the build passes, the reviewer says LGTM and the committer presses the merge button on GitHub. Once the button is pushed, a build of master is triggered. If the build passes, the code is automatically deployed.

This isn't an unattainable utopia. It's what lots of teams are doing now. Try out continuous integration services (Travis or Koality).

And, given you have good instincts, ping me when you're looking for a new team ;)