skysight-inc/HackerNews huggingface dataset:
> Anything related to privacy or security should be fully tested.

How often do you write code that's not related to privacy or security? As soon as you connect something to the Internet it's related to privacy and security.

The only situation where privacy and security don't matter a whole lot is if your code runs on airgapped devices with very limited tasks.
In Michigan we have had $0.10 deposit on beer bottles and pop(soda) bottles for a long time. It appears to extremely successful. You never see bottles littered anywhere, they are always picked up by someone in need.
Gas station garbage can a frequently sorted through for returnables.
School programs like band and sports teams will have bottle drives where they send the kids around through the neighborhood and collect bottles. It is a very successful fundraising method for them.
"Automated testing only shows its real value when you go back to change code that was working before"

end to end tests, integration tests, regression tests, etc, yeah.

Unit tests though...usually no. Often if you're making any kind of significant change, the entire code paths may get refactored away or change too much and the test will get nuked anyway.

And it's that kind of test that usually confuses people, so it's worth understanding.

A unit test's goals are many:

It proves at authoring time that the code works. It saves you the time right away of having to go through the UI or spinning up a server just to validate a function is working. It proves that you thought about specific edge cases (and if you do testing consistently, the lack of test is your evidence of unconsidered edge cases. It's documentation of all of the things you considered when writing the code. It is an example of how to use the code with all it's use case.

And when you nuke a piece of code away, the failing tests are now a guide of all the cases you have to make sure are truly no longer necessary.

If, in the future, you do a refactor of an implementation detail (so the existing tests are still valid), then that's bonus as you get green/red validation. But in practice, that is less common than all of the other reasons for testing. That's why the "I don't expect this to change" thing isn't really a reason for or against writing tests.
Author is me and I will be happy to receive comments with you fantasies about the future of product development and prospects of getting rid of NLP problems in UX development.
I gave up on expect in 1990s. It always almost but not quite worked. Is it better now?
I clicked the link just to see if I was correct in predicting that "Simple made easy" was on the list. It's on my list, and seems to be on everybody's list. It reminds me of that quote: "I didn't have time to write a short letter, so I wrote a long one instead." (Mark Twain)
Giraffes facing 'silent extinction' as population plunges
But by now the rate of creation should equal the rate of decay so even though "new" carbon is being made the amount of carbon doesn't really change.
A type system and static analysis certainly allow you to stop writing a certain category of test as you no longer need to assert that a method being passed an object of the wrong type copes with that. It doesn't completely relieve of you the need to test though as a type system won't assert that the code you're writing actually fulfils the businesses requirement that nothing can be ordered for same day shipping after 11am.
It was. It's a miracle that I got through it somehow.

Calculus was especially hard.

Linear Algebra was rather nice.
King Crimson Founder Greg Lake Dies
What's the idea behind paying 40M for the engineers? Why don't you go on LinkedIn and scoop them up? Are they building something valuable as a team?
I loved Pebble - I was a fan from the first Kickstarter. I found the devices comfortable (loved the band!) and I think it was a brilliant move to use e-ink on the watches, which saved enormous amounts of battery life. I like to wear my watch all the time (even at night) so it was great to only charge once every few days while at my desk at work.

The Pebble Time added the calendar view which was super useful and I really liked where they were going with canned responses and voice-to-text on the mic. There is nothing wrong with a company that makes a niche product - many product businesses started out doing only one thing - I mean hell look at other major watch companies (Swatch, Rolex, etc). I don't know the team personally but I'm sad to see them fold. I felt like while they did not invent the smartwatch, they introduced the smartwatch category to the world.
Magnitude 6.8 earthquake strikes near Ferndale, California
Maybe not, but this one certainly does.
I'm not sure why we keep pretending Haskell is supposed to work well. It's half prorgramming environment, half research environment. This shows in MANY ways. And don't get me wrong, the Haskell team tries, but ...

There really isn't a serious attempt to build an industry-friendly programming language with functional features and laziness as a default. You'd make many different decisions than Haskell:

- No more language extensions, you'd fix the feature set.

- Better transparency on memory growth and GCs in tooling

- It'd be easier not to generate a ton of garbage, so the GC could be designed such that very large working sets could be handled with low latency.

- You wouldn't structure IO the way the have. Modern programs have demands for many, many side effects and threading an IO monad through every place they can touch is common practice, but not useful. A reduced power version of IO that would let developers push events to an IO-enabled functional reactor would be in the stdlib.

- Monad Transformers would almost certainly not be included, preferring: http://lambda-the-ultimate.org/node/4786

We shouldn't hold Haskell as the perfect expression of functional and lazy programming. It was never meant to be and it shows. It's just the tool we have right now to go to bat with.
Yes, it is not possible to optimize (ie, prune useless partitions for quicker access) the query select * from tab where key = x. You'd need actual hash partitioning for that. The mechanism Postgres uses to perform partition-pruning (constraint exclusion) does not work for the hashing case.
Our lovely @usepanda app.

http://usepanda.com

It's a reader offering RSS and bookmarking as well as ability to view in different layouts. Got 1781 upvotes on Product Hunt.
Tried it for the first time yesterday. It is pretty amazing and the productivity boost is crazy (it's one of those tools that changes the balance when you ask if testing is worth the time or not).
> But aren't prosecutors and lawyers really a part of the general public when it comes to forensics?

In this case, no, they aren't. A better comparison would be to a general contractor hiring an electrician. A prosecutor is likely to have no more formal education or hands-on experience with forensic science. But, as professional "consumers" of expert testimony, and a motivation (professional duty) to win, you can't evaluate their scientific ignorance the same way you'd evaluate a juror's. I don't think the reason bite mark analysis lasted so long is because Judge Goodsense watched cop shows, any more than you can say a GC can't be blamed for shoddy wiring because they weren't a member of the Electrician's Local.

To swap contexts, nontechnical people who work with programmers may not be able to give you the big-O cost of a loop, but they tend to know when a programmer is bullshitting about something.

This goes to my contention that the CSI effect isn't just 'I believe it 'cause I saw it on the toob'. Education, lived experience, class, personality and other priors play in to it. In the case of criminal evidence admissibility, I think there is at least motivated reasoning as there is true belief in methods. The motivation is in part the same as with how plea deals have evolved - the current criminal justice system would collapse if trials were needed for more than a tiny fraction of cases. Magic evidence is a performance hack.

I don't disagree that ambient falsehoods matter. I am saying that comparing motivated professionals in a field with random MOPs misses a lot of the picture, and that even your MOP is going to react to ambient falsehoods they can't evaluate differently, based on priors.
Kickstarter darling Pebble shut down after being bought for $40m
Hot take: Blockbuster failed because their business was renting physical media, and then physical media went away, and it turned out that being good at renting physical media didn't give you any particular skill or expertise at running a digital video streaming site.
It's no more confusing then LDAP. First there was LDAP 1.0, 2.0, now we all use 3.0...

OpenID 2.0 is deprecated. Don't use it.

The current OpenID authentication protocol = OpenID Connect.

In the not too distant future, no one will even remember that something called OpenID 2.0 existed.

Maybe OpenID Connect should be OpenID 3.0? I think the idea was to show alignment with Facebook Connect's design...but more open. Remember, at the time Facebook Connect provided some good data--it was a massive user acceptance test.

IMHO, the blame lies with the OIDF for not delivering this message. OpenID Connect has been final for 4+ years. What's taking so long? Maybe it's not in the interest of the OIDF's controlling board members to promote this distributed identity infrastructure? MSFT wants you to use Azure AD. Google wants you to use their IDP. Maybe they don't want to promote until they have product ready? Stay tuned... I think when it's in the interest of the current finanical backers of the OIDF to promote OpenID Connect, no one will remember that old OpenID 2.0 thing.
Wow, thats just sad. If the only way employees at your company can get their performance noticed is in a yearly performance review, you need a better job.
you're right. But testing bad code is really really hard. So usually tested code is somewhat better overall, just because it's the easiest way to do it.
Not too special to explain. We are building a network of creatives and artists working and traveling together while solving social challenges through creative thinking and arts. Working with different associations and local artists for a month on particular cultural matters.
Macdown: Open source Markdown editor for OS X
I don't think it's just engineers. The article mentions IP as well. So they're buying all that as a package.
>Just seems short on substance, basically "feedback is good".

Which isn't unexpected because the company's webpage (http://helprace.com) says they sell a customer "feedback portal".
I rarely write code that connects to anything, so almost never? There's a lot of code that's not written by web devs.
How do you differentiate a product and a company? There are obvious examples like most of the stuff on Shark Tank (i.e. cookies, jam, clothing, food products). However, I find it hard to think Pebble was just a product and not a company. Doesn't every company start off as a product? Apple started off as Apple I, Google started off as search and Snap started off as a photo sharing app. By your definition, a product is something that can be superseded by a competitor? Isn't that every company ever? My guess was, Pebble believed it could become a company and not just a product... but Apple had other plans for them.
It is a great tool. When I got a bigger hard drive for my wife's laptop, I was able to use Clonezilla to save her old hard drive and migrate it to the bigger one.
Comparing Haskell and Node concurrency performance
The $40M is for Pebble's assets and intellectual property. They're hiring the engineers on the side. Sometimes acquisitions are done this way so the acquiring company can avoid the outstanding liabilities/debts of the company being acquired.
> did you (or could you have) develop that lisp interpreter on the purest TDD approach

Yes, that's what I meant by "fully test-first". I was following along with Paul Graham's The Roots of Lisp[1], so I had a convenient set of pre-made test cases. I would start by copying his examples into a test case:

it('exec atom on a symbol is true', () => {
var symbol = Symbols.get_symbol_named('foo')
expect(exec(empty_scope, [natives.atom, [natives.quote, symbol]])).to.equal(true)
})
it('exec atom on a non-empty list is false', () => {
expect(exec(empty_scope, [natives.atom, [natives.quote, ['a']]])).to.equal(false)
})
it('exec atom on an empty list is true', () => {
expect(exec(empty_scope, [natives.atom, [natives.quote, []]])).to.equal(true)
})

And then write my code:

natives.atom = new Native(function (item) {
var i = exec(this, item)
return (i instanceof Array && i.length == 0) || Symbols.is_symbol(i)
})

Once I got through the paper that way, I had a complete Lisp interpreter working, and wrote a few small programs in it with no trouble at all.

> In my experience, problems that require writing the tests first normally require writing all the tests first. If you start solving only a subset of them, you will have to rewrite most of the code once you start looking for the other tests.

This has been my experience as well. As I say, this is the only program I've ever written fully test-first; I think it was only possible because I already knew exactly what the inputs and outputs were going to be (having them well-specified by virtue of being a Lisp) and which ones I needed to implement to be able to get later ones working (with the help of the paper).

Generally I find it's not possible to work this way; my usual approach for solving problems where the code isn't immediately obvious is to write (and generally rewrite) in parallel:

- A set of usage examples and/or documentation, to clarify what exactly I'm trying to do and make sure the interface makes sense.

- The actual implementation (or, in early stages, some pseudocode).

- The tests (if any), to check that what I've written actually works. Often these are the same as the usage examples.

Frequently questions raised while writing one of these will influcence the others, often significantly; often I'll only think of an edge case while I'm writing the code and then have to go back and add it to the tests, or realize that the code could be simplified by changing the way the API works.

[1]: http://www.paulgraham.com/rootsoflisp.html
First of all, while BBT may sweeten the track, it is still filmed in front of an audience; people really do laugh at the jokes.

I never really understood the idea that this is meaningfully different from a canned laughter track. A live audience applauding because the applause light goes on isn't any more authentic than a editor mixing it in. It's just easier to make the end product sound like it flows realistically.

And while there may not be a "laughter" light, the audience knows that they're expected to laugh at the punchlines. Just like they know to "ooh" and "aww" at all the right moments too. In fact the crowd warm-up often tells them to make sure they laugh and laugh loud enough for the microphones to pick it up.

--

In either case, the reason people bounce off of laughter in the mix is because the jokes don't land. It's the fact people would find it funny that people complaining about the "laugh track" perceive as artificial. Not because the audio is stilted enough that someone can recognize it as edited in after the fact. Getting pedantic about the colloquial use of "laugh track" or "canned" is generally irrelevant.
Everything in moderation.
Here is my experience, https://twitter.com/FrantzMiccoli/status/476242261102329856 "After 15h on HN front page: 14k views from 4k visitors on my GitHub and 3k visitors to the linked article"

You can see similar figures when traffic comes from some important Reddit subchannels.

I don't have any answers for the rest of your questions.
I agree. That, and they alienated their customers with exorbitant late fees.
UWash and QCOM Engineers Generate “passive” WiFi at 10,000x Lower Power
Video Q&A with Peter Norvig on A.I., Machine Learning. Live now
> The developers at reVive, which are normally focused on making the Vive work with Occulus exclusive titles, released a patch in under an hour to remove the restriction.

Good. I was about to say this seems like about the easiest thing in the world to crack given that the CPUs are otherwise almost entirely compatible, all that would be required is hooking the get processor function.
there was value to the building experience, the sense of accomplishment, the spatial reading

Toys like this are always so much more memorable--and meaningful.

I made a list of gifts that help people build, hack, create, explore etc [1], would love feedback from HN.

[1] http://wanderkind.org/
>> several years of Netflix dumping VC cash into a fire for good content.

I can't say I agree with much of your comment, I find much of their content decent enough, but I'd never thought about the VC cash thing before. I don't know how much they burned, but it's interesting to think the only reason they were able to pull this off is because they were able to lose a ton of money this way. Blockbuster being public at the time wouldn't have been able to? (don't know how true either of those things are)
GStreamer and the state of Linux desktop security
Open API Initiative – Vendor Neutral API Description Format
I'd quit the moment I was told they need to have something more than just a "share your desktop".

The hell is this, really...
Why this trended up is beyond me. It's thinly veiled marketing supporting an argument for their own products.
How Sharing Really Is Caring with ElectricAccelerator Shared JobCache
4k UHD Trial of Planet Earth II in HDR
I believe the implication is that most of the cashiers will be completely replaced before it is worthwhile economically to try to reduce the number of cooks.

Automats have been around since 1897.
Amazing the things a quick hook can do, isn't it?
Well lets say he sold for 40 million (for IP), and also not accounted for has 50 million in debt, but 100 million in boxes of watches.

One could argue that the debt + more can still be paid off by selling the existing inventory. It may be a bit hard to get full retail for an "old" product though from a "dead" company, so who knows.
Using “Story” to Enhance Personal and Professional Branding
Captcha doesn't reset after first error message about server capacity, so when you click launch again it says captcha is wrong.
> LinkedIn notifications within the Windows action center

Err... I'm not sure I like the sound of this. Isn't this just for application updates / system stuff?
Here's a crazy idea I've been thinking for a long time. Is tthere a way to artificially create a way to trap sunlight and turn it into gasoline in an artificial process. Basically what earth does in thousands of years but with human ingenuity we make it a lot faster and free reproducible in other countries.

I see the core problem as. We already have great gasoline infrastructure. It's very energy dense. We just need to learn how to make green gasoline.
It was an extraordinary claim in terms of practical importance but it should only be scientifically extraordinary claims that require extraordinary evidence. We take particles at normal temperatures, accelerate them in EM fields, and fuse them all the time.
including moderation.
For the record, it starts at: December 08, 2016 at 12:00 PM Eastern Standard Time
In the last company I worked, we used people completly unrelated to our field.

They were cheap and since they didn't know a thing about the software, they would mindlessly click through the test-plans and find many bugs.

Problem with them were, that they had a "half-life", when they learned too much, their bug-finds would decrease, because they would get more careful when using the software.

Often we would simply get 2-3 students of a non-technical field and replace them with new ones afer 1-2 semesters.
What I mean is it's an affliction that develops in severity over the years, but if you look back it was never not there, it was just in a much milder form.
Don't be the next Blockbuster, Borders Books, or AOL, buy our customer feedback product!
Very superficial analysis. The article goes on about a bunch of generic things but it doesn't really address the particular issue outlined in its title: Why did Blockbuster fail?
Inside the NYPD's Attempt to Build Community Trust Through Twitter
2017 Africa Finance and Investment Forum
While Circle Pivots Away from Bitcoin, Blockchain Doubles Down
There are a couple of reasons why you should/ could write tests:

- for catching regressions in the future

- to verify that your code works. How else would you know that your backend service reacts properly on some edge condition

- as documentation

- as a kind of quality mark, for instance to be able to pass a code review or when writing code for an external party

Unfortunately the last reason is also the most useless and still it is the one that seems to be the main motivation for many big enterprise developers.
> I don't know this guy, so I can't speak for him in particular.

Literally the second sentence in the article.

> Kent Beck, respected authority, creator of Extreme Programming, TDD and writter of several great reference books, mainly at the great Addison-Wesley edition
"Supported" in so far as you could basically roll your own implementation, having it managed by the engine is massively more useful and easier to support and setup. A lot of things are supported if you're willing to bodge it together like that.
That one actually sort of made sense, considering if you go along with the technology described.
Recognizing Speech for Fun and Profit
Built This in One Month – Dollar Lean Club – Have Time for Feedback?
No love for fsarchiver?
http://www.fsarchiver.org/
Show HN: A tiny tool for loading 3D models in your browser
Given any sort of control on such a project; I'd push as hard as possible to outsource that component and make it someone else's problem and try to stay as far away as possible from the whole show.

Making a SSO, even with nice friendly software (hint: none of it is, it's really really complex and easy to fuck up, and the stakes are pretty high) is a horrible, horrible, experience and if you've been through it you'll probably never want to do it again.

I've done it twice, perhaps I was just unlucky but it'll take a lot to convince me that the smarter plan isn't just to outsource that whole requirement instead of trying to build it / OSS it in house. It's pretty generic and can be a 'black box' on your arch diagram, your time is probably better spent building business specific things instead...

If I was absolutely forced to pick something to run on prem for IDP/Fed/Entitlement, I'd get the pingidentity onsite and have them build it for me (trust me, this will be cheaper than trying to do it yourself even if their day rate makes your eyes bleed).

I'd quit before seeing the OpenAM mgt console again.
Don't worry, I'd trust LinkedIn with access to anything. They have a pretty stellar history of being on the up-and-up.
Jackson (in Java) gives you pretty much the same experience, albeit I'd recommend a few annotations on your object. And you can read/write arbitrary JSON into JsonNode or Map<> objects.
what's wrong with expect spawning ssh??
That's rather extreme.
I do believe this is my highest rated comment on HN so far.
A Succession Library for Java Akin to GitHub Scientist
A new operating sounds more fun and is better from the learning point of view :-) And hopefully we get a new better OS for phones than iOS and Android ;) My favorite was MeeGo by Nokia.
This Everyday Tech Sexism Must Stop