skysight-inc/HackerNews huggingface dataset:
This comment really deeply gets to the heart of the issue.

Programmer X thinks "I'll abbreviate because MAN IT IS SO OBVIOUS what the abbreviation is, what sort of idiot would think anything else?".

You have nothing to lose by typing:

let password = ''

as opposed to

let pwd = ''
I have the... pleasure of working with a legacy oracle database where table names are restricted by convention to 8 names.
> Is it because they deal in more abstract entities where the name is irrelevant?

That sounds right. Also, there are standards for variable names that everyone is familiar with in math, so those letters actually have meaning. As most of my code is not purely for implementing pure math algorithms, I haven't almost ever written code where a variable couldn't have been named with a word describing it or its use. It makes understanding and maintaining the code a lot easier when it is self-documenting.
Cool, thanks! But if I understand this correctly, you squash everything into a single layer? If so, that's unfortunately not a workable solution for production environments, because it would cause every deploy to create a completely unique image, and so there'd be no caching of layers and containers wouldn't share any data, thus preventing effective use of file caching and shared lib reuse.

I'm also concerned that your cache behaviour wouldn't play well with an automatic workflow; whatever glue sits between Quay and Kubernetes would have to do a dummy pull just to "prime" your cache.
...So if a Triangle is composed of points "Steve, Alice, and Bob,"...
Great writeup, full of sharp details.

In the 90's I worked on a FoxPro application, also for DoD. My boss, a retired Navy Captain, used very terse variable names, partly because he was a hunt-and-peck typist, and partly because earlier languages allowed only two-character names.

But FoxPro allowed variable names of any length. However, it only recognized the first ten characters. To my boss's chagrin, I often used names longer than ten characters, risking collisions with other long names. That never happened.

But ten years after leaving, I was hired to port the product to Visual FoxPro, which does recognize the whole name. Some of the early commits were "Fixed inconsistently-used long variable name..."

Of course, in those days we weren't using linters, or tests, or source control, or reproducible builds... and yet still had a business. No wonder Alan Kay calls computing "not quite a field."
I theorize it's because math as we know it was written down on paper and blackboards. Those mediums don't have auto-complete, like any good code editor does.

I wish math notation would be replaced by s-expressions - easy to type and only like 3 concepts to learn for fluency.
Very low. A second sample is kept and tested separately in the event of a positive. I'm not aware of any cases of false positives because of test errors, and there have been many very well funded challenges.
It's the quality of engaging posts like this one that draws me here on a Friday night.
Why is the Iranian government opening the world’s biggest bookstore?
I suppose it's because a proof is contained within itself while a computer program may interact (in this case with another component within the same application) in non-obvious ways. Clarity in variable names helps to prevent this behavior, although it doesn't completely eliminate the risk.
lsof shows you what's currently open; opensnoopf shows you what's being opened and closed, live, like a system-wide trace. Much handier if you're trying to figure out "what happened right when the bad thing happened?".
Hearing that absolutely terrifies me like?? Silently allowing names to collide in that way just sounds ridiculous to me.
Studying algo/data structure questions is not gaming the system. I'd far prefer to hire someone who did this over someone who didn't prepare and just tried to wing it, then complained about how unfair it is to ask such questions.
Typing is easy. Thinking is hard!
I've just started using Spring in my internship now and some of the class names in our code are pretty hysterical.
YouTuber H3H3productions on the importance of account security [video]
Our brains are basically built to do pattern matching. Though, truthfully, I find that is too abstract of a way of putting it, and in fact, people tend to associate "meaning" with "pattern" and thus you end up with statements like that one.

What I would say the brain is good at is finding patterns in terms of identifying what is appropriate, with a particularly general understanding of "appropriate." There's a huge evolutionary drive for this. It's a bit disjointed to say wolves howl with each other because "brains detect patterns" and somehow find them useful. It's much clearer when we say that "brains encode patterns in terms of appropriateness", and thus wolves howl with each other because their brains know it is appropriate to do so. Just like germ's biology encodes that it's appropriate to wiggle harder in salty water, or how a person knows that certain words are correct in specific situations.

So our brains are more like engines for mapping patterned associations to feelings of appropriateness in context.
I'm male and my first thought was not birds.
For the uninitated: MeesageBird is super cheap compared to twilio.
Two pages will be relevant to a far larger audience than one word will.
Gross...but that's just me. I know some people really do thrive on this kind of technical rigor and hard-nosed meritocracy type of culture...but if that's the price of progress I'd rather go back to the caves and tepees.
Post Ghost Shutdown: An Open Letter to Twitter
At a minimum, readable variables would have simplified identifying the issue after it was introduced.
Calgary versus the car: the city that declared war on urban sprawl
If you are only querying occasionally BigTable has cost advantages since latent storage cost is much lower.
The future of ed tech is here, it’s just not evenly distributed
> but what can be done to increase the recoverability of these expensive items?

Don't buy or walk with expensive items around? Sounds like I am being snarky, but I am serious. In some cities or areas, it is not possible to have nice stuff around. Couldn't have a nice car in my old neighborhood. The old beater I had was scratched, hit and broken into multiple times. I didn't care too much, as it was already scratched and beat up anyway. If it was a nice new car, I would have been upset, but I would have never gotten a nicer car living in that part of town.

As for phone, I broke my old flip phone some years ago, by sitting on it. And I was upset about it obviously, it was a nice model then. I was student, bought it by saving for a while. Didn't have insurance and so on. And since then realized that it didn't make any sense for me to buy these expensive toys if they can easily be lost, stolen, broken _if_ it causes me so much anguish when happens. So since then I've bought used, or lower end smart phones (last one is a Moto G for $170 from 3-4 years ago) so that if it gets, broken, stolen, lost I wouldn't be too upset about it, just inconvinienced some, and would just go and buy another one. Kind of like buying another pair of pants or socks.

I one day if I win the lottery, maybe I'll be able to buy $500-$600 iPhones like that too. But today If I had one, and cracked or lost, I would be quite upset.

I am saying this because I've seen people sign contracts to buy these phones (which is basically getting a loan), buying insurance for them and so on, and all I am think "it sounds like you can't afford it". Can't obviously tell them that in person, but's that the idea.
Return of the Floppies
The big one is `->`; all the 'template argument'-inspired syntaxes for this are terrible. Once you realize you want operators (and polymorphic operators, at that!) in your types, the `<u32>`syntax falls apart.

I am not a fan of C#'s `Func<a,b>` at all.
It's perfectly valid. It's just a non-standard construction. ...for American English I'll add.
Los Alamos, NM!
May I recommend checking out Rob Pike's document for a counter-point http://doc.cat-v.org/bell_labs/pikestyle

I think that his variable names section is utterly ridiculous, but it's a relevant read from a relatively prolific person, so worth sharing.
That was extremely an funny video
Very well said. Its a stark contrast to how Yann Collet acknowledges others inspiration and collaboration (http://fastcompression.blogspot.fr/2013/12/finite-state-entr...)
They shouldn't come up on American sites about (mostly) American companies with American writers? These things affect the journalists and the other 330M people who live here. It's not like we're a small, uninfluential country.
St. Alfonso's xylophone intro is my ring tone.
I would suggest that the need for Englishy variable names is due to a weakness in programming languages and possibly the programming model itself. Why should a set of legitimate values for a computation benefit from how you refer to that set? Can that variable take on undesired values? Do you rely on that name and its comprehensibility to distinguish good from bad values? I sometimes find it hard to believe we still program this way.
Pathetic. Only 46% YoY revenue growth. No wireless. In theory as much space as a bunch of Nomads in the cloud. Lame.
In other words, testing iOS 10 found battery last went from 3 hours to 5 hours! I have no idea if it's related to not having obscurity.
Actually, 'you' is the second person plural in English. If you want a singular, you'll need to recover 'thou' from history's dumpster.
The idea of needs verbed being nonstandard is entirely new to me, and I live on the opposite side of the country from Pittsburgh, as has most (all, AFAIK) of my family. It feels right for things in my day-to-day work, like "the server needs rebooted" or "the bug needs fixed", though for other things, like "the code needs compiling", the needs verbing form feels more natural.
About turning off iCloud backup: You say that messages are being stored unencrypted. That may be true as we do not know what happens on Apple servers. But this is about securing the phone for traveling i.e. you would have to worry about the transport. And I would strongly guess that backup traffic would happen with http, probably with pinned certificates.
> I picked up y'all because there has to be SOME second person plural!

Same here. Way more elegant solution than "you guys", and less jarring to most people than, say, "youse". The only better solution would be to bring back "thou" for the singular and make "you" plural, but alas, that's unlikely to happen (and I'd be the one using "thou" and "y'all" anyway).

Of course, there are the folks who treat "y'all" as a singular second person pronoun and use "all y'all" for the plural; I've worked with quite a few of those folks.
How-To Create a Continuous Integration Server with Jenkins on Ubuntu 14.04
High Speed Digital Design is a great book (a "handbook of black magic," as its subtitle professes), and it is a nice complement to Horowitz and Hill's The Art of Electronics.

You're exactly right that the former addresses way more analog details than the title suggests, and at high frequencies the analog stuff really matters. A passive component is never simply a capacitor, resistor, or inductor. We just call it one based on the dominant characteristic. At particular frequencies the characteristics can change so much that designs have to take the difference into account.

Application notes and manufacturer references also contain a wealth of information. TI's Op Amps for Everyone (a great reference in general) has a chapter (17) devoted to PCB design:

http://web.mit.edu/6.101/www/reference/op_amps_everyone.pdf

Beyond comprehensive references, you can pick up things from articles as you go; I learned the trick of using two back-to-back Schottky diodes to reduce the ground plane potential difference to <0.3V from a PDF like this one:

http://www.ti.com/lit/an/slyt499/slyt499.pdf

Trade magazines with articles are another great resource, like Circuit Cellar or EDN.
So according to the article, Pittsburghers and Western Pennsylvanians contstuct it the way those in England do. Huh, we speak Queen's English n'at.
My suspicion is that arrest rates increase with population density and with rates of poverty.

Which rapidly leads to a problem of funding and/or justice.
Quantity discounts on a virtual good: results of a massive pricing experiment
I've read that there are cicadas with a period of over a hundred years. I wonder how they were discovered.

Also... When Bob Dylan got an honorary degree at princeton, the cicada's were out in full force. He wrote a song about it.
I am male and not an English native; I simply didn't know the word. Also, for your information, it seems that WordSafety [1] (as previously appeared on HN [2]) doesn't have it in the unwanted word list; the authors may well be unaware of that meaning.

[1] http://wordsafety.com/

[2] https://news.ycombinator.com/item?id=10117297
This is one of the most insightful, coherent and relevant piece of writing that I have recently read on the ground reality in Venezuela.

I found this particularly illuminating: One common misconception though, is that we cannot find any food. The basic things like rice, flour, bread, milk, etc are what's hard to find. If you've got the money and you want to go to a restaurant and get a lobster you can.
The trick around this, without requiring volumes and staging binaries in a host directory between containers is to...

Have a builder container that contains your build-deps (compiler, etc). Have it build your code, but have the CMD be a `tar` command that just tars your "output" to standard out, along with your "final container"s Dockerfile. Then, you run the builder container and pipe it's output as a new context to a docker build command.

This gives me minimal "Prod" containers that only include the built binaries. It doesn't include any of the SDK tooling, and it doesn't rely on staging the binary in some location on the host in between running the builder and building the final container.

For example, my frontend "builder" container winds up being hundreds of megabytes (thanks npm/nodejs) but the final product after doing the Angular2 build is a handful of kilobytes. Makes a big difference.

(It was also the only way to achieve this in certain setups before docker-machine and the new Docker for {Mac,Win} became available. I still use it because it feels "cleaner".)

I still think Dockerfile syntax should be extended to support this, but there have been proposals for well over two years now and nothing has happened.
Thanks for the honesty man, I'm glad I'm not the only one.
Another great suite of debugging tools not mentioned is Valgrind ( http://valgrind.org/ ). The default application (Memcheck) can help find memory leaks and off-by-one errors. Cachegrind/callgrind are great supplements to Perf, and Massif can help get a better perspective on memory usage in your programs.

I feel reckless writing C/C++ code if I can't test it with Memcheck.
Remote positions get a lot of applications. For example, even though I explicitly state that I am looking for local people, I get more applications from devs looking for a remote job. While I personally respond to every application, I completely understand why someone who posts a more popular job ad wouldn't.
It's regional: http://microsyntax.sites.yale.edu/needs-washed
Math is verb-oriented, so you shorten the variable names to make the structure clear. Most programming is noun oriented, so you clarify variable names at the expense of taking attention away from structure.

Math does name its nouns, but those tend to be structures rather than variables (groups, rings, fields etc.)
Fat-finger is only one kind of error -- and one far less common than the good-ole brain-spasm which can easily replace "Falling" with "Rising".

The ability to read the code an find see the error is more important. And one that score even though ttpfe is a terrilbe name "timeOfTenPercentHeightOnTheFallingEdge", is even worse.
> The term was supposed to be “Ttpfe”, but he had mistakenly called it “Ttpre”,

The same cognitive mistake could have happened with it spelled out. Two concepts closely related can easily be confused.
I once found a really great article explaining arithmetic encoding¹, and I felt I understood what was going on and managed to re-implement the article's example from MS-DOS-era C to modern Python, but when I tried to use it for anything else it didn't work and I wasn't smart enough to debug it.

The claim that asymmetric numeral systems are simpler than arithmetic encoding is quite interesting, but as a working programmer, I have difficulty with the academic language and mathematical generality used in papers like this. Does anybody have a more approachable explanation of what's going on?

¹: http://marknelson.us/1991/02/01/arithmetic-coding-statistica...
I must be getting old. I dread the idea of learning a new, complex command-line option set.
The plural of anecdote is anecdotes not data.
Oh I'll have to check it out, thanks!
This is explained in the readme:

A Rust module that exactly captures the semantics of a C source file is a Rust module that doesn't look very much like Rust. ;-) I would like to build a companion tool which rewrites parts of a valid Rust program in ways that have the same result but make use of Rust idioms. I think it should be separate from this tool because I expect it to be useful for other folks, not just users of Corrode. I propose to call that program "idiomatic", and I think it should be written in Rust using the Rust AST from syntex_syntax.
I wonder how politwoops is allowed to function when postghost is deleted.
We don't have to still program this way - you can write code with very strict types, with machine-checked proofs that it works correctly, etc, etc. We don't do this very often because it turns out this level of rigor is incredibly time-intensive.
Which is why I largely like randomized touch screen number pads. They may be able to tell where I touched, but not what I touched.

However, Google Glass or Microsoft Holo type applications become a somewhat hilarious much better way of doing this.
Oral thrush was what came to mind. Naming things is hard.
Introducing Meditation into Schools
Wait, is it normal for a recruiter todo a tech interview? I never heard of such a thing.
Most plea bargains are like the Swartz case in an important sense: hard evidence exists to establish the facts. There was no dispute in the Swartz case as to what happened. It's not like there was a possibility that someone else was in that network closet. What was outrageous in that case was the charges and maximum sentence for what was a clear-cut case of physical and digital trespassing.

Your 10% figure seems bogus to me. Almost all plea bargained cases are clear-cut. Security footage of the defendant walking out of the store with the TV. Cops called to a house as a husband is beating his wife. Stash of drugs found under the front seat at a traffic stop. That is the bread and butter of the justice system, not cases where facts or intent can be seriously disputed.
A couple things that I wish people had pointed out before I got started with PCB's:

1) You will spend your life reading datasheets.

2) Datasheets lie.

3) You will spend way more time in component selection than schematic design or board layout.

4) You will spend way more time creating component footprints than in schematic design or board layout.

5) Lay out the board by hand. You will waste more time fighting an autorouter than if you just laid it out.

6) A 6 layer board is not that much more expensive than a 4 layer board and is VASTLY easier to lay out. 2 layer boards should be avoided unless you you are a masochist or every fraction of a penny really counts.

Some of the given advice is a bit off.

1) He doesn't put enough emphasis behind avoiding BGA. BGA should be avoided like the plague. Period. It will only cause excruciating pain.

2) Small QFN isn't that hard to deal with ... if you tweak the PCB footprints a touch (make sure you have .5 mm of bare copper outside the package outline and you can treat them like QFP).

3) 0603 is actually pretty small. Most people should stick with 1206/1210.
I find that as a piece of code skews more math- and geometric- centric, the variable names skew more towards math-like brevity as well. To some degree this is due to historical technical limitations (LAPACK and Fortran being one extreme -- dgbsv anyone?), but I see a ton of contemporary production code with one letter variable names. R is a rotation, n is a normal, p is momentum, whatever. I think a lot of the historical notation conventions carry over to code, and most peeps working in the domain day to day are down with whatever baggage is brought along. This is fine until you try to read francophone code... try reading a French a thesis and you'll find that they spur all conventions that the rest of the world has agreed upon :).
For five bucks the government buys an ironclad "we can toss at least 1/3 of those tested into the clink long-long time". Per round.

Someone tests free, test 'em again for another $5.

$30 (six rounds of tests) buys you a 90% chance of convictable evidence.

That's a pretty sweet deal, no?
One thing I often see elided in these naming wars is scope: am I the only person who gives longer names to globally visible things than to locals?

For example:

size_t *find_foo(const char *source_text)
{
const char *src = source_text;
for(; src != 'f'; src++)
... do stuff
... do more stuff

return src - source_text;
}

Now the meaning of "source_text" would not be evident, except for the name. But just glancing at the usage shows that "src" is clearly a working cursor into the source text.

But if I called it "working_cursor" would that really explain anything to the reader? If anything, giving a detailed name risks misleading readers in much the same way as stale comments can mislead.
My objections had nothing to do with the kind of question posed, only the expected response. Unless it's been proven that there can be no way to merge sorted arrays "better" than heap sort, it's flippant and erroneous to expect someone to give that answer. (And there are real reasons to not use heap sort for this.) Even if I don't know that this is the (supposedly) correct answer, they've learned little about my ability to actually merge sorted arrays, and even less about my general ability to solve problems.

Unless they're explicitly hiring me to merge sorted arrays, I'm not going to claim any expertise at at. There are probably hundreds of research papers on this topic, and I haven't read them all, and I know it. I understand that sorting is a big CS topic, but it's not the only CS topic, and I can go the rest of my carrier assuming someone else already solved it and never know how heap sort is implemented and still solve hard problems.

So they shouldn't ask that kind of question and expect such a casually incorrect answer. And they can't tell me "I've already lost the interview" if I don't see things this way, because then that might trigger some manner of hostility. I don't lose interviews when the interviewer expects careless and rote answers. The company loses.
The fact that the test is cheap is a key feature.

33% positive rate, $5 a pop. After six tests (stop'n'frisk'n'test), you've got 90% chance of convictable evidence on any given party.