skysight-inc/HackerNews huggingface dataset:
I'm starting to print things again, in case I ever kick the bucket. I've been preparing video and board game design documents, manuals, diagrams, etc. The idea is to have a digital and physical copy of every personal project I've worked on (and have the rights to).

It's going to be in phases. I've got a binder to collect my printed copies of things, but I'm also going to include a usb stick, maybe a disc, which I know could still be made obsolete, but I'll just keep the format up to date as long as possible.

And I'm going to try to get physical copies of as many things as possible. Printed personal copies of old, poorly edited manuscripts, etc.

Eventually I'd like to compile an ebook of all these documents and print actual books, since those seem to last a lot longer and be passed down more. I just acquired a 40 year old book written by the legendary game designer Sid Sackson the other day. It's a little worn, but still plenty readable, and includes rules and diagrams for several games in there. It's also fun to catch glimpses of his personality in there, considering he's no longer alive.

I'm actually trying to get the actual games/books published, too, but that takes time, especially if you're going through traditional means, which I'm still trying to for now.

It's not the best solution, but it's what I've currently settled on. Paper still lasts a lot longer than any digital storage medium we've come up with to date.

You can also use version control to track changes in your documents too, especially if you're using something like Markdown for formatting. I've got a local Git that I update when I remember, but I'm really bad at both storing the docs in that folder and remembering to make commits. I should probably just set up some sort of daily scheduled commit for that folder.
Agreed on Google Voice, I used it all the way back to the Grand Central days and I wish it were maintained more. That being said, the Hangouts integration isn't that bad now. I know it feels risky to hit that 'merge to hangouts' button but I've been using it for a while without any huge inconveniences. The only problem I run in to is when I need to search for old SMS messages, the only way to do it after merging is by doing an 'in:chats searchterm' search in Gmail. That wouldn't even be so bad except that I also use Inbox and the search doesn't work in Inbox.

In theory I actually like the idea of having my SMS / Phone calls / emails / hangouts merged pretty tightly, but there are a lot of subtle ways that they could really screw up the user experience while making that happen so I'm still nervous about it.
Doping Out on Dopamine and How It's Killing Your Productivity
One thing I like which nobody ever seems to mention, is that when you divide your code into smaller functions it helps to have your functions actually take inputs and give outputs. It is very hard to read code which is just line after line of functions taking no arguments and returning nothing. No matter how descriptive your method names are, it will just end up being more confusing than if you simply wrote out all the code contained in those functions instead.

People need to see how the code flows and how things are logically connected. That is impossible to do with reams of methods operating exclusively on member variables.

I guess this is just another way of stating the benefits of functional programming. People do modularization at the function/method level so badly so often that I often think talking about modularization at class level, is beginning at the wrong end.

So many struggle with modularization at small scale.
Most bugs are pretty easy to find - what I would love to hear of is unusual ways of finding hard to reproduce bugs. The sort of bug that only shows up non-deterministically after the program has been running for 48 hours, bugs that come from third party closed source libraries, bugs that only occur on remote customer machines.

One thing I have found helpful is to compile the code using different compilers and on different platforms. A bug that is hard to reproduce on one OS can become deterministic on another OS.
A serious question to everyone complaining about uninsured drivers: do you ask your friends for proof of insurance before getting in their cars as passengers?

Do any insurance companies sell passenger insurance to cover accidents when you're the passenger in a car with an underinsured driver?
Or make sure you have health insurance.
What's your data format? Good programmers will care as much about that as how your UI works.

I see you've got a formatting guide: https://usecanvas.com/about/formatting-guide/0DZTK4lz2cWsqOn... Do you have a more formal specification for your format?

More importantly, how do you handle history? If I spend a year putting notes into Canvas and then have to switch for some reason (which might happen no matter how awesome Canvas is) what will I get when I export my notes?
Making Distinct Counts Scale with HyperLogLog
Building on top of leaky abstractions isn't necessarily a form of technical debt. Some leaky abstractions are actually better than their non-leaky counterparts. For example, not worrying about the possibility of running out of memory lets you concentrate on whatever your program is actually supposed to do, rather than micromanaging a very improbable situation.

So, what I meant to say in my previous post is that, as far as I can tell, good leaky abstractions only arise when doing systems programming, or, more precisely, at the boundary between low-level system services (e.g. runtime systems for managed languages) and the applications that consume them. Abstraction leaks in high-level application code are likely to be bad.
There's a multiple choice quiz in which the questions and answers are all basically gibberish yet you can work out the answers based on "test wiseness":

https://edtechdev.wordpress.com/2007/10/11/test-wiseness-wri...
2.5M rows of GitHub data
This is going to be used in propaganda if not already.
The question is whether the additional time to write a test before any piece of code and to refactor each piece of code to each new test case (assuming you're doing TDD 'properly' and only coding the minimum to pass the extant tests), plus the time spent debugging (because it doesn't completely eliminate debugging) is less than the time you would spend debugging if you didn't use TDD.

I could say "the time I spend debugging has dramatically decreased since I began proving each bit of code to be correct mathematically." But that tells me nothing about whether it is actually a better approach.

I suspect that's why you're getting downvoted: the comparison is naive. (Edit: Also responding to 'how do you debug' with 'I don't' probably doesn't help).

My personal anecdote - I don't spend much time debugging. I spend a lot of time thinking, a smaller amount coding, and a relatively small amount debugging. Spending, say, 20% extra time preventing bugs before they happen would not be cost effective for me.
It's a shame that a lot of this innovation, while radically increasing flexibility and dropping cost, has degraded call quality.

On the other hand, calls between certain compatible LTE handsets (AT&T calls this "HD Audio" in my market) sound far better than classic landlines ever did. Ditto for good Skype calls and Facetime Audio.
We banned this account and detached this subthread from https://news.ycombinator.com/item?id=11383195.
I think the main difference is that my complaint is against suffocating free speech while their example is about stifling it. I prefer people to be free to express themselves in cacophony over speaking in stifling unison.
While I can't comment directly on what hiring at SpaceX looks like internally, I can say that many experienced members of the aerospace community are not interested in working at them for a variety of reasons.

High up on this list is poor work/life balance, that the company is associated with (worse even than the typical awful work/life balance in aerospace at-large). Not wanting to deal with the absurdly unrealistic deadline or engineering expectations that the company is known for is a close second.

In the interest of full disclosure I did interview with SpaceX and was rejected due to a lack of experience. I don't think this colors my opinion too much, as most of the above complaints come from talented engineers who have been working in the industry much longer than I.
Hi, I am the author of the post and plugin. I'm happy to take any thoughts, criticisms and questions!
I think it's OK if a lot of stuff gets forgotten. Most likely the important stuff will be preserved somehow. Otherwise we'll just keep piling up mundane stuff.
You two probably work on dramatically different types of code.
I dunno, there are plenty of humans that wouldn't make it to AI classification by that measurement, so I'm a skeptical to say the least. I don't think any of us are going to see past the uncanny valley of human-computer interaction—computers will have their tasks, but they'll be just that—task solvers. Why make it more magical than that? It's a waste of money to try, too—much of what makes humans unique isn't really useful in a business context (like giving up on problems because you're bored or hungry or having desires).
> Also anyone over 60 or so (super generalization) wants a landline.

It is a super generalization, as you say, but I question the accuracy. I'm not saying you're wrong, but I don't know that you're right. For opposing anecdata, I present my parents who recently gave up their landline while in their 70s. Granted, Mom was debugging IBM 370 core dumps before you were (likely) born, but there ya go. What I have not done is survey their friends and neighbors, or if they're are an anomaly.

However, one thing that might push even the elderly to getting rid of the landline is phone spam. It's the reason my parents gave me. Granted, cell phones aren't immune, but they are more protected.

Me, 60 isn't that far off, but we gave up our land line years ago. But I'm also commenting on HN. :-)
Interesting. What's your source? Apple's whitepaper suggests otherwise, to my reading:

"The device’s unique ID (UID) and a device group ID (GID) are AES 256-bit keys fused (UID) or compiled (GID) into the application processor and Secure Enclave during manufacturing."[1]

What this says to me is that while rewritable data storage is indeed kept in regular commodity flash memory chips, it's all encrypted by a unique device-specific key that is somehow burned into the secure enclave. So that one little secret kept inside the enclave would allow it to store everything else off-chip.

[1] https://www.apple.com/business/docs/iOS_Security_Guide.pdf
Share encrypted messages with your friends, fast and bulletproof
Honestly, I don't have a clue. Who gets to decide? Some murderers are presidents, and others are on trial. There's really no point in arguing about it.
I've said that you CAN'T brute force life like Go, so i don't know to what you are objecting..

One more thing. You are wrong in case of tech support, i've trained a lot of networks using ML, but not only neural networks, i've used markov chains, mcts etc. What you have wrote is ONLY a speculation, nothing more.

Tech support for most of the products have finite states because they have finite use cases and finite code base. You know how paypal support looks like? In 99% of cases it's copy paste. What do you think support people know about the product ? They get couple of weeks of training and that's all they know about tech support of that product. It's only matter of time when you will get AI product tech support.
I'm looking forward to experimenting with this.

At least in the documentation, there seems to be a lot of focus on extra tools. BOSH seems very off-putting. Having to use the "fly" CLI command to update pipeline configuration seems unnecessary - can I just update the files on the filesystem myself, either via my configuration management tool or a git repository?
What Every Developer Should Know About CouchDB
This looks a lot like typescript. Is there any particular reason for not either 1) adding a wasm backend to tsc (which tsc may or may not allow), or 2) implementing a strict subset of typescript? It just seems like piggybacking off of a larger language would help this sort of idea gain traction.
Your TurboPascal program just gave me flashbacks to a different time. Thanks.
If all goes well, I work through a process like this. I reach for this tool when the bug in question seems to have its source in faulty logic, as opposed to say, resource consumption.

1. Reproduce the bug as consistently as possible.

2. Find a pivot for the bug. Whether this is a previous commit where the bug did not occur, or a piece of code that can be commented out to clear the bug, I need to find some kind of on/off switch for the behavior.

3. I comment out code / insert break points / use git bisect to flip the switch on and off, performing a kind of binary search to narrow the scope of the issue until I have it down to one line or method.

4. Once the source is found, read the surrounding source code to gain context for the error and reason toward a solution.

Of course, this works best if the bug originates from a single source. Sometimes this is not case and there are multiple variables interacting to create the undesirable behavior. That’s when things get really fun :)
this will never take off, not enough industry support and ES6 is already robust enough. Useless post
A lot of people use bash scripts to setup their dev environments on new machines. I can think of several reasons why I would want an easy to install zero dependency irc client on a new machine.

Bash is hands down one of the most useful languages out there, it is nearly as ubiquitous as javascript.

For an example on how powerful bash can be I would take a look at Ben Alman's (Cowboy) dotfiles repo.

https://github.com/cowboy/dotfiles
markojs[0] also has async server side and client side rendering with placeholders, etc.

[0] - http://markojs.com/
The deflationary spiral only starts to set in when the increase in wealth due to deflation competes with the potential increase in wealth from trying to use capital productively.

So it isn't necessarily a problem if you can wait a year and then buy a better computer with the same money. But it IS a problem if your best investment strategy for that year would have been to put the money under the mattress instead of loaning it out, investing in stocks, or some other activity that keeps money circulating.

As for a hyper-inflationary disaster, the exact monetary injection you use to stave off deflation can also create inflation. This is why central banks have such a challenge on their hands. They are trying to balance the economy between nasty extremes, while trying to satisfy contradictory goals.
Thinscript looks interesting, aside from coding in it directly it could prove to be a useful transpiler target, allowing non-web-languages to make better use of WebAssembly as both WebAssembly and Thinscript mature.
Oh cool! Let me check my address to see if it's available in my area...

Nope. Never? ok then. thanks.
We detached this subthread from https://news.ycombinator.com/item?id=11379243 and marked it off-topic.
npm's TOS is not quite the same because it's not a license. Therefore it's not governed by 17 USC (Copyrights). But if it were a contract, changing the terms of the contract probably is bound by some laws somewhere. I doubt that the TOS constitutes a contract but it seems like an analogous problem to whether the acceptance of the open source license constitutes a contract.
I completely agree. While the small things do make things easier or more difficult, the architecture can make an order of magnitude more difference.

The last two applications I have inherited are horrendously over complex and they are performing relatively simple tasks. Far too many joins done at the application level. The front page of the current application I am working on makes over 1000 calls to the database. I don't think it needs more than one for the main part. (And if the logic is really so complex that it can't be done in the database, that's a sign that the database schema probably needs updated.)
The 17 Secrets We Think We Know About Tesla's Model 3
I've been riding the Casual Carpool for the last 6 years. Love it! The reason drivers don't care about "revenue" is that they are driving across the bridge anyway and care more about the time than money. Another way to think about it is the 30 minutes saved by picking up riders and getting into the carpool lane is payment enough. Also explains the reason why riding back to east bay is not "successful". It isn't particularly faster nor as convenient.
Facetime Audio is great. Very big difference compared to a regular cell phone call.
I use gdb if I'm on linux, and I use

std::cout << "got here" << std::endl;

if I'm on OS X.

gdb on OS X is such a horror show.
Those statements are all true, but they aren't an argument against the company being able to own a trademark on "Canvas".

Canvas isn't "a term that is generic for the goods and/or services identified in the application". "Software as a Service" would be, and so would "Collaboration Software".

A company called "Chainsaw" could be a lumberjack company. One called "Chisels" could provide stone masonry services. This, despite the fact that those are generic words for tools that would be reasonably expected to be in use for those kinds of work.
You could. Just arrange it informally once you get to know the driver/passengers and ditch Lyft entirely.

Which is a risk a service like this faces.
I saw Tom give a great presentation on FastBoot back in January. for those interested, here is the checklist for getting to 1.0:

https://github.com/tildeio/ember-cli-fastboot/issues/98
EBay acquires Cargigi to expand its eBay Motors team
Yeah that struck me as an exceptionally minor thing to care about. Seriously we got way bigger problems than this in most code: reams of code duplication, 10 classes deep inheritance hierarchies, monster classes, 2 pages long methods.

In fact one of the most counterproductive things I have seen at work is people arguing at length about tiny details in the code standard and wasting hours work and goodwill.

My take on this is, you give people advice on why a code standard is good to follow. But if they insist on tiny little quirk, let it be. It is not worth fighting over. The whole development community is full of people with all sort of little quirks.

At the end of the day we got to get stuff done, and you have to weigh the benefits of stepping on somebody's toes against what you gain from it.
I've never heard of viewing your data structures in a web browser, that's pretty wild. With something like Visual Studio, you can look at data structures in a tree view though.
What's a Linter?
This is a great question! I tend to find my debugging practice differs depending on the language I’m using and the array of problems, but the recurring common denominator is printf.

In Python I mostly rely on print(f) debugging, especially when working on multiprocessing programs, which I do rather frequently. With multiprocessed Python, pdb is useless. pdb is great, but not for a multi-process program. Most of my issues are related to sub-optimal API documentation that fails to point out argument types, and find I do a lot of trial-and-error programming, for which printf’s are great. Occasionally I drop into `import pdb; pdb.set_trace()` to inspect objects or the REPL to try out ideas.

JavaScript is an interesting beast where, next to console.log, I find myself using linters a great deal. A linter isn’t as sophisticated as compile-time checks, but does a frightfully good job at most trivial mistakes that are hard to debug in runtime. I often find myself running the linter under watch(1) so it updates when I make changes.

In Perl and shell, which I use ever more infrequently, the equivalent of the printf debugging is the norm. The only language I have found the debugger to be the first choice has been Java.

With Rust, I find myself resorting to a debugger surprisingly seldom. Its type system and the safety checks in the compiler catches most of the mistakes I make.

I don’t do much C programming anymore, but if I did, I would be interested in using rr (http://rr-project.org/), which allows you to record a run of the program and replay it _exactly_ as it was the first time, essentially letting you reproduce and fix race conditions.
Exactly. TFA makes it sound like SpaceX is a shitty partner, but it's not clear what laws they are alleged to have broken.
Japan's high life expectancy linked to diet, study finds
I would be okay with these responses if it was remotely apparent whether Issues acts as a discussion forum or not. It varies for every project unfortunately. For smaller projects, the risk of asking on SO is the maintainer, and anyone else familiar with the project, will never see it as they wouldn't be actively monitoring it.

Hopefully Github's current blast of Issues updates will make it easier for project owners to explain their respective policy on this.
I may be naive but why not do away with npm and do what Go does. Import from github or http. Or what common lisp, roswell, ufo does https://github.com/ta2gch/UFO/blob/master/README.markdown
It should just be called "hiring". It's another thing where language gets deliberately skewed against employees.
Not to mention variations on spelling! Tailor->Taylor, Cook->Cooke, Fisher->Phisher.

[Name] of [Father/Town/Clan] were also all common.

"John of Connor" (John, fathered by Connor)

German: Hans von Duisburg (Hans from the city of Duisburg)

(Feudal) Japanese: 藤原 鎌足 (Fujiwara of the Kamatari clan)

Then, as mentioned by another user, some names were given based on characteristics or parents' wishes of the future.

Russian: Неулыба (One who does not smile)

Or even the location of where your family lived ("place names"):

Japanese (again): 田中 (center/middle field), 中村 (center of village), 山本 (base of the mountain).
That's sad. I feel like a lot of them would be better off getting a normal, well paying job as a non-gaming dev, then work on their own projects in their free time.
Immutability is not enough
Given that many human-operated tech support departments are inept, given their demonstrable inability to deal with issues and situations for which they lack a prior decision structure and/or script, your last point actually (albeit inadvertently) suggests that AlphaGo has a shot at a CSR job.
I think the ideal would be introducing testing toward the beginning (perhaps after you give them the initial basic mental model) so that someone has a recommendation for the testing library they should use which will work for the rest of the book. Then, every so often when you notice that something is hard to test, have a sidebar to help them along. This does kinda eliminate having a chapter on it though, unless you have something how to migrate from legacy frontend code to react/redux (which actually would be pretty valuable, though it sounds like a tall order to me).
Why should students be forced to use such outdated technology?

If we are trying to teach students how to work in the real world, shouldn't we let them use computers that they would be using in the real world as opposed to obsolete computers that were made before they were born?
Just a note that Valgrind is not usually considered a debugger, AFAIK.
Also, If you are coding in C or C++, I highly recommend running your programs through Valgrind.
> You can either charge the author customer, which is what open access does...

But non open access does it too! You have to pay to get published.