skysight-inc/HackerNews huggingface dataset:
Dang, I'm really confused here. As Houshalter points out, he was deliberately making an argument based on social unacceptability of my beliefs. Searching for the phrase on hn.algolia.com, I've used the term 5 times on HN ever, never in the manner you imply.

I'm also confused about my use of the term "mood affiliation". Searching my use of the term, most of the time I use it to refer to an external source with a data table/graph that supports a claim I make, but a tone which contradicts mine. For example, I might cite Piketty's book which claims the best way to grow the economy is to funnel money to the rich (this follows directly from his claims that rich people have higher r than non-rich people). What's the dang-approved way to point this out?

In the rare occasion I use it to refer to a comment on HN, I'm usually asking whether I or another party are disagreeing merely at DH2 Tone (as per Paul Graham's levels of disagreement) or some higher level. What's the dang-approved way to ask this?

http://paulgraham.com/disagree.html

Let me know, I'll do exactly as you ask.
He means forcing them. It's for your own good. It's taking the decision out of their hands.
The problem was not that the variable was abbreviated. The problem was that the abbreviated variable was so similar to another abbreviated variable that was used for a similar purpose.
Yes, confirmed the bbc and the electron already had this.

Interesting tidbit: it matched the data on the screen with the font in graphics mode, which meant that if your graphics intersected anywhere with text you wanted to copy that it stopped copying on corrupted characters. There was too little memory in those machines to keep a 'backup copy' of what was in the character cells of the screen, so the copy key function had to recover the screen contents directly.

https://upload.wikimedia.org/wikipedia/commons/3/37/BBC_Micr...

You can see the keyboard here, the copy key is bottom row, rightmost key.
Frank Zappa Debate on School Beat (1986)
We started with a HUB. Small account 5 projects. We then switched to a self hosted Lab. A small VM running CE.

With no effort we are managing dozen of projects and now we are in love with CI (and OpenShift)

We want to start using HUB again as mirror (still need to understand how...) but no plan to leave GitLab.

Here the feedback

. Easy to use
. Easy (apt-get) to update
. Nice to manage
. Yours
. Same flow as git hub if you use it as git repository...
This is a nice visual depiction of why LA and most of the west coast is so nice year round.
It sounds like Apple is abandoning the idea of security by obscurity, which is a very dubious stake to have if you ask me.

Also this probably does a lot in reducing the overall burden of government request. If you have nation states demanding your source code, why not just open source it.
Cryptographic solutions aren't Majickal Pixyie Duste. They can however, within a social and adminstrative context, help tremendously in assuring proper results.

An independent authority (or authorities) of trusted (and untrusted) signing certificates.

In a word: reputation.
then there are two problems.
Genesis http://my.studiopress.com/themes/genesis/
Fwiw, you made no reference to IRC gateways - just consolidating chat protocols into a single application.
sure but if the variable was not abbreviated the chance of collision would have been less.
I definitely prefer more verbose names to abbreviated ones, but I'm not sure that never abbreviating a variable name is the right way to go either. Surely there's a middle ground between `Ttpfe` and `timeOfTenPercentHeightOnTheFallingEdge`?
Just create google account, use sms to that number, activate signal.
So here's the thing.

It starts in Brownsville, Tx.[1]

In January 2016, There were 2 days in Brownsville where the high was 70, the 13th and 28th.

Even if you say +/- 5 degrees is 'close enough' to 70, less than 1/2 the days in January 2016 fall into that range.

From the 3rd to the 4th, the high temperature jumped 15 degrees from 51 to 66.

On the 2nd, the high was 45 degrees. The 15th, the high was 83 degrees. That's a 38 degree high temperature spread in one month.

So if you really do need 70, spot-on to be happy, you may need to add standard deviation to your criteria.

Here's the chart:

[1] http://www.accuweather.com/en/us/brownsville-tx/78520/januar...
If the variables had been named timeOfTenPercentHeightOnTheFallingEdge and timeOfTenPercentHeightOnTheRisingEdge it probably would have still been hard to notice that they had been swapped in that one line.
Bitcoin Block Reward Halving Countdown
Use context. If you can't, refactor so you can. If you can't, well, you're SOL and stuck with timeOfTenPercentHeightOnTheFallingEdge.

Edit: e.g. if all of your variables are "timeOfTenPercentHeight...", cut that part out of the name. Full names can be just as bad as abbreviations - e.g. if they're all "timeOfTenPercentHeight..." then they all start to blend together.
"Never abbreviate a variable" is a very strong statement, surely inspiring religious wars. And maybe there are edge cases: i as a loop counter, id for an integer primary key, whatever. But this example is something else entirely; "ttpfe" is honestly the worst variable name I have every seen.
Yeah, the problem isn't that the airplane is on fire, the problem is that it crashed into another burning airplane as both tumbled uncontrolled through the sky, hurdling toward the earth.
Can You Hear It? The Cicadas Are Back
Anyone else feel a bit uncomfortable reading the level of detail in this post?
I really thought this was going to be a rant harping on object-oriented programming.
Its pretty standardized actually. In this case it looks like he was a part of a "blitz" which often happens for remote locations. A normal interview process is very similar but usually has no hackerrank first, the phone screen is by an engineer and the interview loop may be more like 5-6 people with a lunch break.
I would add - there's a bit of a difference between an abbreviation that just keeps something from being ungodly verbose (20 letters instead of 50), and an abbreviation that shortens something so much that the original meaning is completely lost ("Ttpfe"). This is especially true for things in context - "time of ten percent height on the falling edge" is needlessly verbose, but in context "ten_percent_falling_edge" would probably be perfectly fine. And indeed, that's really just an expanded version of "Ttpfe", which is what was used anyway.

If you shorten everything to five-letter names, it's not really that surprising that it becomes an issue - And I mean, what's the real point of abbreviations when they are so short that it makes it harder to read the code?

Edit: It's worth pointing out though - if this is really old C code it may be justifiable. Back in the olden days of C (Older then C89 at least), only the first 8 characters of a symbol actually mattered. "blahblahone" and "blahblahtwo" would resolve to the same symbol. So shortening in this way could be necessary.
When hiring we ask for sample code from developers written specifically for the job application. We place a really high premium on readability. Occasionally we'll get code from devs that is very concise - not just abbreviated variable names, but complex long statements using ternary etc.

I'll usually ask them to resubmit code and really focus on readability and it turns out fine. But I think there might be a misconception among devs where the thought is that really compact code shows talent.

Our ideal coder is someone who cares deeply about performance and where the code is ridiculously easy to read and trace through. I mention performance, because in some situations making things more verbose can affect that.
Ah, good ol' TransactionTemplatePayloadFactoryExtension.
Heh. When I first learned to code as a kid, a variable was max two characters (the first of which had to be a letter A-Z and the other could be a letter or number).
The Surprising Health Benefits of an Electric Bike
Everyone forgets about ltrace: Like strace, but for calls to dynamic libraries.

It gets you something closer to what the program looks like at the source code level: You get calls to printf (well, __printf_chk on a modern Linux) instead of write, for example. The downside is that ltrace doesn't (and can't) know as much about every single function in every single dynamic library, so, while the names are there, the arguments are typically less convenient to work with and may be incorrect. (For example, it doesn't dereference pointers to print out nice strings, and it might not know how many arguments a function takes.)
Hope those systems are now declassified for his career's sake.
TL:DR Abbreviated variables are not always intuitive to others. I tend to agree. If you're going to use a pattern or abbreviation then be as non-creative as possible.
Pwd stands for: ________?

Correct, you guessed it!

Once an abbreviation or acronym becomes widely used it makes sense to use it as a variable name for as long as you live.
> refactor

Yes exactly. If you factor out a class that deals exclusively with timeOfTenPercentHeight, then the variable names can be OnTheFallingEdge and OnTheOtherEdge or whatever...
Many already do - it's called iOS.

When the iPad first came out, a few executives publicly said "this is so awesome, I can do all my work on my iPad!" Sounds good to me, leave the power tools to the grown-ups who can resist punching the monkey, and can install security updates every couple of days (without being forced to reboot at the whim of the OS).
Analyses suggests there are just six main story arcs in Western literature
https://news.ycombinator.com/item?id=3392108
Print working directory?
My recollection is of the cat eating them and a neighbor kid chasing them with a tennis racket. The noise isn't really deafening, but it is loud enough to make it impossible to sleep with windows open.

And there are rare years where both the 13 and 17 types happen together. That must be an experience.
Historically, i wasn't even an abbreviation: It was the first variable name which would be assumed to be integer by FORTRAN compilers which implicitly assigned types to variables based on name. The choice was probably further influenced by longstanding mathematical tradition, which uses i and j as indices.

(You could declare types and the compiler would respect it, leading to the old truism "GOD is REAL, unless declared INTEGER".)

(If you think that's the weirdest thing old FORTRAN did, look up the arithmetic IF statement sometime. Then, look up assigned GOTO.)
...I though you meant password, I google it and you probably mean "print working directory" right?
This is common in the sciences as well, since senior professors also had the 8-character limit (from fortran [0]). And functions are also named this way as well (see lapack/blas).

Some people also hate typing out slightly longer variable names and what not. I try to emphasize that a section of code will tend to be read more times that it is written, and therefore readability is more important. It's a frustrating battle sometimes, though.

[0] Exacerbating the problem of using the wrong variable is the fact that much existing code uses implicit types...
To be honest, you said you're a less-than-senior developer, maybe your resume is not that good, no matter how serious you wrote it, when I read resume, I focus on the key word to evaluate whether the candidate is fitting the job, not for the tone.
Yes, but the likelihood of mistyping them would be far less. 'f' and 'r' are right next to each other. 'Falling' and 'Rising' are a bit harder to unnoticeably fat-finger.
Is the issue that they were abbreviations or that they were named similarly?
I've seen them cover a gas station (entirely) in Northern Canada. Quite a sight. Impossible to get in/out of the car without picking up a few hundred of them. You couldn't walk without crushing them, they'd cover you in a few seconds. Nightmare territory. I never expected to have to use the wipers in order to see where I'm going because of insects.

This happened just south of Sudbury, it was a relatively local phenomenon, which surprised me, I always thought it was supposed to happen for 100's of kilometers but that wasn't the case. Still, the damage to the crops must have been unbelievable.
tl;dr: use newtypes!

I like using static types to avoid these sorts of problems. Modern languages like Swift, Rust and Haskell let you make zero-overhead type wrappers around other types.

So here they could have defined `newtype RisingEdge(Float)` and `newtype FallingEdge(Float)`, and then use those types in the function parameters as appropriate.

Helps shorten function names to boot!
Thank you for the inside view. Sorry you're going through that.
Not every sleezy salesperson in the world is a sociopath. You can meet someone in a business context without caring much about them, while not being a sociopath.

It's not 'defending' someone's actions to say that there is no proof of an extreme lack of empathy.
I discovered this thanks to a chance encounter on Duolingo (which is based in Pittsburgh, coincidentally). This commenter is from my small hometown in western Pennsylvania, and I in fact knew her in real life: https://www.duolingo.com/comment/236814$from_email=comment&c...
I've been doing this lately. But only because I can't stand my phone's keyboard. Actually, if I'm not writing professionally or for public consumption, I do far more egregiously 'fun' things with my writing to make it more touch-screen friendly:

Convenience:

probably -> prolly

__ing -> __n

__ed -> __d

I'm -> I

and -> n

something -> summat

Purposeful misspellings:

your -> yoor

maybe -> mebes

work -> werk

word -> werd

programming -> porkgramn

morning -> mern

And randomly drop unneeded words.

"The car needs washd, prolly do next fri mebes if I not busy porkgramn summat fo werk."
I think the catch is that the 'f' and 'r' keys are right next to each-other, so if you accidentally type one instead of the other then you'd get the other variable by mistake.

That said, you raise a fair point - we don't know how this bug got there. If it was a simple typo like above then the verbose names would have prevented it. If it was a logic error by the programmer (For whatever reason), then you're right that the name wouldn't matter because they typed the one they intended, it just wasn't the right one to use.
You are right, this is not ideal - this is waste of time. Which is probably why the OP lead the comment with:

> This article makes me sad. Interviewing in our industry is so broken.

Yet:

> It's the equivalent of a company interviewing a candidate they have zero intention of hiring, ever.

If the company has one position to fill, and if they ever interview/contact more than one person for filling that position all the people who they contacted other than the person who got the job has wasted time, right?

In short, companies have only themselves to blame for this (sad) situation.
There are a lot of people outside the US, for whom US political issues are a minor (and definitely ignorable) concern at best and not something that should frequently come up while reading tech news.
I would never publish anything that shouldn't be published. Pretty much everything here could be found in a few hours on wikipedia, except for the story aspect of it.
Print Working Directory? Present Working Directory? Password?

A probably worse trap is "temp". Is it temporary or temperature?
- IceFloor (since OS X includes pf)

- mDNSResponder -NoMulticastAdvertisements

- Hands Off!/LS

- Vera/TrueCrypt

- Samhain/TripWire

- GPG Tools

- Homebrew packages

- a password manager

- 5x DNSCrypt-proxy instances round-robin'ed with dnsmasq

- Chrome/FF

- TorBrowser

- i2p

- no unnecessary apps

- follow the NSA and other guides for securing OS X (FileVault 2, firmware password, don't use iCloud Keychain, etc.)

- use DBAN on old systems and drives

Be aware that security has to be balanced and leave a usable device, and some security measures interfere with and/or disable certain features.

And no flash/adobe, browser java plugin

References:

https://github.com/drduh/OS-X-Security-and-Privacy-Guide

http://docs.hardentheworld.org/OS/OSX_10.11_El_Capitan/

http://www.tenable.com/blog/hardening-os-x-using-the-nsa-gui...

https://ist.mit.edu/macosx/1011

https://walterkilar.wordpress.com/2016/05/08/apple-os-x-el-c...
Yes, it seems much more like a high-level overview than an in-depth tutorial.
I tried to keep it as high-level as I could. What would you change?
Of course, it costs even more to instead put the rapist in a "privatised" supermax where he is subjected to various state-funded tortures that quickly turn him into an even worse kind of animal...
I was recently implementing a geometry algorithm which I looked up on quora. It was described using typical vector notation, using r,s . t,u. Since I referenced the algorithm in the comments, I decided to use these same variable names in my code.

I think this is the right choice, but my code reviewer didn't. But he didn't click on the quora link.

Why is okay for mathemeticians to abbreviate things but programmers? Is it because they deal in more abstract entities where the name is irrelevant?
I think pwd, dir, cd and the like are obviously standard abbreviations, but that's pretty obvious that's not what I'm talking about.
I think the usual rule is that the size of a variable's name should be a function of the size of the scope in which it's visible: If it's a global, it should have a long, descriptive name, perhaps with_underscores or CamelCase or similar. If it's a class member, abbreviate it some. Function locals get even shorter names, and loop indices or temporary variables only used in one part of the function can be single-character.
That example was comically poorly chosen.
Have sufficient Hamming distance could be a better maxim!
I self-tested variable name lengths on my own code.

Three letters is enough to avoid most collisions. Words do not make sense yet.
At four letters most words become decipherable given an appropriate encoding.
At five letters a two word phrase may make sense.

I make a rough decision based on variable scope - shorter lifetime means shorter variable name, but I rarely go with just one letter as it reduces uniqueness.

If I need to use a really long phrase frequently I take a mathematician's approach and alias it to an abstract and highly unique symbol. The phrase may still exist in the addressed data structure, I just avoid it within the algorithm. Mathy code also has a tendency to encourage numbered variables, e.g. "x0, x1, x2".
Virus was a port of Zarch to Amiga and ST. I don't recall the amiga version but the ST one
was much less smooth than the Archimedes and would bog down with a couple of agents onscreen.
I wish I could upvote this more than once!
That’s what linters are for :-P
A Glimpse into the Apollo Guidance Computer – And Its FLAGORGY Subroutine
The line was adding about 5 or 6 terms, and I think it was actually an 8-character acronym that he had. It might have been like "time from ninety percent to ten percent falling edge" or "falling edge fall time ten percent" or something. Either way, it was awesome to find it.
honestly I don't have any experience working with anything classified, so your judgement is likely oodles better than mine. Great story :)
It was probably a mental mistake. It's not particularly easy to fat-finger in that specific way.
He wasn't kidding .005 vs .0075 USD cents per message and reviving messages is free unlike Twilio. Twilio also charges $1.00 a month for the number itself. I will be giving your service a try in the future sir.
opensnoop -> lsof?
let thisIsCertainlyAnApproachThatIAdvocate = true
That same engineer would frequently nest for loops inside for loops inside for loops with indeces like ii, jj, and kk. Drove me nuts sometimes.
> The name comes from thrushes, a family of birds to which for instance blackbirds belong.

Sure, but out of context I'd be willing to bet that isn't going to be the thing that most women think of first.

10 hours on HN and no one has pointed that out?
How would a linter catch the presence of a variable that exists?
Zstd was a work in progress when Apple released LZFSE even though it was already seeming to be better than LZFSE. But apple needed a finished product and at the time of the release it looked to be the state of the art (released) in a combined metric of compression and performance and they promoted the fact highly. Apple is unlikely to say at the same time that we think a WIP compression scheme would be better than our in a few months or six months later say that please don't use our state of the art compression format anymore its been superseded even if its true specially since its much better than zlib the one people have used for so long.

I think once Zstd gets a bit more mainstream the best they would do is add it as an option.
Android HTTP/2 Support Library
...which is also his email, which is also the username of the only person who wrote a definition for that word at urbandictionary (http://www.urbandictionary.com/define.php?term=superchink) ...yeah.
Ha, you're right. Commodore BASIC, probably? (written by Microsoft, I think.)

I do remember at some point having access to a language with less restrictions on variable naming, and thinking, "wow, that's so amazing"
Back in 2006, one company did cover my travel expenses from Manchester to Reading.. Too many red flags, didn't take the job in the end!
Far from it. If you're lucky, the 18650s will be re-badged recycled cells form failed laptop battery packs (usually one cell is completely dead but the rest still have a little life in them).

If you're not so lucky, it's from a back-alley micro-factory with no quality control and the cells can literally burst into flame (which has been the big issue with "hover boards" recently).
Probably has to do with decades (centuries?) of knowledge that is passed on in a somewhat consistent and rigorous way. Programming is a relatively new field, with tons of self-taught practitioners.
Even with a 200 character variable name, the chance of collision is 100% if it was auto-completed or copy-pasted.
> "Is it because they deal in more abstract entities where the name is irrelevant?"

Partially, but also because math equations don't really have strong maintainability needs. Another mathematician isn't going to walk in 6 months later, get confused, and blow up the universe.

Though I'd argue that in fact math equations should be better named. They're rather abstractly named as a matter of convention, but they would be more easily understandable in many cases if variables were more carefully named.

Another risk of "porting" geometry algorithms, especially complex ones, directly from their mathematical expressions, is that you don't gain insight into why they work. This makes debugging later difficult, since nobody who wrote the code actually understood what the algorithm was doing. Forcing yourself to rename variables into something sensible will also force you to understand the mechanics of what's happening.
Did you self test on code from years ago or was it all fresh in your mind?
Thats a great process. If you don't mind me asking, how do you get rid of the phone screen, even assuming you have some github and contacts? Just ask the recruiter?
Nothing in this post is even remotely classified.
The event for people building the future of software
Similarly. The term was supposed to be “Ttpfe”, but he had mistakenly called it “Ttpre”
>Why is okay for mathemeticians to abbreviate things but programmers? Is it because they deal in more abstract entities where the name is irrelevant?

for example, xyz^2 in a piece of written math means something different than it would in a program (in the math case we are obviously not taking the variable "xyz" and squaring it). I guess what I am trying to say with this example is that perhaps variable names in math are one symbol because concatenation, in many cases, already means "multiply".
> Why is okay for mathemeticians to abbreviate things but programmers?

I think you want to add a "not" before "programmers in the end of your sentence.