skysight-inc/HackerNews huggingface dataset:
I think we programmers tend to see coding as akin to reading, if you can't code you don't even get the chance to get into other stuff because you're missing the most basic skill of software engineering, the ability to make a computer do what you want it to do. No one interviews for "software engineer" and wants someone who can barely code, writing code is virtually always the number one requirement of the job.

If fact when I hire, I require a small programming project be completed (simple, save some objects to a file and read them back out passing this unit test), that is the resume, if you can't code I won't even look at any other credentials. Rookie programmers with only a few years experience often do far better at this task than people claiming a decade of experience. The most experienced people often completely fail the test.
Top 3 bugs I make in shell scripts
It's safe to say that C++ had an influence on the Go language at least as what not to do. The emphasis on language simplicity and compile speed seemed to be a result of fairly large C++ code bases at Google.
Small clarification - you will if they are down in C code. i.e. you can have multiple threads in Python blocking on IO just fine. Or three threads concurrently running C code which releases the GIL until it needs to be re-acquired. Quite a few standard libraries which require significant processing power do exactly this.
We needed something that was type-safe and deployed easily with a decent standard library. Concurrency was a bonus.

This, barely, outweighs the massive amount of boilerplate that permeates a golang repository over time.

Overall it was a net positive choice.
Google makes an aggressive move to steal Microsoft Office customers
I think "culture fit" here is a replacement for: "He isn't young and single and probably has a family, therefore he won't want to work 70 hours a week and stay in our awesome fully stocked with free soda and snacks office 24/7 and instead actually go home after normal work hours, and we can't have that."
DOT Just Announced Mandatory Drone Registration
Best Combinations of Linux Distros and Desktop Environments
If you're really curious about what goes on down there, you should read the works of Nick Johnson, author of the "Big Dead Place" blog and a subsequent book.

http://feralhouse.com/big-dead-place/

The blog is off line (might be on archive.org), and Johnson sadly took his own life in 2012.

http://feralhouse.com/nick-johnson-rip/
Payment Systems in the US Are Bad
Intuition behind Covariance Kernels
Alibaba wants online discounts to appear in offline stores
Yeah, that's poor wording on their part. It would be better to say something along the lines of, "Let me know if I get too aggressive - sometimes I really get into these whiteboard problems and I appreciate your feedback."
> Why does ASN.1 allow such large arc numbers? Is this a result of being designed before a reasonable (32 bit) word size was common enough to depend on? Ie that everyone would have to implement "bignum" so might as well set no limit?

I assume that's because OID nodes are essentially namespaces, giving an arbitrary upper bound to node ids would artificially and "unnecessarily" limit the size of the corresponding namespace. That looks like a "correct versus realistic" debate which was won by the "correct" side.
From the preface: "achieving maximum effect with minimum means."

Sort of the anti-Perl? I say this as someone who likes both Perl and Go.

Go is very contrarian, and I applaud this.
Of course all those Ruby on Rails shops in SV are innovating, but Asia is only doing Copy-Paste? I am long on America as much as any other guy, but this kind of hubris has a huge price tag. There is a nice book "Art and Fear", in which Group A was given task to create a quality art and Group B was given a task of creating a lot of art with any kind of quality, at the end of the test, Group B produced better quality art, because they got the practice with the trial and error feedback. Group A suffered trying to get perfect from the get go. So a resounding Yes, to Quantity is a Quality.
Clearly, Germany has failed - If people had any dignity, they wouldn't need a government to protect it.
HN's rules explicitly call for changing clickbait titles.

https://news.ycombinator.com/newsguidelines.html
We've gotten a few people say they got it running now. More choices for everyone :)
We changed the title to add "about Amazon" and remove the linkbait "you".
> MUST NOT travel faster than 4 mph (6 km/h) on pavements or in pedestrian areas.

Yeah, just like your car MUST NOT travel faster than the posted speed limit. Nothing says it can't be capable of doing so in other areas though.
My guess is that it's not.

From earlier discussion on this article, the wheel was modeled as an infinitely stiff rim, rather than the more mechanically accurate beam on an elastic foundation. For a first level linear elastic approximation, the spoke tension doesn't matter. The spoke tension is really going to only be an issue once you get into the non-linear effects associated with rim stability, which is strongly dependent on the rim stiffness.
Also inexcusable that Carney's bio is not the first sentence in the post.

It's also standard in newspaper opinion pieces to put the bio at the end.

I actually prefer it -- as a game -- to guess who writes the author's paychecks as I'm reading.
The DroneDefender is a rifle that keeps pesky drone operators at bay
If they can show that a clear majority are happy with their jobs, all that demonstrates is survivorship bias. Given their churn rate, this is not a good thing.
> Concurrency is dead simple in Go - and if you want to do 5 different requests to ElasticSearch in parallel and merge the results when all of them are finished (like we do for Universal Search), that's just a few lines of very readable Go. Try that with a GIL, sure, multithreaded Python and Ruby is possible, but it's not for the faint hearted and not as easy to read.

This example is terrible. Waiting for DB responses, ElasticSearch queries, and long running IO is one place where Python and Ruby multi-threading with a GIL works great. A GIL means multiple threads can't execute Python code at the same time. All of those tasks are by definition NOT running Python code, they're sitting around blocked waiting for responses.

A better example would be something like image processing, where an image is loaded into memory, broken into multiple independent chunks, and each chunk is processed at the same time in multiple threads. In Go that should work just fine, but in Python and Ruby each thread will spend a lot of time waiting for the GIL.
Cron Monitoring. Get Notified When Your Cron Jobs Fail
Even an internal API should be designed with the same principles as an external one, because through security error, it may end up being exposed.

When designing an API, certain conditions must return a 404 with no further explanation given. These are purely security concerns.

If you try to login with an email and a password, I will return a 404 with no further explanation if the auth request fails. Even if the email exists in the system. This will prevent abuse of the login mechanism to confirm what emails are valid and which are not. The same principle applies for other resources.

On the other hand, if you truly send a malformed request and explaining to you in what way it is malformed poses no security risk ... only a jackass would return a 404. I would send a 400 with a detailed explanation, so that you can fix it.
Yeah, that too. It seems to function as a placeholder for any reason the interviewer might be ashamed to admit in polite company.
Sadly, there is no 'R' anymore :-/
Ask HN: How do you find potential coworkers for a startup?
I feel I have a good idea for a potential company (bias recognized) but I don't have anyone to help me get it off the ground. I don't live in a big city, nearest one is 90 minutes away, and I honestly don't trust the people I do know with this project because they don't seem to follow through. I can't ask my current coworkers either, who I wish I could, for various reasons. Thoughts or suggestions?
Excellent feedback.
"there's absolutely nothing official about it"...except that it's coming from Amazon's Jay Carney, who is described as "Senior Vice President for Global Corporate Affairs at Amazon". Could his Medium site use a custom banner to show Amazon's letterhead? Sure (I don't know, I haven't logged into Medium in awhile to know its design/customization options). But this message is signed by him, acting in his role as Amazon PR. Quibbling over whether it should've shown on an Amazon domain vs. an outlet like Medium does nothing to change that.
Yes it absolutely makes sense to buy this book to learn go; judging by the contents and first chapter it will be comprehensive and a very clear introduction to the core concepts of the language.

It will probably end up being the definitive reference.
I don't see how analyzing comments on ex-post known successful businesses can tell us anything about anything -- it (at least) needs to be compared to how comments on average startup proposals do, to see if there is any predictive power. If, for example, successful startups had 20% positive comments vs. 10% positive on average, and the difference was significant, that would suggest that HN shows awesome crowd wisdom -- even if 80% of people here hate everything :)

Accounting for confounding variables would be nice too (for example, if field X is generally more liked by HN than field Y, equally positive feedback on a startup doing X would tell us more than that on a startup doing Y).

Still an interesting idea, I just think that people should not forget that "data science" is a subset of statistics, and any kind of data analysis is not really useful without at least some familiarity with it.
While I appreciate the dialog, your comment is rather condescending. I've worked extensively in Common Lisp and am well aware how the condition system works. My claims had little to do with conditions, and more about the benefits and use - It's pretty simple to have a dynamic var (say, handler), bound to anything you like, catching errors before the stack unwinds, including an expression-based REPL debugger, allowing you to change locals and return a value in the place of the exception. It has all the limitations you can imagine, but for many cases, this is plenty to be effective.
Then what bar would you set?

I'd be happy with a low bar. My guess is it isn't even hitting that low bar.
How Two Brothers Make $200,000 in 30 Days Running a Haunted House Business
The TDI, even when in cheat mode, continues to be among the lowest carbon footprint of any vehicle. The cheat mode causes NOx emissions to climb up to that of a diesel truck, think a 16' box truck. And the car is capable of complying with NOx emissions.

Some rogue engineers made a hack to have the MPGs come out as 31/40 instead of 29/38. That's what happened. VW will take corrective actions across the board, right down to fixing your vehicle to comply with emissions regulations.
There is also Platypus that is a small query answering engine based on Wikidata: http://askplatyp.us
"I think it's a net negative for usability because it saves a few keystrokes at the cost of precluding implementing interfaces for types outside of the package they were defined in without writing annoying wrapper structs"

It's a very pragmatic answer. As someone who generally straddles the pragmatic/theoretical divide, I mean that both fully as praise and fully as condemnation. ("Do I contradict myself? Very well, then I contradict myself, I am large, I contain multitudes." - Walt Whitman)

I never did hear what Rust decided to do about what Haskell called the "orphan instances" problem, I only heard about the problem... what happened there? (Honest question, not critical in any way.)
Buy shipping labels with Bitcoin
100x? Even 10x is very significant. Why is it that you feel so much more productive in Go? Is it ease of refactoring? Lack of frustrating bindings bugs? Something else?
An Asynchronous Shell Prompt
Not sure why so many downvotes -- they build an in-memory representation of the content of the contenteditable, intercept input events to update that representation, and use that to update the actual dom. Presumably they wouldn't just wipe out the entire contents each time either, so it's sending atomic create/update/delete commands to the dom.. So it's like React's vdom just for contenteditable.
Show HN: Write OCaml, Get JS, Run on Electron. js_of_ocaml Bindings to Electron
The versioning section of the article made absolutely no sense to me. Yes, HTTP has a mechanism to encode version info. He completely ignores Facebook's claim that dealing with that complicates server side code (because it has to distinguish between different versions), but goes on a rant that because they don't understand that the protocol allows to encode this (why ever Facebook's developers wouldn't realize this) they don't understand REST. No answer to how this magically makes the server side easier, completely ignoring what I think is the argument.

And really, most of that article feels like this. His facts are not wrong, but they don't match the claims they supposedly refute. Or if they do occasionally, it is drenched in so much rant-sauce that it gets covered up.
I like the minimal design. And I like that these could help prepare for an elevator pitch (which in turn would be peep for the overall idea and execution). Looks good!
Really? Visual Studio is widely recognized as one of the best IDEs available, and the .NET platform is leaps and bounds better than, say, vanilla Java at this point. I'd like to know what sort of "modern software development" you do that is so "terrible" on Windows.
Hey, I did not see this yesterday.

I have a very serious medical condition. As a side effect, it sometimes jacks up my brain chemistry suddenly and very badly. I have spent nearly 15 years working to get a handle on it and I have made substantial progress. I am pretty confident something has changed in your life. You just do not know what it is.

There is research linking diet and depression. The most solid stuff concerns the role that certains fats/oils play and the impact they have on brain inflammation.

Look some of that up. Start a food diary. I have a food blog where I talk some about things like that (and I was a mess the day I wrote my last entry):
Http://miceats.blogspot.com

If you email me or leave comments, I would be happy to have feedback or questions and you can shape the direction the blog goes to some degree by giving me some feedback.

Best of luck.
The fact that it is a bit non-intuitive to call C from Go is exactly where there are so many 'Pure Go' libraries. I consider this as a short-term hurdle with long-term benefit.
Show HN: Email Obfuscate – help prevent email addresses from being scraped
Before I read Tufte I assumed my fellow designers were learning bushels of information design skills from his books that I sorely lacked.

After reading Tufte, I realize it's wonderfully pleasing design porn, and the teaching is usually at another URL.
you're all idiots
Correct, clearly not every engineer at GOOG is getting it but it's also not rare. And not particularly high-level engineers either - I'm talking almost exclusively about level 4/5 SWEs.

I also know some people at other BigCos getting similar levels (to be clear: $300-400k/yr total comp of cash + public stock) so it's not just a GOOG/FB thing.
My fault, I should have read your description further.
* Most startup will fail.

* Most of the successful startups will be acquired and merged with other more successful startups or established companies.

* Most ideas are repeated and competed aggressively.

* Most of the successful startups primary winning demographic / target audience turns out to be younger crowd, especially with college students, and the young crowd tend to be better at advertising startup ideas.

* Many successful startups you can name right away simply reinvent the existing platform by applying media attraction and sharing among crowds.

* Only way win is make noise. A lot of noise. Yeah. Back to pg's top recommendation, selling your product to users.

* Unless you have billions to burn on your own, don't try to be SpaceX or Telsa. You will never be them (or the same guy who founded both entities).

My own unscientific conclusions.
Why not both?

One piece of analysis missing here is the opportunity cost of trying to get into professional sports. Is there not enough time off the field to learn skills that can be used for a successful career? Possibly.

If an athlete "throws in the towel" and decides to go back to school, what kind of roadblocks are there in front of him/her that make it difficult to transition?
Pure64 from Return Infinity sounds like something similar for 64-bit systems (sans C headers): https://github.com/ReturnInfinity/Pure64
I'm one of the founders of SigOpt (YC W15) and will be checking this post all day and am happy to answer any questions about this, our tech, or anything.
Quantum Software: What software engineers should know about quantum computing
One part of the problem is that young programmers are given a sort of computing education without a historic context. The only historic perspective they get on anything is in their humanities courses, where it isn't about their profession.

In their core subjects they are given a cartoonish summary their history of their profession, with distorted dates, which leads them to believe garbage like that object oriented programming was invented in the 1990's, functional is totally new and so forth.

"Like, wow, you're in your 50's and you know about new stuff like inheritance over composition and singletons?"

Only those know better who actually dig into the literature and look at the actual dates, and are surprised how far back some concepts were not only known academically but deployed in production systems.

There is this axiom that, no matter what year it is, someone with gray hair knows mainly Fortran, and writes it in any other language. Be it 1985, 1995, 2005, 2015, doesn't matter. Never mind that the 1985 person of whom that was actually true already died, and this is his son, if not grandson.
I'd be happy to hear your suggestions for improving the code. I've done lots of assembly programming and firmware development over the years, but rarely on x86, and this project was the first time I've used the GNU assembler. It was a learning experience, and that's part of the reason I decided to share it.

I actually wrote parts of this library in C at first, but ported them down to assembler once I got them working, because it felt more elegant to divide my project cleanly into a 'runtime' library written in assembler and a 'kernel' program written in C. A matter of taste, I suppose. The use of assembly doesn't really create a maintenance burden as the target architecture isn't changing and the library already does everything it needs to.
Ask HN: Personal Observations on Generation Z? (Born 1996 and earlier)
Most of the people here are not part of Generation Z, but might be raising kids that are part of it or have other experiences with them. This would be the first generation to grow up with major social media, smartphones, and not remembering a pre-Recession economy. The oldest of them are just starting college!

Would anyone mind sharing their observations or experiences with members of this generation?
I've been working on open-source balloon control software [1] for my own balloon project that I've been building on/off for about six years. I am hoping to use a software modem to bridge between the RF and my AX.25 packet reader/writer [2] because I wanted to save weight. Payload weight is the name of the game in the balloon hobby--the lighter your payload, the less you have to inflate your balloon and the higher it will fly before it bursts. Even an ounce matters and the competitive altitude record balloons are invariably tiny, single-board, all-in-one payloads that are built around a single low-power microcontroller.

There are a couple of good open source options for software-based AFSK APRS modem/TNCs:

Dire Wolf: https://github.com/wb2osz/direwolf
minimodem: https://github.com/kamalmostafa/minimodem

You'll still need a USB sound card though, which adds weight and cabling. I would love to see some open-source SBC hardware a la Beaglebone Black or RasPi that had a high-quality sound card built onto the board and wired through a Molex-type plug that was suitable to the bumps and bounces of flying.

[1] https://github.com/chrissnell/GoBalloon -- This was my first project in Go and while it works well, it now looks pretty ugly to me with a year and a half of Go experience under my belt.

[2] https://github.com/chrissnell/GoBalloon/blob/master/ax25/dec...
With regard to #1, I don't much care how cowardly Carney is. The Times based an anecdotal article largely on the impressions of someone who is clearly suspect. Not informing the reader about it is unacceptable.

I guess I agree with #2, except that the alternative scenario -- that the reporters based their piece on an employee who they didn't know had an axe to grind -- just makes them incompetent/negligent rather than malicious.

I agree with #3, and honestly just ignored the relevant section of Carney's post for exactly the reasons you give.

I disagree with #4. I'd love to see the entire correspondence process too, but I can't imagine a reasonable scenario where the reporters aren't dishonest about their intentions. I think being willing to betray one's subject with bald-face lies completely destroys a journalist's credibility, and it doesn't matter how evil their subject is, or if they call it investigative reporting.

I'm sure the reporters felt they were justified, or only bent the truth rather than lying, or whatever. But it's exactly that ability to self deceive that makes them untrustworthy writers.
How about some proof that Olson committed fraud. With everything I've been hearing about Amazon, I have to wonder if Olson was innocent or scapegoated by a group of people involved in the fraud.
Okay, do the usual: Add microcode
to the processor cores to support
more capable instructions so that
can trigger a streams of all the
data with nearly no time for addressing.

E.g., implement heap sift, heap sort,
heap priority queue, substring search,
of course, inner product accumulation,
and whatever else looks promising,
e.g., standard multi-dimensional
array addressing, chasing down
chains of pointers common in
OO programming.

That is, have the machine instructions
do larger chunks of work.
You're right - I am thinking "How is this different from what I said?".

> Functions applied to terms also have a type.

Yes, and those types are sets of values. For example, "int -> int" is the set of all functions that map integers to integers. (Remember that functions are also values, just like any other value, in functional programming.)
Object models don't all have to be identical. Go doesn't have the same object model as Java, but it still has one. Saying it doesn't is simply wrong.
What about Limbo? It is not even mentioned. I would expect to see it below Alef.
Best video ever. thanks, I needed that :-)
Razorfish Global CEO Tom Adamski Passes Away at 43