Hacker Newsnew | past | comments | ask | show | jobs | submit | mate_soos's commentslogin

Before crying pilot error, we must all read Sydney Dekker's A Field Giude to Understading "Human Error" (and fully appreciate why he uses those quotes). Don't immediately assign blame to the sharp end. Take a look at the blunt one first. Most likely not a pilot error. Assigning blame is a very human need, but assigning it to the most visible and accessible part is almost always wrong.


I second this. This book has quite a boring cover, and quite boring "clip art" diagrams, but the message is astonishingly useful and can be applied in all situations, particulary in software development.

In hindsight it's easy to say something like "the red light was flashing to indicate the widget wasn't working. The pilot didn't do anything about it, he's obviously negiligent". At the time though the pilot may be dealing with 100s of stimuli and he doesn't know that this single red light is "the one" he should especially be paying attention too.

There's a quote about assigning blame - "Looking for scape goats is like peeing your pants, in the short term it feels pretty good but in the long term it makes you look pretty stupid."


Adding to that, "Normal Accidents" by Charles Perrow is a great read.


I can't imagine any scenario where this is not pilot error (unless you had a power failure of the airport lighting systems).


Well, yes -- but the intent of making this deeper assessment is to get at the root of why the pilot may have made the error.

Let's say we do some deep dive assessment and we find that there's several contributions (all contrived for discussion): (1) during summer, sun sets directly behind runway 28R, (2) lighting system activates at 1 hr before sunset, (3) lighting system was refreshed with LED bulbs this year, (4) taxiway C is 30% wider than median taxiway in US airports of size similar to SFO, (5) the A320 (used by Air Canada 759) has reclining seats in the cockpit and this pilot was shorter than the prior pilot for this plane.

If you had an assessment like that you could reasonably take action on some of these without waiting for a fatal accident. The action wouldn't even necessarily have to be to remove/replace/alter these things, it could even be to commission a study to see the wider impact of LED lighting or reclining seats or something. Changing the runway orientation is a very large expense, but constraining 28R use during the critical sunset period is a little less so.

If this pilot made the error, it stands to reason that other pilots may make the same mistake. If we consider a near miss as seriously as we consider a fatal accident we can still learn great things. A near miss is likely only a failure of (N - 1) elements out of the critical N required for a fatal accident.


The point is that it doesn't help to know that it was a pilot error, because a pilot is human, and humans in the same situation might make the same mistake - and the main goal is to prevent accidents, not to have accidents happening all the time and saying "it was again human error".

It boils down to:

1 - Was the "error" intentional? If so, how to prevent someone from doing it again?

2 - Was it a real error, with no intention of any kind? If so, how to prevent that someone makes it again?


That's exactly the attitude that leads to more pilot error ;)

But seriously, it's important to understand how it made sense to the pilot from his perspective at that point in time. Because he believed he was aiming for the runway (I'm gonna give the benefit of the doubt and assume he wasn't distracted with online farming). So understanding why it made sense to him can lead to actions to prevent this in the future.

Versus chalking it up to "pilot error", in which we assign blame and don't take action to prevent this kind of mixup in the future, thus practically ensuring it happens again. Because if it made sense to him, it'll make sense to someone else too. In fact the top comment says this type of mixup is rather common!


If you to treat your employees as children, you will end up with a culture of excuses. If you give and take responsiblity for both your own work and the work of helping others do their work, you will realize that excuses won't be needed. People will inherently know they are either messing up or have messed up and will volountarily ask for help from others, who will help.

Not trusting and respecting in your employees will corner them to behave like children and you will eternally (be unhappy to) be their parent. Treat people with trust and respect and expect the same. It will make for a much more happy and a much better performing team and ultimately, company.


I am a bit saddened that Vegard Nossum's work, which they used for encoding SHA-1 to SAT, is only mentioned as a footnote. The github code is at

https://github.com/vegard/sha1-sat

and his Master Thesis, whose quality is approaching a PhD thesis is here:

https://www.duo.uio.no/bitstream/handle/10852/34912/thesis-o...

Note that they also only mention MiniSat as a footnote, which is pretty bad. The relevant paper is at

http://minisat.se/downloads/MiniSat.pdf

All of these are great reads. Highly recommended.


This approach is unworkable, it has been demonstrated many times. I have not only been developing a SAT solver for >7 years (with >9000 commits) but also have participated in the SAT competition in all these years. I used to get a proposal like this a lot (thankfully, they dried up). None of them made it work. I used to work on programming GPGPUs in a professional setting, (rainbow table generators&lookup systems), so I'm not unfamiliar with their advantages and restrictions.

This approach is unworkable because: * propagation needs modification of the watchlist (or it needs to have all literals of all clauses attached, which is incredibly slow and also unworkable) * propagation is actually only about 50-60% of what a solver is doing: conflict resolution, clause database management and inprocessing takes a lot of time * propagation is hard to parallelize as you need to update a global data structure of propagated literals and then act on that * etc

This proposal will not work (and I sure it did not, if it was ever tried) and I don't understand how it got this high at ycombinator. If you want to look at good SAT solvers, look at lingeling, COPMinisat, MiniSat, or CryptoMiniSat. You may learn a lot from them. Easy starting is MiniSat. Good luck :)


> I don't understand how it got this high at ycombinator

Oh that's easy: because most of us know nothing about SAT solvers other than (maybe) what they are and that they're cool. We need people like you to teach us, so I'm glad you showed up! (A great example of https://meta.wikimedia.org/wiki/Cunningham's_Law.)


   If you want to look at good SAT 
   solvers, look ... CryptoMiniSat.
Any personal relationship with CryptoMiniSat? ;)


Considering that CryptoMiniSat got 3rd place (after 1st and 2nd both being lingeling) in Parallel SAT solving the last competition, I think it was fair to include it. Sure, it's mine, but I also put it at the end :) Other solvers that are good to look at: glucose and riss. Note that a lot of solvers are variations of MiniSat. riss, ligeling, PrecoSat and CryptoMiniSat are the only ones that substantially differ from MiniSat.


Thanks for the recommendations. I love SAT solvers and have been looking for a way to get into them.


Google does not know "COPMinisat", would you please clarify?

PicoSAT is also small and easy to embed, however in CryptoMiniSat we trust, thank you very much!


Sorry, wanted to say CoMiniSatPS, here:

http://cs.nyu.edu/~chanseok/cominisatps/index.html

One of its variants won the Main track of the SAT Competition of 2016, see

http://baldur.iti.kit.edu/sat-competition-2016/index.php?cat...

For all the solvers' source codes, see

http://baldur.iti.kit.edu/sat-competition-2016/solvers/


Please, do you have any recommendations for books about SAT solving for beginners?


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: