skysight-inc/HackerNews huggingface dataset:
Aust. Government has been 'betting' on coal too long, the workers that pose to lose their jobs simply asked to be retrained in solar industry, were promptly ignored.
I generally try to keep my HN comments positive, but this is total Bullshit, yes, with a capital 'B'.

Unit tests are not albotrosses around the neck of your code, they are proof that the work that you just did is correct and you can move on. After that they become proof that any refactor of your code was correct, or if the test fails and doesn't make sense, that the expectations of your test were incorrect. When you go to connect things up after that, and they don't work, you can look at the tests to verify that at least the units of code are working properly.

I am no TDD fan, but I do believe that writing your code in a why that makes it easy to test generally also improves the API and design of the entire system. If it's unit testable, then it has decent separation of concerns, if not, then there may be something wrong (and yes this applies to all situations). I use this methodology for client/server interactions as well where I can run the client code in one thread and the server in another, with no sockets, to simulate their functioning together (thus abstracting out an entire area of potential fault that can be tested in isolation from network issues).

The article/paper raises good points about making sure that the tests are not just being written for the sake of code-coverage, but to say they are useless is just sloppy. Utilize the testing pyramid [1], if you adhere properly to that, everything about your system will be better.

I have a serious question, given that this was written by a consultant, is it possible that tests get in the way of completing a project in a timely manner, thus causing a conflict of interest in terms of testing?

[1] - http://martinfowler.com/bliki/TestPyramid.html
Any recommended reading to describe the bottom-up approach you are taking?
The article top recommendations are strong:

* Keep system level integration tests [for up to a year].

* Keep unit tests that test key algorithms for which there is a broad, formal, independent oracle of correctness, and for
which there is ascribable business value.

In my experience, an overarching test layering strategy works best in providing maximum coverage for minimum friction: Add tests bottom-up, at each layer testing the core functionality of that layer, using directly the layers beneath. The most valuable tests are the system-level tests, which, hopefully, exercise a large swath of the underlying codebase. This reduces to the author's recommendation for most cases.

Some people are proud to ditch UnitTesting[TM] to avoid the unit test cargo cult, in particular, the proliferation of "decoupled" tests via overuse of mocking libraries. There is very little value in "unit tests" that reproduce the code flow via mocking asserts, alas a lot of codebases that are heavy on unit testing degenerate into gratuitous mock fests, which become incredibly onerous to work with.
Part of the problem was(and still is) that it didn't have very many good use cases. For the problem of moving heavy stuff around a forklifts, cranes, and carts performed much better. Not to mention the potential for serious injury to the user if they make a mistake or fall over.
ARM Cortex A73 Unveiled
Could you explain why you believe the presence of a NULL in the database necessitates a NULL pointer somewhere in the code?
I haven't used it, but I've seen presentations about Disco [1] a map reduce thingie in erlang with python. I wrote about half of a map reduce thing in perl, although I hadn't really gotten the network part down before I stopped using it.

If most of the workers can read input on standard in, and output to standard out, it's pretty easy for a manager process to set those up as pipes or tcp sockets and then exec the worker. For multiple inputs -> one output, or one output -> multiple input, it's a bit trickier, but you could probably still open the sockets and just pass some information to the worker about which sockets are inputs, and which are outputs -- the worker may need to do fancier I/O handling (select and what not).

If you need to handle transient failures of workers and restart processing, or cache output, etc, then that's a bit more work.

Also -- do consider if you can do it all on a single box if you just get a really big box. You can stuff a _lot_ of memory in a single box now, and save a lot of hassle.

[1] http://discoproject.org/
Solid post. Echoes many of the things I've been told by very seasoned lawyers in the field.

Tag along clauses for corporate investors are advisable to prevent them from blocking acquisitions etc.
Exploit Windows 7 with Sticky Keys
Profound and to the point! I don't want my kids to go to the factory but I don't have the time/skills to school them myself. What should I do?
I have my tabs set to 3-4 spaces - nothing is more annoying than opening in a program with a long default tab.. spaces preserve the format better across systems IMO
I believe the author's intent is if you read a null value out of a database, how would you represent it in code?
What Happens to the Brain During Cognitive Dissonance? (2015)
Mind-reaching machine could soon turn your secret thoughts into speech
Study: MRI scans show schizophrenic brains attempt self-repair
Surely a flat file would fix that though? If it's just ABS it should file quite easily. The tool is far from useless.
I believe you might be missing the key ingredient of prototyping: iterations.

From all the success stories in the industry, 3D printers combined with competent designers enables very tight iteration cycles, and makes the interations more fulfilling to test :)
probably because they wanted to build a system with no learning curve.
Choice means companies can choose to be walled gardens, and open source aficionado can choose to implement things with openness in mind.
It'd be really neat to see an amazon lambda serverless version of this.
If you're not using two-argument open() in Perl 5, you deserve what you get.
Well since America wasn't directly involved until late 1941 (after Pearl Harbor) I guess... yes? Up until then it wasn't really a world war yet.
> This is filibustering on a whole new level.

That's the idea. The only way you get anything passed at the national level is if most everybody agrees it should be passed at the national level. If you don't have the votes for that then you do it in your own state or not at all.
I wish I can concentrate on Tamil too. The thing is I need to make some kind of money to keep going so I had to go to the paying markets.

I think my product is going to be superior in some ways than existing products.
I also built a Messages.app companion app that 10.11 largely broke: https://github.com/kethinov/BubblePainter

Still technically works if you disable SIP, but that's a big ask just to be able to use my little toy app.
Yes, that.
Keymaster is a Key Management application that runs "ontop" of TrustZone this doesn't mean that TrustZone or even QM's (hardware) implementation of TrustZone is flawed.

It's more likely than not just a flaw within Keymaster itself, or within the Trustzone Kernel which means that this can effectively be patched, this isn't the first time vulnerabilities like this have been identified[0] (same author) and previous issues have been patched.

For anyone who wonders TrustZone is a Trusted Execution Environment (TEE) technology for ARM CPU's the more known equivalent is probably Intel's TXT, it's not something QM has (solely) developed internally and an underlying issue with TZ can affect many more SOC's than just QM's (since AMD also uses TrustZone[1] this could potentially also affect desktop/server CPU's).

My personal bet would be that this is an issue with Keymaster, or the TZ Kernel that QM has built not with TZ itself on a hardware or even microcode level and most likely very possible to be patched.

[0]http://bits-please.blogspot.co.uk/2015/08/exploring-qualcomm...
[1]http://www.amd.com/en-us/innovations/software-technologies/s...
tell us more about your grandmother's story.
No it doesn't, the secure enclave is a separate chip, it doesn't uses ARM trustzone, infact AFAIK Apple never implemented trustzone in any of their SOC's.

Considering the previous publications by this author the issue is most likely within the TZ Kernel that QM uses not in the hardware itself, previous vulnerabilities that were disclosed by the same guy/gal/singular or plural sentient entity were patched.
And they are also "executable documentation". If you as a developer want to know how to use something, unit tests can be of help.

Then, writing tests for the sake of code coverage, is like judging take a driving license exam and being judged on the streets you visited or how much gas you used. Tests need to be written with logic verification in mind.

I am deeply sad this article got upvoted. People should have a sense of responsibility when giving visibility to stuff like this.
What if satanic cultists played rock and roll from a drone and corrupted our youth?

Yes..... if a drone actually was a security risk you want an animal to deal with it?

OK, in prisons you could use it to minimise security issues, ie 'reduce' the drugs getting in.

But otherwise wtf? Take that terrorists we have a Eagle, that will probably stop you.

Idiots. Terrorists will be doing some interesting stuff in this area at some point. They are not yet.

But they are already winning, people are scared and no one has even done anything. Easiest job in the world.
Wow! That's awesome.

Where did you learn this? I'd love to read more about MTA details like that.
I complete agree on that. I was NOT arguing against good education. Education (that gives you knowledge), love (that gives you mental well being) and good habits (that makes you more resilient) are going to have a huge impact in your physical, mental and economic well being.

> which translated in material affluence 25 years later on a different continent
Yes. And that's why emigration has a big impact in improving world-wide socio-economic mobility.

But suppose that you have started your live in an already rich country. In that case that country socio-economic mobility, by definition, is what gives you how dependent is your wealth on your parents wealth.

World wide socio-economic mobility probably is quite good. As it is easier and cheaper to emigrate than ever and also because there has been a lot of growth in non-western countries. But the article was talking about North America. And in that case, as it is also true on all western countries, mobility is shrinking. In that scenario education, love, good habits are still important for your well being. But they are not strong indicators of your absolute wealth.
> but to say they are useless is just sloppy

or link bait
8% of Android users are on N, it's not much of a chunk.
But there is one other factor more important than any and muddles everything..the desire to accumulate wealth.
I think the idea is bigger than the implementation though: With enough research it could be scaled down in size and price enough to be something you keep in your closet. If everyone had these, tasks like moving furniture, or other large loads would be much easier for the average person.
An interesting thing to note WRT serious applications for exoskeletons is that they arguably offer greater potential as safety devices in the workplaces, essentially as a means to stop workers from over straining themselves, and also prevent repeated strain injuries.

I think realistically, heavy stuff will always be relegated to heavy machines. It'd be impractical in many cases to do otherwise. But to say that exoskeletons lack applications is a bit foolhardy (preventing workplace injury is a huge field waiting to be disrupted, for example).

Physical augmentation (via robotics) shouldn't just mean improving the physical condition, but also maintaining and promoting a healthy physical condition. This isn't something that is very well understood in the marketplace (both in the 60's, but also today). The biggest barrier for exoskeletons are still the exoskeletons themselves. I believe that until this idea is understood and reflected in the designs and implementation of exoskeletons, no progress will be made (in the field, and the market). Hopefully, this will soon change.

Disclosure: Work in the field (although currently for physically disabled patients, and not announced in the public domain).
Appropriately enough, I just mentioned the Baader-Meinhof effect in a discussion only a couple of days ago.
Can we all stop repeating those platitudes / tautologies please?
The problem isn't null itself, but that many languages use nullable types by default.

Null is a damn useful construct and while there may be better solutions to using a null reference they're often not as clear as using null or worth the time investment to develop properly.

So yea, I generally try to avoid null's and completely understand how they've caused a lot of problems, but I'm not willing to say we shouldn't have them or use them when appropriate.
No.

It should have been.

* Keep system level integration until requirement for system level integration change

* Keep unittests. And increase code coverage.
Any code that is not executed in a unittest will eventually break. Especially in interpreted languages.

* Obviously code coverage is not enough. But in my experience code coverage is minimum requirement. Not something to be happy if reached.

* The biz cases also need to be tested, which is usually done by a combination of unittest, integration system, system tests and end 2 end tests.
Creating JVM Language from scratch (20 blog posts)
Disco is interesting, though it seems like the multi-language support is a bit lacking. Someone wrote a Go worker, but it's unfinished and abandoned.

A pipeline processing system needs durable queueing, though. Maybe you could use the Disco distributed file system or maybe plug in something like Kafka, though I'm not sure how.
It's usually "obvious" to people who are not affected by autoimmune disease, but diet control is generally disappointingly ineffective in reality for most patients. The truth is autoimmune disease is incredibly complex and we still don't have satisfactory treatment, diet or otherwise.
The hard part is figuring out what that should look like. There are hardly any purely functional game libraries (graphics, physics, sound) so to say that an entire engine sounds horrible makes no sense. What would that horrible even look like?
In my opinion, World War II started on September 18, 1931, when Japan invaded Manchuria, because 1) the Chinese and Japanese didn't stop fighting until 1945, and 2) it had much the same spirit as the following conflicts. Admittedly, this subjective timing stuff is awful fuzzy.
Foundations of functional programming
Great! Maybe I should remove it and re-install and see if I can trigger that.
> It doesn't make sense to complain that iMessage isn't what you want it to be.

Why not? I don't know the specifics of this case, but if you are a user as well as developer that is going to release apps on the App Store and give x% of your revenue to Apple, it might make a lot of sense for Apple to listen carefully when you complain that iMessage is horrible and a pain to script around.

You really love iMessage because it is free from spam and abuse, not because it is tied-down. It is Apple's job to make it the former and avoid the latter.
I find the idea that once can just consciously decide to "take a genuine interest in" something to be entirely alien. Is this something that most people are able to do? I can direct my attention toward something, but that doesn't make boring subjects interesting.
No I think they are conflating TDD with 'having automated tests'
Three’s ad-blocking initiative could kill the internet
> they are proof that the work that you just did is correct and you can move on

Well... they should be. The number of Tests I've seen that are functionally useless is far too high.

Because what you test is much more important. I know I'm not imparting new wisdom here but if your test can't survive a refactor it's probably a) far too fragile b) poorly written and c) testing the wrong thing.

I actually would not be surprised if a large percentage of Unit Tests are useless, other than coverage stats, but I agree with you that this article is very full of hyperbole to the point of ruining any point it might have had.
If I'm writing Perl or something, I'll write unit tests just to verify the code runs in the basic cases.

I like Haskell because I can skip most of the unit tests. Integration tests are still good, and some unit tests like "confirm that test data are equal under serialization and then deserialization" help with development speed. But I can usually refactor vast swathes of code all I want without having to worry about breaking anything.

If you do write unit tests and your test passes on the first try, make sure you change the output a little bit to ensure it fails. It's more common than you'd think to accidentally not run a test.
You should try elpy-mode or anaconda-mode. You get better completion, integration with eldoc for documentation, go-to definition and much more.
Yes. You could do BDD with something like cucumber or codeception. It's also possible that the tests use a test database without mocks. You'll generally see tests without mocks or injections in older codebases where the codebase was not built with injection in mind and adding mocks would man rewriting the entire application.
The diagrams show that the human hand ends up in the "wrist" of the robotic arm. If that is too close for comfort then you could go with a fictitious MSDF Type 303 from gits [0]. But I'd rather have my arm in the load bearing, and therefor strengthened, robotic arm - for both safety and spacial awareness sake.

[0] http://ghostintheshell.wikia.com/wiki/Armored_Suit
> Do they seriously still have new carbuereuted planes?

Yes, and for example you can choose your new-from-the-factory Robinson R44 helicopter with either carb ( Raven I ) or injection ( II ). The former has slightly lower fuel consumption and longer engine life, the latter better performance.
Two styles, same elegance – The Emporialist│romanian street fashion magazine
System level integration tests are also proof that the work we did is correct and we can move on. And it is better proof than unit tests, because we aren't mocking everything. And they are far more likely to survive a large and risky refactor than unit tests.

Don't confusing testing in general with unit testing. Just use the right tool for the job. If your unit tests aren't catching a material number of bugs compared the the effort spent, compared to other testing methods, then don't do them. Unit tests have benefits such as quicker execution time, etc. - but that has to be weighed against cost.
Playing with HMDs and VR in the 90s, I came across a book that described the efect as a "virtual hangover" with effects that could last up to 72 hours, which was why AF pilots using them in training were grounded for that period.

It's not an uncomon effect for any close focusing to distort vision temporarily, especially if your eyes are tired. I visited an opthalmologist last year because of persistent ghosting at night, and it turned out to be from reading laying on my side in bed causing one eye to partially cross but not fully uncross until morning.
Tests are not proofs, types provide proofs. Tests demonstrate that the exact conditions being tested actually work. That's not a bad thing but when working with static typing and robust type systems the need for unit testing goes down tremendously compared to dynamic languages.
I really hope not. That would be kind of like saying "this pre-flight checklist hasn't failed for years, so let's just skip them before we take off."
I think it depends on where the NULL is and what it represents.

If NULL value is in a field that is used for JOIN-ing, I don't think you would "represent" the NULL value as much as you would simply have a lack of data. For example, if you had some set of results from a query that contained a JOIN on a field and some values were NULL, those records with the NULL value would not be in the result set.

If we do receive results with possibly NULL values I believe they could be either be represented with an appropriate zero value -- e.g. "" or 0 -- or with an optional type like another commenter suggested.
If I can't do "nohup foo && logout" to go home and run foo over the weekend, systemd has a serious bug, because that has been the documented and expected way to do that ever since I started using Unix.
I prefer this explanation from Herb Sutter, member of the ISO C++ committee: https://youtu.be/TJHgp1ugKGM?t=21m33s
You should remove tests that are not testing the unit in question ( or move them to another unit).

The article mentions testing X=5. Is not worth while testing.

It depends on your unit. If the unit is calculator class, then testing this simple function is may be worth testing. If the class is highly level biz rule it may not add any value. If this test is testing an parser parsing X=5 as example for X=<value> sure. You must test this trivial case as well.

Think about unittests as logs of debug sessions for this particular class that you would produce to prove a certain point about your code.

Keep them simple. Easy to understand. If they fail the failure should explain the failure.
You need to much time analysing the failure of your unittest. Redesign them and/or your code to explain failure better.

I think the author has probably seen spaghetti unittests to many times - I.e. unittests that don't follow a purpose - just trying to hit code coverage without the intention to prove a rule about the code.

also, the advise adjusting code for unittest destroys your architecture is completely wrong. The better your code supports your tests the better the architecture will be. it will be more flexible and has already two use case. The real biz case and the case of unittest. This makes your architecture more robust against change.
I guess the target market is those who have some existings systems built on top of OS/2.
Is America's Strongest Biometric Privacy Law About to Be Gutted?
Britain is the most corrupt country in the world, claims mafia expert
I am not looking forward for automated TWSS bots :-(
Thanks. I'd like to give that a try. Do you have a link to the type of model that has worked for you?
Australian Americans are #4. Awesome.

I'm drafting 'The Bushwacking hymn of the Tasmanian Tiger mother' as we speak.

The secret to great kids is:

1) Call them Bruce.
2) Give them a proper knife
3) Plenty of prawns of the barby
4) Regular croc wrestling
How do you open something without spam and abuse?

This is a massive unsolved problem.
> The problem is that assembling a system out of bags of hidden state communicating with messages isn't always a good idea

Of course, as soon as your system is socio-technical (includes people), you're rather doomed in that direction already ...
Lulz

Apparently this trait evolved as a way to keep the nest clean and safe during nursing of pups.
KeyMaster is a KMS that QM uses as such it holds (or well manages) access to encryption keys.

I'm not 100% sure if KM is only used to store "user" keys such as encryption keys for FDE or does it also has access to other keys stored on the hardware key storage such as the ones used to verify the firmware and OS images allowing you to bypass vendor restrictions that prevent running unsigned bootloaders, firmware, and OS images on the device.

That said QM's TrustZone kernel AFAIK pretty much runs as root (and somewhat even higher) so ACE vulnerabilities in it can be effectively used to execute any command with root or higher privileges regardless if you can fully "root" the phone or not.