skysight-inc/HackerNews huggingface dataset:
You can fix your interface bugs early in the development process with the aid of a compiler, or you can fix them later manually at much greater expense. When the "tax" is so much cheaper than the consequences, not paying the tax is crazy.
I think TDD (or rather, unit tests):

1) ... over-emphasise the importance of reduced coupling, and can actually increase the chances of integration failures. Why? Because components are tested in isolation rather than together, but are still considered "tested" - especially when using stubs and mocks. I've seldom seen mocking used well, it almost always over-specifies implementations.

2) ... increase the tested "surface area" of the code, making it much more costly to modify in a way that changes the "surface area". When two bits that normally only ever face one another are tested on both sides, you now have 4 places to update when you move functionality between them instead of 2. And that's just for a small refactoring.

3) ... encourage a spurious modularity that increases the overall conceptual complexity of the solution. When every dependency needs to be replaced for testing, they become parameters, one way or another; and thus the code becomes over-generalized and over-abstracted, more removed from the work it's doing and more concerned with the bureaucracy of communication and coordination. It's this spurious modularity that's the cause of Enterprise Java FactoryFactories and friends.

That sounds quite negative on unit tests, and actually I'm not negative at all. I think code can be modified in more than one way to accommodate tests; poorly, by introducing single-implementation interfaces everywhere; or better, by reducing the number of types of interfaces, converting control flow into data flow, and generally adopting more functional and higher-order compositional architectural patterns.

It's hard to get more specific without talking about examples, though, so I'll stop here.
My anecdote (which I suspect is common):

When I was brand new to embedded development I spent dozens of hours struggling with a bare ATMega8 before finally getting an LED to blink. It was all simple stuff, but overwhelming when you're in a new and unfamiliar environment.

After playing around with that for a while I got an Arduino, and was able to blink an LED in minutes, and there was a clear path to move on to more sophisticated things.

I completely agree that the Arduino IDE is horrible to use, but it makes up for that by making it easy for beginners to get started.
Turbocharging Analytics at Uber with Our Data Science Workbench
Everybody keeps mentioning Bayer. Have they had any innovation in the aspirin concept or is their marketing that effective?
Apple Can't Make Qualcomm's Life Much Worse Gadfly
Right, but most of the statically typed code in the world is written in C++, Java, etc. If you're presenting Clojure to your organization, the choice isn't going to be Clojure vs Haskell/Idris, it's going to be Clojure vs Java. The sort of boosters for static typing in this domain are the AbstractSingletonProxyFactoryBean people. I think defenders of static typing have at least some burden to defend "actual existing type systems" rather than immediately falling back to "well, in Haskell..."
Well, I guess I need to move all my documents out of Google Docs. Suggestions for alternatives?
> A statically typed language typically asks us to turn off our brain and apply type verification everywhere

No, it doesn't.

People are not using Haskell because they want to turn off their brain.
If someone gave me that test, I'd implement the code as "return input;"

Forget that you, a human, thinks you know what an ISorter should do. What do the tests demand that you do?

Doing TDD, the goal, when coding, is to write the minimal amount of broken code that makes the test pass. If you passed me {4,3,2,1}, then my code would be "return {1,2,3,4};". If you wrote a second test that passed me {6,5,4,3}, my code would be "return (input[0]==4)?{1,2,3,4}:{3,4,5,6};". You've got to write a test that makes me actually code what you want. I use this adversarial approach even when I'm writing both the test and the code.

Usually the first test I write if I'm starting with a blank slate, is to pass null and check that I get a NullPointerException. That gets the class created. After that, its got to be randomly generated data.
It's dependable.
RIP Flight Search: Google Shutting Down QPX Express API in April 2018
I have not found any material on what access, if any, Google will offer startups and smaller companies to the ITA/Matrix DB (flight, airline schedules and fare data) going forward. Needless to say, this is disappointing on many levels.

Email just received from Google:

Dear QPX Express API Customer,

After careful consideration, we've decided to shut down the QPX Express API as of April 10, 2018.

How this affects you

After April 10th, you will not be able to access the API and will no longer be charged for this service. Until then, you will be charged a reduced rate of $0.02 per query for any queries beyond the 50 free daily quota.

Next steps
You don't need to take any action. However, if you are actively using this product you may want to find an alternate solution before April 10, 2018. If you have any questions about these changes, please don't hesitate to contact us at any time.

Sincerely,
The QPX Express API team
Tests allow you to easily refactor implementation and allow you to add features without worrying as much about breaking the existing interface.

However, they're terrible if you want to refactor your design and correct problems with the interface itself. Tests freeze the interface. This is really good for whole classes of problems but terrible for other classes of problems.

The debate is going to continue endlessly as those on either side are looking at it from entirely different frames of reference.
An idiom by Xi perfectly describes Zuckerberg’s frustrating China courtship
> Getting someone to look over your stuff and looking for spelling errors sounds like a simple and easy fix doesn’t it?

There are a lot of people who don't speak English as native language. I, as a non-native speaker learn about very subtle rules of the English language all the time, where the author often explains that even many native speakers are often not aware of these rules and thus write in their own native wrongly. It already occurred multiple times to me that I asked, say, 5 people at the floor of the institute where I work at, about some subtle grammar details in English. All of the persons who I asked were much more fluent in English than me (though not native speakers), but nobody could answer me the questions. I even sometimes confuse English native speakers with my questions about subtle details of English spelling, grammar, or word usage (side remark: it is my impression that native speakers of German are often much more aware of all the subtleties in their native tongue than native speakers of English).

So it is really not easy (even if you have English native speakers to ask) to find someone to proofread your English texts.
"Let me randomly filter these and hope for the best" is the essence of your suggestion for screening candidates.

It doesn't sound very good. It sounds like you should be investing more time into interviewing more people instead of throwing away folks who could excel, but fail an arbitrary heuristic.

That is to say, instead of throwing away 19 out of 20... don't throw away so many. Obviously you don't need to call in all 20 people, that would be a huge waste of time. But your approach seems too sensitive to the heuristic for the tradeoff of saving a few hours of time to find a person whom you'd hopefully employ for years. I wouldn't take that decision lightly, especially with a small company, though I suppose you can always let them go if it doesn't work out.
Yes, my bad :)
Good thread. What was the school affiliation?
JavaScript Improvement, WebAssembly, SharedArrayBuffer&Atomics in Microsoft Edge
Aspirin is known to cause temporary mild tinnitus at high doses but as far as I'm aware it has not been solidly proven to cause permanent tinnitus.
Stop SSH Attacks by Eliminating SSH Keys
Ruby allows it. Ruby allows a lot of things. So does C++. So does JavaScript. So does Java.

Deciding to do it is a question of taste.
There are a few automated scripts that do this... what was it, 98 lite or something like that back in the day... need something similar for windows 10.
Very cool looking game!

What's the purpose of the node server in the code (as opposed to just opening the HTML document in a browser)? Do you have plans to use websockets or something to add multiplayer?
Make sure you have separate backups too. If Dropbox deletes a file from your account, the client will delete the file from your computer!
Google Patents Public Datasets: connecting public, paid, and private patent data
No Trump jokes? I'm bigly disappointing. So sad.
I have been using Software called BoxCryptor for many years. Quite convenient.

Containers lime VeraCrypt would be quite inconvenient, but work if you don’t make changes on many computers at the same time.
I don't know for aspirin but the method of intake may not matter: e.g. non steroidal anti-inflammatory drugs such as ketoprofen induce aggression of the gastrointestinal system in ways unrelated to ingestion, hence why on the short run you're encouraged to eat (which will somehow dilute the natural gastric acid) right after having taking the medication (which takes ~0.5hrs to reach peak blood concentration[1]but falls gradually afterwards), or on the long run you may be encouraged to take proton pump[0] inhibitors, which come with their own side effects. (Disclaimer: not a medic, only remotely a chemist, but had to deal with this for extended durations).

It's an awfully complex equation of chemical actions and risks vs benefits. Be safe, nothing about this is magic and can have serious consequences.

[0]: https://en.wikipedia.org/wiki/Proton_pump#In_humans

[1]: four doses of ketoprofen: https://www.drugs.com/pro/images/c2c99853-1268-4998-a44b-2bf... (from https://www.drugs.com/pro/ketoprofen.html)
As another data point, RHEL 5, released two years before Windows 7, apparently has paid support available through 2020.

I agree with you though that migrations increase in pain the longer they're put off.
On communist subway station names
Any encrypted disk image will work this way. It doesn’t require anything like homomorphic encryption, just a bit of metadata and key management.
There is generally a recognizable difference between native-speaker-incompetence and foreigner-learning grammar errors/typos
Will the EU Data Protection Regulation Put Whois at Risk?
Is that you Peat?
Kaggle Data Science Survey 2017: Worldwide Preferences for Python & R
I've read that Kim Dotcom as no involvement with the site anymore and it's been taken over by a combination of the NZ Gov't and Hollywood. He says he doesn't trust it. Whether he's just fuming or it's a legit concern of trust is up to you to decide.
I work faster on win7. Why switch
Tu quoque. There's plenty of evidence, just like there's been plenty of evidence for years that Hollywood is full of predators. In fact, the same people who saw it as their job to not report anything about the Hollywood issues to you see it as their job to not report anything to you that might make it look like Democrats cheat on the voting.

Everybody knows Hollywood is full of predators. Everyone knows Democratic precincts have lots of dead voters. The only people who don't know are people who are going through a lot of effort to ensure that they don't know.

(Also, in the next couple of months it seems decent odds that "Everyone knows the Clintons are corrupt crooks" is going to be coming out in force. Everyone has known, except those who have all but deliberately sought to keep themselves in the dark.)

To say that there is "no evidence" means either A: you are in a filter bubble several feet thick or B: you are deliberately keeping this information from yourself.
Yogurt Containing Lactobacillus gasseri Mitigates Aspirin-Induced Small Bowel Injuries: A Prospective, Randomized, Double-Blind, Placebo-Controlled Trial.

https://www.ncbi.nlm.nih.gov/pubmed/28052291
Perl definitely can be "write only", but it doesn't have to be as long as you don't try to be too clever, but I could say the same about most languages. I wouldn't want to work on a stack that was centered around Perl, but it is fantastic for quick one off scripts or relatively simple file processing tasks
I don't know if it's fair to say that they are "randomly" flagging items - I'm guessing they're using a similar set of tools that they use to algorithmically determine if, say, Youtube videos violate their TOS.

Probably a recent update / bug increased the number of false positives more than expected.

Not that I'm sympathizing with Google - just seeing if there's a less click-baity reason for what's going on.
No. AES encrypts blocks (I think 256kb?). So that's the only thing you have to sync.
I recognized most of them, but only because I knew what they were supposed to be. I don't think I would have otherwise.
Nice work. The code itself is clear and concise also.
Yea, definitely not for everything. It's more of a complement to the rest of the test suite and also verifies that the documentation/examples in code comments are still accurate.
IBM Is a Platinum Sponsor at API Strategy and Practice Conference
Thanks. Sent you an email.
Dropbox only syncs the difference of the encrypted files. Truecrypt uses by default AES which encrypts blocks of size 256kb. It's almost as efficient as syncing without encryption.
And then they would come for their state subsidies.
Color Stories: Celadon, the Unseen Green
For a hackathon a couple of years back, we wrote a module for Hubot for Slack integration that was conversational. It was absolutely incredible how difficult it was to get Hubot to have a simple scripted conversation and remember any context about how much of the conversation had already taken place (I think because it's supposed to be context-free?)

We wound up using Hubot-Brain (Redis brain) as a place to build and store the context of the conversations that were taking place. Each time you entered a statement that triggered a new conversational context, Hubot would record the context that you triggered with a tag for your name.

The goal was actually to have a robot that you could use to help people form teams at Hackathons. The event I was at was at an unfamiliar college, where I worked with some people I hadn't met before, who didn't share any languages experience in common with each other or myself.

The organizers created a Slack for the event organizing but nobody really used it, and we thought, wouldn't it be cool if everyone who was in the same position as we were could have somehow formed teams in an organized way, without having to go through the awkward experience of having to walk up to people, find out what you have in common, ... and then saying goodbye and walking away if it turns out that you don't have enough in common to reasonably be able to start working together?

We did wind up making Hubot conversational[1], but I wish we had known before we started that there were absolutely zero extant "conversation-style" plugins for Hubot and we were going to have to build that completely from scratch. Would have been great if we had something like this to start with (we might have been able to finish in 24 hours!)

[1]: https://github.com/kingdonb/hubot-malta/
Most schizophrenics smoke a lot of cigarettes. Though not well understood, the nicotine may act as a general stimulant and help with the disease. It's an active area of research right now.

It's a very strange site, but it may be a good jumping of point for those doing research in to the link: http://www.schizophrenia.com/nicotine.benefits.htm
> It doesn't if the systems are well-designed sytems, comprised of loosely-coupled components

I've been going down a similar line of thought. But I went the other direction. That perhaps in "poorly designed" systems where there is lots of coupling, static typing at least gives you the "maintenance" benefit that is one of the bigger justifications that the static type apologist tends to give. You actually hear this a lot: "in large systems, static typing is a must..."

So it's interesting to me that you're going the other way and saying that actually in big, messy systems that static types may hurt you. That's not a common position.

When I walk through some of the big problems in "poorly designed" systems it almost always comes down to coupling: I can't touch one part of the system without having an effect on other parts of the system.

Interestingly, Rich Hickey criticizes the common static typer's idioms (like pattern matching and ADTs) as coupling. And he's right. What always surprises me though is that the static typer doesn't disagree -- they look at this coupling as a feature! They usually say something along the lines of "I choose static typing because if I change my Person class, then the compiler reminds me of all the places in my code that I need to go fix." What's remarkable about this is that it's not a reminder...it's an obligation that your choices plus the compiler are burdening you with: you must go update all those places in the code. This is the very definition of coupling.

There is a way to architect code such that you don't have to revisit 100 places in your architecture when some new data model decision is made/discovered. There is a way to build systems wherein you only have to touch one place in your code when some new feature or data information is needed.
You're neglecting the vulnerabilities associated with full abstraction failures: http://lambda-the-ultimate.org/node/5364

Approaches like your (2) are unfortunately fraught with easy vulnerabilities.
Customers know the name/quality, and you're provided support and advice from the franchiser to help grow your business.
I'd rather say: It's like the default set if knife/fork/spoon set out at the table. They might be taken away or replaced based on what you actually end up ordering. But for the most part they will work out.
The question becomes what you optimize for - optimizing for speed picks you the Ferrari, optimizing for gas mileage gets you the Prius.
If you refuse to make your app installable on your own OS that half of the world's desktop computers are running, you don't need to wonder that it is not gaining market share.
I must voice concerns regarding this product. Just took a look at the Notepad++ plugin (https://github.com/wakatime/notepadpp-wakatime), because this is something I know a lot about. To begin with, it sends filenames to the mother ship instead of just the programming language. I would consider filenames to be sensitive information giving a very good idea of the project you are working on...

Also problematic is the fact that plugin is doing almost nothing; instead it downloads Python from the official place, downloads a whole Python project (called CLI) and executes it. Also, there's an automatic update mechanism in place which updates the CLI every now and then. It sounds as a recipe for a disaster waiting to happen.

Edit:

I guess what I've said applies to every software with an auto-update function and that's of course quite the norm today. As ztratar pointed out, the usage of SSL provides a decent level of security. I still would wish for the user to be notified in some fashion. Also, from what I understand, the WakaTime CLI seems to have an option to hide filenames, it's just not changeable from the Notepad++ plugin.
So I'm really really biased here. But as a programer with (mild) dyslexia, I have to say I think it's one of the best professional fields for this. We have linters, syntax highlighting editors, pretty printers, compilers and a whole suite of tools to make sure typos never go live.

No other other field has these tools, and high paying professional work does in fact require "typo free work" to make it anywhere, in almost any field.° Sure in plenty of fields you can try to paper over this with process - but this just means as a dyslexic your promotions are limited by the caliber of your secretary, PA, MA, editor or whatever person fixes your work in your field. You get a good one you flourish and bad one your career dies.

As I've moved to management I've had to delegate every piece of writing which is a frustrating experience, and that writing I end up doing usually ends up passing before multiple peoples eyes before being sent -- even for a simple email. This is not easier than coding - it's way harder.

° Spelling and grammar checkers help, but really are no where near as good as linters and all the other tooling.
I built a self-build ATTiny85-based dev board[1] with a bunch of tutorial projects[2] designed for time poor people, most recently an EMF detector[3] for Halloween. Unless you include the LPC810, it's pretty much impossible to do anything similar on ARM.

A lot of people seem to think everything needs at least a Cortex-M0 but in reality, an AVR or PIC is more than enough for most projects.

There's also a lot more accessibility with through hole projects. Sure it's larger and more expensive than buying a pre-built board, but for most beginners through hole is way more accessible than surface mount.

[1] - https://rawhex.com/

[2] - https://docs.hidiot.com/

[3] - https://rawhex.com/blogs/news/ghost-hunting-with-the-hidiot
I disagree. It should treat unrecognized devices as any device. In other words, it shouldn't remember devices. Because you know, privacy.

The only thing I ask these services is that they won't let anyone in who doesn't have the right password. I think it's not too much to ask.
God, what a terribly insensitive comment. Leaving the workforce to care for family is not "check[ing] out for 24 months."
Well, if it's any consolation, right now all their college football programs suck, and suck hard.
Seems like sticking our heads in the sand to me... the fact that it's a shitshow should be alarming and we should all be discussing solutions, not trying to avoid discussion since it will "create controversy". That's how authoritarians win, by being the biggest most intimidating loudmouths in the room.
We look forward to adding those (just created an issue). They are quite decoupled as of now, so shouldn't be much trouble.
Industrial Digitization could lead to“£455bn over 10 years”for UK Manufacturing
Is there a possibility for remote work? Even part time or lower paid would help to ease the stress of long term outlook. And frankly, as someone who have been and done that, being at home spouse can be frustrating/isolating/etc and having something outside, some goals and duties to focus on, helps a lot. I mean, if you are frustrated from discrepancy now, it will got only worst. So having a goal, part time job, small business (even if it earns no money) helps really a lot to deal with all those frustrations.
Why is that people don't run a spellcheck? It's rare for me to see even official internal documents without several spelling mistakes even after they have been approved for publication. Just turning on the spelling checker in your favourite word processor, editor, or even web browser will go a long way toward catching most typos.

The grammar checker in Word is also worth a try. Did you mean "P. G.'s maxim" when you typed "pg's maximum"? :-)
As a webdev, a significant portion of my time is spent in the browser's devtools - debugging or styling components. That would be a great addition to the product.
Does anybody has any experience with the mentioned nephoscale.com?
I would guess pooling of resources for marketing, supply chain, and name recognition would all seem like upside for franchises. Though it does seem like being a franchisee does come with a lot of baggage.

Though I've never try to run a restaurant either solo or as a franchise, so this is clearly all speculation.
that's what i was implying
Amazing how basically all of these restaurants are complete crap. NYC is the only place I can travel and daily eat as healthy as if I am at home.
In the US and UK one can get ~80mg (75, 81) OTC, at any drug store / chemist.