skysight-inc/HackerNews huggingface dataset:
The second-to-last slide ends with:

"ideally, a language should be designed so that an optimizing compiler can describe its optimizations in the source language. Of course!"

and

"The programmer using such a system will write his beautifully-structured, but possibly inefficient, program P; then he will interactively specify transformations that make it efficient. Such a system will be much more powerful and reliable than a completely automatic one."

Which I find to be a much more agreeable conclusion than

"everybody should write in-line assembly for inner-loops"
I’m not convinced of your assertion in #3; maybe I didn’t understand?

Let’s take as a given that Tim’s productivity per hour, making software, is strictly positive (a point on which I am not in fact convinced in fact because of the dogmatic nature of the technical viewpoints of his that I have disagreed with over the years).

It seems, then, that having Tim working on making software, rather than, say, no productive activity whatsoever, would raise overall production, not lower it. You could argue that maybe having Tim work on making software instead of someone else doing it, would lower overall production; but why should we assume that’s the alternative? Maybe Tim likes problem-solving so much that he would be willing to program in exchange for just enough money to rent housing in Oakland, make pizza, and go to Thai Temple Brunch once a week, so he’s only displacing ⅑ of the wages of another programmer. Or maybe, like Joey Hess, he could go live in the country, program on a tiny netbook, and connect to the world over a low-bandwidth microwave link, thus reducing his necessary wages to something like US$6000 per year. Or maybe the software that Tim will write is software that competes with, say, cabbies or coal miners, or maybe bingo-card layout services from copy shops, not other existing software; in that case he isn’t displacing any other programmers at all. Or maybe Tim will work on Rust, and Rust will make programmers more employable, thus “displacing” a negative number of other programmers; the failure of those other programmers’ employers to subsidize Tim’s work is then merely a market failure, the kind of market failure we systematically see around public goods such as free software.

It seems to me that it’s easy to believe that some productive programmer believes all sustainable capitalist firms unbearable. Indeed, the free software movement was founded by just such a programmer, an even less personable one than Tim.
Also, a lot more data to train on.
You are absolutely right. However bear in mind this thinking is a slippery slope. Meaning most good CIOs, architects, technical leads, etc shy away from betting the house on new or novel technology precisely because experience had shown them first hand the risks of jumping on the shiny new exciting well marketed technology. At a certain point however you will find that this pushes you behind the technology curve...

the engineering skill here is the ability to trade off risk vs benefit... I will tell you from my own experience the best designed software systems I have personally dealt with tend to use components somewhat behind the curve.
Wouldn't we have to be the ones in the terrarium? Few years pass for the party zipping round at a large percentage of c, many years pass for those left behind on Earth.
I'm confused what horrible design flows MongoDB had apart from collection level locking ?

And I can't imagine any of this is relevant today given that MongoDB allows for pluggable storage engines.
Zsh's completion system handles most of those examples if enabled:

http://zsh.sourceforge.net/Guide/zshguide06.html#l162

http://zsh.sourceforge.net/Doc/Release/Shell-Grammar.html

http://zsh.sourceforge.net/Doc/Release/Expansion.html

It can actually be integrated into history expansion, used at will, configured with a custom prompt, told to ignore certain words and files that annoy you, etc. But if you try to search for "zsh correction", most posts are related to disabling it entirely.
I think that, in some sense, this represents an unavoidable consequence of Adobe's "rental only"[1] system of selling their software. While the ability to rent can be a good thing for some users, many people (including businesses), don't want to pay an effectively infinite cost for software.

Now, I'm not advocating piracy here -- the best thing that could happen is that a competing company crops up and knocks down Adobe using good old fashioned competition.

[1]: http://arstechnica.com/information-technology/2013/07/photos...
If you read the posted article you'll see there are a few weaknesses in the study about circumcision and HIV.
Spot on. Where else on this forum are the posts about how to do the 80% time talking to people. We talk about the product, how to make the product, what technology is used in the product, if it fails the pivot. There's not much to say about talking to people.... but 80% of your time should be spent doing it. 4 out of 5 days (more or less) .... when I go to work I spend 5 out of 5 days at my PC coding.
The article seems to debunk this pretty well:

"The resurgence of this meme is based on three recent and incomplete studies, which were done in Africa partly because the ethics committees in other parts of the world would not approve. Only one of these studies (Auverts, 2006) was actually published in a peer-reviewed journal.
` The researchers used an HIV antibody test, which only gives results from three months since the last exposure. However, they did not wait long enough to administer the test, so that many of the HIV cases they detected had been contracted before the study had started.
` Also, the duration of the experiment started when half of the volunteers were circumcised at random. While the intact men went off to have sex, the circumcised group had to wait four to six weeks, as they were in too much pain for intercourse.
` Also, they had to come back to the clinic twice more to make sure they were healing properly, where they got additional safe sex counseling and condoms. Not only that, but this study also did not control for blood exposure or homosexual intercourse.
` Based on this dubious data, the conclusion is that heterosexual men are 60% less likely to catch HIV from infected females with each exposure. And how was this determined?

"As Geisheker explains it, this study showed a very low incidence of HIV in the intact subjects, and a slightly lower incidence in circumcised subjects. It's like comparing 1.5% versus 1%, and declaring that there's a huge difference between the two.
` So, the 60% rate is relative, not absolute. If this were a vaccine, it wouldn't be considered very effective. And the Gates Foundation is funding this.

"There has long been plenty of evidence against this connection, even for adult men who might want to protect themselves from HIV in Africa. Even worse, some of these men believe they are protected from HIV and don't necessarily need a condom at all.
` On top of that, this newest wave is inspiring journalists and even some doctors to spin fanciful tales that these African studies justify doing circumcision to infants living in quite different conditions in the U.S..
` There is also evidence in industrialized cultures that circumcision does not decrease HIV transmission, simply because the U.S. has both the highest circumcision rate and highest HIV incidence of any industrialized nation."
Using the term 'hipster' to refer to the newest and shiniest web framework always felt like a bit of a misnomer to me. A solid portion of hipsterdom is rooted in recycling of the obscure and of the vintage (vinyl, the popularity of the lumber sexual look, etc). It seems like the 'hipster' thing to do would be to write a web framework in PL/I or cobol or something.
> If only we could simulate evolution a few million years and see how chimps evolve.

Look around. I see no reason a primate so similar to humans would not continue to evolve along the same lines.
I hear this sentiment a lot (and notice it in myself, though I have a lot less experience so it hasn't been as long running), and it worries me.

Are you sure it's better? Are you keenly aware that there are no, say, cycles in your coding approach?

I know this year I look back at last year's code and go, "oh boy, why'd I do it that way?" And I feel like it's better, but I'm always a little afraid I'm just chasing novelty. Not sure how to objectively know if it's better.
one of my first projects as a consultant fresh out of college was HORRIBLY coded by my standards today. Sometimes I still fire it up and it still works (which fills me with pride); however, perusing the code hurts my eyes and I often wonder what was going through my mind.
"Inclining towards efficiency" might be their justification, but I think the truth is closer to many programmers simply lacking tact.
I can imagine that. I have seen some sync implementations for Backbone.js for instance a while back, but nothing that really worked well. Again, I am very surprised of how well PouchDB performs in this. Additionally, you get all (most) the features of CouchDB in the browser, you can even use the design documents that you create on the server.
"For some reason we all (especially me) had a mental block about optimization, namely that we always regarded it as a behind-the-scenes activity, to be done in the machine language, which the programmer isn't supposed to know. This veil was first lifted from my eyes when I
ran across a remark by Hoare that, ideally, a language should be designed so that an optimizing compiler can describe its optimizations in the source language. Of course!"

That sounds like he wants some sort of homoiconic assembly or machine language to target. Does such a thing even exist?
Who is going to click on an article that isn't super hyped now a days anyways?

Toronto Professor, contributes to computer science subfield AI.

Vs

How a Toronto Professor, changed the world with Deep Learning.

Which one would you click ?
This article is framed towards an audience that doesn't exactly care about technical details.
I like this:

http://www.amazon.com/Practical-Guide-Commands-Editors-Progr...

I've also found "Unix for the Impatient" very helpful but the 1995 copyright is a little scary.
Ask HN: Sea levels rising – thoughts?
I live on the coast, about 6m above sea level.
> So I wrote a Perl script that read in the file, combined it, and printed it out as a single line. Then I had my Java program call the Perl script through the command line, capture the printed output, and save that as the string.

When I first started (in Python), I didn't understand what a function was, but I wanted my program to react differently depending on user input, and had some conception that I should be breaking my program up into files by purpose. So what I did to get it working was this: I named each file "$cmd.py", then I concatted the user's input with ".py", opened & read the file with the associated name, and ran the resulting string through exec() !!

I came to this result incrementally by googling different aspects of the problem that I didn't know how to describe properly. If someone had been a jerk to me about it then, I probably would've been really self-conscious about it. But no one was a jerk, so I'm not ashamed: what I did is ridiculous and funny & I'm glad to be able to laugh about it now.
Why Europe's Regulatory War Against Silicon Valley Will Backfire
Added the `fuck --dry` option from the comments below, waiting for it to be merged.

All it does is print the command to run and prompts for [Y/n].
I'd be interested in a post mortem on the fork as well. During the split, either one side has a supermajority or neither side does. If one side has a supermajority, that side will win on rejoin, so no problem. If neither side has a supermajority, then one side or the other will win on rejoin, but nobody's been relying on either side. In every case, there should be no problem.
Seven on Seven
I usually ask more senior people why they say that, and keep asking why until I get it. If this process seems to be going on too long, I ask if there's a book or reference I should be reading to understand the subject better. Honestly, most senior people will be very pleased that you care enough to find out why, including following up with external resources.

If a senior person won't explain something if you ask politely, usually either they don't understand it themselves, or they are simply not very good at explaining things. Not all senior people are good teachers. It sounds like your team lead is one of the latter.
On the first, so he wants something like stratego (or any of the other failed systems that do this and were determined not useful) :)

On the second, i'm going to just disagree.
Well you might be want to tell Facebook, Twitter, Netflix, Yahoo, Spotify, eBay etc that they don't know how to design software systems. Because all of them have a long history (check their Githubs) of creating and adopting pretty cutting edge technologies.

For me the best software systems are those that are well architected and use the best available technology. This doesn't mean we all should be writing Tomcat, Oracle, Apache stacks just because they are less shiny.
The same is true for standards. There are often so many non-features that make the standard harder to implement yet bring no real advantage. With standards the problem is that you have to implement everything to be standard-compliant.
And then you have a reluctance to remove the cruft that nobody uses in newer versions of the standard.

I'm currently working a bit with SVG paths. There are some features that aren't really used that much in the wild. For instance quadratic bezier curves, arcs, a shorthand syntax for successive horizontal/vertical lines in a subpath. Those things could be debated but they are okay.

Then we also have things that are really just unneeded. You can also write numbers in xxEyy or xx.yyEzz way. Scientific notation has limited uses, computer graphics is not one of them. You can use a comma in addition to optional whitespace, but only at specific locations and at most one. Also there's exactly one place in the grammar where the whitespace is not marked optional.
To finish the Don Knuth quote:
"There is no doubt that the grail of efficiency leads to abuse. Programmers waste enormous amounts of time thinking about, or worrying about, the speed of noncritical parts of their programs, and these attempts at efficiency actually have a strong negative impact when debugging and maintenance are considered. We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. "

"Yet we should not pass up our opportunities in that critical 3%. A good programmer will not be lulled into complacency by such reasoning, he will be wise to look carefully at the critical code; but only after that code has been identified."
Which is the most powerful programming language?
PG sad in this essay http://www.paulgraham.com/avg.html that Lisp was the most powerful language. Is it still? If not, which language is now the most poweful?
Why don't you give it a try yourself. Create a file with a high ratio of lines to length, and read it in using a loop and string concat, or builder. Do it with a builder first, when you get up to 1 minute, switch over to concat and see how long it takes.
How enticing would it be if T-Mobile's net neutrality violation were stopped?
NAT traversal isn't necessary when you send packets out of your network, be they TCP or UDP. That's standard operation for NATs.
"derpy" is a third-removed phrase that is short for herp-derp, which itself is short for hurf-durf, which came from a Metafilter comment. The original usage is something like "HURF DURF ${oblivious_statement}" and it meant to denote simplistic cluelessness. Apparently the connection to My Little Pony is that there was a dumb character named "Derpy Hooves". Some people took this character to be mentally retarded, and so "derpy" is seen by some as pejorative term for the mentally retarded. On Reddit, some people use "derp!" to indicate they had a temporary lapse in ability to understand something.
So just don't use the driver if it doesn't do what you want. That's not a reason to add DRM.
Moderately off-topic (and don't say: "Today? Nowhere."):

If I wanted to play around with a Bloomberg for a few hours in North America, just to see what the fuss is about, how could I go about doing this?
I am the most powerful programming language.
Wait what? Not sure what you are asking for

"SELECT *
FROM table
WHERE age > 20"?
I don't believe that "some is better than none" if that "some" sets a dangerous precedent for telcos to abuse their position in the future.

For example, patents are designed to reward investment in innovation in the marketplace by granting a temporary monopoly on that innovation. This leads to billions of dollars in R&D into new drugs and therapies which when successfully brought to market will lead to less suffering and death in the world. Of course, there are those who will not be able to afford the therapy and will die and suffer more. Yet, we as a society believe that inherently, the system leads to a better macro outcome for everyone because we are rewarding risk and innovation.

It's hard to design systems that are going to reward everyone. Similarly, the gain of those who will get access to free internet will benefit that specific group but may cause issues in other parts of the system.
Copied from lobste.rs since I think it'd be interesting to the audience here as well

---

This “dialogue with the compiler” bit that djb lands on is in some sense obviously the right way to go forward. I’ve found this to be the case not in optimization—though I’m not in the least bit surprised to see it there—but instead in the world of dependent types. The language that the program writer writes in is often just a skeleton of the genuine information of the program. For instance, in a dependently typed program it’s often very difficult for an author to immediately write all of the complex intermediate types required to drive proofs forward, but it’s much easier to achieve this in collaboration with the compiler (really the typechecker, and e.g. via a tactics language and interactive proof general-like interface). The ultimate result, the “elaborated” program, contains much, much more information than the skeletal program the programmer originally wrote. It has been annotated by the collaboration of the compiler and the program writer to extract more of the programmer’s intention.

The same kind of thing could clearly arise from a “collaboration” over optimization. It’s even quite possible that these are the same dialogue as dependent types certainly provide much more information to the compiler about the exact properties the code ought to substantiate—in a nice, machine readable format even.
When I use to dual boot windows I never updated and always "restarted" by just holding the power button down (stupid, yes I know, but it's the only way to reboot it as fast as I'm used to when booted into Linux). Never installed updates and it always worked fine, until I wanted to install updates, then everything broke. I assume this was just caused by waiting too long between updates. My solution was to delete the windows partition and just use a VM.
I was thinking Ruby actually, although Haskell could probably be close too. In any case is sounds like the suggestion is to move away from imperative, procedural programming, which has been talked about a lot in various ways.
" It sounds like no one knows what such a programming language would look like."

Actually, they do.

The answer is "a mess"

See things like "high performance fortran" (Led by the now-sadly-passed Ken Kennedy, who was doing compiler optimizations since well before most people here were born - 1971)

http://dl.acm.org/citation.cfm?id=1238844.1238851

And more recently, things like fortress:
http://en.wikipedia.org/wiki/Fortress_%28programming_languag...
If all programmers did what you are doing, we would not have the problems we do.

I hope someone gives you a medal and merit badge and a cookie.

[1] have begun
9,000 Maine Residents Lose Food Stamps Under New Rules
This kind of "pseudo-centralized" is decentralized. When the "central authority" gets all of its power from individual participants who choose to follow it, and those participants are free to change the authorities at any time, that's a decentralized model. Bitcoin isn't centralized just because everyone has to agree on which transactions are valid.
You know this benchmark is bullshit because it says memcache is slower than redis (at editing) and mongo (at creating and deleting) and motor (at creating).
Haskell is a good starting point. It's rather high level.

I'd like to see a variant that banishes bottom _|_ to the same corner that unsafePerformIO already occupies today. I want to see total Haskell. If all programs had to halt by default, the compiler would be much freer in choosing evaluation models---strict vs lazy would make no semantic difference.
You are just being childish.

Firstly MongoDB's write durability was set to use the safest option on all of the drivers at the time. So your point makes no sense. And secondly we aren't ignorant users of the system. We are highly technical and as such your analogy again makes no sense.
However routers often have an 'allow UDP' checkbox. UDP can be globally disabled, or enabled only for certain ports. uPNP can mitigate this, but most of us have that turned off to prevent Trojan horses from opening the gates entirely.
$400M+ is a lot of attention.
Well, you can avoid using desctructors, but then you can't use the majority of the STL, so what's the point? (This is basically what I do anyway)
This is Mike Pall's post: http://article.gmane.org/gmane.comp.lang.lua.general/75426

Has this been fixed in GCC in the last 4 years? Can GCC 5.1 beat Mike Pall? It would be very significant if it were true. Same thing with BLAS.
more like the death of dispersing information in a legible format
Top 8 Cheapest EU Flight Destinations
The way it handle failures? You may be interested in this (old-ish) article: http://hackingdistributed.com/2013/01/29/mongo-ft/
That idea is over 70 years old.nhttp://en.m.wikipedia.org/wiki/Microcosmic_God:

"A highly secretive and reclusive biochemist named Kidder produces inventions that transform human life, spanning every aspect of science and engineering. Unbeknownst to anyone, Kidder has developed a synthetic life form, which he calls "neoterics." These creatures live at a greatly accelerated rate, and therefore have a very short lifespan and produce many generations over a short period of time. This allows Kidder, by presenting them with a frequently changing environment, to "evolve" them quickly into highly intelligent lifeforms who fear Kidder and worship him like a god. Kidder can control his neoterics' environment, and thus force them into developing technology far beyond that of humans."
Sources for that? Wikipedia doesn't mention a divorce with his second wife, Dorothy Vanderpool.
> American prudishness

Sounds like you need a review of: https://news.ycombinator.com/newsguidelines.html

Or perhaps just some common decency ? If you want a tool / platform to take off, using the word 'fuck' is not the way to go.
I've personally met 2 in Europe.
New York Public library (business/finance library) on Madison Ave between 33-34th (NYC) has 2-3 terminals for open public use. Usually a short wait but you can use them.
It's only mostly-dead, but that mostly is enough. Basically, LO is where all the action is, and even IBM has effectively given up on AOO. See the LWN article linked by rpcope1.
I am partial to notepad++. I agree that formatting is a major buzz kill to creativity.
An example of really bad use of statement labels - the convention I was taught was to use 7000 and 8000 for input and output (format statements) and to use 6000 for goto's

Start at 6000 and go up in increments of 10 or 100 and to use 6999 for the last label in a routine.

so when you wanted to exist a subroutine or function you would use GOTO 6999.
Why my smartphone is charging very slow on USB?