skysight-inc/HackerNews huggingface dataset:
I have seen quite a few of those - mostly in returning promise vs actual value from function in some special case.

The other class of errors was with objects that reference other objects - e.g. function takes `loggedUser` parameter which is expected to have property `finishedLevels` or some such and someone sends it `bestFriend` object that kinda looks similar but does not have 'finishedLevels` property.

Most importantly, you have to code differently when writing without typing. It felt as if my hands were cut of at first - I was often in "I would solve this easily in Java just by making interface that would communicate list of needed methods, but cant in javascript because there is no such thing as interface". This is also the likely reason why you do not see many bugs - you probably learned to avoid all those patterns and idioms.

Even more importantly, it really helps with refactoring if you can rename function/variable or change number of its parameters and have all the places (and exactly them) that call that place return error. I can refactor much more aggressively when working with java vs javascript. In java, I spend a lot of time changing existing stuff, when I am tired to do hard work. In javascript it is special thing you do when you are well rested and fully focused.
No problem, but knowing this is mostly Dublin is relevant ;)
Sure! But if you're going to make animal cruelty laws, at least make it illegal to be cruel to animals. I'd rather be butchered and eaten than spend my entire life in the hot sun, tied to a post through my nose, eating garbage.
This IBM software helps to identify vulnerable open source components
A lengthier discussion:

https://news.ycombinator.com/item?id=9338708
Gene Therapy Is Curing Hemophilia
The tech industry is pushing women (and children!) into the tech field because it increases the supply of labour. An increase in the supply of labour, without a corresponding increase in demand for labour, of course, leads to lower prices. In other words, it's an attempt to push down labour costs. Costs that are currently among some of the highest labour costs around.

Teaching and nursing are already low paying, or unionized, and so there is no significant benefit to increasing the labour supply. At least not commensurable with the cost of pushing that message.
WiFi232 – An Internet Hayes Modem for Your Retro Computer
KFC Facial Recognition Ordering Machine in China
> Clearly there are potential rewards (ev+ if you're into poker or ai) in starting your own company.

That a risk is +EV does not make it a necessary risk.
It could also be that the frivolous purchases mean more to the poor, that they are something to be excited about and not just an arbitrary indulgence.

I used to be a lot more careful with my money before a few years ago, when I experienced being too poor to feed myself and routinely went for several days without even a small snack, just looking at pictures of food for hours on end.

Ever since that time I've found that as soon as I have surplus cash I have a strong desire to spend it on expensive food or eating out etc. and I often do. Even the cheapest meal from the local takeaway feels like a huge thing for me now and fills me with a joy I struggle to communicate.
"A series of technicalities" also known as "the rules".
Ask HN: Front end designers, where did you start?
I haven't been working in web development for very long, but I have always had a strong preference for working on the back end. Recently after some increasingly frustrating hours of making and then throwing away mockups for a new project I realized that either a) I will simply never be able to design things for the front end because I'm fundamentally lacking something or b) it's a skill that I never bothered to develop and I have to start somewhere at the beginning. I'm hoping it's the second option.

Whenever I try to google for front end design I get a lot of hits for JS, HTML, CSS...but it's not the coding part with which I am struggling, I feel like I don't have a vision of how things should be put together or why. What's even more frustrating is that I've been around long enough to know the basic building blocks and so it feels like I have all the parts sitting in front of me, I just can't put them together. I have tried decomposing other people's designs, but whenever I try to apply the results, it ends up looking like a poor copy.
This is a bit different than their similar threat to suppliers that use AWS. The venn diagram of truckers that carry for each is likely just one circle. This would create a weird industry split since Amazon and Walmart are so dominant in volume of shipments.

I wonder if this might be illegal even if it's not antitrust worthy.
I only know bash, but I doubt zsh can be so much better (yes, I know, they have colorful suggestions and better interactivity for selection).

The context sensitivity is just very confusing. Sometimes completion hangs, maybe because an SSH connection is made in the background, or the completion is just not very efficient.

Then sometimes I have a typo and get the weirdest suggestions and it's much harder to track down the error statically than just running the program and get a nice error message.

Then sometimes I am more intimate with the complexities of the command-line invocation than the completion script can appreciate, and get no completion, when all I need is just a stupid local file completion. This results in the (untrue) assumption a file wasn't there, which easily leads to further confusion.

No, thanks. I know how to use the tools that I use. Dear completion, just help me with the files on my disk (which is the fast-changing variable in the game) and let me type commands as I see fit.
Yep. Better asked as "Why use a conventional|relational database as a queue?"

Because all queues have to be databases i.e. have the same qualities / assurances as databases.
Those kinds of inefficiencies are /everywhere/ in government. They tend to mirror the limited ways departments communicate (see: Conway's Law). Having structured data available isn't a given, nor is the ability to send it across networks that often predate the internet.

I remember an incident where a critical feature went down for days because a backhoe severed the only available link between two agencies. It's hard to overstate how unusual it is by government standards to operate the way modern startups do-- e.g., put everything in the cloud and let Amazon handle your availability problems.
Modern digital data laws that balance law enforcement needs with privacy
Self-driving Volvos struggle to deal with kangaroos
I've found that co-locating my queue with my application data enables a very powerful pattern around persisting actions and queuing up callbacks -- especially useful for smaller applications where scale isn't as much of a factor. It means I can persist both my data and my background jobs in a single transaction, and if something goes wrong during that transaction they both rollback (before the jobs are picked up by any workers). No need to coordinate two different systems (which can be full of pitfalls).
For a more serious intellectual argument in favor of monarchy over democracy, see "Democracy, The God That Failed" by libertarian theorist Hans-Hermann Hoppe.

https://en.wikipedia.org/wiki/Democracy:_The_God_That_Failed

I am neither a monarchist nor a libertarian, but the book is a good read.
Yeah, it's an aggregation of comments from HN, Reddit and Stack Exchange, and a couple of examples of this happening before. Might be helpful for people who missed it but kinda silly to post it to HN
An introduction to isogeny-based crypto [pdf]
Tuxera NTFS 2016.1 Crack and Serial Key for Mac OS Free Download
I feel like truckers should tell Walmart to shove it. This is getting abusive
I've noticed long ago that RDBMS users don't actually care about consistency, so it's always kind of wrong at some level and when things break it's not that big of a deal for them. It's just annoying to see people claiming how transactions are easy, while they are only easy to do incorrectly.
He's now an investor in The Wing
When I automated the documentation of nightly job processes using Tivoli Maestro configuration files and Visio, my employer didn't know what to do with me so they promoted me. It never crossed my mind not to say something. I wasn't there to produce output. I was there to bring value to the organization.

At another employer, I worked alongside a customer service rep who automated much of the time consuming work he had to do. He wasn't a programmer by trade, but having a hacker mindset, he learned to do so after tiring of the same old work. Despite the annoyance of the security team and other developers who felt threatened by his work, he was promoted to IT and they locked down the workstations so it wouldn't happen again.
Walmart is lashing out like it already knows Amazon is going to win. The only play it has left is to bully partners.
I'm very sorry to hear the trying circumstances in your youth... but I'm very glad that you did manage to break out of it and be successful. The solutions you suggest to changing culture will unfortunately definitely not work. If its one thing I've noticed, its that if you try to ban something it drives it underground and makes it even "cooler". I don't know what the solution is, but changing the culture like that just isn't valuable.

There is also this fact that a lot of people who grew up in better circumstances (including myself and most of my friends) just never get to meet, interact with and understand people who grew up in tough cultures like you did.
Automating data science steps: join dependency sorting
Maybe it was automatically generated.
Yes for infrequent yet high value tasks where consistency is paramount, DB queues are king. The alternatives using an externalized queue is either non-transactional without failure handling (yet everybody pretends it is), transactional with 2PC where recovery was never thought through (or tested), or devolves to having the equivalent of a DB queue anyway to track work with re-insertion of work into the primary queue.
This. Also, things like RabbitMQ are complex and their durability properties can be different than those provided by your RDBMS. This can get problematic if you are mixing tasks in the queue that have different priorities. For example, emailing the invoice to a client should not fail silently and should happen at most once. Same with a notification from your doctor that you need to call to discuss your test results. Tossing that into an ephemeral queue is probably not the best solution.

Having said that, RabbitMQ does have a ton of settings where you can turn durability up/down as much as you want.
Great observation! That's a compuational mode we are discussing. It's actually trivial to implement.
In my experience, the cost of adding and maintaining another storage subsystem to a project is often hugely underestimated. It's easy to see the benefits and ignore the costs.

If I can solve a problem reasonably well by adding a table to my Postgres DB, that will always beat out adding the specialized ScrewdriverDB that does it perfectly.
Thank you for proving the point. Criticism must be punished, even when it's directly addressing raised questions. It is exactly these sorts of actions that create the "hostile excitement" OP was complaining about. Cause and effect is a bitch.

All you had to do was not treat the subject as sacred.
"Golly, I may be having a heart attack. I think I should take a moment to shop around for a cardiologist, so I can get quality treatment for fair prices."

Don't expect market forces to come to the rescue. It doesn't work that way.
Show HN: Keep your js bundle size in check
Very common in the web context -- you perform some form of relational persistence while also inserting a job to schedule background work (like sending an email). Having those both in the same transaction gets rid of a lot of tricky failure cases.
Uber launches speedboats along Croatia's coast
Not quite a "Unix" shell, but the [Ammonite Scala Shell](http://ammonite.io/#Ammonite-Shell) lets you do this trivially:

lihaoyi Ammonite$ amm
@ import ammonite.ops._
import ammonite.ops._
@ ls! pwd
res1: LsSeq =
".git" 'LICENSE 'ci 'project 'sshd
".gitignore" 'amm 'integration 'readme 'target
".idea" "appveyor.yml" "internals-docs" "readme.md" 'terminal
".travis.yml" "build.sbt" 'ops 'shell

@ ls! pwd | (_.mtime)
res2: Seq[java.nio.file.attribute.FileTime] = List(
2017-06-21T12:24:41Z,
2017-06-11T13:48:45Z,
2017-06-21T12:29:05Z,
2017-06-11T13:48:45Z,
2017-05-01T03:41:14Z,
2017-06-18T14:06:33Z,
2017-06-11T13:48:45Z,
2017-06-18T08:01:20Z,
2017-06-18T12:34:00Z,
2017-06-19T06:05:51Z,
2017-06-18T09:06:07Z,
2017-06-18T14:06:33Z,
2017-06-18T14:06:15Z,
2017-06-18T14:07:20Z,
2017-06-11T13:48:45Z,
2017-06-18T14:06:33Z,
2017-06-18T14:06:33Z,
2017-06-19T06:06:03Z,
2017-06-18T14:06:33Z
)
@ ls! pwd | (_.mtime) sorted
res3: Seq[java.nio.file.attribute.FileTime] = List(
2017-05-01T03:41:14Z,
2017-06-11T13:48:45Z,
2017-06-11T13:48:45Z,
2017-06-11T13:48:45Z,
2017-06-11T13:48:45Z,
2017-06-18T08:01:20Z,
2017-06-18T09:06:07Z,
2017-06-18T12:34:00Z,
2017-06-18T14:06:15Z,
2017-06-18T14:06:33Z,
2017-06-18T14:06:33Z,
2017-06-18T14:06:33Z,
2017-06-18T14:06:33Z,
2017-06-18T14:06:33Z,
2017-06-18T14:07:20Z,
2017-06-19T06:05:51Z,
2017-06-19T06:06:03Z,
2017-06-21T12:24:41Z,
2017-06-21T12:29:05Z
)
@ ls! pwd | (_.mtime) min
res4: java.nio.file.attribute.FileTime = 2017-05-01T03:41:14Z
@ ls! pwd | (_.mtime) max
res5: java.nio.file.attribute.FileTime = 2017-06-21T12:29:05Z

@ ls! pwd maxBy (_.mtime)
res6: Path = root/'Users/'lihaoyi/'Dropbox/'Github/'Ammonite/".idea"

Ammonite certainly has problems around JVM memory usage and startup times, but it has a sweet spot for this sort of not-quite-trivial filesystem operations that are a pain to do in Bash but too small to be worth futzing with a Python script
Well there's this: https://news.ycombinator.com/item?id=14459417

But that's legally plausible as just monitoring phone orientation to improve user experience.
TypeScript can use JSdoc annotations: https://github.com/Microsoft/TypeScript/wiki/JsDoc-support-i...
This article has been flagged off of the HN front page. Like many similar articles.

Hacker News, your flagging algorithm is part of the problem.
It seems that the largest issue with your previous job is a lack of coding standards/discipline. I think that this point:

> the weakly-typed/dynamic nature of JavaScript itself which doesn't scale well to larger server-side codebases

has less to do with it.

Do you really feel that your strongly-typed Java job would be so great if all of the other poor practices of your previous job were in place?
I remember a similar story about a developer that outsourced their work to a low cost offshore worker. Can't find it now...Google fu is off today.
Java is still the language of choice for many new projects at Google. Your options for new large server-side projects are, realistically, C++, Go, and Java, arranged in order of how high-level the language is. Java is a perfectly rational choice even today given those options.
First AWS, now this.

At what point does the DOJ step in? Isn't this anticompetitive behavior? I've heard that Reagan-era deregulation changed a lot of the relevant law, but I'm not clear on how. Is Walmart doing this with the expectation of impunity because there's no longer a crime to charge them with, or because they see themselves as immune to prosecution?
A modern shell with properly structured data streams would look like caml-shcaml:

http://users.eecs.northwestern.edu/~jesse/pubs/caml-shcaml/

PowerShell definitely made a lot of mistakes they should have known needed fixing. Like the need for signed scripts.
"Your replacement won't understand" I've heard that over and over. So I say "No boss I didn't use VBA or JavaScript to generate these reports" It would get me fired.
Meetup.com seems to be filling the niche and becoming pretty mainstream. I've used it on two continents now. There are a lot of tech groups, which I assume was their initial market, but I've mostly used it for language exchange. My other friends have also been using it for general hobbies.
Will they include USPS, UPS, and FedEx in this?
Why not using scheduled timestamped checkpoint synchronization, and then you can get Loose coupling.
"Amazon offers $0.10 more per mile, leaving Walmart with no truckers"

But really, Wal-mart needs to get over themselves and do what they need to do to adapt, rather than being the bully they've always been.

It isn't like they refuse technology, they have a pretty decent technology team as far as I can tell.
Scrum master feels more like a role rather than a job title. Like one thing that you do among other things.
Wow is there a lot to unpack here, and this really is a poor medium for it so I'll try and cut to the crux of the issue:

Is there consent? If you're not sure, don't do it.

And so a follow-up: do you think a VC pitch by someone of the opposite gender represents consent to making a sexual advance?
You won't have to sit on the retrieval path with Filecoin. Nodes participating in the retrieval market will probably simply expose a Filecoin-enabled version of the HTTP-to-IPFS gateway. The v2 paper will have more details very soon.

Interesting to note is also that, if you want to deliver content yourself, you can just run IPFS nodes on their own, without Filecoin. IPFS has been working fine for the past two years.
It applies to human-to-human communication too. If a politician sends an ambiguous tweet, he or she will be blamed if the message is misunderstood. A marketing campaign can be accused of being racist even if the creators didn't intend it to be. If a worker doesn't understand a managers work orders, it is the managers fault -- not the workers, same thing with a student not understanding a professors lecture and so on.
Really nice site!

When flicking through the screenshots in the modal view -
before the screenshot loads - how did you get the background gradient to be so close to the actual site's page background?

I know you already have the colour scheme in advance, but the gradient seems to match very closely most times. Seems really clever

EDIT: Just saw this https://drikerf.com/image-previews-on-klart/ which explains it! Really nice trick
Unfortunately, truckers don't usually have that option as they are often times wages slaves to their jobs through debt by being forced to buy their semi truck: https://www.usatoday.com/pages/interactives/news/rigged-forc....
http://articles.latimes.com/2013/jan/17/business/la-fi-mo-ma...
I just have to say, while I respect the work and have been looking forward to nix tools being ported to rust, the first thing I do is see if it's GPL or not and if it's not it immediately loses points (not all of them), because I have been working hard to free up my stacks. I wish people would consider making core system tools like this GPL instead of MIT/BSD styles. Tivoization is a real threat to the freedom of users and devs. (which is what mit license enables, despite it being listed as "gpl compat")

For example, I forced myself to learn screen really well because even though I like tmux and it has some features lacking in screen, I would rather support a tool I know is more aligned with freedom for the user. Same with i3 vs awesome, etc.

An interesting side benefit of this is I have noticed the complexity of my stack has been reduced because of this selectiveness.
It seems like an antipattern. If your execution time is bound by an "ultra expensive context switch" occurring when you hit a Nan, then something is wrong with your algorithm.
Yup. Resource forks on classic mac for instance.
Going back is considerably harder than you may think. Once you move to a new place, you create a life for yourself, you form social networks, relationships, habits etc. Leaving all that for the uncertainty of a place which you left because of whatever reason seems like a huge gamble and something I would personally find hard to do.

Of course, it depends on ones nature. I have friends who miss and pine for their home country and do end up going back. Others like myself enjoy our new lives and identities in the US and stay.
you can still have the notion of a transaction while integrating rabbitmq like this

you do your mutations in a transaction and also in that transaction you execute a NOTIFY command. If transaction is successful, the notify will go through at the end of the transaction. the notify events and be "bridged" to a messaging server like rabbitmq (see my other comment)
In the context of the business area that Palantir is in, though, they absolutely do need machine learning to maximize the value of their product. Imagine trying to build a program to beat AlphaGo, or a search engine better than Google, or a best-in-breed image classifier, without using machine learning. You can't do it. Machine learning is a critically important technique that can solve problems better than anything else can. Palantir's work contains many such problems. Not using the best tool for the job, and not even having a roadmap to do so, means they're ripe for disruption by some other company coming along doing the work better.

Machine learning isn't just some buzzword used to attract VC money. It really, truly, does work.
Catching wrong-type bugs is, for me, relatively low on the list of reasons I enjoy using Typescript. A few of my higher items would be: strictNullChecking, intellisense, and refactoring.
This isn't really new for Walmart. Their thing has long been to use their market position as something of a monopsonist to extract concessions from suppliers. Give us these things packaged differently, and for 7% less, and make some of them Walmart exclusives (you're not selling Target the same thing, are you??), or we won't sell your stuff anymore.
At least 1000 immigrant millionaires have spent the million buying a house in Auckland over the past few years. These are houses that would have sold for only, say, 950,000 if those immigrant millionaires hadn't been in the buyers market, so I guess that's created an extra office job or two at the local banks and real estate offices.

An immigrant billionaire might buy a mansion with airfield attached for his armageddon hideout. Or he might grow a business employing immigrant workers on work visas. Some citizens might get jobs in the service sector servicing them.
> "json lines" data format (where each record is json without literal newlines, and newline separates records)

Good point, but jq handles this already. If the payload is an array of object, simply `jq -c '.[]'` to get an object per line
Why is an update to a gamecube / wii emulator so highly upvoted? Am I missing something? Would love to hear why it's more significant than it looks like at first glance.
Things to know in Linux to handle development and servers
Sure it can make perfect sense. There are plenty of developers who know it well enough to be productive and it's certainly fast enough for typical server applications even at a large scale. It's the crufty heavyweight frameworks and ceremony around the ecosystems that can be a bit off, in my view. Also I'm not a fan of OO programming for most use cases. It has its place, like any paradigm, but I'm not convinced that place is as large in scope as others might think.
> Despite the annoyance of the security team and other developers who felt threatened by his work

Depending on what he did the security team may have rightfully had issues with the work. I've seen it time and time again. Someone automates something, the tool gets released to users and it's full of SQLi, XSS, and RCE vulnerabilities, sometimes opening up a once protected data-set or systems to company or Internet wide exposure. It's shadow IT/Dev work like this which tends to be responsible for the most security incidents.
Why do I need to press a button to view the article that I navigated to? This site's web developer must be special.