skysight-inc/HackerNews huggingface dataset:
So what's preventing management from imposing huge amounts of workload when there's no limit to how many hours you work? The usefulness of a set limit of hours is that it protects the employee from work overload.
Some of us don't care for XML as programming language syntax.
You're not comparing like numbers. Here's the OECD data:
http://stats.oecd.org/index.aspx?DataSetCode=ANHRS

Average annual hours:
France: 1489
US: 1788
Sorry, I shouldn't have thrown in the quip on FPGAs. It really is a complete non-sequitor. I think a very neat topic, but didn't belong here.

I don't accept that generics are somehow an automatic win for languages. I do like them somewhat, myself, but I don't think there has been compelling evidence that they can be used to great effect in building embedded systems.

Consider, at the low level, the majority of the code written is still in C. Not C++, C. And I can't bring myself to agree that it is lacking because of it.

I know he is intentionally inflammatory, but I think Torvald's rant on why he rejected C++ for Git is somewhat poignant. As is all of the attempts at writing the git core in higher level languages. Specifically, how they haven't really succeeded.

I will confess to being open to the argument, but outside of revisionist history and wishful thinking, I just don't see proof that things are automatically better with today's practices over those of yesterday's.
Exploring the earth: the stunning rocks of Tasmania's Maria Island
The bot part sounds quite similar to what I've done with my server: https://github.com/lifthrasiir/mcbot . It opens two 0MQ sockets corresponding to the stdin and stdout of the java process and operates an IRC bot using them. 0MQ did have an advantage of not having to stop the server to update the bot.
I've been an Eclipse guy since college (12 years ago) and haven't seen any need to change. I used vim once for a small Ruby project (couple of days) and came away thinking "I don't see how, even with years of practice of keystrokes, etc, someone can be more productive in vim than a modern editor." And went right back to Eclipse.
Only when we can specify the design of a software product with the same precision that we can specify the design of a skyscraper will we ever see the failure rates of software "engineering" efforts approach those of other engineering fields. As any practicing programmer can tell you, even the best upfront design specs are imprecise and incomplete. And most of the time those specs are changed over and over again during the development effort so radically that the final product is often barely recognizable.

I put the blame for this firmly on the shoulders of the "clients". We can and do achieve high success rates with low defect counts in special cases where the goal is precisely and clearly defined and the development budget is sufficient. When we start caring about the quality of a website or mobile app as much as we care about the quality of the software that runs airline flight control systems or medical devices then we'll see real software "engineering" emerge.
Oh, I don't even know how to answer, really. I used quite a few editors (and IDEs) at one time or another, tried vim, because somehow it felt that everybody is supposed to try vim sooner or later, and still am using it. I don't feel like vim is perfect, it's just best what I've seen so far. Clones of Textmate and such doesn't really count as text editors after you used something like vim or emacs and probably I'm just not old enough to consider something like acme when I was still in search of a text editor. And vim ultimately is how software should be in my opinion: fully configurable through text, no UI if not needed, lots of simple shortcuts for everything (which isn't really achievable without modes, however it's what I understood only much later). And command-mode, yeah, it's crucial. In the last years there appeared several more editors striving for something like this: Yi (which looks promising, but I never tried it; and I suspect there's much worse situation with plugin availability yet, anyway), Sublime (isn't really better than vim to be worth switching, configs aren't as simple as vim's, didn't have solid vim-mode the last time I checked and is much less ergonomic by itself, also problems with plugins, and — huge disappointment, really — it's proprietary; proprietary text editor?! Just no.), Atom (I didn't play with it much, but I impressions aren't the best — first of, damned humans, they use WEB-BROWSER ENGINE to edit text in 2014! Not that my computer hangs up when I run Atom, but still it's pretty heavy; I somehow expected text-editor implemented by github to be more usable out of the box, and it isn't, cannot even properly highlight many languages out of the box; and this LighTable-style command prompt — I don't know how I feel about it; it's nice, but, again, there isn't such simplicity as in vim, it autocompletes everything even if I entered something comletely non-autocompletable; and I'm not that big fan of coffeescript). So, yeah, nothing good enough here. Several times I tried to switch to emacs, which I almost like (although, again, it also isn't perfect, too much built-in useless stuff (like ugly GUI) and I'd like to use some Clojure instead of elisp), but it just didn't play well somehow and I came back to vim every time.

But vim's simplicity also comes with few huge minuses: vimscript (and don't say "neovim" again, it solves nothing), and, well, no GUI (that is, even in gvim it's still only text-editor, you can't inline image or show rendered markdown or latext in the same window, no matter how much you want to). Both are pretty serious problems, as they slow down/prevent from making new plugins as easily, as in emacs for example.

So I see future like this: vim dies, everybody switches to neovim, because it's trendy, and I finally switch to emacs with evil-mode.
Operator overloading is useful for a lot more than just math. Overloading * and -> is useful for pointer-like types. Overloading () is useful for function-like types. Overloading [] is useful for collections and overloading ++ and -- is useful for iterators.
Fatal Encounters: database of people killed by law enforcement
The Ultimate Guide to Hiring an Intern
There are some great sites for building configurations:
https://puphpet.com/
http://phansible.com/
http://rove.io/

I've had great success recently with builds based on a setup from Puphpet. It's fairly easy to add additional PuppetForge modules and build out your installation with custom scripts.
I can't find the reference now, but it was part of a history I'd read about the creation of Simula 67.

Given that the summaries you read on Wikipedia about it describe Simula 67 as a fulfillment of the need to create a better process description abstraction, I may simply be wrong.
Please do share!!!
because the o2 vs o1 is easy to miss, while the -1 makes it obvious i'm intentionally reversing. my .02
This is completely tangential, but I'm waiting for someone to create a breakfast cereal called Funroll Loops. You know, for the kids.
That's a reasonable concern, adeptus.

What's preventing management from imposing huge amounts of workload and telling you to get it done in 40 hours — or you're fired and they'll find someone else to do it?

I do not mean this at all flippantly. I've worked places (and I'm sure others have as well) where the amount of work assigned is undoable in the amount of time available. People burn out, people deliver poor quality, people quit.

A ROWE is not meant as a mechanism to protect employees from destructive bosses. And, for knowledge workers whose work cannot be mechanically reduced to hours, neither is a 40-hour week.

A ROWE is about removing waste in the work process so that people can focus on the work they're hired to do, not on outdated ritualistic traditions about work that no longer apply.
What do you replace Gradle with?
The original eulogy is here:

http://www.sbnation.com/2014/11/26/7281129/radioshack-eulogy...

By all accounts they're talking about different eras - this one ending in 1992, and the original starting in 2004. As such, they could probably both be perfectly valid.
What does any of this have to do with a singularity?
Looks like you're correct; I just examined some F# code in LINQPad 4, and the IL has a bunch of `isinst` instructions to check the type at runtime, and no `callvirts` to the one pattern matching expression that I created.

https://gist.github.com/noblethrasher/af1b382fa6e0423bf8bd
Yes, Feynman kept telling people to find problems that appeal to them and try to work them out, and not rely so heavily on reading. (One source: Feynman Lectures on Computation.)
With as much time as I spend on remote systems for my entire career, Vim was a natural choice. At first, I used it simply due to this fact, but over time I learned more and more about Vim's capabilities, and I still use it regularly.

I've found MacVim to be a mixed blessing over the years; I appreciate the combination of fully featured Vim combined with the native Mac editor interface, but I honestly prefer to be in the terminal as much as possible.
You should be commenting on "the Mojang team", not Notch. Minecraft was way more performant when Notch was working on it. There were a number of blogposts in the recent past about how Minecraft maintainers rewriting Minecraft to be more object-oriented and idiomatic have trashed what little performance there was.
Google's monopoly is based on their early superior technology. That's it, pure and simple.

I'm old enough to remember the web before google, and it was terrible. Back then we switched between hotbot, altavista, yahoo and a few others - and they all sucked. Some of them ranked searches alphabetically - try searching through 100.000 results that are ordered alphabetically.

I remember the first time I ever used google. From the very first day I never used anything else, and recommended it to all my friends. If you haven't experienced the web before google I think it's hard to imagine what it was like.

Pagerank made the difference.
> why is Google's search engine a monopoly?

It's not a monopoly.

However, it has a massive network effect that has made it so far impossible for anyone to make a successful frontal assault on the two core businesses of AdWords and AdSense.
Software Engineering is in a way meta engineering discipline. Problem domains are vastly different. A mobile game development is different than building a system software for surgical robot. The first step is to define the vocabulary of the solution space and then build the solution based on that vocabulary. Expectations of reliability, maintenance, requirement changes adds another dimension to its solution space.
The Moore-Andreessen Disruptive-Creation Loop
vi clone (other than vim)
What Baby Boomers’ Retirement Means for the U.S. Economy
> What's preventing management from imposing huge amounts of workload and telling you to get it done in 40 hours — or you're fired and they'll find someone else to do it?

The thing is, under such a system, you get fired and that's the end of it, and the employer suffers for it as well as you. They can't push people to spend more than their 40 hours - they have to find somebody else who's willing to put up with it for 40 hours a week, or explicitly require more.

In the ROWE system, employers can collectively gradually push their employees to work more and more. 10 years down the line, everyone could have 50 or 60 hours worth of work to do a week, and no recourse, because every employer has gradually done the same thing - after all, if they can get more work out of you, they will.
I remember the pre-Google search days too.

> Pagerank made the difference.

To search.

But they don't make money directly from search.

They were a superior technology that was doomed to go broke until AdSense and AdWords came along.
Americans Smoke More Cigarettes Than the French (Sort Of)
When talking about AI, I'd assume this is the context? ;-) http://en.wikipedia.org/wiki/Technological_singularity
A couple years ago there were several people complaining that is was a write-only language.

(Of course, others said that it was a matter of educating your devs about when not to use some features...)

When I first tried it, the slow compilation killed it for me (not a problem for Clojure because a connected Emacs makes for a killer setup...)
I would disagree with characterizing GOOG's P/E (27.5) as "low" or "not on par with its financial performance." That's well above the average. The comparisons are suspect: Facebook is an outlier, MSFT in the 90s was surely overvalued along with most tech stocks, and Amazon is deliberately pursuing growth at the expense of profitability.

Why not compare instead to other mature tech companies today: Microsoft, IBM, HP, Cisco? Or Apple, who has had a P/E under 20 for the last five years, yet whose stock has outperformed GOOG by 3x over the same period?
I probably agree (I have to read up on ROWE).

One thing is that "work week" mean different things in different contexts. One point of reference are full-time employees, that are paid a certain yearly salary. They typically work around 11 months a year (give or take a week or two), and are paid once every 12 months (with various takes on how vacation is paid for). The hourly wage is only a number used when calculating compensation for extra hours/overtime etc -- and compensation is based on more or less doing the same, every day, all year.

So what happens when people cannot, or don't want to work "full time"? In retail, "results" typically would mean you're at your post, servicing customers. In engineering, it doesn't really matter as long as the milestones are met.

You might need a reasonable yardstick against which to measure performance, if you want people to be able to adjust how much and when they work. I don't think there is a "one-size-fits-all" solution (well, beyond: "From each according to his ability, to each according to his need" -- which I think is a fine idea, but it demands some restructuring. Not perhaps only feasible under communism, one might view the idea of Japanese "employee-for-life" as another realization of the same idea).

All that said, counting hours, for most jobs (ie: those that aren't on the way to be automated away, anyway), is probably the worst possible measure of productivity -- and if one thinks compensation should be tied to productivity -- it is probably the worst possible basis on which to base compensation.

The benefit of measuring hours, lies in the simplicity. If people only work when at work, if they mostly work when at work, then hours at work should correlate with values produced, for that worker. You'd still need to price those hours (8 hours of amateur work, vs 1 hour of someone that's good at their job -- could readily be of the same value).
Interesting article. It also adds more validation to my theory that Google is "successful" in spite of itself in many ways.

I really think Google's search supremacy is vulnerable, although there is no one really positioned to disrupt Google's domination in search quite yet.
I use codeblocks for C++. Any reasons to switch for VS or something else?
Makes sense. My understanding is that it is not effective in people over 26. Assuming you've been sexually active, it is very likely you already have HPV -- too late for a vaccine. That's why the CDC recommends it for 11-12 year olds.
So, thus they have their ow departments, like police.
A few Meteor tricks and workarounds I learned while working on Dominus
> If the monopoly is due to superior technology, why are Google able to write a better search engine and maintain this search engine lead?

Answering because I feel like this is the bulk of the answer -- Adwords still constitutes a large chunk of Google revenue, and depends directly on how good the search engine is. As for the search engine itself, they take a ruthlessly scientific approach to improving it: strict measurement, hypothesizing about improvements, testing the hypotheses, and then some world-class implementation and quality monitoring. This is generally evident in the level of rigor seen in Google-published systems papers.
Huh, the Python json module documentation admits that the Python behavior isn't standards-compliant.

https://docs.python.org/2/library/json.html#standard-complia...

It does claim that the support for arbitrary precision numbers is standards-compliant. Looking at the ECMA standard briefly, that seems to be correct to me: the official JSON grammar does allow arbitrary-precision, and disclaims restrictions on how a particular programming language interprets numbers.

I have to admit that I'm kind of concerned about the NaN and Infinity issue because I thought there was more uniformity among JSON parsers about what is or isn't legitimate JSON.
Hours tracking is hard to get out from under. In Canada, for example, tech companies get an annual tax rebate for R&D-related expenditures, under the government SR&ED program. One of the requirements for making the claim on any personnel expenses is signed timesheets.
I wasn't aware of this nice saying, so I googled and found this nice page:
http://www.barrypopik.com/index.php/new_york_city/entry/the_...

Not very surprisingly, that page says that this was originally applied to being married and to holding political office.
Hi Wogef,

Sorry to bother you (and everyone else) on this thread. I'm interested in visiting Shenzhen and would like to meet up. I tried to reach you on the email on your profile but it didn't work. Are you able to reach out on the email in my profile?

Regards,
That's of course correct.

For the first few years they ran without an income model and hoped something would come along. That something was adwords, and it made all the difference. But an argument can be made that it was luck, google didn't start out with this income model, and kind of stumbled into it. A lot of people were initially opposed to the idea, but they tried it anyway, not thinking it would be a runaway succcess.
Thank you! I wish more people would go and learn what engineering is in other fields before trying to discuss software engineering. I recently had an argument on HN about the particulars of this topic: https://news.ycombinator.com/item?id=8633616

Another book I can recommend on the subject is Petroski's To Engineer is Human.
To compliment the "why vim?" question elsewhere in this thread, for my fellow Emacs users: why Emacs?

How did you start using Emacs?

Why do you still use it?
60 Minutes: What happens when you swipe your card? (11/30/2014)
This is great. I wish there were similar discovery pages for web dev, mobile dev, etc.
The article could be appropriately titled to reflect this wisdom: solve every problem in whichever language is your strong suit. It's not always Java, and arguing that Java is the one-size-fits-all would earn you few friends. For web services the importance of the language is diminishing with solutions such as cache, messaging queue, etc. I'd go on a limb to say getting your cache right is the most important web service optimization.

All statements of the form "it's relatively faster to write programs in language Y than language Z" are incorrect because it disregards important parameters such as programmer experience with languages Y and Z, and whether or not it's a comparison between 2 different programmers.

Also there are some performance gains that only pay off at Twitter or Facebook scale [1]. Sometimes shaving milliseconds costs time but rakes in little to no benefits.

[1]: http://carlos.bueno.org/optimization/
Unfortunately since this time results have gotten worse ( anecdotal I know, but I know many who agree). I think this is down to a mixture of issues - the SEO industry has made search optimisation much harder, googles probably been a bit complacent with no competition too. Also introducing big changes like search personalisation and localisation which (IMO) has taken away more than it adds.
My understanding is that Gardasil (correct me if I'm wrong) inhibits 4 different strains of HPV (types 6, 11, 16, 18), that there is no accurate test for HPV, and that I may not have been infected by all 4 strains.

I've been kicking around the idea of just paying the $500-1000 out of pocket.
Sure it does:

{ "mybigint" : -123434580239458203948203982345723458 }

You can throw the spec out the window and put as many digits as you want into a JSON integer. Any half decent parser in a half decent language will accumulate the token and spit out an integer object.

There is no reason to write a JSON parser that doesn't accept bignum integers, in a language that has them.

There are only two reasons some JSON implementation doesn't accept them. One is that the underlying software doesn't handle them. In that case JSON is moot; it's a limitation of that system. You cannot input bignums into that system through any means; they are not representable. The other is that the JSON implementation was written by obtuse blockheads: bignums could easily be supported since the underlying language has them, but aren't simply for compliance with the JSON specification. Compliance can be taken to counterproductive extremes.
I think discussions online period are a bunch of garbage.

Still, have you considered Goodreads?

EDIT: This isn't Show HN, people really look for that tag. Edit your title and delete it.
That surprised me as well; though perhaps it's just that "such as parsers" applies to more code than the author realized.

A parser is a discrete chunk of code that's general-purpose (likely to be called from lots of places with different content), but with a fairly straightforward list of cases that you can/should test to see how correct and robust it is.

There's a lot of code that fits into this category; not just parsers.
Presumably because international treaties extend the reach of certain domestic laws.

... Or because the Copyright cartels bribed the NZ gov't to roll over.

We'll never know.
Go to Mozilla.org and get to their donation page from there. No bitcoin.
No, seriously.

Bitcoin users donate more to causes. Why would they require a separate Google search just to donate in a widely used currency? What's the point of creating a separate page? It's simply bad practice.

It seems to me you just want to jump on a soap box. Go blog about it. But when I want to donate to something I go to the website and click 'Donate' and I USE THE OPTIONS THERE...
You know, one of the things I notice about Java adherents: they think programming is hard. There's this weird conservativeness to their culture. The only times I've worked on Java teams, I felt like the biggest hurdle was convincing people that things could actually be done. Its like they're convinced that every programmer sucks.

I don't even hate java the language. It's far too mediocre to even bother to hate. I just dislike java the community. It's so depressing.
That's the thing, though.

Hoping something will come along is a terrible business model. Google actively sucks at every business except floating down the Mississippi of cash. Amazing technology and technologists, terrible business.

They could double their workforce, or hire only people with comparative literature degrees, or force everyone in the company to speak Esperanto on alternating days with Klingon, or fire nearly everyone. It would be dramatic, but in terms of the bottom line it would be pretty close to irrelevant.

Google is not a technology company. They are a cash pipeline operator.
This was horrible news to wake up to last night. The importance of Ezra in the Rails and related communities cannot be overstated. He was a great guy with a big heart; always busy making things whether in the programming world, with glass, or 3D printers. A true hacker. I wasn't lucky enough to call him a friend, more of a professional connection/acquaintance, but I'm glad I reached out to him during his darkest moment and got to know him a little better in the process. He will be missed.
I think some people have redefined "monopoly" to mean "successful business."
That is not quite true - they sold usage of their search engine to companies like Yahoo for a nice amount.