Free and Freer Monads: Putting Monads Back into Closet - <AUTHOR> http://okmij.org/ftp/Computation/free-monad.html <comment><USER2> The web page mentions a "Haskell Symposium 2015 paper". I didn't see it linked from the page, but I'm fairly certain it's this one:

 _Freer Monads, More Extensible Effects_

[http://okmij.org/ftp/Haskell/extensible/more.pdf](http://okmij.org/ftp/Haskell/extensible/more.pdf)

<comment><USER2> The conclusion is pretty bold:

"The ambition is for Eff [the extensible freer monad, the monad of extensible effects] to be the only monad in Haskell. Rather than defining new monads programmers will be defining new effects, that is, effect interpreters."

<comment><USER3> Eff needs some additional optimization or some extra compiler support before it can thrive in the wild, because the constant overheads are pretty severe. The asymptotic overheads though are really good, basically they managed to get rid of all possible time complexity blowups with the last Eff refinement that added type-aligned sequences.

<comment><USER4> Eff has a bigger semantic issue to deal with first.

It is only composable for commutative effects. Once you introduce non- commutative effects like throw/catch or nondeterminism, the semantics of a block of code using more than one effect depends on the order in which interpreters are run.

Monad transformers escape this issue by allowing code to specify the effect nesting order in the type. They're no panacea either, of course. But they currently allow somewhat better code reuse and abstraction properties than the Eff approach does.

If Eff ever gets the ability to control the semantics of non-commutative effects, it will have a much more compelling story.

<comment><USER3> It's not particularly worse than monad transformers with respect to non- commutative effects. With monad transformers, one can trip up just as happily on exceptions, and mtl-style stack-polymorphic code can be run with various effect orderings with possibly varying semantics.

I failed to mention though that Eff would also benefit from some boost to type inference for open sums. Currently it's throwing up hands for component effects with polymorphic inner type parameters, like `State s` or `Reader r`, so we can't do things like `put 0`, but only `put (0 :: Int)` (in the absence of other type annotations in outer scopes). It's fortunately not an impossible problem; we just need to allow for unique projections from sums in our type- level machinery (this requires some annoying boilerplate currently, but maybe GHC 8.0 will make it easier with the new kind system).

<comment><USER4> Yes, transformers allow you to get it wrong, too. But at least there is a way to get it right with them.

</comment></comment></comment></comment></comment></comment><comment><USER5> Perhaps there's little math, but there's an intimidating amount of Haskell jargon. Are there any lessons for people writing in other languages?

<comment><USER6> This paper is over my head, but in case anyone is wondering what Free monads are I can give a teaser for how they're useful.

Say you're automating a bio lab. You're writing software to control evacuations. The lab machinery can execute two actions (1) Alarm (sets off an evacuation alarm in an area) (2) Sterilize (burns an area with fire). Obviously we would like to call (1) for an area well before we call (2).

To these two actions we can add one of our own: (3) Wait (for some number of seconds).

Now we write a function (using Haskell types, but they're easy to read):

      evacuate :: ContaminationInfo -> IO ()

This function takes in the state of a lab (what areas have been contaminated, what areas are at risk, etc.) makes an evacuation plan, and executes it.

Now, the first things you notice is that _this is a horrible function_. How could we test it? We would need an actual lab (or mocks, but that's no fun).

Let's try again.

      makePlan :: ContaminationInfo -> [Action]

(Where action is either `Alarm Area`, `Sterilize Area`, or `Wait Seconds`)

This is way better! Now we can write interpreters for `[Action]`.

      testContaminationPlan :: [Action] -> TestResults

      prettyPrintContaminationPlan :: [Action] -> String

      graphContaminationPlan :: [Action] -> SVG

      runContaminationPlan :: [Action] -> IO ()

Note that all of this can be done in Python, which is pretty cool! Sadly we can't write `makePlan :: ContaminationPlan -> [Action]` in Python though. It would have to be `makePlan :: ContaminationPlan -> IO [Action]`, which means that there could be side effecting functions that slip by the programmer and aren't reflected in the return type. If one of these is Sterilize someone could have a bad day:(

Now lets say our wonderful engineers build us an excellent new action: (4) Scan (check an area for risk of contamination).

Now our [Action] plan starts to break down. Before an [Action] was very simple. An example might have been [Alarm Area1, Alarm Area2, Wait 200 Seconds, Sterilize Area1, Sterilize Area2].

But our scanner allows later actions to depend on the result of previous actions! [Action] isn't sufficient to model that -- how would our interpreters know how to thread things together (our goal is to be able to do things like start scanning an at-risk room like crazy, but not actually evacuate it unless contamination appears).

If only we had some way for our data type to reflect that some actions might need to be fed into others? Hmm, I wonder what we could use for that ...

<comment><USER6> PS Pretty much all my knowledge of this subject (and the pretty printing interpreter example in particular) comes from here: [http://www.haskellforall.com/2012/06/you-could-have- invented...](http://www.haskellforall.com/2012/06/you-could-have-invented- free-monads.html)</comment></comment></comment>


Ask HN: Where did the GQ altered photo article go? - <AUTHOR> Disappeared from the front page and those that follow.
Regardless of the publication's intent the discussion is warranted, topical, and had engagement from this community.
1. https://www.businessinsider.in/a-photo-of-silicon-valley-executives-visiting-an-italian-designer-is-getting-slammed-for-photoshopping-in-the-female-executives/articleshow/69762163.cms <comment><USER2> For reference [https://news.ycombinator.com/item?id=20166256](https://news.ycombinator.com/item?id=20166256) It was flagged by users (but not by me). Probably because of the title.

You can try vouching it or contacting the mods for an official explanation firstname.lastname@example.com</comment>


Basketball, Football, and Hockey Are All the Same Game - <AUTHOR> http://www.slate.com/articles/sports/sports_nut/2014/01/aaron_clauset_how_big_data_reveals_that_basketball_football_and_hockey_are.html

<comment><USER2> So, no comparison against non North-American games. No soccer, no cricket, no Australian Rules, no Rugby (League or Union).

Given that over the past 50 years these sports have been driven by television audiences and the demands of broadcast TV, is it any surprise that they've converged to something broadly similar at the highest structural level?</comment>


Oldest Homo sapiens fossil claim rewrites our species' history - <AUTHOR> http://www.nature.com/news/oldest-homo-sapiens-fossil-claim-rewrites-our-species-history-1.22114 <comment><USER2> > The finds, which are published on 7 June in Nature1, 2, do not mean that H. > sapiens originated in North Africa. Instead, they suggest that the species' > earliest members evolved all across the continent, scientists say.

From the actual research(1, 2):

> Furthermore, it shows that the evolutionary processes behind the emergence > of H. sapiens involved the whole African continent. > The emergence of our > species and of the Middle Stone Age appear to be close in time, and these > data suggest a larger scale, potentially pan-African, origin for both.

I'm a bit confused by this concept of pan-African evolution -

Wouldn't we have more stark differences such as the Chimpanzee and Bonobo? Sure, we all look different but the differences we have across the globe are scant compared to our closest primate relatives. If the evolution of _H. Sapiens_ was considered "pan-African" \- I think of a few implications that could/could not allow this to happen.... the environments are quite different across Africa:

A) Bipedalism and our ability to traverse long distances, allowed a more "cosmopolitan" evolution path for humans

B) H. Sapiens actually emerged even earlier than 300K years - but the "mosaic of features" (source 1) should disprove this

C) Intermingling between other humanoid primates occured far earlier than 300K years - creating the human mosaic disproven in B.

</comment><comment><USER3> Previous discussion: [https://news.ycombinator.com/item?id=14508029](https://news.ycombinator.com/item?id=14508029)</comment>


Technology Brief for Apple's Grand Central Multicore Paradigm [pdf]  - <AUTHOR> http://images.apple.com/macosx/technology/docs/GrandCentral_TB_brief_20090608.pdf <comment><USER2> While all the Apple hardware announcements look great, I think this is possibly an even more significant announcement. C/Objective-C/C++ gets lambdas and closures! It looks like Apple has a very interesting single machine concurrency story here.

Right now I'm really enjoying Clojure- it's lockless approach to single machine concurrency is plenty, plenty fun. Unfortunately the downside of learning Clojure is that many other popular languages look downright archaic to me in this regard now. Now reading over this document, whodathunk, concurrency programming might be as fun in C as it is in Clojure!

<comment><USER3> Related to this is another key performance technology in Snow Leopard, OpenCL: [http://images.apple.com/macosx/technology/docs/OpenCL_TB_bri...](http://images.apple.com/macosx/technology/docs/OpenCL_TB_brief_20090608.pdf) .

</comment></comment><comment><USER4> First of all, this is awesome.

I am missing some details though. Are these true closures? What are the scoping rules? Can you read data declared outside of your block? Can you alter it? Is the only way to keep alterations safe to use a private queue? I guess time (or a closer reading) will tell.

<comment><USER2> More information about the implementation of blocks here: [http://lists.cs.uiuc.edu/pipermail/cfe- dev/2008-August/00267...](http://lists.cs.uiuc.edu/pipermail/cfe- dev/2008-August/002670.html)

</comment></comment><comment><USER5> This sounds inspired by SEDA (Staged Event-Driven Architecture). <http://www.eecs.harvard.edu/~mdw/proj/seda/> It was about time someone made good use of it, too!

Is there more info available? The white paper is nice, but not too packed with detail.

</comment><comment><USER6> This encourages a very different style of multicore programming than is common on desktops today, closer to that of grid systems. Very interesting to see how this develops.

<comment><USER3> Apple may have been inspired in part by their experience with XGrid [<http://www.apple.com/server/macosx/technology/xgrid.html>], based on the NeXTSTEP application Zilla [[http://www.omnigroup.com/mailman/archive/macosx- talk/2000-Se...](http://www.omnigroup.com/mailman/archive/macosx- talk/2000-September/028352.html)], and perhaps by PDO (Portable Distributed Objects) [<http://en.wikipedia.org/wiki/NeXTSTEP>]. I mention these somewhat obscure influences in response to your grid observation. Obviously there are several other (probably more immediate) influences on GCD and OpenCL as well (LLVM, OpenGL, various academic research on parallelized programming, etc.)

</comment></comment><comment><USER7> I wonder how this will affect the legacy methods of concurrency in OS X -- specifically POSIX threads. I know I wrote a number of C apps using POSIX threads that worked well in OS X and in Linux. While this is nice and interesting for Mac only programs, I hope that I don't have to rewrite my cross platform apps to take advantage of the API.

<comment><USER8> Obviously pthread support won't be removed; pthread programs just won't play as nice with each other as Grand Central programs.

<comment><USER7> Well I didn't really mean to suggest that it would be removed, mainly about what kind of performance hit I would take by using pthreads instead of Grand Central. In addition, how well will pthread programs and GC programs work together. Normally, the threading is handled by the scheduler in a straightforward model, but if the GC model modifies the scheduler model, I'm not really sure what the results will be.

<comment><USER3> You won't "take a hit", but you will "fail to utilize the hardware as efficiently as you could". Both GCD and OpenCL have their roots in open extensions to C. Both offer potentially significant performance gains for certain types of tasks. If enough developers find it advantageous to use either blocks or OpenCL, these technologies will likely show up on other platforms.

Regarding the scheduler, I'm not sure enough details are known outside of Apple at this point to know what the results would be on Snow Leopard. Your milage would obviously vary when porting to some other OS. It's easy to imagine that running a PThreads app might hog some cores, or be punished inappropriately by the scheduler. These things can happen when running more than one threaded app on a system today, without GCD. This behavior, even if not documented, should be relatively easy to explore with some simple demo apps, though, without porting your entire app.

And, uhm... you will need to refactor your application to take advantage of the new API. (Was that a trick question?) Apple's guidance indicates that you can make modest changes for big gains by focusing the refactoring effort on the parts of the app that do the most computationally. For some apps this can be a small amount of work for a large gain, particularly if you can take advantage of OpenCL as well as GCD.

</comment></comment></comment></comment><comment><USER9> A Job Queue is a great thing to have, especially when it provided for you, but it's hardly "revolutionary."</comment>


Zero to JupyterHub with Kubernetes - <AUTHOR> https://zero-to-jupyterhub.readthedocs.io/en/latest/ <comment><USER2> Thanks for sharing this. I'm going to try to set this up for our research group.

I've been looking for an opportunity to learn Kubernetes with something that is not critical, yet being useful. This seems like a good fit for experimentation.</comment>


The Apple Watch feels like a stalled platform - <AUTHOR> http://qz.com/557652/half-a-year-later-the-apple-watch-feels-like-a-stalled-platform/ <comment><USER2> "New and compelling" apps and features rarely happen overnight. The "several months" since watchOS 2 was released could _easily_ be only 50% of the development cycle of something really awesome.

The author is not being lazy, he's being impatient.

I'll revisit this in another 4 years and 5 months and see where the platform is then.

</comment><comment><USER3> The original iPhone didn't have apps at all. In fact, Apple/Steve Jobs seemed reluctant to open that platform at all (they told people to write web apps). Perhaps the reality is that the Apple Watch doesn't need to be a 'platform'; I'm very happy with mine as an extension to the phone.

<comment><USER4> That's a big part of it. Also, there is at least one other parallel to the phone space: customizing your desktop wallpaper and ringtones. The original iPhone didn't have many options in this regard whereas many others did. Later, they added more options to customize these things more thoroughly (though never to the extent of homescreen widgets).

On the watch side, I don't have an Apple Watch but I picked up a Moto 360 for around $150 last year. Not gonna get into the eternal Apple vs. The Rest debate but one things I've noticed (aside from agreeing with your thoughts on the adequacy of using it as a simple phone extension) is that my other most common activity is changing the face of the watch.

It seems like such a simple thing but honestly, if someone offered me a $150-250 watch that simply told me the time and mirrored notifications from my phone, I might not be too enthusiastic. But if the proposition was just $150-250 for a watch where you could change the face to look any way you want, I think I'd still be tempted even without much in the way of other "smart" features.

There's a huge range of watch faces I can download and there are simple tools that allow me to make my own. I can easily swap from something minimalist to something that looks like a luxury watch to something that looks like a Fallout Pipboy to something that looks like a neon sign with a couple of taps on my phone or watch.

It's something I didn't expect to care much about but the sheer flexibility of a programmable and customizable watch face has made it one of those head- slappingly obvious features I should've seen a mile away.

I wonder when/if the Apple Watch will give more options in this regard. Because no matter how cool the apps are, a watch is still a personal piece of jewelry as well. When that piece of jewelry is also a computer with a display, there's a lot of room for customization and personalization, even if they want to keep the core interface the same for consistency. A user-defined or even user-created default face for when your watch is just sitting on your arm would be great to have, even if tapping or interacting brought up the standard Apple Watch interface.

</comment></comment><comment><USER5> In addition to some constraints on the type of product (i.e. watch apps _have_ to be focused, super-quick interactions), there's another reason we haven't seen a lot of app, imo:

This year was an unusually crazy year for iOS developers. Apple released: \- watchOS 1, with a slow and clunky experience \- iOS 9, with adaptive multitasking \- watchOS 2, requiring a rewrite of the watch app – tvOS, a whole new platform, with more easily translatable app experiences.

Additionally, with the "2-versions behind" strategy for Xcode, a lot of app developers (myself included) dropped iOS 7 support. This was actually one of the most complex transitions ever. (So many backwards incompatible changes (size classes, presentation controllers, push notifications).)

So something had to give. For me, and for many others, I'd say it was probably the watch.

</comment><comment><USER6> The iPhone was successful because everyone needs a phone, and it was a quantum leap in phone functionality (to the point where the actual phone function was secondary). And it was beautiful, so even if you only used it as a phone, it still made a fashion statement compared to the typical candybar phone or utilitarian Blackberry.

No one needs to carry a watch, so the Apple Watch has a much smaller potential market to begin with. It really needed to succeed as fashion (since that's a major reason anyone wears a watch these days), and it simply hasn't. The original iPhone looked like the future. The Apple Watch looks like a slightly sleeker version of a Dick Tracy wrist radio.

The Apple Watch (or whatever wearable form it evolves into) will be truly successful only when it can replace the iPhone entirely.

</comment><comment><USER7> I don't foresee the Apple Watch ever being untethered from the iPhone, for the simple reason that it won't sell iPhones.</comment>


Ask HN: Quantum Entanglement Bandwidth Possibilities - <AUTHOR>

Anyone know what are the bandwidth limits might be for data transfer between quantum entangled particles?  Also, if we figure how to realistically send network data over one pair of entangled particles, is there any reason why we couldn't have many entangled pairs working in parallel.  For instance, if you had 1024 pairs of entangled particles, you would be able to transfer a kilobyte in parallel instantaneously.  Feasible?<p>edit: wording <comment><USER2> Part of me thinks QE isn't really about the data transfer itself ... assuming you are asking because of what you read in the last paragraph @ [http://www.extremetech.com/extreme/169874-ntt-entangle- photo...](http://www.extremetech.com/extreme/169874-ntt-entangle- photons-300-kilometers-apart) ... it's clear that we are looking more at FTL binary communication than what we are used to (in my opinion). Still interesting times ahead.</comment>


Arizona Government Suspends Uber's Self Driving Cars from Roads - <AUTHOR> http://www.chicagotribune.com/news/nationworld/ct-arizona-uber-testing-20180326-story.html <comment><USER2> Saying nothing about Google/Waymo, it appears they're allowed to continue? Their self-driving technology seems far more advanced, I think it would be unfair to punish all the players for the bad actions of a few.

In particular, Uber seems to have been operating self-driving cars recklessly and in an attempt to "move fast and break things". When those things are people's lives, that's unacceptable. I'm all for interesting technology, but sometimes existing rules are there for a reason.

I particularly hope this doesn't dissuade individual states from making leaps to embrace a particular technology. I think that's one benefit of the US: individual states have a lot of power to allow a new technology or permit testing that's illegal or in a gray area in the rest of the country. Arizona made a bet on self-driving technology. I applaud Arizona, even if the bet in this case might have turned out badly.

<comment><USER3> There was a person at the wheel.

That person wasn't paying full attention to the road. From the video of the crash, it looks like the woman at the wheel was looking at their phone.

Why is no one acknowledging that this woman was responsible for taking over the wheel if necessary for any reason. When I have cruise control on, I take my feet off of the pedals and rest them on the floor. But if, say, a homeless person with a bicycle walks out into the middle of the road at night with a black sweatshirt on in front of my car, then I step on the brakes.

And why is no one acknowledging that a homeless person walked out into the middle of the street at night in a black sweatshirt. I definitely don't know whether I, even if I wasn't on my phone like the car operator was, would've seen the person in the road with enough time to slam on the brakes. I might've killed that person walking across the road by mistake, too.

Like millions of other people on the road every single day, the car operator was on their smartphone while they were at the wheel. And like 3-5 million other people a year, the homeless person walking across the street was killed in a car accident.

The woman walking across the street and the woman at the wheel of the car broke the law. Uber didn't break any laws as far as I can tell. They were as responsible as any other company building self-driving cars as far as I can tell, too. I don't think it's fair to put the fault on Uber here.

<comment><USER4>
      Why is no one acknowledging that this woman was
      responsible for taking over the wheel if necessary
      for any reason.

Nobody in the industry really believes safety drivers work, beyond the early point in testing where they're intervening regularly.

It is widely known [1, 2, 3] that it's extremely difficult for humans to remain vigilant when monitoring systems for rare events. Airport baggage screening systems perform "threat image projection" where they show the operator knives and guns from time to time, just to break up the monotony and reward attentiveness.

Beyond early testing, safety drivers are there to make the public/politicians feel safer, for situations where a slow response is better than none at all, and for more cynical companies, so you can use them as scapegoats in situations like this one.

[1] [https://pdfs.semanticscholar.org/ece2/465ed2258585ebb8055fd7...](https://pdfs.semanticscholar.org/ece2/465ed2258585ebb8055fd76997cda6b606af.pdf) [2] [https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5633607/](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5633607/) [3] [http://journals.sagepub.com/doi/full/10.1177/001872081350155...](http://journals.sagepub.com/doi/full/10.1177/0018720813501550)

<comment><USER5> Even regardless of her lack of full attention, from the video it seems quite obvious a human driver would have failed to see the woman in time even with full alertness. The only question here, and why Uber is under scrutiny, is why a Lidar system which can "see in the dark" wasn't able to detect her and react in time.

<comment><USER6> > from the video it seems quite obvious a human driver would have failed to > see the woman in time even with full alertness

The video is _massively_ \- and I'll wager _intentionally_ \- misleading. There's no chance the car was making decisions from a $20 dashcam.

Here's what a better camera (looks like a smartphone camera) sees in the same spot (at about 33 seconds - you can see the signs, lights, and terrain match the Uber video): [https://www.youtube.com/watch?v=1XOVxSCG8u0](https://www.youtube.com/watch?v=1XOVxSCG8u0)

<comment><USER7> I've driven this area plenty of times, and something that is misleading about the YT video is that there are around two dozen cars driving around lighting that area up. I agree that the dashcam video makes it look very dark, but this video is on the other end of the spectrum and does not represent how dark that stretch gets when there isn't another car.

The moment another car passes the driver to the left is where the accident was. That part is typically very dark and has plants as a backdrop - I can see where it would be difficult to distinguish a human form under specific conditions. Regardless, the LIDAR and backup driver failed miserably here.

<comment><USER6> The YouTube video has plenty of sections in less well-lit areas. For example: [https://imgur.com/a/9L53u](https://imgur.com/a/9L53u)

No cars, a light only one one side, and you can still see much further than the Uber video makes it seem. If the Uber car's sensors can't get a better idea of its surroundings than a smartphone video, Uber's management should be liable for criminally negligent homicide for letting them out on the streets.

Plus, the Uber car itself has headlights.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> Several comments here making comparisons to human drivers. As if autonomous cars are ok so long as they are at or below parity with humans. This is statistically true but a complete misunderstanding of human nature.

Human risk tolerance varies drastically depending on control/participation. What is the acceptable casualty rate of elevators?

<comment><USER9> On top of that, I think it is absolutely rational to expect autonomous cars to perform at the current state of the art. We tolerate certain kinds of bad human drivers, like beginners, because there is hardly an alternative. A self- driving car with the driving skills of a beginner would be completely unacceptable if the state of the art has skills comparable to, say, somebody with a few years of experience.

<comment><USER10> We don't really know yet what state of the art is for autonomous vehicles. Until we have gathered a bit more data from different companies we can't say anything.

This accident might have been a fluke, it might have been caused by bad engineering, it might have been caused by many things. We can only compare once we have a sizeable sample of incidents, or a long enough time of non- incidents that we're confident the system works well.

And every software update could change something about it.

</comment></comment></comment><comment><USER11> > "Improving public safety has always been the emphasis of Arizona's approach > to autonomous vehicle testing, and my expectation is that public safety is > also the top priority for all who operate this technology in the state of > Arizona," Mr. Ducey said in his letter. "The incident that took place on > March 18 is an unquestionable failure to comply with this expectation."

This after the police claimed no fault.[1] Not quite sure how those two statements square...

[1] [http://fortune.com/2018/03/19/uber-self-driving-car- crash/](http://fortune.com/2018/03/19/uber-self-driving-car-crash/)

<comment><USER12> The investigation isn't complete, but Uber did disable the car's own safety features [0].

Both Volvo and Intel tested their software against the low-grade video that was released, and it was able to detect the impending accident and reduce the impact to where the pedestrian would likely have survived.

[0] [https://www.bloomberg.com/news/articles/2018-03-26/uber- disa...](https://www.bloomberg.com/news/articles/2018-03-26/uber-disabled- volvo-suv-s-standard-safety-system-before-fatality)

<comment><USER13> _Uber did disable the car 's own safety features_

Well, of course they did. Can you imagine testing a self-driving system when another system is also controlling the car? What happens when they send contradictory commands? Race conditions are bad enough outside of actual cars!

<comment><USER12> They disabled a system we know works, for one that failed. No redundancy. If that is the case, then Uber can absolutely be held accountable for not taking enough safety precautions.

These aren't just test cars. Uber and Volvo's deal was around Uber selling 'enhanced' XC90s. Why not design around the product you purchased?

> Can you imagine testing a self-driving system when another system is also > controlling the car?

You mean external forces such as a driver? Which is expected and required at this point?

<comment><USER13> I don't pretend to be an expert, but generally adding multiple layers of control on the same axis adds its own failure points. Having a human that can override the automatic system is not an argument for leaving that enabled - it's an argument against it!

Personally, I think Uber simply shouldn't have tested it on public roads at this point.

<comment><USER12> > generally adding multiple layers of control on the same axis

They wouldn't be. Subsumption architecture is the usual method to couple these things together, since the 80s.

Individual reactionary modules, that may be 'dumb', like the AutoBreak, that have a hierarchy of response.

Redundancy is essential for safety.

<comment><USER13> OK, let's say the Volvo system gets precedence. How will the Uber system ever learn how to behave when the Volvo system is no longer in place?

If we were talking about a production system, I would agree, but I don't think this is appropriate for the training phase.

Redundancy is only essential if the potential for failure is unacceptable. If you remove that (by not driving in public streets), it isn't.

<comment><USER14> Saving lives is more important than training the self-driving system. Disabling safety systems for the sake of training isn't acceptable.

That said, how does Uber improve the self-driving system in response to any failure? Perhaps by training on recorded data? They must have ways to train the system in addition to waiting and hoping the car encounters the same situation again.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> Good riddance. But I think this is not enough to send a strong message to all those who want to put half baked tech out there in hopes of "disrupting" something..

Also, I really hope all self driving testing is suspended until there is sufficient legal and testing ground work before these things are allowed on roads...

<comment><USER16> It might surprise you that we were testing (selectively) autonomous cars on the autobahn in Germany in 1991 as part of the Prometheus project. Our tech was nowhere near as good as what's available now and so we compensated by having attentive drivers hovering over the E-stop button.

I don't think that stopping testing over a single crash is warranted. Maybe suspend it for a short time while you look into it, but if we stopped medicine every time a patient died in a trial, society would be worse off.

<comment><USER17> > if we stopped medicine every time a patient died in a trial, society would > be worse off.

What on earth do you mean? Clinical trials are stopped all the time when people have adverse reactions & die. And people who die in clinical medical trials are _volunteers_ , consciously aware of their participation, and having signed a waiver. In the U.S., medications may not be sold or administered to the public before being approved via trials. If Uber had to meet the same standards as the medical industry, Elaine Herzberg would be alive, and we wouldn't see autonomous vehicles on the roads for several more years.

<comment><USER18> Also- a clinical trial (usually) can't get out on the streets and run someone over if it doesn't work as expected.

</comment></comment></comment></comment><comment><USER19> I don't know much about the logic used in self-driving cars - but I do wonder how they will handle roundabouts. We have a lot of them here (Australia) and you have to give way to a car that is approaching or entering the roundabout on your right - which often is opposite you. How will a self-driving car cope with detecting a vehicle behind the concrete barrier of a roundabout?

<comment><USER20> No, the roundabout rule is that a vehicle entering a roundabout must give way to any vehicle already on the roundabout, or a tram that is entering or approaching the roundabout.

See the Australian Road Rules, Part 9: [https://www.pcc.gov.au/uniform/Australian-Road- Rules-19March...](https://www.pcc.gov.au/uniform/Australian-Road- Rules-19March2018.pdf)

If you are approaching the roundabout and someone enters it from your left before you get there, _you_ have to give way to _them_.

<comment><USER21> Things like that may vary from country to country, though. In Austria, roundabouts do not have a special rule and therefore a car approaching the roundabout theoretically has the right of way. But pretty much any roundabout has a yield sign, I've never encountered one without a yield sign at the entrance. Doesn't mean that there can't be a roundabout that does not have one.

<comment><USER22> As you described, the default is to yield, and so the vehicle can always yield and signal its intention to do so by breaking slowly. And I agree, there may not always be a sign (a storm or driver could knock it over), so the default should always be to yield.

</comment></comment></comment></comment><comment><USER23> I wonder how long the investigations are going to take, they usually take months to a year in these cases. Or have for Tesla at least.

The political side is interesting to look at as well. The governor directly issued the order and he is up for election this year [0] and he played up the positive PR of the Uber and others coming to the state.

0 - [https://en.m.wikipedia.org/wiki/Arizona_gubernatorial_electi...](https://en.m.wikipedia.org/wiki/Arizona_gubernatorial_election,_2018)

</comment><comment><USER24> Amen. Uber's fatal accident rate is now 50x that of sober human driver's. At their current rate of driving, they can't have a _lower_ rate until 2028! Inexcusable failure of their technology to prevent a human death in the most basic collision avoidance scenario.

<comment><USER25> Before the accident they were infinitely better than a sober human driver.

Understand statistics before employing them please. We don't have enough data and a single data point doesn't change that.

<comment><USER26> It is not 1 data pint though, say you shot at a target 100 times and hit only 1 time , is this 1 data point only and I can't make any conclusion?

Similar if you drive 1 million km and kill 1 person, if I drive 10 km and kill 1 person is still 1 data point and I can make no conclusion? I think it would have been 1 data point if this was the first km a Uber self driving car has driven.

<comment><USER18> >> Similar if you drive 1 million km and kill 1 person, if I drive 10 km and kill 1 person is still 1 data point and I can make no conclusion?

Yep. Because I still have another 9 m km to go before I've driven as long as you have and there is no way to know whether I'm going to kill another 9 people, or 0 more, until I've actually driven them all.

<comment><USER26> You are wrong, there is a conclusion we can make, the conclusion is not absolute but fuzzy so maybe fuzzy logic is not your thing.

Also you have a mistake in your comment, I would still have to do 999990 km of driving. If I killed a person in my first 10 km what is the probability that I won't kill anyone in my next 999990?

Your point is that I can't be 100% sure and that is true but we can compute the probability, so the probability that I had bad luck is very small, if the probability of killing 1 person in 1 mil km is 1 or 100% what is the probability of killing this person in my first 10km? ( you are correct is not 0 )

<comment><USER18> I misread the numbers in the original post. But what you say in your comment- well, that's not how it works.

To assess the risk posed by a driver, you wouldn't follow them around, constantly logging the miles they drive, counting the deaths they cause and continuously updating the probability they will kill someone, at least not in the real world (in a simulation, maybe). Instead, what you'd do is wait for enough people to have driven some reasonably significant (and completely arbitrarily chosen) distance, then count the fatal accidents per person per that distance and thereby calculate the probability of causing an accident per person per that distance. That's a far more convenient way to gather statistics, not least because if you take 1000 people who have causd an accident while driving, they'll each have driven a different distance before the accident.

So you might come up with a figure that says "Americans kill 1.18 people every million miles driven" (it's something like that, actually, if memory serves).

Given that sort of metric, you can't then use it for comparison with the performance of someone who has only driven, say, 1000 miles. Because if you did, you would be comparing apples and oranges: 1 accident per 1000 miles is not on the same scale as ~1 accident per million miles. There's still another 999k miles to go before you're in the same ballpark.

And on that scale, no, you can't know whether an accident in the first 1000 miles will be followed by another in the next 1000 miles. Your expectation is set for 1 million miles.

It's a question of granularity of the metric.

<comment><USER26> Do you have any math do back up that what I said is wrong? I can try to explain my point better but I see you are ignoring the math so maybe I should not waste my time.(we can reduce the problem to balls in a jar and make things easy)

But think about this, if I killed a person in my first 10 km of driving, what is the chance that will kill 0 after the next 999990, would you bet that I will kill 0 or 1 , more then 10?

<comment><USER18> I think what you mean by "maths" is "formulae" or "equations". Before you get to the formulae, you have to figure out what you're trying to do. If the formulae are irrelevant to the problem at hand you will not find a solution.

As to your question- I wouldn't bet at all. There is no way to know.

Here's a problem from me: I give you the number 345.

What are the chances that the next number I give you is going to be within 1000 numbers of 345?

<comment><USER26> Your problem is not equivalent with what we were discussing about, you need to change it a bit like

I draw random numbers from 0 to Max and I get 345, what is P that next number N is in 100 range near 345?

P = 200/Max; in the assumption that Max >445;

For self driving cars, the probability that a car kills a person for 1 km or road driven is unknown, so you can call it X

Then my self driving car killed a person in first 10 km, What is the probability that a random event will happen in the first 10km from 10^9 km, is 10^(-8)

Say the self driving car would have the probability of killing N people for 10^9 km, this are random,independent events So the probability that a kill will happen in first 10km is N*10^-8,

I hope you notice my point that we can measure something, we do not need to wait for 10 or 100 people to be killed

We are not sure but we can say that is is a very small chance that I will not kill other person in my next 999 990km.

let me know if my logic is not correct, in statistics is easy to do mistakes.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER27> For all of the theoretical moral questions that have been brought up around self driving cars (the proverbial lever that lets you kill one person instead of a handful, for example), it's interesting/inevitable that this one came up first.

I'm sure lots of people will argue that self-driving cars will, in the long run, save a lot of lives, and therefore we can justify some loss of life in the process. They are probably right about self-driving cars saving more lives in the long run, but I don't know that the conclusion follows.

From what has been released so far, this feels like a case where a human would have had a high likelihood of doing the same thing and would not have been at- fault in the collision. But self-driving cars have more sensors and, in theory, more capabilities to prevent something like this, and we absolutely should expect them to do better.

As someone with a little bit of experience with the machine learning side of things, I understand how this stuff is really hard, and I can imagine a handful of ways the system could have been confused, which makes it all the more important to understand what went wrong and how we could prevent it from happening in the future.

As self-driving cars become more prevalent, things like this will happen and it will be tough to walk the line between over-reacting to every incident and killing progress in this area and designing safe cars that don't make the problem worse. I think it is prudent to have Uber stop testing on public roads until they can explain how this happened and how they can keep it from happening again.

<comment><USER28> Based on what came out of the last few days I don't think it's clear at all, I think a human would not have hit the woman.

The footage we saw was from a terrible dashcam and did not represent how dark the street actually was. Other people who have driven down the street with cameras show it to be perfectly reasonably lit, with streetlights and everything.

Second, the woman was crossing across two lanes, so any driver watching would have already seen her cross the left-hand lane. It's not like she popped out from behind a tree suddenly. She wasn't even going that fast.

This seems to be a massive failure of Uber's system as well as a complete failure of the 'safety' driver.

I don't think anyone's overreacting. I think they're under reacting. I think it's pretty clear over was heavily negligent. There's no way they don't get sued. What comes out at trial is going to be up amazing, I think.

I think if this had been a "real" accident that would've been almost impossible to avoid, around it WAS impossible to avoid, or one where the human stepped in and it wasn't good enough… We would be having a discussion we're like what you're saying. Maybe if this was what emai I think if this had been a "real" accident that would've been almost impossible to avoid, around it WAS impossible to avoid, or one where the human stepped in and it wasn't good enough… We would be having a discussion we're like what you're saying. Maybe if this was Waymo or one of the other comapnies.

But it looks like the dubious honor of first death by a autonomous car was totally unnecessary and preventable.

<comment><USER16> The pedestrian also has a significant contribution of negligence to this collision, IMO.

<comment><USER29> Why? They crossed a 35 mph (so in Tempe this is a "slow" road) at a corner (unmarked corners are also crosswalks, legally) on a well lit road. Where the car was many seconds away when she started crossing.

Would a human driver be deemed at fault in a court of law? Usually not (though in this case, maybe) unless they kept going after the collision, or were under the influence. But that's because we give human drivers a lot of leeway to kill people. Not because it isn't their fault.

<comment><USER16> I don't live there, but this article suggests that there is signage for "no pedestrians" at the location where she was struck: [https://www.curbed.com/transportation/2018/3/20/17142090/ube...](https://www.curbed.com/transportation/2018/3/20/17142090/uber- fatal-crash-driverless-pedestrian-safety)

This twitter stream suggests the same with more details: [https://twitter.com/EricPaulDennis/status/975889922413551616...](https://twitter.com/EricPaulDennis/status/975889922413551616/photo/1)

It appears to me that they did _not_ cross at a corner, and the corners "nearby" in the references above all have marked crosswalks.

If that's the case, I don't see how one could assign 0% negligence to the pedestrian.

<comment><USER29> Ah I missed the part where there was a sign saying "no pedestrians". In that case I'd agree it's not 0 responsibility on the walker, but I don't think I'd assign the woman full responsibility, either. If the driver attempted to slow down and still hit her, the driver (in this case the car) probably wouldn't really be at fault. But a collision at 40 in a 35 zone is really bad for a driver.

<comment><USER30> The road where the accident took place is @ 45 MPH; the "35 MPH" figure came from confusing it with the road in opposite direction (they are separate there).

</comment></comment></comment></comment></comment></comment></comment><comment><USER31> Uber and responsibility doesn't seem like a great cultural match.

</comment><comment><USER32> This seems like a lesson in why government regulation can be good.

<comment><USER33> The government regulation allowed the Uber on the road, so it may be a lesson in why government regulation doesn't work or provides a false sense of safety.

<comment><USER32> I specifically mean that Arizona chose to allow self-driving cars on their roads with little regulation and that lack of regulation contributed to the death of a pedestrian.

<comment><USER33> Yea, I'm really splitting hairs at this point, but you can't use the Uber incident this month as evidence to support the claim that "regulation is good". You could use the incident as evidence that "Arizona's regulation is not good".

We _can_ support the claim "regulation is good" by pointing to other states that did regulation right and seeing how their fatality rates are better than Arizona's.

But yes, I agree with the spirit of the statement, Arizona needs better regulation, and it seems pretty clear that "regulation is good" in this case.

</comment></comment></comment></comment><comment><USER34> Based what I learned about Uber their self driving cars probably run on NodeJS.

I'm only half joking.

<comment><USER35> I don't actually know what a self driving car should run on, I would want to make it in Erlang or Rust but - what do you think a self driving car should be running on?

<comment><USER36> Some kind of realtime system. A GC pause of 200ms in a car could easily cause a crash.

Sadly, I fear it may actually be written in C++.

<comment><USER37> It takes around 100 - 400 msec to blink, so an occasional 200msec GC pause doesn't sound too bad. Though I'd sure hate to be in a car that gets stuck in a 15 second full GC freeze.

<comment><USER34> > occasional 200msec GC pause doesn't sound too bad

I guess you never used Windows.

But seriously occasional 200ms pause is in ideal scenario if you have some kind of memory leaks those might become longer etc.

Hard RT system has defined hard deadline for every operation and if it says it needs to react within 200ms it will or it will be considered a failure of the system.

This might not be obvious to many people, but as cars becoming more computerized you no longer directly control it, for example when you press a brake, it is not directly connected to car's brakes by steel line, instead it is just sending signal to braking mechanism. That system is hard real-time, and it is designed so if you press a brake, the car has maximum time it needs to react to that. There is no excuse to do it later, because it was doing something else at the time.

Same thing should be with autonomous driving. It absolutely HAS to react before a deadline.

Actually lets assume the GC will always take at most 200ms and the component needs to react within 300ms, if that can always satisfied then you can call the system a real time system.

The problem with GC is that typically you can't guarantee that it will finish in 200ms or even 400ms. You can see this quite often with our desktop computers and servers which are not RT and many times you see a slow application or not responsive.

The difference here is that that when GC is taking its time, your website might have slower response, it might get you annoyed, maybe it will even make you swear at the developer of the application/system. When this happens to a car, someone gets killed.

</comment></comment></comment></comment></comment><comment><USER38> This is interesting, but can we avoid posting links to articles behind paywalls?

Here's one on the subject that isn't: [http://www.chicagotribune.com/news/nationworld/ct-arizona- ub...](http://www.chicagotribune.com/news/nationworld/ct-arizona-uber- testing-20180326-story.html)

<comment><USER39> FWIW, complaints about paywalls are generally off-topic, though I agree, a non-paywalled source can be useful.

[https://news.ycombinator.com/newsfaq.html](https://news.ycombinator.com/newsfaq.html)

<comment><USER40> I think courtesy should dictate that paywalled articles be accompanied by at least a brief description. Perhaps a change to the FAQ to recommend such?

</comment></comment></comment><comment><USER41> Let's suspend human driving too, since it kills over 100 people per day.

<comment><USER42> Humans kill 1 person every ~100m miles.

Uber has killed 1 person after ~3m miles.

Yes, I would absolutely suspend a system that kills 3,000 people/day in favor of a system that kills 100 people/day.

<comment><USER43> n=1 (To reduce the number of email notifications I'm getting I'd best put this message in parentheses right next to this statement. NOTE: I'm not a statistician and don't believe statistics are all that important here! All I meant to say here is that this is a single incident. That's it. Nothing more.)

Edit: I'm getting the impression some people think I am suggesting there aren't grounds to suspend Uber's driving based on my 3 character comment above, so I'll paste my comment to a child comment here. Also, I'm not a statistician and I don't really care about the statistics here all that much when there's video evidence showing this was poor driving.

"Same reason clinical trials stop early if someone dies. It might just be bad luck. Unfortunately we'll never know and that drug might never be tested again. It might have been an amazing drug. In this case, based on how it played out, I personally wouldn't want Uber's self-driving cars near me."

<comment><USER44> Agreed, but it's not like it's OK to say "Well sure, so far we have a kill rate of 50x a human driver, but why don't we wait until Uber kills at least 20 people first so we can determine proper statistical significance"

<comment><USER45> Why not?

Why in this case is it acceptable to make decisions on non-statistically significant data? You would exercise more rigour than that in a throwaway A/B test.

<comment><USER46> It is statistically significant, at a 0.03 level: [https://news.ycombinator.com/item?id=16655081](https://news.ycombinator.com/item?id=16655081)

<comment><USER45> Excellent

</comment></comment></comment></comment></comment></comment></comment><comment><USER47> How is this company still in business...karma is chasing it all the way down to oblivion!

<comment><USER48> Outside of Hacker News, I have never encountered anyone who followed, was fully aware of, or cared about Uber scandals. From my conversations, it seems that people in my city hate taxi companies so much that it takes more than a couple of manslaughters to make them stop using Uber.

</comment></comment><comment><USER49> Seems like kind of a pointless action to make it look like they're responding. Uber already suspended their testing in Arizona.</comment>


Ask HN: Why do *nix developers like 'building from source'? - <AUTHOR> <comment><USER2> Source code is the lowest common denominator.

If you're providing binaries, you might try to cover the latest couple of versions of a distro, plus maybe a stable/long-term-support version for more conservative sysadmins; that's 3 versions.

Let's say you do this for x86-64, x86 and ARM; plus a slightly different ARM version to handle raspberrypi quirks.

You might do this for popular Linux distros, like Ubuntu, Debian, Fedora and Arch. Then there's FreeBSD, and you might want one of the other more-popular unices (e.g. OpenBSD, (Open)Solaris/Indiana/whatever.)

Assuming you've done all of that, you'll still get complaints from someone running AIX on a PowerPC.

On the other hand, if you provide the source, along with some common build system (e.g. autoconf for C, setuptools for Python, etc.) then it should work out of the box on most of those systems; plus, if there are any issues with a particular setup, you've given the user the resources they need to debug and patch it themselves, if they're that sort of person.

</comment><comment><USER3> I can't speak for developers. I can speak as an engineer however. Building from source, I can ensure all the latest glibc hardening options are applied to the builds of the software I use. e.g. PIE, Full RELRO, NX, stack protection, SSP buffer size and so on.

It also means I can disable functions or entire pieces of code that I don't need. Less enabled functions _often_ equate to less attack surface. This also results in smaller binaries and _sometimes_ smaller memory footprint. In a world of VM's and containers, optimization of memory and disk usage become more relevant.

Building from source is also useful if I happen to need the latest feature of a specific application that is not available in the shipped/supported binaries provided by an OS distribution. It also means I don't need to start adding software repositories from other 3rd parties and drag in additional library dependencies that can spiral out of control. I keep all my custom builds confined in /opt. The OS is kept pristine and easy to update.

</comment><comment><USER2> Try using Gobo Linux or NixOS and you'll see one reason: despite efforts like the Filesystem Hierarchy Standard, it can still be problematic to ship binaries with hard-coded paths.

For example, I use NixOS, and have had to use the "patchelf" utility to alter hard-coded paths in a few programs (either binary blobs, or bootstrapping systems bundled with source).

[http://nixos.org](http://nixos.org)

[http://www.gobolinux.org](http://www.gobolinux.org)

[https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard](https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard)

[https://nixos.org/patchelf.html](https://nixos.org/patchelf.html)

</comment><comment><USER4> Part of it is probably because precompiled binaries are rarely built with flags that allow advanced instructions (MMX/SSE/AVX) to be used because the binaries would not be very portable. Building from source you can add -march=native to get faster code (although sometimes I suppose this is risky).

</comment><comment><USER5> Do they really like it? I don't know. I personally try to avoid it and find pre-compile packages. I guess the advantages of building from source is that you get the latest version and you compile for your very specific architecture, which usually means that the program will run better.

</comment><comment><USER6> Depends, depends.

Sometime certain programs have a particular configuration that you might want, but most of the users won't. In those cases the developer can simply omit those when they build the distribution binaries and then you as a POWER USER make your own changes and configuration. It happened me multiple times (want some experimental features?).

Some time ago I used to rebuild my Linux kernel to fix problems in my distribution, or to gain some edge in performance, but as the development had advanced that edge won't make up for my effort so I don't do it anymore.

I'm a linux user, and most of the time I hate to compile software if I don't have to, so I don't but when I do I'm happy that I can.</comment>


Linux 3.3 eats Android - <AUTHOR> http://www.slashgear.com/linux-3-3-eats-android-19218970/

<comment><USER2> The article is a bit too enthusiastic. The official announcement itself says:

[http://kernelnewbies.org/Linux_3.3#head-b733d694037e0b34ad47...](http://kernelnewbies.org/Linux_3.3#head-b733d694037e0b34ad47e1b5d38ebc4d1bd1d89f)

"Various Android subsystems and features have already been merged, and more will follow in the future."

and also suggests reading:

<https://lwn.net/Articles/472984/>

Lots of progress, but not completely done.</comment>


Tell HN: Watch Out When Linking Wikipedia in Your iPhone App - <AUTHOR>

Dear TrailBehind,
Thank you for submitting TrailBehind to the App Store. We've reviewed TrailBehind and determined that we cannot post this version of your iPhone application to the App Store at this time because it is not appropriately rated. Our review indicates that the application content is not consistent with the current rating.  TrailBehind allows unfiltered access to Wikipedia, which include frequent mature or suggestive themes.  Applications must be rated accordingly for the highest level of content that the user is able to access.
Please visit iTunes Connect to resubmit your binary and rate your application appropriately.
Regards,
iPhone Developer Program  <comment><USER2> Dear Apple,

Thank you for providing me with Safari on the iPhone. I've reviewed Safari and determined that you cannot continue to provide this version of your iPhone application at this time because it is not appropriately rated. My review indicates application content is not consistent with the current rating. Safari allows unfiltered access to Wikipedia, which include frequent mature or suggestive themes. Applications must be rated accordingly for the highest level of content that the user is able to access.

Please provide me with a new version of Safari rated appropriately.

Regards,

A loyal customer.

</comment><comment><USER3> Wasn't it determined awhile back, that if you provide access to any UGC at all, you should ensure that you have a mature (or whatever it is, can't remember what the screen says now) rating?

E.g., - All Twitter clients. All forum readers. Chat rooms. Anything of the sort. That'd include Wikipedia, of course.

j

<comment><AUTHOR> I'm not complaining. The app store has been very good to us... we have sold a lot of apps, and we'll continue to sell a lot of apps. I didn't offer any commentary on this, and I don't think it's "unfair." I am just warning anyone who submits an app - I posted the exact email that was sent to me, and nothing else.

But, this is not part of some checklist you have before submitting an app. You'd have to be an incredibly savvy and aware person to know this... after all, this is our third version of the app, and our app has always included Wikipedia content. Also, it's worth noting that MOST apps that include Wikipedia content are rated 4+, just like we were when we submitted. Have a look at the apps on the App Store if you don't believe me.

But once again, I'm not complaining. I'm just trying to help people (like you) avoid the same pitfall. We changed our rating, and we resubmitted.

</comment></comment><comment><USER4> I haven't written an app that uses the web view yet, but I'm wondering if there is something you can do so that a web view you use in your app respects any "parental security" (the "Restrictions" section in the settings panel) settings that Safari is constrained by?

In other words, perhaps the rejection is due to your apps ability to bypass the phone's parental controls?

</comment><comment><USER5> It looks like this is another case of inconsistent standards. All of the wikipedia apps seem to be rated 4+ for "everyone" so it's not like Apple has a real rule that you can't use wikipedia. You just got screwed by one rogue reviewer.</comment>


Pharmacist at center of Valeant scandal accuses drugmaker of 'massive fraud' - <AUTHOR> http://www.latimes.com/business/la-fi-1101-valeant-pharmacy-20151101-story.html <comment><USER2> Full disclosure: Valeant is my largest short position.

99% of the time, shorting stocks is unemotional. Valeant is much, much different. This company is a _CANCER_ on our society, and I don't say that lightly. It is a microcosm for why we have the most dysfunctional, expensive, and unsustainable healthcare system on the planet. They are leading the charge when it comes to figuring out ways to legally (but unethically) and illegally bilk the public for their own interest. I have studied the company for the past two years and it is absolutely rotten to the core. I hope all of senior management wind up in prison...unfortunately it might only be a couple when the dust settles.

I am going to sincerely enjoy this company going supernova, and I might get just as much pleasure watching it take down a bunch of lazy and ethically- challenged fund managers as well. Valeant is going to wreck many people's careers.

The ironic thing is that this is good for us in the long-run. This is exactly the kind of wake up call we need to fix our healthcare system.

<comment><USER3> How hard is it these days to actually get the shares to short?

<comment><USER4> Why do you need to short if you can just purchase (or sell) options?

<comment><USER5> The price of put options on VRX is extremely high.

For example, VRX closed on Friday at $93.77. The cost of a 1 week put at 90 strike was about $5.70. The cost of a 2.5 month put at 90 strike was about $15.00. The cost of a 15 month put at 50 strike was about $10.00.

I doubt that VRX will collapse immediately. These things always take a while to play out. With that in mind, look at that last data point. You would have to pay $10 for an option that won't have any value at all unless VRX goes from $94 to under $50 in the next 15 months.

It might make more sense to sell a call spread instead of purchasing puts, but the option prices are very high and this stock swings wildly. This is definitely adult swim, the very deep end of the pool.

I'm not brave enough to play this stock. It's much like playing Herbalife, where you've got billionaires like Ackman on one side, billionaires like Icahn on the other side. Often the best move for a small investor is to not play at all.

<comment><USER4> So take a position that makes money on large swings?

</comment></comment></comment></comment></comment><comment><USER6> I remember when I had first read the gushing profile of "Mike Pearson" [http://www.theglobeandmail.com/report-on-business/rob- magazi...](http://www.theglobeandmail.com/report-on-business/rob-magazine/how- valeant-became-canadas-hottest-stock/article8889241/?page=all)

It contained the all important paragraph:

"Pearson's next suggestion was even more daring: Cut research and development spending, the heart of most drug firms, to the bone. "We had a premise that most R&D didn't give good return to shareholders," says Pearson. Instead, the company should favour M&A over R&D, buying established treatments that made enough money to matter, but not enough to attract the interest of Big Pharma or generic drug makers"

TLDR: Cut R&D, buy successful but smaller drugs and then because of no competition make a killing by jacking up prices.

This firm and its nasty business model of profiteering off the backs of sick desperate people, deserve to die. They are no better than vultures that feed on the dying.

</comment><comment><USER7> I remain impressed as ever by the health insurance & pharmaceutical markets' ability to distribute financial rewards to sources of value creation.

Speaking of which, even though my libertarian days are long passed on account of forming a realistic picture of what does and does not constitute value creation in the eyes of the market, I never went to the trouble of studying "blackhat" business tactics intentionally. Perhaps I should. Any recommended reading?

<comment><USER8> I'm curious, what does fraud have to do with "libertarianism"? Don't most libertarians loathe fraud and think it should be cracked down on harder?

<comment><USER7> If a libertarian took a broad enough view of fraud to object to Valeant's core business tactics then we'd get along just fine. I suspect that most do not.

Tactic 1: buying other firms' medicines and then swiftly hiking their prices

Tactic 2: exploiting the principal agent problem between insurer and insuree with bribes (err, I mean "coupons")

There was a comparison to Enron earlier in this thread. While accounting fraud brought them down, their core business model was legal, compatible with market philosophy, and familiar:

Tactic 3: buying up the power generation infrastructure and creating artificial scarcity to ramp prices.

For companies that are actively engaging in this sort of nonsense, see telcos. Or Goldman Sachs -- they were in the news a while ago for doing it with Aluminum. Anyway, the fraud is almost incidental, it's the "innovative" business models that drive me nuts. Because at the same time as pharma investors, execs, and lawyers are raking in the cash, Chem PhDs and postdocs are getting paid peanuts if they can find a job at all: [http://chemjobber.blogspot.com/2010/07/whats-happening-to- ph...](http://chemjobber.blogspot.com/2010/07/whats-happening-to- pharmaceutical.html)

> To illuminate for US readers, a UK-based PhD chemist such as myself with > about 10 years post-PhD experience can expect to earn 35-40k GBP, which > translates to about 55-60k USD

No, I'm not one, I code now, but I would have chosen differently if the market hadn't hammered so hard to shoo me away from contributing to, IMO, the more important cause. I'm convinced that the non-excludable (and therefore "valueless," per the market's reasoning) goods produced in academia account for a healthy fraction of the value in the pharma and medical industries, and it pains me that the market not only disagrees but strenuously so. It gets its priorities not just wrong but completely backwards. A "circus of values," as one popular philosopher put it.

<comment><USER9> The market response to this misconduct has been enormous. The legal response hasn't even been decided or implimented.

They're already a failed company because the insurers won't touch them.

You don't have to feel guilty that you once believed in something.

<comment><USER7> We're hearing about them because they went too far, not because the incentive landscape keeps the rest of their peers headed in the opposite direction (as it ought to and doesn't).

</comment></comment></comment></comment></comment><comment><USER10> I am coming late to the game but cannot find useful, clear explanations (I read the rather over wrought citron doc ... Is this a genuine stock researcher?)

So as I understand it :

\- valeant sells over priced medical drugs, which are named on a prescription by a doctor (?) but if you Are with insurer X, the insurer requires the druggist To replace expensive named brand with generic alternative.

\- Valeant "owns"/has crushingly close relationship with Philidor a network of local pharmacies / druggists.

\- philidor then buys a small druggist in Canada named R&O who then gets orders from all over the country and stops sending the cash to HQ because they were bought for 350k and now have revenue of 69m a few months later

\- And ... Exactly how does Philidor do this fraud thing? If you are supposed to swap NameBrand out for GenericBrand, how does sending in 69M of invoices for NameBrand help? Philidor / valeant were not supposed to be selling it anyway? How does this coupon thing help?

This is one of the annoying things about fraud - it is all simple when you eventually understand it.

Ps if anyone cares to explain how one can make and obtain money from having "stolen identity" please post that too ...

<comment><USER11> This is my take (based on other articles I've read):

\- Most of Valeant's drugs have cheap generic options, so most insurance company's say "no" when a pharmacy tries to fill it, hence it's hard as hell for Valeant to sell their drugs

\- Valeant forms a cushy relationship with Philidor. Unlike most pharmacies, Philidor puts a LOT of effort into getting the insurance companies to say yes (they just give the drug to the patient before getting paid; if the drug gets denied, they try many others ways to get paid)

\- Philidor was starting to get shutdown by payers, basically, any request from Philidor was red flagged by the payers to double check to see if something fishy was going on

\- Philidor also tried to get a pharmacy license in California, but the authorities said no because they lied on who actually owned what (apparently getting a "no" to a license is really bad)

\- Philidor then decides to buy R&O to get their licenses and their payer contracts. Basically it's a run around, the insurance company will see the script coming from R&O and basically think "ahh.. at least it's not Philidor"

\- However, Philidor starts playing loose and fast with R&O license even before they closed the deal. Philidor would bill an insurance company using R&O's pharmacy ID, which is a HUGE no-no

\- R&O sees what's up and says "screw this crap, I'm not going to give Valeant any of the insurance money I have until I get some goddamn answers as to what they are doing"

\- Valeant (in all it's wisdom) sues R&O for non-payment and R&O says "I never got a invoice from you" and all hell breaks loose as the story unwinds

<comment><USER12> One important note that was just uncovered that Valeant was abusing the DAW designation. Doctors can write "Dispense As Written" on a prescription to imply that they want the Brand Name drug rather than the generic one. IE, a doctor will often write something like "Tylenol 500mg" but they don't really care if the patient gets any random acetaminophen. If they write "Tylenol 500mg DAW" that means they want the patient to get the brand name Tylenol.

It's looking more and more likely according to internal documents that Philidor was changing doctors' prescriptions by writing DAW on them so that the patients would get the much more expensive Valeant option instead of the cheap generic version -- this is highly illegal, people will definitely be going to jail for that.

Edit to add a source:

[http://www.bloomberg.com/news/articles/2015-10-29/philidor-s...](http://www.bloomberg.com/news/articles/2015-10-29/philidor- said-to-modify-prescriptions-to-boost-valeant-sales)

<comment><USER5> _Philidor was changing doctors ' prescriptions by writing DAW on them_ ... _this is highly illegal, people will definitely be going to jail for that._

Oh, boy, this could get exciting quite quickly.

Valeant owns an option that lets them buy Philidor for $0 (plus possible incentive payments).[0] Yes, that's not a typo. This was submitted to HN a few days ago but didn't generate any comments.

The executives still (at least nominally) running Philidor must be shitting in their pants right about now. It looks like Valeant is out to make them look like bagmen. But why would they go down without a fight? The internecine warfare is about to get very interesting, or in more colloquial terms, the shit is really about to hit the fan.

[0] [http://www.bloombergview.com/articles/2015-10-26/valeant- s-p...](http://www.bloombergview.com/articles/2015-10-26/valeant-s-pharmacy- relationships-were-complicated)

<comment><USER13> "SIRF reporting reveals that Valeant has been closely involved with Philidor at every stage of its life-cycle, controlling it in all but name, since day one."

[http://sirf-online.org/2015/10/19/hidden-in-plain-sight-vale...](http://sirf- online.org/2015/10/19/hidden-in-plain-sight-valeants-big-crazy-sort-of-secret- story/)

<comment><USER5> The key is "all but name". If I'm Andy Davenport, Philidor's CEO, I immediately get together with my brother Matthew Davenport, also mentioned in your link, to get my story straight. Because it _is_ their name on all the documents.

Sarbox has put a damper on the Sgt. Schultz defense of "I hear nothing, I see nothing, I know nothing!". CEOs can go to jail even if they claim they were just ignorant figureheads.

So if I'm the Davenports I immediately go to the Federales and cut a deal. I rat out Mike Pearson (Valeant's CEO) and claim that he put them up to it. Note that its in the Davenport brothers interest to lie and make up shit if they have to, because that's probably their best way they avoid Club Fed (or worse).

Like I said, this could get interesting pretty quickly.

</comment></comment></comment></comment></comment></comment><comment><USER14> The real solution is that we need single payer healthcare that only covers generics. Then if people want to experiment with patent medicine, they can get supplemental insurance from the private markets or pay for it out of pocket. Until then the whole system is fucked.

<comment><USER11> Not sure where you're going with this. That would mean that no one would have access to any drug until it had already been on the market for at least 8 or more years, unless they were willing to pay it out of pocket (if they can't afford the insurance).

On Medicaid and have HER+ breast cancer? Tough, you can take some horrible chemotherapy that will give you 6 months, not the new HER2 drugs that will give you 5+ years of life.

How would that even work?

<comment><USER14> > On Medicaid and have HER+ breast cancer? Tough, you can take some horrible > chemotherapy that will give you 6 months, not the new HER2 drugs that will > give you 5+ years of life.

Which is exactly how it should work. The government should allow limited monopolies as an incentive for innovation, but it shouldn't be subsidizing them with taxpayer dollars.

The vast majority of new drugs have few if any benefits over existing drugs, they're just government handouts to the wealthy. So I fail to see how a system that provided the best possible treatments for 99% of health problems for every American at a fraction of the current cost wouldn't be vastly better than our current system.

<comment><USER11> _So I fail to see how a system that provided the best possible treatments for 99% of health problems for every American at a fraction of the current cost wouldn 't be vastly better than our current system._

If you're excluding patented drugs, you're excluding some of the best possible treatments out there.

Also, your statement that "the vast majority of new drugs have few if any benefits over existing drugs" is not true. Some drugs are not any better, but most are better, although many only slightly.

You have to realize that similar to tech, not every new drug can be a breakthrough. Most new drugs have incremental benefit, but it expands the boundaries of what's possible. If you look at the treatment of colon cancer, each new drug only added a few months of life, but after 10 years, the benefit had extended to over 5 years.

<comment><USER14> > If you're excluding patented drugs, you're excluding some of the best > possible treatments out there.

The issue is that allocating taxpayer dollars to the best treatments is bad policy, if you can get better outcomes from worse treatments for the same amount of dollars. E.g. for most diseases the most effective treatments are probably alternative medicine, but it's also probably not cost effective for the government to be paying for everyone to get whatever alternative medicine they want.

</comment></comment></comment></comment></comment><comment><USER15> I'm always fascinated by scams. As entrepreneurs we look for holes in the system to fix, whereas scammers look for holes to exploit.

</comment><comment><USER13> SIRF's report on October 19 [1] discusses operating structure and entities, many of which are named after chess references. From several articles:

"Philidor" ["Francois-Andre Philidor was an 18th century French Chess master"]

"BQ6 Media" ["named after the chess shorthand for Bobby Fisher's legendary move against Russian chess master Boris Spassky in 1972"]

"End Game LP" ["stage of a chess game when there are few pieces left"]

"KGA Fulfillment Services Inc." ["popular chess move is the King's Gambit Accepted, or as it's often referred to in chess notation, KGA."]

"Isolani LLC" ["Isolani refers to an isolated queen's pawn."]

"Lucena Holding LLC" ["Lucena position - one of the most famous and important positions in chess endgame theory"]

"Back Rank" ["a checkmate move in which a rook or queen takes the king on the back row of the board."]

[1] [http://sirf-online.org/2015/10/19/hidden-in-plain-sight- vale...](http://sirf-online.org/2015/10/19/hidden-in-plain-sight-valeants-big- crazy-sort-of-secret-story/)

[2] [http://www.theglobeandmail.com/report-on- business/valeants-s...](http://www.theglobeandmail.com/report-on- business/valeants-sales-network-the-firms-and-chess-terms-tied-to- it/article27009058/)

[3] [http://www.propublica.org/article/pharmacies-valeant- affilia...](http://www.propublica.org/article/pharmacies-valeant-affiliates- not-disclosed-california-license-denial)

[4] [http://sirf-online.org/2015/10/25/the-kings-gambit- accepted-...](http://sirf-online.org/2015/10/25/the-kings-gambit-accepted-the- annals-of-fraud/)

[5] [https://en.wikipedia.org/wiki/Chess_endgame](https://en.wikipedia.org/wiki/Chess_endgame)

[6] [https://en.wikipedia.org/wiki/Lucena_position](https://en.wikipedia.org/wiki/Lucena_position)

</comment><comment><USER16> I don't understand one thing. All the articles I read about Valeant and Phildor say that Phildor only represents 6% or revenue. Does that mean the other 94% is legitimate and comes from pharmacies where Valeant does not have an option to buy them? That is the piece I don't understand.

<comment><USER17> Only 6% percent of Valeant's revenue goes through Philidor. However, this raises HUGE questions about the legitimacy of the other 94% of Valeant's revenue streams. How many other arrangements like this does Valeant have. Is it conducting it's business on its other channels in an above board manner?

A huge portion of Valeants growth strategy comes from specialty pharmacies like Philidor. The integrity of the strategy has now been called into question by investors.

</comment></comment><comment><USER18> How is Valiant different from Uber? They both ignore regulations to serve a market. They both increase prices when there is a demand.</comment>


Please Stop Using Local Storage - <AUTHOR> https://www.rdegges.com/2018/please-stop-using-local-storage/ <comment><USER2> This is wrong, IMO. The author states the main risk to LS data is an XSS vulnerability in the website. While true, an XSS in a website is pretty much a "game over" and allows the attacker to get any information and perform any action in the context of the site.

Essentially, if a website has an XSS your information is compromised no matter what mechanism the site uses to store it.

<comment><USER3> That's exactly what I was thinking also. Local storage is protected by the origin access policy. If that is compromised by XSS, it doesn't matter how or where the data is stored; it's accessible.

<comment><USER4> It doesn't even need to be "stored", an XSS attack can pull information that is simply displayed on the page.

When it comes to web-apps, XSS is game over. It's the web equivalent of remote code execution.

</comment></comment></comment><comment><USER5> That was a relatively interesting read except for this line:

> One of the annoying things about cookies (the only real alternative to local > storage) is that they need to be created by a web server. Boo!

<comment><USER6> I agree. The only reason I can think to justify this is that the author is implying you only should use the HttpOnly flag for security reasons. Still seems odd that they don't know you can set cookies with JS.

</comment></comment><comment><USER7> OMG, he tell us to not store anything security-critical in Local Storage but advice to store encrypted session in Cookies instead!

He says that any JS code on the page can access Local Storage but he doesn't mention that Cookies can be accessed by JS as well as Local Storage. And also, Cookies will be sent with each request event if request target is an image or a CSS, when with Local Storage you can decide which data should be sent with each individual request.

He says that Local Storage can store strings only, but he doesn't tell that Cookies is even worse than this - it's JUST ONE string at all.

After that he tells about Cookie-related CSRF attacks prevention which not needed with Local Storage.

Doesn't he contradict himself?

</comment><comment><USER8> "Please Stop Using Local Storage" is not helpful and will confuse people who are unfamiliar with browser storage. I'm guessing the author meant, "Please Stop Storing Application Data in the Browser Instead of a Server-Side Persistence Layer (DB)". Local Storage is a specific thing in the browser and is useful in specific cases.

I found a good comparison of all browser storage options on Quora: [https://www.quora.com/What-is-the-difference-between- session...](https://www.quora.com/What-is-the-difference-between- sessionstorage-localstorage-and-Cookies)

I believe all of the author's stated shortcomings of local storage apply to all browser storage options.

* String Only

* Synchronous

* No Web Worker Support

* Size Limits (smaller for cookies but all have limits)

* Any JavaScript code on the page has access (don't include scripts you don't trust)

Also, keep in mind...

* There is no guarantee the browser will encrypt the content on disk. I believe chrome encrypts cookies, but I'm don't think others do. I don't believe local storage is encrypted at all. Session storage & session cookies should only be in memory. You shouldn't be storing PII in the browser anyway.

* These storage options can't be accessed by other domains as they conform to the same origin policy, but this is an important caveat: The "origin" of the script is the page it is executed in, not where it comes from. So, if you include <script src="[http://somehacker.com/superLib.js"></script>](http://somehacker.com/superLib.js"></script>) it will execute in your origin and can access everything. Protect your users by only including scripts you know are safe. * [https://stackoverflow.com/questions/12543978/same-origin-pol...](https://stackoverflow.com/questions/12543978/same-origin-policy-and-serving-js-from-a-cdn) * [https://developer.mozilla.org/en-US/docs/Web/Security/Same-o...](https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy)

In short, do some research and use the right tool for the right job.

</comment><comment><USER9> Well, localstorage is still much better than cookies. Browser includes cookies on all requests to your server. There is no way javascript can tell browser to stop that!!! Now, stop using cookies!!!!</comment>


President Duterte likens himself to Hitler wants to kill millions of drug users - <AUTHOR> http://www.reuters.com/article/us-philippines-duterte-hitler-idUSKCN1200B9 <comment><USER2> And why shouldn't he? His main "sugar daddy", the U.S. government, still hasn't done anything to meaningfully condemn his policies so far -- let alone apply a swift jerk of the leash, like it should have done long ago, by now:

 _While the Obama administration has criticized Duterte over the extra- judicial killings, U.S. officials offered no immediate condemnation of his latest comments and instead stuck to a strategy of stressing long-standing ties with Manila._

 _" We continue to focus on our broad relationship with the Philippines and will work together in the many areas of mutual interest," a White House official said when asked about Duterte's Hitler comments._</comment>


The Most Dangerous Stuff in the Universe – Strange Stars Explained - <AUTHOR> https://scienceswitch.com/2019/04/15/the-most-dangerous-stuff-in-the-universe-strange-stars-explained/ <comment><USER2> Strange matter is really interesting stuff, but linking to a one-paragraph post that links to a Kurzgesagt video? HN would prefer you link to the video directly and cut out the blog-spam middle man.</comment>


How to store 50k mails in 10M to fight Spammers - <AUTHOR> http://carlostrub.ch/code/security/sisyphus/ <comment><USER2> Spam receiving services seem to provide fertile ground for heavy optimisation of storage.

See also Mailinator. [0]

[0] [http://mailinator.blogspot.ae/2007/01/architecture-of- mailin...](http://mailinator.blogspot.ae/2007/01/architecture-of- mailinator.html)

</comment><comment><USER3> > However, all these previous junk filters learn only from their errors and > never from correctly classified mails.

I use bogofilter [1] for my mail. It also uses Bayesian filtering and it can in fact learn from correctly classified mail (see -u option).

[1] [http://bogofilter.sourceforge.net/man_page.shtml](http://bogofilter.sourceforge.net/man_page.shtml)

</comment><comment><USER4> I use Scrollout F1 which is an open source mail gateway appliance, mostly based upon Spamassassin. Works pretty well with minimal configuration. I'd recommend it for a SMB running on-premises Exchange.</comment>


Scaling Erlang cluster to 10k nodes at WhatsApp [video] - <AUTHOR> https://codesync.global/media/maxim-fedorov-scaling-erlang-cluster-to-10-000-nodes/ <comment><USER2> Direct link to video: [https://www.youtube.com/watch?v=FJQyv26tFZ8](https://www.youtube.com/watch?v=FJQyv26tFZ8)</comment>


The Grocery Store Analogy - <AUTHOR> http://blog.bloc.io/the-grocery-store-analogy

<comment><USER2> Yet another analogy to explain why bottlenecking is bad. Do we really need such trivialties in these parts?

<comment><USER3> This kind of analogy is useful to have on hand to explain things to non- technical people, who may not grasp the subtleties of threading vs asynchronicity.

<comment><USER4> Or for really non-technical people who don't understand scaling and scalability at all, and expect that once you launch, all that's left is adding more features.

</comment></comment></comment><comment><USER5> The Grocery Checkout is a better analogy for understanding how to tune lower level settings that affect web site performance such as max open file handles, timeout, and total worker threads. Overall you're trying to maximize

* how many checkout lanes are open (total worker threads, max file handles, max port per connection)

* how are customers directed toward the shortest line (load balancing strategy, poll vs. epoll vs. select vs. accept)

* how many items can each customer pay for at once (keepalive, persisting connections)

* how many customers can stand in each lane (receive buffer depth)

* how long to wait for a sleepy customer to put their items on the counter before kicking them out of line (timeout)

You can observe real world traffic jam scenarios in actual checkout lanes and easily picture the same thing happening in a web server stack, and fortunately each layer of the web stack gives you settings to open as many lanes as your servers can handle and keep those lanes moving.

</comment><comment><USER6> Off topic, but when talking about evented/continuation based systems, I'm surprised the c# approach with the async/await keywords isn't brought up more often. For those unfamiliar, those rather confusingly named keywords make the program compile down to a continuation passing style, while still letting the source look synchronous. Makes the code _much_ easier to handle.

</comment><comment><USER7> I have no idea what the site was waiting for, but until that request completed, all of the text was invisible: <http://i.imgur.com/HO0oW.png>

</comment><comment><USER8> Now I feel the need to go buy some bacon.

<comment><USER9> Yeah, I'd be part of that 90%, too...

</comment></comment><comment><USER10> Being a bit inspired by the design on the Svbtle network, I'm surprised you didn't go with proxima-nova.</comment>


Spreedly Pricing Change - <AUTHOR> http://blog.spreedly.com/2009/11/12/improved-spreedly-pricing

<comment><USER2> Spreedly seems great, as soon as they get PCI compliance they will be an even better option.

<comment><USER3> It's in process - goal is to have certification by year's end. We know it's important!</comment></comment>


Alleged VDOS Proprietors Arrested in Israel - <AUTHOR> http://krebsonsecurity.com/2016/09/alleged-vdos-proprietors-arrested-in-israel/ <comment><USER2> Shortly after Krebs broke the news that vDOS had been hacked, Itay Huri and Yarden Bidani, both 18 years old, who allegedly ran vDOS, according to krebsonsecurity.com, were arrested. From Krebs, it seems that other booster services were feeding off of vDOS. Both Krebs articles are really interesting read.</comment>


What one engineer learned when he stopped taking photos and started drawing - <AUTHOR> http://www.fastcompany.com/3036378/my-creative-life/slowgrams-what-one-silicon-valley-engineer-learned-when-he-stopped-taking-p

<comment><USER2> This is quite cool. I actually have worked from the opposite in that I've started taking more photos as reference for future drawings and paintings, which in some ways has reinvigorated my tendency towards inspiration from mundane objects and events.</comment>


Twitter Censored Hashtags Critical of Hillary During US Presidential Election - <AUTHOR> https://swarajyamag.com/insta/twitter-censored-hashtags-critical-of-hillary-clinton-during-us-election-is-india-next <comment><USER2> What use is big data & sentiment analysis of Twitter if Twitter itself isn't a trusted Oracle? And then you wonder why the predictions forecast the results all wrong</comment>