skysight-inc/HackerNews huggingface dataset:
The thing you and the other person are missing is that some products are "table stakes", you have to have them just to play the game, they're loss-leaders, indirectly they affect other business lines, but they are not profit drivers.

Could you ship a mobile smartphone today without having, minimally, photo backup, cloud backup services, mapping? No. Are these expected to be growth earnings divisions for the company? No, they may even be expected to lose money. Apple Maps is a pure cost for Apple, and iPhones would have sold whether or not Apple had to use third parties.

The Chrome browser doesn't place ads. It doesn't cost anything to use. However, by ensuring that the web is used by more and more people (by helping to make browsing better), and that Google search is used (and not blocked, by say, Internet Explorer owning the market), the Chrome division at Google indirectly makes money for the company by being a defensive moat, but make no mistake they are a cost that makes no revenue or profit.

Having services that deal with SMS, chat, and email are just the price of entry these days for a computing platform. If you're lucky, you break even on them.

Neither Google nor Apple are in the profit maximizing business. If they wanted to maximize profits, they're a lot more they could be doing. Google could shutdown way way more services than the small spring cleanings they do. The company could cut a ton of its profligate R&D spending and stop hiring at the rapid pace it is, as the company's costs are rising far faster. Google could probably lay off 30% of staff and its services would not be affected, much of the money makers are automated.

These tech companies are not being run like General Motors or Walmart, pushing for ruthless efficiency and profit. They are interested in "big" wins, big upsides, not tiny business lines here and there. Take for example, Google Calendar, you think this is raking in billions in ad revenue or Google Apps revenue? Why do we have it then, since micro-econ 101 would tell you to kill it.

I also work on GWT. Google had a team of 25 people working on that project at one point. It's open source. It makes no money. It never will make any money. And it wasn't even used by Google internally during its first few years. Google has a large team of people working on Angular. They won't make any money on this. Angular is used by many more people in the external community than by consumer-facing products (which use Closure Compiler). Those are real costs, lots of money, on things which benefit the external community and Google Brand more than they benefit quarterly revenues.

The simplistic model to which you think these companies are run, always with an eye on monetizing everything directly, is simply wrong.
What's your favorite code editor?
I've moved more than 10k in cash around just to avoid paying that 10 bucks. $10 is still $10.
The phrase for this is "Penny wise and pound foolish."
A search for GitCasts gave some results, such as:

https://www.youtube.com/playlist?list=PLttwD7NyH3omQLyVtan0C...
This is why I like using a randomized framework such as QuickCheck (or its derivatives in non-Haskell languages, such as Java) along with typical unit testing. It's often easier to write than tedious unit tests, and it can catch a lot of funny corner cases you don't even think to test.

Of course, this still isn't a guarantee. But it does make me feel better about my code.
The problem is not the engagement as much as trying to sit and pay attention for 90 minutes. You will way better results by having a 5-15 minute break every 45 minutes.
How Kevin Vickers Subdued the Ottawa Gunman
The “CEO” Search Experiment
One of the things I've found as a side effect of people using code coverage tools is that instead of testing the behaviour of a method they end up testing the implementation. I think this is because they initially test the behaviour, but then see that one path is missing, so add a test to ensure that path is ran - instead of just testing the behaviour that calls that path and checking the code coverage tool. This ends up causing trouble if you ever want to change the implementation as you end up having to throw away half the tests, which means a lot of effort you spent to get 100% code coverage is now gone.
"To my knowledge, no child grows up “playing doctor” and still believes as a teenager (or even as a college student) that an actual medical practice resembles that activity. Likewise, no one has a fully functional toy legal system to play with as a child, and as a result goes into law. On the other hand, “adult” programming, seen from afar, is enough like child-programming to set the computer-enthusiast child up for just this kind of exceptionally cruel bait-and-switch."

No, but they do see things like "House MD", "ER","The practice" etc... , which resembles the actual medical or legal profession as much as movie "hacking" resembles computer programming.

Besides, I've never known a child to actually see "adult" programming - unless one of your parents is working from home, most "adult" programming happens in a corporate setting.
In the same way I've never known a child to see "adult" psychology, or other professions which are practiced in closed environments.

"Virtually every profession has a concept of professional equipment"

True, but so do programmers. The idea that professional equipment has to be hardware (or for that matter a keyboard) is rather false.

Professional writers use the same hardware as amateur writers - pen, paper, computer . But they might have better word processing software.

And I'm not sure about others, but the hardware I use for programming is much different then what an amateur computer user might have- a lot more memory (to run those IDEs, databases, memory cache etc...) , two or more screens , and software that are unlikely to be used by non professionals (Jetbrains IDE, Beyond compare, virtual machines) etc..

Also - there are keyboards designed for faster typing, from my experience they just not very useful (programming rarely requires fast typing in my experience, better googling would be a thousand times more useful).
This one was entertaining and stayed on a good path.

The stuff he's doing reminds me of the golden days of Norton Disk Editor. I accidentally removed the directory attributes from a bunch of critical folders back in my 286 days. That was probably my first serious dataloss scare.
All user input should go through some manner of filter regardless of the presented form. After all, it doesn't take too much effort to send raw post data without loading the page at all.
This is way too broad. For what kind of code?
Those look very, very useful. Thanks for the pointer.
Maybe schools should use a system like Spaced Repetition (or Anki) that integrates in an intelligent way the repetition of old material with learning new things. It works very well for foreign languages, but could be adapted to other subjects.
TL;DR: Use a coverage tool for tests.
A $95,000 Oculus Rift Ride of the World's Most Expensive Real Estate
So when you get your change from the local shops, do they give you a cashier's check? One of the things I did at my mother's bookshop was take the weekly cash takings to the bank, and bring back some change for the next week. Those trips were usually in the low- to mid- four figures.

I'm interested in how you propose to have a retail worker somehow convert the cash on their premises into a cashier's check, so they can walk to the bank and deposit it.
Also subscriptions (i.e., repeat purchases) randomly fail to fulfill for me. Very not good if you're relying on that sub.

More and more companies are not relying on Amazon as a key initial channel - e.g. LG's new bluetooth headset (LBS 900) is not authorized yet to be sold on Amazon. If you search for it, you see some knockoff item that has a 1-star review telling you not to buy what is clearly not an LG product.

I'm finding that Google Shopping Express is quite a good contender for some very useful things... the selection is limited, though the pricing can be good. More importantly, they deliver same-day... if they'd only do perishables, I'd be set :)
Maybe https://www.thinkero.us/app/?type=issue will change your mind?
> Adolescents, as a demographic, have always been known to be raging pits of hormones with mood swings and strong passions.

The adolescents in middle ages were treated as adults and they have behaved so. There was also no equivalent to modern schooling back then.
Sure, for that use case, you do actually need to haul around cash. Assuming it's not economical to use an armored car service. Also the stakes in this case are much lower. Losing a week's worth of revenue isn't quite the same as losing the down payment of your mortgage. But that wasn't what the grandparent was referring to.
Hear, hear! It's well passed time we put to rest this outdated notion that jumping forward or back the hour hand will have an effect on the length of day.

Daylight saving time is cargo culting at its worst -- and those who say we should stay on a perpetual Summer time are probably the worst of them all.
I feel that our system is just a lot more subtle. It mainly gives the illusion of freedom and choice.
I've faced this problem in my own tests. I want to achieve total coverage so that I know that I've got all the cases covered, but then I end up testing the implementation rather than the contract. I'm not sure what to do about it.
(Bright, of course, is the creator of D.)

I agree completely about C. I've been saying this for years. There are three big problems that cause crashes in C programs: "How big is it?", "Who owns it?", and "Who locks it?". The result is over three decades of segfaults and buffer overflows.

There have been three or four variants on C which address some of those issues. I've proposed one myself. None got any traction. The only thing that might work is if someone developed a safe variant of C which could be machine-generated from existing C code, and didn't add significant overhead. GCC already has a fat-pointer subscript checking option, but nobody uses it. That approach is usually slow, with a subscript check on every reference. If you do it right, most subscript checks get hoisted out of loops. Go does that for many FOR statements.

Rust is one of the very few languages which addresses all three of those issues without resorting to garbage collection. I really hope the Rust crowd doesn't screw it up.
Because it's an agreed upon widely used standard.

Making standards and getting near-universal buy-in is hard. Tweaking them is too. Since it isn't impacting most people beyond a mere rare inconvenience, it's hard to convince someone to start cranking on the gigantic cogs of worldwide standards to improve the situation.
I'd like to find a one-handed keyboard that I can use in my pocket, without having to look at it, and which I can use with a relaxed, comfortably closed fist. Pressing the buttons on it should require only the lightest touch.

Unfortunately, I haven't seen anything remotely close to this.
Free+subscription = not really free. It's retail price unlocked is still north of $400. I could get a Nexus 5 for less than that, and its probably a better phone.

Kids version of tablet requires playtime kids subscription of $3/mo - which is something I could afford but turns me off.
>Is faster typing really the solution to the problem of wanting to professionalize computer programming?

I think both you and the article are making a mistake here. If you listen closely to the 1968 demo and, especially, its 1969 follow-up (available on archive.org) it's clear that Engelbart was not using the chorded keyboard for text input but for command input.

You should think of NLS text editor as a vi without cursor addressing: you would enter the command to execute with the chorded keyboard then select the target character/word/sentence with the mouse cursor.

You can follow the evolution of this idea throughout history. Many of Engelbart's "employees" went to work for Xerox Labs, the Xerox Alto used the keyset to give commands just like Engelbart's NLS.

The keyset was removed from Xerox Star after it proved to hard to learn and replaced with an extra block of keys on the left of the keyboard [2] with the most used commands.

When apple copied from xerox they got rid of this extra block (probably in the name of ease of use) but someone kept the idea alive by inventing the ctrl-zxcv for undo, cut, copy, paste that are conveniently placed all on the left side of the keyboard, so that you can use them while your other hand is on the mouse, like Engelbart always intended.

On this page [1] you can see some of the command given using a combination of the keyset (the chorded keyboard) and the mouse, it is not exhaustive however.

[1] http://chm.cim3.net/cgi-bin/wiki.pl?NlsTechnical/KeysetMap

[2] http://www.digibarn.com/friends/curbow/star/keyboard/keyboar...
So in the US, math tests are multiple choice AND teachers don't even require the student to write down the process by which they've come to the conclusion?

Both of those seem unusual to me and I don't see how that method could possibly be beneficial in assessing knowledge.
> Ads are simply a sneaky and dishonest way to get at end users' money without them realizing it.

Really? If I make a living by selling shoes, and put a banner outside my shop advertising it, what's sneaky about it?
Science experiments for kids
Interesting tests. How do they prepare for the real world, where the answers are to be found and not given?
If the distinction doesn't matter, then why is the parent article and you imputing motives and intent to Google? Follow the evidence then, treat Google as a black box, and measure the result, rather than speculate on "intent and strategy" to which you aren't privy.

So, when you see Inbox by Gmail being even more intrusive with ads than regular Gmail, you can raise your arms in the air and declare that you were right all along -- "I told you so!"

I feel like a person who wrote a novel and based one of my characters on an old woman who worked at the corner store, but yet a literary critic reads the "hidden meaning of the text" and insists the woman really represents my mother. And then when it's pointed out that the character is based on a real person who is not my mother and the critic is simply wrong, it's claimed the woman must secretly represent my relationship with my mother anyway.

You're basically asserting that years of product meetings, in which ads are not discussed, and which the only concerns are how to improve user workflow and usability in email, in which we do countless user studies getting feedback from experiments, and then making changes in the system so that people tell us it's working better for them, all of this really is an engineering and product team being manipulated by strategic decision makers.

And while we think what we're really doing and working on is making it easier to manage your mailbox and get at information quicker, we don't realize we're playing right into the hands of a Machiavellian plan by the executives/board to use those same mechanisms for even more intrusive ads, and they haven't let us in on the secret.

Or, maybe we're just trying to make the mail experience better so that people don't get sick of gmail or mail altogether, and go off and use WhatsApp, social network "mail", or some other communication mechanism not ruined by a deluge of noise. Maybe we're concerned that if we don't make things better, users will go elsewhere.

Or maybe, after 10 years, we just thought it was time to give gmail a refresh as it was getting long in the tooth.

All are better and more plausible explanations than the idea that this is a monetization plan for gmail. I personally don't believe mail can ever be monetized effectively like that. Personally, I think mail ads are pretty ineffective and not huge revenue generators.
I actually like this blog. There are some other reasonably sounding posts there: like “Bedrock of Abstraction” (http://www.loper-os.org/?p=55) or “On Formats War” (http://www.loper-os.org/?p=309)
With my knuckles getting stiffer, this is a really attractive idea - I just wish there were more obvious ways to get the stick on keys (cannot seem to find the links)

Edit: did not mean to sound so miserable. I think this is a great project and my plan before Xmas is to install it on a raspberry pi, buy or make the stick on keyboard and use the RPi as a pass through keyboard at work - so I am less dependant on each local hard disk
It's very standard in computer science in the theory of formal languages.

https://en.wikipedia.org/wiki/Pushdown_automaton
This is interesting, I've never used Google Play Books. Is there an actual error message that you could put into our issues? The file is actually generated with O'Reillys Atlas platform, not Apress, so they would be interested in why that doesn't work I'm sure.
One way to reduce the number of possible paths is to reduce the number of distinct cases, often via refactoring or a simpler yet more general algorithm; to use an extremely contrived example, it's like the difference between

int addOne(int x) {
if(x == 0)
return 1;
else if(x == 1)
return 2;
...
}

and

int addOne(int x) {
return x + 1;
}

I always keep in mind the famous Dijkstra quotes about testing and program complexity:

"Program testing can be used to show the presence of bugs, but never to show their absence!"

"Simplicity is prerequisite for reliability."
There is a simple build process using asciidoctor-pdf and asciidoctor-epub that can also create all 3 formats locally. The Atlas ones are just a little more professional looking, but the asciidoctor chain is still really great.

https://github.com/progit/progit2#how-to-generate-the-book
Startup Weekend 2014 Brisbane Australia Live Stream Pitches
Yup, that's the cover that Apress made and we (lol) screenshot from Amazon. I was thinking of Photoshopping it out, but decided to just wait until they fixed it and do another screenshot.
Can't this bug be fixed
Up-thread there was a comparison from office workers to high school students. Do you really think that the "average office worker" has a chair (in the price-range of an Aeron), an office with a view, and a flexible schedule?
You're of course correct that CRCs are very useful for low level operations such as individual Ethernet packets.

But I was trying to respond to scenarios such as at the start of the article:

You want to send data from point A to point B.
...
you should use a CRC so you can detect errors.

I think that's obsolete thinking. Yes, you can use a CRC for checking individual blocks being transferred. But you're much better off also verifying a complete data transfer using something like SHA-256.

When, 25 years ago, PKZIP stored a 32 bit CRC together with a file, that was great for its time. But nowadays an archiver should use something more robust, such as SHA-256.

I've personally encountered miscorrections on the old ST-506 disk drives because the 32-bit CRC used was junk.
People like Neal Glover gave us much better computer generated polynomials. The industry switched to better schemes such as cross-interleaved Reed Solomon. And that was the extent of the error detection and correction.

But now we know better. Given how close to the bleeding edge disk drives are, it's probably necessary that they continue to do error correction for each sector (although that has been debated). But a system is better off overlaying that with software such as ZFS which uses SHA-256 on individual blocks and continues up to the root node, thereby creating a Merkle tree which provides very strong data integrity guarantees.

That's the point I was trying to make. In the old days we used CRC for everything, because we didn't know better. Nowadays we can continue to use CRC at the lower levels, but we should add SHA-256.
lol, gitcasts, nice! I totally forgot about these. Man, I should probably redo them, I liked that series.
> (and no, don't use Java / anything JVM based).

Why not? There are meta-circular implementations of Java, with native code generation on their toolchains.

Even OpenJDK is going to get a AOT compiler as discussed on JVM Language Summit 2014.
As other have mentioned, his focus on input devices is a misguided. If I lost a month of programming work, and only had a copy on paper, I would in most cases be able to type it in less than a day. My limitation is in logical reasoning, not in typing.

This is actually quite similar for music. A musician can't perform 40 hours a week, the process of playing is only a small part of being a musician. Unlike programmers, musicians typically only get paid for the time time they are performing, while programmers get paid for the time spent at work. This means that programmers really have a much better deal than musicians in general.

The advantage for musicians is that they also get recognition as individuals for their work, while the employers take most of that for programmers. That said, musicians can do the same deal if they choose to work as studio musicians or member of a symphonic orchestra or similar. Then they lose autonomy, but get more predictable pay.
Why India Should Have Its Own National Electronic Medical Record System
Show HN: Adsweetcher – Switch between multiple ad networks in your mobile app
Just realized how much I hate the term "change the world" that is so prevalent in start up culture these days.

I suppose "World" could mean whatever you want it to mean though.
At what point is an over-the-air TV antenna too long to be legal?
To be honest, I'd say there's actually some value in socializing and the concept of engaging with friends and students on a daily basis - especially outside of class. Aren't you worried that your kid might be missing out on those social interactions? There's a lot more to school life than attending several 90 minute classes in a row and calling it a day.
I disagree, but maybe I am not understanding what you mean.

If the presented form is "plain text" then encoding all html tags is an effective choice, if the presented form is "rich text" than tag/attribute whitelisting is necessary and you need to strip "bad stuff".

The choice of presentation, combined with the choice of who is inputting the data, also poses problems in the UX, i.e. if you use a JS markdown editor in the browser and process data in python on the server stripping HTML than the user sees something going in and something else going out.

A common standard of how to do safe markdown would help.
Floating Point Benchmark: Rust Language Added
I disagree.

In the sprawl trilogy, the big black character that gives the hero his mission he's using a fax machine embedded in the seat of the cab where they first met. A fax machine. That spit out paper with ink on it. It was already old tech and weird when I first read the book 4 years after the published date.

In Dune, they are reading texts on ridulian crystal. When I read it in the 90's I thought "must be some kind of indestructible paper". Herbert didn't describe the item which incidentally allowed the 2000's SciFi series to show ridulian crystal as some kind of a very thin and intelligent screen reader.

Ridulian crystal will never age but FAX machine, e-mail[0], etc will and they will pull you out of that suspension of disbelief state.

With that said, and for what it's worth, I prefer Gibson to Herbert and I dislike made-up name such as `ridulian system`.

[0] But let's not get into __that__ debate.
Autonomous Vehicles – Discussion in the UK House of Lords
Sorry but your exemple makes very little sense in the real world. Because what you wrote is obvious.

Imagine now you have a switch with 50 different conditions that have nothing to do with each other and cant be reduced to a simple arithmetic operation.You'd have to test all the paths if you want a high test coverage rate.

All you can do is abstract decision making through FP or OOP(chain of responsability).