skysight-inc/HackerNews huggingface dataset:
Funny that you mention that, I am currently in the process of designing the "next" generation of the project in question. Luckily I was able to convince the product owner to switch from PIC18 to NXP ARM chips.

I have loads of experience with the LPC series and I only realized how nice they are to work with until this project came by. Also, GCC + OpenOCD + gdb is a very nice toolchain to work with, although the first versions of OpenOCD were a bit of a pain to get (and keep!) running.
They're not controlling the quad with head tracking, just the camera orientation. So for "pod racing" this should work making it more realistic both because of the 3D effect and the fact that you can turn your head like you would if you were sitting inside it.
Not the most difficult, but one of the most satisfying...

Early 90's (when C++ was new and broken in a different way for each compiler), I was on a QA team for a project where developers were learning C++ as they built the next version of the product. There was a buggy math function in the standard lib, and the compiler vendor didn't see it as a high priority. Devs didn't know how to find expressions that were at risk so they could cast them to a type for which the libraries worked reliably.

I discovered a useful combination of compiler flags and wrote an awk script to take the compiler output and make a list of source files and lines that produced calls to the broken lib function. The lead developer insisted that I was wasting their time with a bogus list, until I explained how it worked.

More challenging: I worked on an industrial machine that had to mix measured amounts of gasses over time. The developer who wrote the mass flow controller (the device that controls gas flows, basically) task just opened the MFC at the start time, then slammed it shut after the correct amount of gas had passed. I coded up a smooth open/close that kept the area under the curve correct. In 6809 assembly language. That was in the early 80s, when a 2MHz 8-bit CPU was some serious horsepower.
Angular and Node are exactly fresh new things. I would say it is better to learn MVVM/MVC and Reactor patterns those respective frameworks are based on.
Had a VoIP network with TB+ of SIP packets each day. Customers demand resolution to problems from days ago, so having a time-travelling, content-aware PCAP was necessary. At 50K packets/sec, piping tshark to mysql and 11 indexes simply wouldn't cut it. We spent $$$$$$ on a commercial system that didn't work so well.

I slowly reinvented the basics of an information retrieval system (the curse of not having taken CS classes). Came up with the idea of a log-structured merge tree, made easier by this being a write-once database. Got some inspiration from the original Google paper. But most of it was just figuring out the least number of actions needed to retrieve info.

I published the core DB part, which maps an int64 (index hash value) to an int64 (docId) and stores in an efficient format (on our data, ~2.3 bits per packet). http://github.com/michaelgg/cidb - I couldn't find an existing library that has zero/low per-record overhead.

On a Q6600 and a single 7200RPM platter, I was able to index a TB of SIP a day and provide fairly quick flow reconstructions going back as far as disk space allowed. On a quad-core i7 parsing+indexing was over 1Gbps.

Company impact was huge, because we could suddenly troubleshoot things in minutes instead of hours. A few years later, after I was gone, I heard they were still using it. Neat.

This was all in F#, which presented fun challenges regarding optimization. Lots of unsafe code and manual memory management. SSE would improve varint encoding - the CLR generated code is a joke in comparison.

Last month, I dropped this lib in as a replacement for storing routing information in a telecom app and dropped RAM requirements from 6GB to 1GB.

On the downside, I'm sure any compsci student could build a similar thing in a week, and probably they do so for school projects. But to a lot of app-level developers, this kind of algorithmic work is sorta magic for some reason.
On this note, NaCl support is being included in 1.3: http://tip.golang.org/doc/go1.3#nacl
I'm in the process of refactoring LibreOffice's VCL code.
Mountain Mapper

A map-based web app for discovering the world's mountains

http://i.imgur.com/LE2X6Fz.jpg

http://www.tomjwatson.com/projects/mountain-mapper

Zoom and pan around the map to find the locations of significant peaks in an area. Click a marker to reveal information about each mountain, including images, descriptions, height etc.

Data is sourced using the Freebase API and displayed using Google Maps Javascript API.
"I think they were both trying to pay their rent share via AirBnB" ... "but money was not 'secondary' to them" - conjecture. Counter example: If I can rent my room out once a week for $50, consistently for 10 years, and invest that money at 10% (any typical Australian bluechip stock) represents a $44,383 gain over ten years. Why am I not doing this? (edit for clarity)
I think it is not for the 3D. It is for precise orientation of the camera using the head tracking.
Parent is referring to GOAL/GOOL [1], Lisps that were developed internally at Naughty Dog for game scripting (the first iteration for the Crash Bandicoot series, the second on for the Jak & Daxter era. It is said that these were very powerful systems that could compile to some very mean PS1/PS2 assembly. If you read about how they had to optimize Crash Bandicoot to be able to give that "wow"-factor at their first E3, blazing past all other PS1 games and setting a new standard, you'll know what I mean.

There's a very interesting blog series about it [2].

[1]: http://en.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp
[2]: http://all-things-andy-gavin.com/2011/02/02/making-crash-ban...
I am not sure what I am doing wrong, but using functional techniques improved my C# quite a lot.
IPads and tablet growth
Right, I'm wondering why Unicode doesn't offer some sort of meaning-equivalent API (or does it)? Like a way to know Arabic and standard percent have the same meaning. Or that fullwidth 'A' is equivalent in meaning to 'A'.
Not sure what you mean by other ways to tackle the dev environment. You need GOPATH, it's totally non-optional for any nontrivial code. Try it for a bit before you look for an alternative, it's actually quite elegant.
One i remember clearly was on my first programmer job in 2000. The other coders were poking at PHP but the company had several customers on WebCrossing [1], which at the time was considered one of the "serious" website building tools.

I had to customize WebCrossing to the needs of Svenska Spel [2], the swedish lottery company. They had about 200 pages of drawn screenshots how they wanted _EVERY_ detail to look.

The problem was WebCrossing did not offer much of customization built in, and i had to basically override every single template. Especially i had to create whole new forum code, because the WebCrossing way of presenting stuff was not how the customer wanted it.

Also, for some reason, aftonbladet.se, Swedens then (and still?) biggest news site had got 2 guys from WebCrossing USA office to come over and build their site.

Since i did the first gig, i also ended up rewriting the publishing system to aftonbladet.se:s forum from a "pre-moderation" system, into a self-moderating (post-moderation) system. The reason for this was beause the site managed to approve some nazi posts, and the publisher got fined [3].

After all this horror i could finally start learning PHP instead.

1: https://en.wikipedia.org/wiki/Webcrossing
2: https://web.archive.org/web/20010615000000*/http://chat.sven...
3: https://www.aftonbladet.se/nyheter/article10198408.ab
I implemented this feature in an asymmetric cryptography library used for securing IP data that allows you to basically ping another endpoint, sending it a chunk of data along with the size of that data, and confirm the other endpoint sends that data back to you correctly.
Show HN: Detect the audio type of a Buffer/Uint8Array
How to mount an encrypted disk image (lvm/dd)if you forgot your ssh keys
Having ordered lot's of cheap prototype/evaluation boards through dx.com/ebay/aliexpress.com, I can say for sure, that quality does differ.

Seed and co have higher standards for soldering/reflow quality, wheras random factory churns out boards, probably even not doing any sort of testing apart of "hmm, looks connected".

That being said, most of the stuff still works fine despite shobby soldering and cheapest parts they could get at the market that week.
Virtual ANS – Simulator of a Russian musical synthesizer from the 1950s
On the `this` feature: This is mostly a "problem" with the DOM-interface, which is not part of the language. But there is even a solutions for this in JS: Object.handleEvent() -- Why is everyone complaining on the lack of a feature that is in fact already built in? Just start using it ... Also, since functions and objects are first class entities, you may just store references and make use of them as you like. (But, please, don't use "var self = this;", since `self` is already a predefined variable pointing to the global object.)
I did a blog post a few years back with a compilation of pictures of offices of independent programmers:
http://successfulsoftware.net/2009/07/27/where-i-program/

Check out the 'breaking bad' style office.
It's similar in the Scheme community. It's easy to write your own module system. So every compiler and every second Schemer has their own module system with its own quirks and assumptions.
Please don't call it java lite. Yes, it targets many of the same projects you might write in java, and it has garbage collection, but it's very different from java in the feel and the resultant code, and nothing "lite" about it.
The paper was only an algorithm for part of this — I can't remember the paper, but it gave an algorithm to find all of the closest points to a line.

How my algorithm worked was to break the search space into a 2D array of much smaller squares. In the initialisation phase I put the points in each square that are closest to any search point in that square (some points were in multiple squares). Therefore, when a search was run, the square the search point falls in is looked up, and the list of twenty or so points was looked through for the closest point in a slightly optimised way (no square roots here).
Write down 3 or 4 ideas (including your target idea) and poll your friends, family, coworkers, etc. Ask which one they would pay for. Have "none of the above" as the final option. If you directly asked what they thought of the idea, you might get a biased response. People tend to be encouraging - even if it's a bad idea. The little poll should help mitigate the bias.
What is the ipad on the wall doing?
Interesting. Are you aware of any high profile examples of this architecture?

For my own case, search and autocomplete use the same modeled data, but autocomplete for instance runs lots of precalculations on this data, so the data behind an API is not really a choice.
Yeah, I think that too. Random train-strangers aren't going to be as interesting as my book I wouldn't think.

But then the article reckoned everyone in their experiment also thought that, and yet turned out to be wrong, their predictions of their own reaction were mistaken.

Guess the only way to be sure our predictions of our own reactions are correct is to test 'em now and then.
Lol, funnily enough, I did pretty much the exact same thing regarding learning C at the age of 12, ended up writing an OpenGL game for the PlayStation Portable which I released for the Neoflash competition:

http://www.neoflash.com/forum/index.php?topic=4924.0

https://www.youtube.com/watch?v=wAF9o8dsHfA

Since then programming games was always my obsession, and just a few months ago I fulfilled my life long dream and got a job as a gameplay programmer at Ubisoft.
Debugging a functional program is so difficult (data flow debuggers don't really exist) that equational reasoning is necessary because you want be able to fix your code otherwise. But really, mixing list comprehensions with effects is really a bad idea, and we C# programmers have no trouble avoiding it.

There are ways to tame side effects without going monads, which don't really fix the complexity problem anyways (it just makes all effects explicit). See this paper for ideas on how to do that:

http://research.microsoft.com/pubs/211297/managedtime.pdf

We shouldn't treat state like an unwanted but necessary evil, we should embrace it and deal with it.
Please add it to the article and report your findings! =)
I've been doing web dev for over 15 years now (granted, most of that as a hobby) and I've never really felt this kind of frustration. Weak typing and most of the other things you mentioned have never really bothered me. That's not to say that there aren't challenges, but that's what keeps it fun for me :)
The next shopping platform
The next shopping platform is the missing step between existing e-commerce systems and (far from now) implementation of augmented reality desired experience.
With my new shopping platform, several issues will be achieved:
- increased sales volume: because my concept take advantage of human behavior (seeing is shopping);
- ads powered but avoiding to be annoying;
- best user experience and user interface ever designed;
- comprehensive product information for better selection;
- powerful social-commerce integration.
Oh, interesting. What's it like to use? Please add it to the article. I'm adding Opa now.
Why? He clearly doesn't enjoy talking to people. I'd say it's the other people forcing him to talk to them as having the problem. If someone doesn't look like they want to talk, then why don't you give them the courtesy of simply not bothering them?
Depending what you count, my E-B number is 6. I'm actively working on reducing that, and looking to get a finite Sabbath number:

http://erdosbaconsabbath.com/

It's all a bit silly ...
You need not wait, the future is here today, in Brazil and elsewhere: http://www.wastelandmovie.com/ and http://en.wikipedia.org/wiki/Waste_picker
The problem appears to be, some tend to get confused, who is the caller and who is the callee. For this, please just consider that the DOM-interface is not part of the language, but just -- as the name suggests -- an interface to a separate environment. From the point of view of the DOM, the element is the callee, which applies itself to a callback function (the event-handler). Makes quite some sense.

In case you've issues with this, you may just use `Object.handleEvent()`, and the this-object will be your object (or function). Why is everyone complaining about this behavior, but no one is using the built-in feature that would be the perfect solution to the problem?
Chocolate Cookie Gelato Sandwich Recipe
Not everybody should be selling his labor freelance. There are various economic explanations as to why people work on a non-freelance basis in free markets.

http://en.wikipedia.org/wiki/Theory_of_the_firm
Paralegal jobs Salary
"Speaking to a stranger != accosting."
It is if they clearly make it obvious that they don't want to be talked to.
How To Build an App – Preface
Code Generation and Visual Smog in Code (part II)
The Framers were actually very concerned about militarized police and illegal searches. "Redcoats" were a militarized national police. That's how we got radically liberal gun rights, in order to be armed-up like regulars.

The US Constitution is, in general, addressed to the government, giving the government a limited set of powers, and not to the people, and, therefore it explicitly says it does not enumerate rights. It assumes your rights are everything outside the scope of government. That was the approach to future-proofing it. So there really is no problem with the Constitution. The problem is the people allow these things to happen.
Tracked down a bug in the inhouse foundation library that turned out to be a gcc feature (bug). We were convinced that the code was schizophrenic, since the debugger would never break inside the function, but we could step through code that would run around it. Turns out gcc doesn't issue a warning/error if you have two destructors for the same class (it will call the first one in link order).

Solution: rename the second class, and create a style guide rule for class names.
Does it lead to employees/groups competing with each other to keep their job? I've experienced that at one of my gigs and it just kills my morale. I have a habit of helping co-workers. Then, I notice that I don't always get any acknowledgement in front of mgmt. At the end of the year, the people doing perf reviews don't seem to always know what role I had in some of the successes. At a previous employer where this stack ranking stuff was not prevalent, my coworkers were very generous with their sharing of credit (as was I). As time goes on, I feel I am being a naive person and have no one to blame but myself.
These are the types of experiences I like to read about, you should blog about them in depth some time.
Good point, it was full of spam and registration was closed. I forgot about that. It was because we had a really old MediaWiki version so it was actually unsafe to allow anyone untrusted to post on it due to exploits possible at the time. I say “we”, I don't have access to manage haskell.org. I'mma ping the mailing list to see about fixing this.
modern features the type system of Go is missing

How about starting with old features that it are missing, since Go is literally decades behind PL research?

- Parametric polymorphism (plus constraints e.g. in the form of type classes).

- Algebraic data types

- Pattern matching (with non-exhaustiveness checks).

- Enforcing purity via the type system.

- No null pointers.

No, these are not esoteric Haskell features, but have been around in ML since the 70ies. Also, the claim that Go's designers want to keep the language simple is not a strong argument. A language such as ML is simple.

Also, many old(er) imperative languages adopted some of these type system features, such as Ada, C++, Java, and D.
More proof that DRM is a farce. :-)

I used to work for a massive media company for a short stent and I kept trying to explain to them why DRM will always be broken but it just never took. I think it's hard for non-technical people to think about the 100+ ways media leaks on its way to the human's ears or eyes. :)
Yay, my Erdos number is 2 and thus better than that of Richard Feynman. I have a paper with Erdos-1 mathematician Saharon Shelah. Unfortunately, my Bacon number is infinity. To look up your Erdos number, if any, go to

https://files.oakland.edu/users/grossman/enp/Erdos1.html
Seems about spot on.

I find it interesting that he's now advocating monads considering his earlier stance on static type systems[0].
Of course it may just be that he's changed his mind -- it happens.

(Yes, I consider monads as fundamentally requiring a static type system, at least if you're using monad transformers or similar advanced techniques. In practice you're not going to be able to get things right without compiler assistance when you have a stack of N monad transformers.)

I also find the bit on having a "pure" annotation vs. having explicit monads particularly insightful. The difference between a type system that only handles "pure/impure" vs. a type system that handles "pure/state-effect/writer-effect/network-effect/etc." is huge.

[0] http://lambda-the-ultimate.org/node/1311
The software engineering world is in danger of repeating the mistake it made with objects two decades ago.

Back then there were legacy "structured" languages like C and Ada, and new exciting "object oriented" languages like Smalltalk and Eiffel. C++ was promoted as a "middle way" that let you "choose the best tool for the job". This made the pure OO languages look extremist. So, it was argued, if you had a problem best solved by structured programming you could do that, and if you were doing an application with objects in it then you could use those. It also meant that your old C programmers could pick up the tool and start using it immediately without having to relearn how to design a program.

"Aversion to Extremes" is a well-known cognitive bias, and these arguments play up to it, but of course it didn't work well in practice. OO features didn't dovetail neatly with the existing structured features, leading to an exponential explosion in the rules defining how the various features interacted. The mess was not helped by experienced structured programmers who felt they should use the new sexy OO features; the result was often a conventional structured design with some random virtual functions sprinkled around.

The book "Industrial Strength C++" is a case in point. It is basically a catalogue of C++ language features that interact in dangerous ways.
http://www.amazon.com/Industrial-Strength-Recommendations-In...

Today we have the same story happening again. On one hand we have legacy OO languages like Java and C++, and on the other hand we have pure functional languages like Scheme and Haskell. So along come "hybrid functional" languages like Scala which basically make the same promise as C++: if your problem has lots of objects then you can carry on doing the same OO designs you know and love, but if you think that these magic first-class functions would be useful in some complicated algorithms then you can use those as well. And its going to fail for the same reasons that C++ failed: the OO and functional features don't interact well, so we are going to have lots of messy rules about them that cause subtle bugs, along with attempts by OO programmers to use chains of map and filter functions that work inefficiently because the compiler can't optimise them. And in ten years time there will be an "Industrial Strength Scala" book consisting of a long list of features that should be avoided if you want reliable software.
The Best Way To Remember Something? Take Notes By Hand