skysight-inc/HackerNews huggingface dataset:
The problem with 'use the best tool for the job' is that everyone's 'best tool' is selected from a relatively small pool. The choices for some use-cases have a multitude of similarly worthy choices. Thus, not likely really the best available. Just another subjective choice.

That said, I don't understand the obsession with 1 language to rule them all that the Java and Javascript crowd seem to share. I do understand having 1 go-to that you reach for to build projects. Something broadly applicable like Java, C# or Python.

But shell scripting in Java? Seems a bit extreme, I'd never bother. You can pull out a Python/Powershell script that does whatever you're trying to do and do it much easier and faster. There's a reason Windows has C#/Powershell, and Linux has (as an example) Java/Python.
Nope. Doesn't work. Everyone's advice fails to work for me. I tend to think this is just a mass conspiracy or giant elaborate joke. I'm going to use this JS script to generate tests to see if I can get people who can do this to tell what the number is behind this "magic eye". Call everyone on their bullshit.
Distribute salary extremely unevenly...

No matter how it's distributed, the US is producing a lot more goods and services per person than Germany is.

The fact that the consumption distribution might be different than you like is a separate discussion.
Actually JSON is such a simple format, that everybody with a bachelor in computer science should be able to write a parser as correct as standard implementations (they often ignore that the root element needs to be an object and multiple entries with the same identifier)
Whether or not you're trying, you have succeeded.
My brief encounter with angular - you write something, throw it into a black box, magic happens, and you receive output.

When it works - works fine. When it does not work you are completely helpless.
DIY Exoplanet Detector Using a DSLR
It can be difficult to develop good intuition for the ideas behind the insert and delete algorithms for even standard red black trees. Here is an interactive web site that presents the essence of these algorithms in what I hope is "as simple as possible but no simpler" pseudo-code, and supports interactive play. (Insert, delete, single-step forward and backward through the algorithms, etc.) I would be delighted to hear if people find that this site makes the algorithms more intuitive, and any thoughts or suggestions for improvment.

http://www.gregfjohnson.com/redblackbuilder.html
First of all, I want to say that if you like Java, and know it well, and believe it to be the right tool for your particular application, that you should absolutely use it.

> That Java is the right language for all jobs. (Emphasis his.)

> The advantages of C and C++ [...] don’t apply to my work.

So, choose the right tool for the right job.

As for the examples given:

> At one company I wrote a simulator that allowed me to run my Java services without a fully-functional site. (The unit under test is Java, so it makes sense to write the simulator in Java, rather than Javascript)

> My partner Dan Collens suggested Java [for a log parser], since it’s right there and we know it and it’s fast. (The log parser is used so often that the amortized opportunity cost of developing in Java is more than paid off by faster processing, therefore Java is the right tool for the job)

> And finally, I went to write a simple program that put up a web interface. (This is something the author has done many times before and knows how to do well in Java, and his primary goal is getting it running ASAP, therefore Java is the right tool for the job)

I still think you should choose the right tool for the right job. It just happens that the author's work is constrained in such a way that Java turns out to be the right tool in most, if not all cases.

Honestly, though, I would rather choose the same tool for a job each time by deciding that it's, by merit and virtue, the best tool for the job, rather than relying upon the author's silly heuristic.
Thanks for the very complete answer. I had no idea there was such a procedure. Now I wonder how it works in Japan where I live, since such minorities are far from being commonly accepted here and they may have more hurdles to get to the same point.
This looks interesting. Any plans for spreadsheet support?
No, God, please no!
24 ways is back
Factors in Angular's success:

* backed by Google
* MEAN
* plenty of media/blog coverage
* seductive examples (that don't reflect best practices)

My personal gripe is with the last point. A lot of the appeal is in the two-way binding -- which is often the first thing to go out of the window once scaling becomes a problem.

Also, I have no idea why the author thinks Browserify and Angular go well together. They don't. At all. Browserify is great on its own, but there's not really any "blessed" way of using a module system with Angular (and like jQuery Angular 1.x is tightly coupled with the global scope).
Battery technology will continue to improve, and can already quick charge a vehicle in ~30 minutes. There are very few applications that require charging faster than that, or where you can't charge your vehicle at night.
Download Spotify playlists (from YouTube)
When it doesn't work, that usually means you have to learn implementation details like the digest cycle, which flies completely in the face of having these abstractions in the first place.
Lambda expression for comparator can be further shortened (for numeric types, descending):

( o1, o2) -> o2 - o1

No ternaries or else-ifs required. Swap o1 and o2 if you want ascending.
> Definitely not protocol buffers.

You know Protocol Buffers has a text format, right?

> I wouldn't use an ad-hoc parser for JSON either. The problem here isn't XML, the problem is thinking that you can solve your problem with regular expressions.

You are drawing a false equivalence. No matter how you slice it, JSON is far, far simpler to (correctly) parse than XML.

> Escape sequences in XML are better than JSON, at least.

The best case you have for this is that you need to encode high-Unicode characters over a non-8-bit-clean channel? This a very fringe use case. And your argument is that "&#x10E6D" is way better than \uD803\uDE6D? Neither of those look particularly user-friendly to me.

> Let's not fall into the trap of thinking that we should use JSON for everything, just like so many fell into the trap of thinking that they should use XML for everything. Both have their use cases.

The point is not that JSON is best for everything, the point is that XML is best for almost nothing.
Bitcoin Difficulty Suggests Rally
What about getting destroyed by antibiotics and already having the joints and tendons of a 50+ year old but being 24 :(
Understanding How to Leverage Social Media for Business
I think the free market does an absolutely wonderful job of creating amazing conditions for workers that are in high demand. For top tier programmers (which are highly over-represented in this forum) working in tech hubs, you can look forward to lots of work perks, smart managers, career progression, and excellent pay.

Working long hours in an interesting job with a manager who supports you is usually not that big a burden. Labour regulations aren't really designed for this community. You have to take into account the people who lack the education or aptitude to work a challenging job - and those people will be ruthlessly crushed and exploited unless the government steps in and provides a floor.
I'm always a bit jealous when I see this setup (or mu).

But I don't use emacs, and that seems to lead to subpar support and crazy hacks to get something up and working, unfortunately.
LuaJ is an order of magnitude slower to startup than Lua, IIRC. Could be LuaJ's fault, not Java's, of course.
Java 8 counterpart to you Clojure variant is actually:

coll.sort(comparing(identity(), Integer::compareTo));

Or:

coll.sort(reverseOrder())
"protest _against_ it"

Good point :). As a non-native speaker, I sometimes mess up prepositions... And of course, have a carte blanche to make errors :p.
I've recently been working on an assembler that has ASxxxx syntax compatability, but doesn't keep any of the other choices ASxxxx has made. It has definitely not aged well.
> There is no reason to write a JSON parser that doesn't accept bignum integers, in a language that has them.

Couldn't you write that about about almost any data type in JSON? The entire point of having a standard for such things is so that you don't have to worry about the differences between individual parsers/serializers.
Maybe because you're primarily a front-end developer? If front-end is not your fulltime job it's really hard to keep up with all the new frameworks and changes.
I have a few objections, but for now I'll focus on what I take to be the underlying issue that we disagree on.

> It doesn't change the basic purpose of the endeavor, which is to purport to rank the peoples of the world by intellectual capacity.

Based on this statement, I suspect our fundamental disagreement is over whether it does more harm than good to consciously deny empirical evidence for something when it has the potential to be spun into harmful propaganda. My position is that, while saying some true things can lead to harm in this way, it's more damaging to suppress or deny this information. How can it possibly be more damaging to forbid people from saying something inflammatory, like "Asians are smarter than Europeans" or "Europeans are smarter than Africans", than to allow it? Because the biggest gift you can give someone with a harmful agenda is something that looks to the untrained eye like a rational argument with solid empirical support, and then attempt to silence them.

You might bristle, but, according to studies I've seen, a white supremacist is not actually wrong when s/he announces that "Black people are on average less intelligent than white people!". What is wrong is the implication that they intend: that black people therefore deserve less respect/money/rights/something than do white people. As I see it, by trying to make discussion of the empirical data itself taboo, well-intentioned equality-minded people are only feeding the mistaken belief that, were there to be a genuine, measurable difference, the implication of being less deserving would follow. Not only is this false, it gives the supremacist more firepower: they can now truthfully claim, in addition, that "Liberals don't want this information to be known!".

One of the underexamined issues here is the special role of intelligence in the popular understanding of what it means to be human. We aren't threatened to the same extent by people drawing group-level distinctions based on, say, athletic ability. Our attachment to the idea of intelligence as central to humanity is, I believe, simply an unfortunate habit of mind. Fortunately, we're not totally governed by it: we don't put a murderer in prison longer if they murder someone highly intelligent. We already collectively agree that there are fundamental things to which we're all entitled based on nothing more than our humanity. (It's unfortunately true that there are many gaps and inconsistencies still in existence, but my point is that we aspire to treat people equally in these respects regardless of intelligence, and that in some cases at least, we achieve it.)

This is the right way forward, I believe. We need to create a widespread understanding that, even if average-level group differences exist in traits as beloved as intelligence, this would not imply anything about that person morally -- that is, about what that person deserves in life. With this in place, a supremacist's boasts about their race's intelligence have no more recruiting power than yelling out "Black people have darker skin than white people!" or "An object at rest tends to remain at rest!", or any other empirically demonstrable fact.
Amazon Reveals the Robots at the Heart of Its Cyber Monday Operation
But I don't use emacs,

Me neither, but mutt-kz had built-in support for notmuch. Not the hacky kind that calls 'notmuch', but it actually links against libnotmuch.

http://kzak.redcrew.org/doku.php?id=mutt:start
One could make an argument that its zigzag format is mildly quirky, but in general, I'd agree. Protobufs have some surprising limitations, but their simplicity has limited their quirkiness.
"No, actually, typing Foo one extra time does not “really suck”. It’s three letters"

Hah, if only it was always just three letters... :)) Usually more, and it's called NOISE. That's why C# has "var" and C++11 has "auto" (with all the benefits of strong typing still in place, obviously)

"And other languages like D and Go are too new to bet my work on."

I'd argue that D isn't really that knew, only niche. It's been around for over 10 years now.
Why Young Engineers Are Missing Out
I'm finding that in many cases the old adage holds true: "You're always using a framework. Either you're using an existing framework, or you're building your own." (paraphrased)

Sure, if legacy browser support is not a concern and you don't need to support bleeding-edge features (i.e. unstable APIs), you can go a long way with vanilla JS. But at some point any large system needs abstractions in order to stay maintainable. And if you don't use existing abstractions, you'll have to come up with your own abstractions.

Of course the other option is to simply not build large enough systems to require abstractions.

That said, I do prefer smaller libraries, too. This is why I see React not being a full replacement for all of Angular as a feature rather than a limitation.

I only ever began considering Express as a framework when it dropped the vast majority of its features (mostly middleware) in 4.x, too.
Doom 3DO Source
the position is subject to ITAR.
It was only more performant because it did less back then. And Notch had to incorporate fan mods to the lighting and chunk rendering code to even achieve that.

There have been recent issues but lets not pretend they aren't the sort of mistakes Notch liked to make.
In a way it reminds me of timing attacks only with a lot stronger signal.
What does Rails have to do with front-end SPA frameworks?

Or are you talking about node?
What Is This, Extension Facebook Friends Suggestions Troller
If you like backbone, definitely check out http://ampersandjs.com. They've taken backbone and split it into separate modules with some nice upgrades.
This seems to confirm my hunch that there is no reason to use anything but b-trees on modern computers, at least for single threaded code. Storing more values in the nodes and increasing the branching factor is better because you do more of your work inside the cache and avoid random memory access.

I also find b-trees much simpler to implement than either RB or AVL trees.
Fastmail is a great service, however iCloud completely fails with their web client. I have >50k emails, probably closer to 100k and searching simply times out. Never has worked for me. It's sad, really...
The author's only argument against C++ is located in the article comments and is "Regarding the use of C++, that's a non-starter; malloc goes in libc!". As the author was replacing the malloc[0][1] implementation, that seems a reasonable argument.

[0] - http://www.freebsd.org/cgi/man.cgi?query=jemalloc&sektion=3

[1] - http://www.canonware.com/jemalloc/
Me too (well, similar anyway). Gives me a real sense of dread when thinking about how I will have to cope in the future.
A new niche might be: Groovy on Android

http://www.infoq.com/news/2014/06/groovy-android
Slow programming
Memory management is tangential to borrowing.

I think scope is a great word, because my own important insight was that "lifetimes" represent the scope a borrowed reference lives in -- it's not really about the life of the value you borrow from.

Yes if you have a lifetime 'a, it will correspond to some reference on the stack in a scope somewhere up the callchain.
If you enjoy training, you could make a "Fundamentals" course you could deliver to other clients.

I charge by the day for my CFEngine trainings: USD 2,500 to 5,000.

I also recommend you survey what your competition is charging - don't undervalue yourself.

Is this a distributed team you'll be training?
The next Google Glass will be powered by Intel
What should "no longer be put on a pedestal" is Work. Work is not a virtue. It is a necessary means to an end. When we go beyond that necessity we become servants to the Economy, rather than having an economy that serves us.
GistDeck – turn markdown gist into slide
> Also, Swiss people tend to use "us" when they talk about their politicians whereas Germans use "they". This really shows how Swiss stand behind decision made by their government whereas Germans - in comparison - act like infants being totally at the mercy of their leaders (who are elected every four years and basically do what they want during that time).

I'm Swiss and I'm having a hard time agreeing with this sentiment.
What does it do for large floats? In Python:

>>> import json
>>> json.loads('{ "mybigfloat" : -1' + "8"*310 + '.0}')
{u'mybigfloat': -inf}
The most hipster language in the world
Sam Saffron has great write-ups. His article on Ruby 2.1 and garbage collection fine-tuning [1] is a must-read

[1] http://samsaffron.com/archive/2014/04/08/ruby-2-1-garbage-co...
Amazing work! I've bookmarked this post. I think that this approach of profiling Discourse on Rails could be use for any other app/service that is to be migrated to Rails 4.2.
Static typing can make things clearer, indeed, however Java has really shitty static typing. Also this is a common misconception:

> You can know with complete certainty what type of data the code works with, just by looking at it.

First of all, the type is only a limited view of the shape of the underlying data, written from the perspective of the business logic using it. In a micro-services architecture it happens often to see the same data exposed with types that are often very different, depending on what you're trying to accomplish. And too often developers that work with Java are complecting the business logic with the actual data, which is often pure data that's being messed up with short term business logic rules.

And furthermore, Java developers don't work with static type safety. Tell me, what does a String tell you? What does a Double tell you? How often have you seen explicit type-safe numeric types in Java (e.g. lets say values that are in kilowatts, or meters, or other units of measure)? You don't see that, because Java is awful at expressing such types, from the lack of operating overloading, to the completely retarded generics system and the lack of type-classes.

Second of all, the type IS NOT sufficient documentation when dealing with non-determinism and if side-effects happen in your system, then that's non-determinism. And when non-determinism happens, you need to document the protocol of communication and static types in mainstream languages cannot capture that, which is a PITA because that would be far more useful than seeing that this Person has an email address.
gcj is dead.

For good ones I only know of commercial like Aonix, Websphere Real Time, Excelsior JET, JamaicaVM and a few others.

If you want to go free and are happy just with GNU/Linux and Mac OS X/iOS, then RoboVM might be an option.

If you want to go research, there is Graal/SubstrateVM from Oracle Labs and JikesRVM, a meta-circular JVM.
Extract Travel and Hotel Reviews from TripAdvisor
Isn't this technically a farm-manager position, as the occupant will neither own nor rent the land?
There is hardly anything from a traditional GNU/Linux on Android.

You have a 100% Java based userland, and only a very limited set of C and C++ libraries available to native applications. There isn't even a full POSIX support.

Google could change Linux kernel with e.g. QNX, and hardly anyone would notice.
This is exceedingly great work. This is the stuff I love coming to HN for. I had no idea Discourse had a dual-boot mode, much less that it had become a de-facto macro benchmark for both Ruby and Rails. That is awesome.
I like the plain HTML in early-90s styling - very simple and functional. That is a lot of different architectures... but x86 is not included.

Also noticed that the complete package is 24MB+ because it contains not only the source but the binaries for all the assemblers compiled with all the compilers they used: cygwin, djgpp, linux, symantec, turboc30, vc6, vs05, vs10, vs13, watcom. I'm not sure what the point of doing this is (since the platforms are DOS, Linux, and Windows), besides as a comparison: cygwin appears to make the smallest executables, while vs13's is over 2x bigger.
could it be related to item 14 on United States Munitions List:

>>Toxicological Agents, Including Chemical Agents, Biological Agents, and Associated Equipment

from : http://en.wikipedia.org/wiki/United_States_Munitions_List
I'd kind of agree/disagree-ish. As I've commented on another HN thread about this, YMMV, but I've made peace with the fact they're paying for 37 hours access a week to my brain as much as the specific outputs I produce. I don't sit with people with my skillset, so I can help others (what's often referred to here as "interruptions"). Regardless of how much productive time I get out of that (c. 25, maybe), I'm there for questions to be asked of me, and to help others - and that's as much of my role as rolling out code.
7 Christmasy iPhone 6 Mock-Ups 50% OFF + 20% CreativeMarket Discount 24h offer
I think it's just boilerplate in that all SpaceX employees are tangentially exposed to stuff which is ITAR (Rockets = ICBMs)

Only a tiny number of their positions are more sensitive than that (guidance and some of the comms positions, probably, and possibly facilities badging and interconnects for launch operations)
Out of curiosity, which companies do you define as being in the "first", "second", and "third" rounds of space startups?
Interstellar...it's happening
Dishwashers[0], baristas[1], line cooks[2], and porters[3] are all subject to ITAR as well. Can't afford to let China learn our latest China scrubbing technology.

[0] http://www.spacex.com/careers/position/5715

[1] http://www.spacex.com/careers/position/5839

[2] http://www.spacex.com/careers/position/5708

[3] http://www.spacex.com/careers/position/6151
never in my life i managed to see this things. even back then when they were in fashion. no matter how hard i tried. I'm starting to get worried something is wrong with me.
Counting keystrokes in programming is like counting letters in a novel - the amount of time put to think of something, to discuss it, takes the vast majority of time. Keystrokes used to write something is irrelevant (especially if you type with more than 2 fingers)

And if the whole arguments boils down to Java not having a var/val keyword - yes, that would be handy; but you would then still need tools to figure out what is the type of val foo = calculateSomething();
I don't think that would be that efficient of a use of computing resources. Each instance explores the same instruction space. It keeps track of where it's explored, and uses various techniques to explore different parts of space.

It's very likely that multiple instances, if run in parallel and with no data sharing, will explore a lot of the same space.

Also, making a public cluster would be a security challenge. It runs arbitrary C/C++ code, and can trigger code paths that the developers didn't even realize. How would your box stand up to multiple grabs of 4GB of memory?