CERN Confirms Neutrinos Not Faster Than Light - <AUTHOR> http://www.redorbit.com/news/science/1112551696/cern-confirms-neutrinos-not-faster-than-light/

<comment><USER2> While it's awesome that the experiment has been corrected and is now working properly, it is a little disappointing to me that the answer isn't so strange.

I would have loved it if it turned out to be something real just because it would have made some form of communication between planets without a delay possible.

<comment><USER3> It never made sense to me why they publicized the result, since it looked so clearly like some kind of experimental screw up. All it could do is make them look like amateurs when it inevitably came out that they bungled something.

<comment><USER4> I think they were aware of how it looked, as well as the most likely explanation. However, if you have results you cannot explain, you show it to your peers so they can find the error, or confirm the discovery. They never went public and said "we made a discovery". They went public and said "this is what we did, this is what we got".

<comment><USER3> I question their ability to perform science if they have to rely on their peers to find problems in their own equipment. When my car breaks down, I go to a mechanic to have it fixed, but when my software fails, I don't publish it and ask the community to figure out why it doesn't work.

<comment><USER5> I question your understanding of how science works. Actually, I question your ability to program also. I often go out to the community to find out if there are other issues, or maybe something simple that I forgot. Using your peers for help is not a weakness, it's a strength.

<comment><USER3> Science is about performing experiments and replicating them, not about debugging hardware. A friend of mine famously complained that his computer was broken because his C programs weren't compiling. He had misspelled "include." The "community" didn't need to step up and help him. He needed to learn how to use his tools.

<comment><USER5> Well, I wasn't sure before, but you've removed all doubt.

<comment><USER3> You know, I'm not a scientist, so it's quite possible I've misunderstood the situation here. But if nothing else, what I'm saying is exactly what you can expect the average person with some education—albeit not a scientist—to think, based on a casual knowledge of physics (the role of the speed of light, etc.) reading these headlines.

I don't think I've been particularly discourteous to you, but if I have, I apologize. It would be more helpful in the future to show me what I haven't seen rather than simply insult me.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER6> A very good post on this by Matt Strassler from earlier this year:

[http://profmattstrassler.com/articles-and-posts/particle- phy...](http://profmattstrassler.com/articles-and-posts/particle-physics- basics/neutrinos/neutrinos-faster-than-light/opera-what-went-wrong/)

There were apparently two problems:

1\. An improperly calibrated clock 2\. A fiber optic cable was not fully plugged in. This led to a little bit of light leaking out from the cable, which lead to a (very small) delay in recognition of the arrival of a pulse on the fiber.

Yes, modern physics experiments are pretty complicated and lots of things can go wrong!

</comment><comment><USER7> end of the article "After months of investigation, physicists have ruled that the speedy neutrinos observed were likely due to a faulty connection in an optical fiber of the Master Clock." i really do wonder why negative attitude to my "were likely goes both ways" - they have ruled (not proved) that something is likely. please. either the article is stupid or those who have ruled.

</comment><comment><USER7> were likely goes both ways.

</comment><comment><USER8> In other news: sky is blue, grass is green.</comment>


Software engineers are lazy bastards - <AUTHOR> http://blog.benjaminfry.com/2015/06/software-engineers-are-lazy-bastards.html?spref=tw&m=1

<comment><USER2> As I've understood it engineers in other disciplines often have goto specs for various things: x inches of steel will hold such and such a weight material y can handle a current of z at gauge g, etc

Why hasnt this been standardized in SENG? Maybe we should have simple components that are used in all cases and engineers become more like people playing with legos, fitting pieces together instead of inventing new blocks over and over.

<comment><USER3> I think you just described the motivation behind every library, framework, and platform ever. To your credit, it is a great idea.

</comment></comment><comment><USER4> A bridge is a bad example. Bridge analog in software engineering is a bodyshop that creates typical e-shops for example. And the first (comparable to modern software projects) "hard" engineering project was Apollo Program. It was so complex so new engineering approach was introduced to get it done. But such "hard" engineering projects are relatively rare, software ones are not.

</comment><comment><USER5> I think engineering discipline is about knowing how much testing is required to ensure your code is good enough with a high probability.

If you make a change to your code, how much testing is required to know it works? If you don't write a unit test, will it lead to technical debt? Are you capable of testing your own code?

</comment><comment><USER6> The article doesn't really get into many methods of verifying and testing software. If making unit tests was unusual up to very recently, who is to say that the current focus on unit tests isn't just a local optimum?

\- Generative testing; essentially randomized unit tests. Seems better when the alternative is to write a bunch of mostly similar unit tests with some parameters changed in an ad-hoc way.

\- The style of languages like Ada with asserts and pre/post conditions. Aided with powerful pragmas so that you can turn off checks for production builds (if that is wanted).

\- Expressive static type systems.

\- <You can probably inform me of even more approaches>

<comment><USER7> [http://en.wikipedia.org/wiki/QuickCheck](http://en.wikipedia.org/wiki/QuickCheck)

<comment><USER8> And here's something I came across recently: [http://www.philipreames.com/Blog/2015/05/18/observations- on-...](http://www.philipreames.com/Blog/2015/05/18/observations-on-fuzzing- in-practice/)

</comment></comment></comment><comment><USER9> I would make a comment but ... I'm too lazy for this post.</comment>


How Silicon Valley Fuels an Informal Caste System - <AUTHOR> https://www.wired.com/story/how-silicon-valley-fuels-an-informal-caste-system/?mbid=social_fb <comment><USER2> It's pretty formal.</comment>


Six Million iBricks… and Growing - <AUTHOR> http://www.techcrunch.com/2008/07/11/six-million-ibricks-and-growing/ <comment><USER2> Every major tech release is the same thing. Everyone raves over how wonderful this new piece of kit will be, a few morons line up for hours to give their money away, and then comes the inevitable pile up of rants because things don't work as advertised.

Seriously, you'd think people would learn that it simply doesn't pay to be an early adopter, but no, every release is the same tired bout of whining.

Never buy version .0, that goes for everything - from cars to iPhones.

</comment><comment><USER3> Clearly, it's a Rails problem.

</comment><comment><USER4> and shrinking... Just keep retrying. Took me about 30 minutes. Yes it's a pain, but what do you expect when the world all wants the same thing at the same time.

<comment><USER5> I agree, that headline is just trolling for traffic. 6 million? Come on. Settle down.

</comment></comment><comment><USER6> Releasing the 2.0 firmware for existing users on Wednesday would have solved this problem. Releasing the new phones and the new firmware on the same day was incredibly stupid and irresponsible.</comment>


Launching my first SaaS product in 54 hours, 20 minutes, and 5 seconds - <AUTHOR> http://mattsencenbaugh.com/launching-my-first-saas-product-in-54-hours-20-minutes-and-5-seconds/

<comment><USER2> Might be just me, but "See this excellent tutorial for more details" \-- I wasn't sure where to click, so I hovered a bit, didn't see it, thought the page wasn't complete yet, but then accidentally found it.

tl;dr Might want to make links stick out more. :)

Looks neat though. However I'm not sure that someone would want to support their iOS app with this and not Android. So... is Android coming soon?

Good luck!</comment>


How DNS works - <AUTHOR> https://howdns.works/ep1/ <comment><USER2> This is a pretty cool little comic. It'd be cool if they were mention how the DNS caches these values in order to make them more accessible to people resolving them later but then again this isn't supposed to be _super_ technical.

</comment><comment><USER3> The Website Is DOWN!

This is the first look I've got...</comment>


Heads-Up Limit Hold'em Poker Is Solved - <AUTHOR> https://cacm.acm.org/magazines/2017/11/222180-heads-up-limit-holdem-poker-is-solved/fulltext <comment><USER2> Solved to an exploitability of 1 milli-big-blind / game, which is stated to be within ~approximately optimal over the bounds of a human lifetime of play.</comment>


Palmerston: The island at the end of the earth - <AUTHOR> http://www.bbc.co.uk/news/magazine-25430383?ocid=socialflow_twitter_bbcworld <comment><AUTHOR> And of course there has been a DXpedition or two: [http://dx- world.net/2012/e51and-the-palmerston-atoll-story/](http://dx- world.net/2012/e51and-the-palmerston-atoll-story/)</comment>


How to Avoid Idea Averaging - <AUTHOR> http://andrewxhill.com/blog/2016/01/04/idea-averaging/ <comment><USER2> Idea averaging is not an example of "the wisdom of crowds". It's a manifestation of groupthink.

More specifically, it's an example of when a group of people will tend to agree on something that is the least objectionable on average. This means that it's less likely that an unconventional idea will be accepted.

This concept has been studied for a long time in the social psychology literature. For a survey of related topics: [http://chicagounbound.uchicago.edu/cgi/viewcontent.cgi?artic...](http://chicagounbound.uchicago.edu/cgi/viewcontent.cgi?article=1165&context=law_and_economics) (see specifically "Hidden Profiles and Common Knowledge").

<comment><USER3> Since most unconventional ideas tend to fail (because people have thought for a long time about what would be good, and over time those things have often become conventional), it is a useful heuristic to go with conservative, conventional ideas. I think this totally fits in with "wisdom of crowds".

Of course, this also means you won't generate that once-in-a-million super great _unconventional_ idea. But then again, I think that's the point. If you try to generate the great unconventional idea, the base rate of failure is so high that you should not have so much hubris as to believe you actually can do it, and most often you should admit that what you think is a great unconventional idea really probably can't do any better than whatever conventional wisdom would choose.

I think my view on this is not popular because everyone wants to believe in the idea underdog -- the idea that was spurned by conventional wisdom but proved itself regardless and made someone famous for executing upon it.

That's great and all, but in the same way that putting all of your money on a single stock is a bad strategy, failing to average across ideas embraced by conventional wisdom is also (often, but not always) a bad strategy.

On a different note though, there is a lot of value in your comment even connecting it back to the "wisdom of crowds" stuff. One of the issues with "wisdom of crowds" is that the aggregated average tends only to be better whenever there is a sufficient variance of opinions in the crowd. This way, there is not systematic bias in everyone's thinking, meaning that the average too will have that bias. The more variation, the more that each participant's particular way of being wrong will contribute to "canceling out" the errors, leaving the average in a good position.

To me it suggests that when unconventional ideas do hit it big, it is because they are highly related to some source of demonstrable bias in conventional wisdom, and by removing that bias, such ideas can actually improve upon whatever is the current state of conventional wisdom.

But most of the time, it seems we only hit upon these bias-based improvements by accident because tons and tons of people keep trying (and failing, often to their personal detriment) to commit to unconventional ideas that aren't articulated in terms of any demonstrable bias, and it ends up basically being an idea lottery to see who happens to hit the "jackpot" idea. That's what makes conventional wisdom appealing as an alternative, steady expected return with low risk, but it's also what means it will never lead you to the next big thing.

<comment><USER4> Ironic, then, conventional wisdom is a useful heuristic because of all these unconventional ideas individuals do attempt, and so the answer to keep moving humanity forward is, yes, go ahead and try that unconventional idea, or you will contribute to systemic bias.

I would expect the "wisdom of the crowds" to have a different result if, when asking for each person how many peas are in a bottle, each person is first told of the current running average or median. I think it would achieve a better result if everyone made their own guess independent of the "crowd". Otherwise, the random bias that occurred from the first 20 people's guesses is going to percolate because everyone who is guessing after will have their guess anchored when they're told of the group opinion.

</comment></comment></comment><comment><USER3> Idea averaging is a wonderful thing, and you should probably do it way more than you already do, and it should probably be your default mode when looking to choose between ideas.

A lot of this is spelled out in the literature about why ensemble methods tend to be superior to individual methods in statistical inference, which has a lot of ties to why averages of non-expert opinions tend to be as accurate or even more accurate than small pools of expert opinions.

In the limit, when you reallocate credibility to a set of ideas in a manner that is fully derived from your prior beliefs and the evidence you have, it becomes exactly Bayesian reasoning. A posterior distribution is exactly an "idea average" where each idea (each potential outcome) gets as much (and no more) credibility as it deserves, according to the prior and the probability model at hand.

Here's somewhat of a popular account of it:

< [https://www.washingtonpost.com/business/is-it-better-to- trus...](https://www.washingtonpost.com/business/is-it-better-to-trust-the- best-expert-or-the-average-of-a-group-of- experts/2013/11/15/59cc716e-4b01-11e3-be6b-d3d28122e6d4_story.html) >

There is also the recent stuff under the marketing buzzword "Wisdom of Crowds" e.g. < [http://onlinelibrary.wiley.com/doi/10.1111/j.1551-6709.2011....](http://onlinelibrary.wiley.com/doi/10.1111/j.1551-6709.2011.01223.x/abstract;jsessionid=58C236728B81FFF49A4E84DF1E3B65CB.f02t04) > or the Wikipedia article on it too (and many sources that point out potential problems and corner cases that are also important).

In general though, I think I have to disagree with the article's premise. Unless two distinct ideas truly are mutually exclusive (most things aren't), then it's better to have a diversified portfolio over the space of all the ideas than to put all your eggs in one basket, and averaging ideas is sort of a humble heuristic that seems to work in a lot of areas.

<comment><USER5> This is a very confused post. A posterior is not an "average", it's a probability distribution. That distribution may _have_ a mean value, but that's not a meaningful quantity in general.

For example, you're chasing someone and you come to a fork in the road. You know they must have taken the left or the right branch, so your posterior distribution on their location has two modes. It also has a mean value, in the middle of the forest between the two branches, but unless you have specific evidence they've abandoned the road, this is a very low-probability state.

The type of averaging prescribed by Bayesian decision theory is averaging of _utilities_ , not of beliefs or actions. You take the action having the highest expected utility, where the expectation is taken over your posterior distribution. Assuming you actually want to catch your suspect, the expected utility of following either the left or the right fork will be much higher than the utility of dropping the pursuit to poke around in the middle of the forest.

<comment><USER3> I think you are mistaken. Yes, a posterior is a probability distribution, which is exactly taking each possible outcome in accordance with its probability. I didn't say anything about collapsing the distribution down to a single point estimate like the posterior mean, or the MAP estimate, or any other single statistic. I am saying that I hold in my head a bunch of beliefs all at the same time (thus they are "blended" or "averaged" together), each in accordance with the amount of credibility it deserves. I think it's totally fine to speak about this as a type of uncollapsed "averaging" process, and indeed when you do something like hierarchical models where you supply a metaprior distinguishing between two alternative models, we widely talk about such things as _model averaging_ even in the statistics literature. It seems like a rather misguided nitpick to me to insist that the English word "average" cannot be invoked unless it specifically coincides with the statistics word "mean".

Further, you're simply wrong about Bayesianism being about averages of utilities. The best account of Bayesian probability as a mapping of plausibilities to the unit interval is in Jaynes' _The Logic of Science_ , but there is also a brief account of it in David Mumford's essay _The Dawning of the Age of Stochasticity_ and e.g. in the introduction of _Bayesian estimation supersedes the t-test_ by Kruschke [1] (where he explicitly describes it in terms of reallocation of credibility). Further, a la Jaynes, I think the right way to understand probability at all is in a mind-projection fallacy sense of the term: it describes your state of ignorance about the uncertain item.

It's not about utilities of actions -- utilities can be modeled with probabilities if the utility of certain actions is uncertain, but that is different than the base concept of probability being about which outcomes are more valued.

[1] [http://www.indiana.edu/~kruschke/BEST/BEST.pdf](http://www.indiana.edu/~kruschke/BEST/BEST.pdf)

<comment><USER5> I read the original (andrewxhill's) post as making a point analogous to the "fork in the road" example: it's fine to maintain a full posterior on ideas, but if you need to choose, you should put in the effort to choose the best idea, not blindly try to merge them into a single idea that might combine the worst of both worlds. The latter would be like searching the forest between the two roads instead of just choosing a branch. Under this reading the point seems quite sensible to me.

You seem to have read the post quite differently, in a way that causes it to seem totally wrong.

I actually do think it's just a fact that "average" in both colloquial _and_ mathematical usage means something like "to collapse multiple values to a single typical value" (even Bayesian model averaging collapses a distribution over probabilities into a single probability). But even if it were genuinely ambiguous what andrewxhill meant, you generally get a lot more out of a post by choosing the reading that allows it to be insightful over the reading the causes it to be nonsensical.

<comment><USER3> First, model averaging is a bit different than when you describe it as (at least in my reading, but maybe you mean "single probability" differently than I read it):

> even Bayesian model averaging collapses a distribution over probabilities > into a single probability

as I mentioned in the child comment to the other reply to this comment, model averaging creates an average value, but the type of that value is _a distribution_. That is, you have a distribution _over distributions_ (each coming from a different model) and the effect of averaging does not reduce you down to a point estimate, rather it reduces you down to just one distribution.

This is why it's totally fair to say a posterior can be an average. It is the average of a bunch of other distributions. I think if I had said it that way in my first comment, it would have removed some confusion.

But it is important, because the criticism that "a posterior isn't an average" is very wrong. A posterior most certainly can be the average of some other stuff, if that other stuff was itself a bunch of _distributions_ \-- and that's exactly what I am trying to talk about.

But to your other point, about the 'sensible' vs. 'not sensible' readings, I mostly agree. However, the problem is who gets to decide when two ideas fall into the "knife-vs-spoon-clearly-exclusive" category, or when it's more gray than that, and the choice is not so black and white, and there is not a need to over-commit to just one approach?

The reason the OP post strikes me as problematic is that it seems like a matter of opinion, or in the worst case a matter of bureaucratic/dictatorial mandate, as to when ideas are of the type that can be averaged vs. when they are not.

I'd generally like people to be more humble about it and tend to believe that conventional wisdom and model averaging are better, at least as a first heuristic, than deeply committing to just one thing. That way there might be less urgency to rush into the claim that some debate is "knife-vs-spoon".

I sort of see the whole "knife-vs-spoon" thing as a kind of Godwin's law of brainstorming. Once you invoke the "knife-vs-spoon-so-we-can't-average" claim, it's like game over and all useful intellectual discussion dies and everyone just either picks Team Knife or Team Spoon and then the political battles start. Unless it's _really_ mutually exclusive, I'd rather that doesn't happen.

</comment></comment></comment></comment></comment><comment><USER6> Also known as design by committee: [https://en.wikipedia.org/wiki/Design_by_committee](https://en.wikipedia.org/wiki/Design_by_committee)

</comment><comment><USER7> What would you call this topic or category of theory? I'm interested in learning more. Any books or literature that's recommended?

I've become the "product" guy in the startup I'm in, and would love to learn more about helping a group innovate and push forward.

<comment><AUTHOR> Not sure... what part of it interests you? Teamwork? Innovation? Decision making?

I was putting together a "best read of 2015" type post but never finished it. There were a couple on my list that I think are related and maybe you'd find interesting.

This one from HN a few weeks back, [http://justinkan.com/three- stories](http://justinkan.com/three-stories)

Higher level company organization stuff I thought these two books gave at times contradictory and at times very complimentary thoughts on what made teams work. In reality, neither were exactly about making teams work though :)

Playing to Win [http://www.amazon.com/Playing-Win-Strategy-Really- Works/dp/1...](http://www.amazon.com/Playing-Win-Strategy-Really- Works/dp/1491528796) is on creating strategies

Reinventing organizations [http://www.amazon.com/Reinventing-Organizations- Frederic-Lal...](http://www.amazon.com/Reinventing-Organizations-Frederic- Laloux/dp/2960133501) is about holacracy but talks a lot to people's motivations in a company.

Hopefully I have a couple more interesting things to say on andrewxhill.com too, so keep an eye on it!

</comment></comment><comment><USER8> The rotating image carousel seems like an example of idea averaging.

\- "What should we put on our homepage?"

\- A bunch of people have different ideas.

\- "I know, we can put them all up with a carousel!"

Even Apple has succumbed to his, which is perhaps not surprising. Carousels often come out of collaborative cultures (everyone wins!), which has been a point of emphasis for Tim Cook.

Avoiding carousels requires that a single person is willing to make a bunch of colleagues unhappy by picking only one thing at a time to feature.

</comment><comment><USER9> I think something the article missed is you should probably test your ideas(cheaply if possible) because facts are better than opinions(apparently drunken' ones in the authors case).</comment>


Boulder's Mesa Elementary adds 'buddy bench' to encourage inclusiveness - <AUTHOR> http://www.dailycamera.com/boulder-county-schools/ci_25687473/boulders-mesa-elementary-adds-buddy-bench-encourage-inclusiveness

<comment><AUTHOR> I can definitely see the good side of this initiative. However I'm afraid there's also a bad side to this as children can be cruel to any sign of weakness or difference. I think parents have to support this initiative and talk to their children about the importance of including etc.

I'm definitely curious how satisfactory the results are going to be.

<comment><USER2> I think it's interesting that they've recruited kids to be advocates for using the bench in the intended way. Kids can certainly be cruel, but I think they are just as capable of enforcing positive norms as negative ones. So maybe that's how this will work out here.</comment></comment>


The Anatomy of Addictive Gameplay - <AUTHOR> http://www.innesoft.com/blog/2010/06/the-anatomy-of-addictive-gameplay/

<comment><USER2> This talk, mentioned on HN a few times, is must watch tv for anyone in this space.

<http://www.cmu.edu/homepage/multimedia/schell-dice.shtml>

On a personal note, I can attest to the addictive nature of these games. My crack of choice was WoW and oh how I chased that dragon. But like all highly addictive substances, it is my firm beliefe that this area will come under the regulation of government... to protect the children. But in reality it should be regulated like any other addictive form of entertainment like gambling, alcohol, tobacco, or narcotics. Not outlawed, but regulated. Like S.Korea regulating play time, [http://www.huffingtonpost.com/2010/04/12/south-korea- imposes...](http://www.huffingtonpost.com/2010/04/12/south-korea-imposes- midni_n_534782.html).

<comment><USER3> Maybe this will save someone some time: Adblock Plus blocks playing of the Schell vid. Turn it off for the page.

</comment></comment><comment><AUTHOR> Someone on reddit pointed out that the morality of making addictive games was never discussed. What does the community here think about this?

<comment><USER4> Calling a game 'addictive' is a playful compliment. Let us not mistake it for a serious assessment of the situation. Games do not foster physical dependency; they do not coerce the player to chase a diminishing high until his whole life is a ruin. Except WoW. ;)

I think addictive games come in two flavors, one negative and one positive.

The negative type are games that don't let you go, that you wind up playing long after you've lost interest in them. Games that are centered around a guild that needs you, so your friends draw you in. Games that must be played regularly and so form habits. Games that threaten to punish you severely if you don't frequently check in. This is a negative sort of 'addictive' gameplay: it eats up time, demands attention, serves as a second job. Games like these should be enjoyed briefly and then escaped from. Lucrative though they may be, I would not want to develop one.

Then there is the positive sort of 'addictive' gameplay, which I might call more accurately 'fascinating'. These are games that dazzle and delight, that eat your brain, that you wind up playing for 16 hours a day for a week because you can't stop thinking about them. Like a fascinating problem or a motivating vision, they push you to perform and learn. This sort of addiction always dies out eventually, but while it lasts it is enjoyable and rewarding. I would go so far as to say it's what gaming is _about_. Yeah, it may cause the occasional day of missed work, but it gets the odd hacker in a serious groove, too. I think games with this quality are excellent and even make the world a better place. I would strive to make any game I built so 'addictive'.

<comment><USER5> Out of curiosity, what games would you put in which category?

I would class something like WoW as negative and games like Civilisation as positive, which makes me think it has something to do with where you do the "work". In WoW, the "work" is all in-game, killing monsters for rewards etc. In Civilisation much more of the "work" is done planning your next moves, which is more of an out-of-game activity, meaning you can continue "playing" the game while you do other things.

<comment><USER4> Every Facebook game I've ever played is in the first category. Some MUDs. WoW, apparently -- I haven't played it, but its effect on friends who have seems negative.

In the second category . . . well, my choices are going to reveal my age and biases, but here goes. Starcraft, Nethack, and Descent are the big three that have eaten whole years of my life through simply excellent and deep gameplay, so they're my standby examples. Any of the Civ games would count. Deadly Rooms Of Death is a puzzle game that's a genuinely tasty hacker snack. And one of the most direcly addictive games I've ever played was Starscape.

I agree with your distinction between in-game and out-of-game work. Bad games convert time into progress. Good games convert time into skill into progress. Great games convert concerted mental effort into progress.</comment></comment></comment></comment>


Why big IT projects crash - <AUTHOR> http://www.ft.com/cms/s/0/794bbb56-1f8e-11e3-8861-00144feab7de.html

<comment><USER2> Please do not submit/link to stories that require registration!</comment>


Chrome for iOS Has Serious Privacy Flaw in Incognito Mode [video] - <AUTHOR> http://parall.ax/blog/view/2959/chrome-on-ios-7-leaks-searches-in-incognito-mode Searches are leaked across from incognito mode to the normal browser. This is especially bad given that Chrome has a unified search bar. <comment><USER2> Pardon my cynicism, but it's hardly in Google's self-interest to have a true "incognito mode" in any browser that you use.

</comment><comment><USER3> It's why the word Incognito in Chrome for iOS has an asterisk next to it:

"On Chrome for iOS, due to platform limitation regular and incognito* tabs share HTML5 local storage, which is typically used by sites to store files on your device (client-side caching) or to provide offline functionality. This means the same sites can always access their data in this storage in both regular and incognito* tabs. Incognito* tabs will still keep browsing history and cookies separate from regular tabs, which are cleared once those tabs are closed."

[https://support.google.com/chrome/answer/95464?hl=en](https://support.google.com/chrome/answer/95464?hl=en)

<comment><USER4> Sounds to me like we need an option like delete cookies for local storage as well.</comment></comment>


Show HN: Infinity School – Learning through making and discovery - <AUTHOR> https://www.infinityschool.co.uk/ <comment><USER2> I did Montessori through 5th grade; sounds a lot like that. You just kind of went from classroom to classroom as you wanted, and the teachers let you set the topic and the pace you learned at. And I still solve quadratics in my head by thinking of those blocks...

<comment><USER3> I was unaware of them until a few years ago, but in my previous job I always came in as a kid (must've been 11/12) who clearly had some kind of disability or difficulty was getting onto a Montessori bus with the biggest smile on his face. Always dropped off as I was leaving work looking content - made me think whatever they did there was a positive.

</comment></comment><comment><AUTHOR> I created Infinity School to try to educate children in a more personalised and creative way. Let me know what you think!

<comment><USER4> I'm a potential customer. Both my kids go to school. My oldest complains he's bored. I expect my youngest will do the same in a few years.

Things I noted:

There isn't much detail of what I get for the £s. What kind of materials? What does the curriculum cover? Do I need to purchase additional materials, or print stuff out, or what?

There isn't much background on how the materials are developed, or about who has developed them. As someone with a mild interest in pedagogy I want to know what "the latest advancements in education" means. Also, say who you are. Give a nice background story about how you were frustrated with whatever it was that drove you to create this. A personal connection is a good thing for this sort of business at this stage.

Be careful how much you emphasise the home schooled crowd. They're quite small and largely considered kooky by the mainstream.

BTW, I love the photo on the home page.

<comment><AUTHOR> Great comments. I agree, definitely need to add more context and detail around the curriculum and it's development. Thank you.

</comment></comment></comment><comment><USER5> @calhat

As someone who was homeschooled all but US 2nd grade and has homeschooled some so far with the kids, a few notes.

1\. I know you are UK focused, but there is a large homeschool market in the states, and most of the states (each differs) do not have curriculum requirements. I suggest providing either a US site or US grades and USD option.

2\. It was mentioned already, but please show an example lesson and even better some of the organization in the curriculum.

3\. Video of kids interacting with the content would also be great.

4\. Completeness? Is this a supplement or complete curriculum?

Best of success to you!

</comment><comment><USER6> I recently came across an idea that involves group based[0] learning in students rather than the classical model. It's in a bunch of school districts but I'm curious how it works in practice.

That we have many competing new forms of education is a great evolution in my opinion and I had one of these experiments winds up causing a big impact.

0: [https://newtechnetwork.org/](https://newtechnetwork.org/)

</comment><comment><USER7> Typo on the 'home education' page: "accross"

I think you REALLY don't want typos on a site about education! :D

<comment><AUTHOR> Thank you!

<comment><USER8> Also 'recieve' -> 'receive' (front page)

<comment><AUTHOR> Just spotted that one too, thank you</comment></comment></comment></comment>


Comma.ai - <AUTHOR> https://medium.com/@cdixon/comma-ai-e62eea5fa8d2#.469ocxpff <comment><USER2> TL;DR -

1\. George Hotz builds his own self-driving car.

2\. a16z invests $3.1M in his company, Comma.ai.

</comment><comment><USER3> Congrats to comma. $3.1m seems like an odd amount. I'd be curious to see what went into that number.

<comment><USER4> I wonder if the precise amount is closer to 3.14</comment></comment>


Introduction to Digital Filters With Audio Applications (free book) - <AUTHOR> http://ccrma.stanford.edu/~jos/filters/

<comment><USER2> I took several courses at Stanford with Julius Smith (the author of this ebook). He's really sharp, and explains complicated audio signal processing concepts very well. If you're even remotely interested in pursuing research in audio technologies, I would highly recommend the CCRMA program at stanford.

<http://ccrma.stanford.edu/>

</comment><comment><USER3> This was frequently useful when a friend and I made a VST instrument. It's now freely available at <http://sohasound.com>

</comment><comment><USER4> thanks for the link</comment>


YouTube-MP3 Settles with RIAA, Site Will Shut Down - <AUTHOR> https://torrentfreak.com/youtube-mp3-settles-with-riaa-site-will-shut-down-170904/ <comment><USER2> You can use youtube-dl, VideoDownloadHelper .. so many other tools that can be used. This was more of a tool for the non-tech person.

The settlement kept this away from court, so we avoid the much bigger issue. YouTube is sending you their video/audio. Your browser plays it. Depending on which browser or tool, it could play it differently, alter it as it plays it, cache the video or even save it to disk for permanent archive.

There's Hooktube which lets you view videos without the YouTube cookies; pulling straight from Google's CDN.

At what point can companies bind the end users on the Internet for the means by which we accept their data? Can they ban greesemonkey scripts like Facebook did with unfriendfinder?

[http://penguindreams.org/blog/discoverying-friend-list- chang...](http://penguindreams.org/blog/discoverying-friend-list-changes-on- facebook-with-python/)

The big companies are challenging the way you represent the data they give you and what you can do with it. That's not the free web. That's not what Tim Berners-Lee envisioned.</comment>


How A MacBook, Facebook and a Canon 7D Are Today's Tools for Revolution - <AUTHOR> http://www.genjuice.com/2011/02/09/how-a-macbook-facebook-and-canon-7d-are-todays-tools-for-revolution/

<comment><USER2> Publishing technology in the 20th century brought content to the masses.

Publishing technology in the 21st century is bringing content creation to the masses.</comment>


The On-Demand Economy Is a Lie - <AUTHOR> https://medium.com/@guyshachar28/dear-unit-economics-i-hate-you-7c28b9aef08d#.ot52cie1j <comment><USER2> Here's my new business model lets lower our margins to half what everyone else charges, use independent contractors that aren't required to show up so we need to spend 10x as much recruiting them and lets limit the only channel to order to the phone. No they can't call in and order they need to download an app.

<comment><AUTHOR> I couldn't agree more my friend

</comment></comment><comment><AUTHOR> I'm eager to hear what's your take on the on-demand economy and unit economics in general!</comment>


UpHabit, the Trusted Personal CRM for Busy People - <AUTHOR> http://www.uphabit.com <comment><AUTHOR> We meet so many interesting people in our lives - but more often than not, we find it difficult to stay in touch with those people, and our relationships drift apart.

UpHabit is a Personal CRM app that helps people build better relationships. An alternative to social media, the app encourages users to keep in touch with people who matter and develop a stronger network.

</comment><comment><USER2> While interesting, how does this differ from open source solutions like Monica[0]?

[0]: [https://github.com/monicahq/monica/](https://github.com/monicahq/monica/)

<comment><AUTHOR> I can't speak for this other app, but one thing that differs us from other Personal CRMs is our emphasis on data privacy. The team here is pretty obsessed with security and data privacy, and we created an app focused on those values.

<comment><USER3> An app that collects all of one's Contacts by definition has contorted Data privacy standards.

<comment><AUTHOR> I see where you're coming from, Masonic. Having an open-source product would add a layer of trust, especially if you host it yourself. However, there are people who would not want to go through the hassle of self hosting, and we believe that these people deserve a commitment to privacy too. With UpHabit, we created an inclusive app that while hosted on our own servers, come with our promise that we'll never sell user data.</comment></comment></comment></comment>


Climbing the infinite ladder of abstraction - <AUTHOR> https://lexi-lambda.github.io/blog/2016/08/11/climbing-the-infinite-ladder-of-abstraction/ <comment><USER5> After climbing for a while, I went down the ladder from whence I started and try to use fewer features to do more. My code aims for reusability by cut and paste as the first step - not as the end point, but as an important validation of whether the implementation can actually stand on its own as a drop-it-in block of code, not reliant on tricks or external dependencies. When I want to refactor my first step is to inline code and data until it cannot be inlined further, so that new approaches for reuse appear.

Simultaneously, I started aiming more and more precisely towards a higher "level of completion" in abstracting. When I want to abstract heavily, I do not reach for an abstraction-shaped-syntax within the language and make my abstraction fit their abstraction; I write a compiler, and write the actual thing I want, with the type system, internal behavior, and error checking I want. And it takes a month or more, sometimes, but then I have something far more valuable to my codebase than a general purpose tool. This does not happen often; the compilers exist as part of an ecosystem. Most of the things that seem "DSL-like" can be couched in terms of reconfiguring an existing compiler around new APIs.

I have very few debugging problems within application code; most of my time is spent either on data modelling, or compiler maintenance.

We do not know what good code looks like. We do not know what bad code looks like. We know only that we are progressing slowly or encountering a lot of bugs, and some of those issues are related to the shape of the code.

<comment><USER6> > When I want to refactor my first step is to inline code and data until it > cannot be inlined further, so that new approaches for reuse appear.

I do a similar thing. My first attempt is usually full of layers of helper functions and not-quite-right abstractions as I was simultaneously trying to understand and solve the problem.

Once I've got something that works, I refactor it to collapse these layers and remove the bias introduced by my previous fumbling. Inlining reduces external references, and point-free style eliminates local references ( [https://wiki.haskell.org/Pointfree](https://wiki.haskell.org/Pointfree) ).

After such a refactoring, the code is dealing much more with inescapable features of the problem, rather than fighting against itself. At this point, I can do a final cleanup to introduce abstractions to reduce redundancy and aid understanding.

</comment></comment><comment><USER7> Good post that laments how we adopt different programming paradigms all in the name of solving the problem more elegantly and modeling the problem more purely, but we inevitably get bogged-down in some language- or platform- specific quagmire or bikeshed; all for what?

To answer the author's question, I believe we constantly hunt for a 'better' abstraction because we want to make code reusable, as-in, callable as an independent unit or copy-pasteable to somewhere else. In truth, we rarely do this; instead we build something new, or build on top of it, climbing even higher on the ladder.

It's also intellectual golf. A _lot_ of software is in fact written to be just good enough and barely working; this duct tape runs most our non-mission- critical, line-of-business computing. This level of preoccupation with modeling only occurs when the pressures to deliver aren't sufficiently great to preclude these explorations to take place.

<comment><USER8> I get interested in this kind of stuff in an attempt to avoid the "barely working" quagmire, which has it's own problems (namely, ongoing maintenance when it stops working.) Less for reuse - what abstractions will help me avoid bugs? Which abstractions can simplify this and make it faster to write or modify? Which will be easiest to read and thus maintain? It's rare - <USER2> not impossible - that the answer to any of these things is "callback hell".

"Reusable" just sounds too similar to "YAGNI violation" to me these days.

</comment></comment><comment><USER9> Hasn't there always been a Mathematical tug of war between theorists and practitioners? Theorists get big dopamine responses when discovering new abstractions and models. Practitioners get similar responses when solving real-world problems.

As long as the theorists don't run too far away, the practitioners are happy. And, theorists are happy as long as they have enough food, water, and shelter to allow them to continue to think about stuff. :-)

As a (mostly) practitioner, I don't feel that a lot of the abstractions that the author identifies are helping me write better code faster. For instance, 90% of my time is taken up by just a few things:

\- Transforming data from one structure to another.

\- Moving data around.

\- Writing and re-writing similar business rules and domain logic in different libraries and languages.

\- Writing 'adapters' to get one library to work with another.

\- Trying to find 'the right' data structure or algorithm.

\- Discovering that the many different implementations of the same data structure or algorithm in different languages don't 'do' the one thing that I need them to do (and having to write my own implementation).

\- Reading other people's code.

\- Debugging other people's code.

<comment><USER10> Actually the abstractions they are talking about are explicitly for most of your use cases:

\- Transforming data from one structure to another.

\- Moving data around.

\- Writing and re-writing similar business rules and domain logic in different libraries and languages.

\- Writing 'adapters' to get one library to work with another.

\- Trying to find 'the right' data structure or algorithm.

There are answers to these problems using mathematical structures common in Haskell: Functor, Applicative, Monad, and so on.

</comment></comment><comment><USER11> _I just really hope I'm not wasting my time._

I think this is very easy verify: just climb down the abstraction ladder and try to solve some particular problem without those abstractions. If you then find yourself yearning for monads, macros or whatever else, then no - <USER4> haven't.

One particular thing that stuck with me during the past few months was the continuation monad/coroutines abstraction PureScript's Thermite library is built on. I happened to work on a project with another colleague, we were both writing some UI stuff and while he was fighting with callback hell I was happily writing sequentially looking code in the Aff monad.

It's not a particularly heavy abstraction, but something that can make your life _so_ much easier. Most abstractions I use tend to fall into that uhm... category :)

<comment><USER8> > I think this is very easy verify: just climb down the abstraction ladder and > try to solve some particular problem without those abstractions. If you then > find yourself yearning for monads, macros or whatever else, then no - <USER4> > haven't.

I yearn for things that don't actually make me more productive at times.

"Will this save more time than it costs?"

Lots of possible things influencing that to forget or poorly estimate.

You're right that going back to basics and seeing the pain points that arise (or go away!) is informative, however.

</comment></comment><comment><USER12> I used to enthusiastically climb the ladder of abstraction. Learning and applying advanced concepts made me feel smart, plus they were _so cool_. However, I found I never actually reused my super-awesome-advanced code. In fact, it was just more compact, less legible code, like APL.

I went back to the basics. I started writing very simple, short, non abstracted libraries/modules that did one thing well, in true UNIX fashion. Now I have legible code, to myself and others, and I _actually_ reuse it. My applications are now built out of battle-tested reusable components, and my productivity is higher.

</comment><comment><USER13> Abstraction is necessary, but all is in context. If you take a week to come up with a better abstraction, but the product is delayed with no real benefit other than the purity of your abstraction, then the process has failed.

I like this quote by Teddy Roosevelt: "Do what you can, with what you have, where you are." The antidote to "paralysis by too much analysis".

I've worked in some high pressure jobs, and I don't mean coding (like underwater emergency repairs), and even if you know what you are about to do is not the optimal solution, but it gets the job done in a decent way, there's no choice. You do it that way. And you get better at predicting how much you can really afford to abstract away on future jobs.

Now in coding, if you truly enjoy the process, and the academics of it, you should consider going into academia. Tools are later produced from the fruits of that research. In the business world, you need to be able to deliver a product that works, is solid and does the job.

I sympathize, because I spend all of my free time studying. I enjoy getting in deeper and deeper to mathematics and coding, mainly math. I started in the applied world, and ventured off into the abstract world. I love it. I wouldn't want a job with it though, since I would not be able to stop myself from following the trail, blind to the objectives of the job.

</comment><comment><USER14> The code I come back to when I want to see an elegant combination of advanced concepts and exhilaratingly simple code is Peter Norvig's "Paradigms of Artificial Intelligence Programming". While it is common lisp, most of the code stays far away from the more abstract parts of the language (CLOS), and uses macros judiciously.

I think you can get most of the way there by using simple concepts of your programming language (functions, classes), but I feel that concise and simple to understand things are more easily implemented by one or two well chosen macros.

I so often long to have 2 or 3 nice macros to do really tedious stuff in my day job (C++), like:

\- dispatching states in a state machine, with logging and safety checking. While I can do most of the logging and a fair amount of sanity checking in C++ with a few ugly macros converting symbols to strings, I can't easily do coverage checking at compile time, which would be very easy to do if i had a "defstate" and a "defevent" macro

\- parsing and validating json by pretty much just describing the resulting struct, and letting the compiler do the rest. again, I have a literal army of JSON_STRICT_DECODE_DOUBLE etc... methods, but none of that allows me to generate a protocol documentation at compile time.

Honestly 50% of the boilerplate in the application comes from these two problems (I do embedded programming), but it's a pattern that I have when I was doing web development too. Adding decent logging and error checking is really hard to do save for adding language constructs, and in the kind of down-to-earth programming I do, it's about 80% of what I do as a programmer.

</comment><comment><USER15> Solving the general problem, illustrated well by xkcd: [https://xkcd.com/974/](https://xkcd.com/974/)

<comment><USER13> I love that one, because I know at least two people that make me feel like the guy who just wants his salt. Sometimes nobody will need it in the long run, or nobody is paying for it in the short run.

</comment></comment><comment><USER16> 1\. Software development is such a complex process, that there is no way to know a priori whether more or less abstraction is "better" in every circumstance. There is also no way to know a priori _what_ kind abstractions are "better" or "worse". The only way to know is through empirical study.

2\. There _is_ an inherent reason[1] why software development is so complex, and it is the easy answer to that question that makes the answer to the first question so hard.

[1]: [http://blog.paralleluniverse.co/2016/07/23/correctness- and-c...](http://blog.paralleluniverse.co/2016/07/23/correctness-and- complexity/)

</comment><comment><USER17> > Haskell is too limiting—the compiler cannot deduce constraints I can solve > in my head in seconds

Alex, if you could do a post with concrete examples of these that would be _really_ helpful!

<comment><USER18> *Alexis, not Alex

<comment><USER17> Thanks. Can't edit any more though.

</comment></comment></comment><comment><USER19> _This is a bit of a cheap example, given that Java getters and setters are something of a programming language punching bag at this point, but I really did write them, and I really did get frustrated by them!_

...then don't write them if you don't need them. It's perfectly possible to write relatively concise and straightforward Java if you just ignore the massive quantities of dogmatic indoctrination effluent that abounds in that culture. Not everything needs to be an object. Not everything needs to have an API. Not every "best practice" is to be followed. Not every new feature needs to be used. I have some pretty amusing stories about that from the time I (briefly) worked in Enterprise Java...

 _Yet very few new programs are being written in BASIC, and lots are being written in Haskell._

You would be surprised how much Visual Basic and its variants are still being used.

That said, I never did "climb the ladder of abstraction" much, because the few times I tried, there just didn't seem to be any clear advantage in terms of productivity. I don't consider abstraction as something to be applied whenever possible; it's closer to a last-resort method used only when other approaches to simplifying code fail. And as programmers like Fabrice Bellard show, abstraction != productivity (he works mainly in C.) As someone who also stays relatively low in terms of abstraction levels, may I suggest the author of this article try Asm ;-)

To paraphrase someone in the demoscene who shares much the same viewpoint, "Some people look at a problem and see objects, models, layers, APIs, and other countless abstractions. I look at a problem and see a machine executing instructions to solve it."

</comment><comment><USER20> It is refreshing to read an article on this topic in which the author is reflective and equivocal about what he is doing.

I wonder if part of the issue is that we are going through a period of rapid evolution in programming, in which more formal concepts of abstraction are being experimented with. It will take a while before it becomes clear what works well.

It is commonly observed that programming well is harder than it looks. Perhaps resolving that dissonance will inevitably lead to languages that reveal the underlying complexity and force the programmer to address it before it is revealed in testing or use.

Not that this is necessary in all areas of programming: I agree with those who say that these techniques are probably overkill for most business applications, where robust simplicity is often more desirable than maximal abstraction.

</comment><comment><USER21> Since Go is fairly abstraction-resistant, you end up declaring API's for concrete things.

For example, there is not much point in writing a generic Set class. There are lots of packages available but they tend to solve concrete, domain-specific problems. The difference between this and the typical Haskell library where you need to be mathematically sophisticated to even know what problem it solves is pretty stark.

It would not be my favorite language for writing a compiler for an evolving language. But for scripts and simple servers it's pretty good.

<comment><USER22> > The difference between this and the typical Haskell library where you need > to be mathematically sophisticated to even know what problem it solves is > pretty stark.

I'm a Haskell developer and the most math I know is algebra 2. I also don't have a degree. I write Go for work. You don't need to know much math for Haskell. Go's lack of generics is a HUGE mistake and bites my teammates and I often.

</comment></comment><comment><USER23> What always seems to get lost is that people focus on the process and not the data they are working with. If you focus on what the data is and what it needs to be you can avoid a huge amount of abstraction.

Most of the time when with this approach at some point you can see interfaces that can apply to multiple types of data that you are working with, but in my experience this doesn't come at the beginning of the the process of writing a program, it comes somewhere in the middle.</comment>


Where Boeing's 737 Max Planes Go When They're Grounded - <AUTHOR> https://www.bloomberg.com/graphics/2019-boeing-737-max-map-where-planes-went-after-grounded/ <comment><USER2> A fix is being flight-tested.[1] The authority of the auto trim adjustment system is being limited. All planes that don't have it already will get the "AoA Disagree" detection, and a disagree will lock out automatic trim adjustment. Pilots will get more training on handling the aircraft with that system inoperative.

How bad is the handling with that system inoperative? The need for this came from adding bigger engines to a small airframe, which required putting them too far forward so they'd clear the ground.

[1] [https://www.wsj.com/articles/boeing-plans-fixes-to- make-737-...](https://www.wsj.com/articles/boeing-plans-fixes-to-make-737-max- stall-prevention-feature-easier-for-pilots-to-control-11553373777)

<comment><USER3> > All planes that don't have it already will get the "AoA Disagree" detection

It makes me wonder... if all planes had 2 Angle of Attack sensors, why was the disagree indication an extra option?

Was it almost pure price discrimination on the part of Boeing? A $4 light/buzzer for equipment, wiring and firmware already present, but only wired in for clients willing to pay an extra $10k per plane for the safe version?

<comment><USER4> I imagine after the design of the 737 Max was completed, some customers requested that feature, and Boeing said "For just $100k extra, we'll design and build it for you". They then set an engineer to build and test the feature, probably costing nearly $100k. That airline then got the feature they'd paid extra for, and other airlines/groups of airlines didn't get it because it isn't officially part of the design.

<comment><USER5> Any proof for this interesting theory?

<comment><USER6> I imagine not.

</comment></comment></comment></comment></comment><comment><USER7> There are 5 Southwest MAX8s parked at Chicago Midway (MDW). I took this photo of them just the other day:

[https://imgur.com/a/NRUUdLE](https://imgur.com/a/NRUUdLE)

<comment><USER8> Southwest is in the process of moving all of its MAX8s to the Victorville, the airplane graveyard in the desert. I doubt they'll scrap them but it smacks of long-term parking.

<comment><USER9> > I doubt they'll scrap them but it smacks of long-term parking.

Oh please, they're not being scrapped. But a working airport is not a proper place to store large jets.

<comment><USER8> _Oh please, they 're not being scrapped. _

Which is what I said.

 _But a working airport is not a proper place to store large jets._

Short-term it's fine. If the expectation is that the MAX will be allowed to fly in a few weeks it makes sense to keep the airplanes at strategically chosen airports. This'll make it easier to bring them back into service. If the assumption is that the MAX will be grounded for a long period of time it makes more sense to stash them at a graveyard like Victorville.

<comment><USER10> The weird thing is that the GP quoted your comment that the planes won't be scraped, and then he tried to one-up you... by agreeing that the planes won't be scrapped.

Utterly bizarre.

</comment></comment></comment></comment></comment><comment><USER11> Even if you're not interested in the story itself, this is worth a quick look just to see the way they present the information. It's very nicely done.

(Scroll down to see the graphics.)

<comment><USER12> Totally. Reminded me of that addictive flying game where you have to land airplanes when the first iPhone just came out.

<comment><USER13> This one: [https://en.m.wikipedia.org/wiki/Flight_Control_(video_game)](https://en.m.wikipedia.org/wiki/Flight_Control_\(video_game\)) ?

<comment><USER14> Successful small studio, bought by EA, and never heard from again.

<comment><USER15> They were merged into Firemonkeys Studio, and are still a going concern (their last three games - Real Racing 3, The Sims Freeplay, and Need for Speed: No Limits - are still getting updates).

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

</comment></comment></comment></comment></comment><comment><USER16> That is a beautiful data visualization. I'd love to see more articles with that level of quality

</comment><comment><USER17> 6 Southwest planes have gone to storage at VCV: [https://flightaware.com/live/airport/KVCV/arrivals](https://flightaware.com/live/airport/KVCV/arrivals)

<comment><USER18> KVCV, to be pedantic. Flightplans are filed with ICAO codes.

Without any passengers or baggage the IATA code VCV would not have been used at any point of their flights.

</comment></comment><comment><USER19> If you want to see the one still flying: [https://flightaware.com/live/aircrafttype/B38M](https://flightaware.com/live/aircrafttype/B38M)

<comment><USER20> That'll be a Boeing test flight. Their Max's will likely be up and down all the time.

<comment><USER21> Well, the one shown up near Seattle is a Boeing test flight.

I have my doubts about the other 13 it currentlu shows around the world, especially the ones whose flight plan calls for landing far from where they start, like the Norweigian Air flight from Dublin, Ireland to New York, or the Globus one on the way from Russia to Hong Kong.

What's going on here? Airlines still working on getting their grounded planes to where they want them to sit things out?

Looks like by far the most of them are Southwest, flying from a variety of airports (Baltimore, Los Angeles, Oakland, San Jose, Chicago), which is what one would expect for a "move planes to storage" operation, but the destinations are also all over the map, too (Victorville, Burbank, Indianapolis, Houston, Dallas, St. Louis, Denver). Stashing a few at each of their smaller airports?

<comment><USER22> It's a data problem on flightaware. Check swa2738 on flightaware [0] and then check on flightradar24 [1]. It's being flown by n8648a which is not a max.

[0] [https://flightaware.com/live/flight/SWA2738/history/20190324...](https://flightaware.com/live/flight/SWA2738/history/20190324/1925Z/KSTL/KOAK)

[1] [https://www.flightradar24.com/data/flights/wn2738](https://www.flightradar24.com/data/flights/wn2738)

</comment></comment></comment></comment><comment><USER23> I _highly_ recommend everyone suggestion engineering solutions to watch this video from an actual pilot performing a runaway stabilizer procedure in a 737 simulator.

[https://www.youtube.com/watch?v=xixM_cwSLcQ](https://www.youtube.com/watch?v=xixM_cwSLcQ)

What happened is a series of failures; this video frames it perfectly.

</comment><comment><USER24> I wonder if the pilots had the right to refuse to fly them after the official announcement was made. Regardless of the criticality of the flaw, there is one flaw causing the planes to crash and even one flight is 1 more than you should fly with them.

<comment><USER25> Every pilot has an absolute right, and responsibility, to refuse any aircraft they deem "not safe for flight in all weather and conditions". Period.

Of course, you may have a long and uncomfortable conversation with your chief pilot regarding the nature and quality of your judgement, but every single pilot is supposed to make an informed and independent evaluation of each aircraft before every flight.

</comment></comment><comment><USER26> The 737 Max saga reminds me of the hazards of flying on third world carriers.

<comment><USER27> The only difference between the North American carriers and the overseas ones is that they sprung for the option that tells them that the MCAS is about to point the nose at the ground hard by displaying a warning in relatively small writing on a screen somewhere near the middle.

Apart from that, which may not have made much difference there is no overall difference in terms of safety or training that would have prevented the Ethiopian crash.

Ethiopian is a state-of-the-art operation with a modern fleet. Lion Air is a bit more questionable, but their 737 crash appears to have nothing specific to that airline or being based in Indonesia.

You may have other evidence of hazards, so might I. But the 737 MAX saga isn't it.

</comment></comment><comment><USER28> I feel like there could be a good amount of hollywood usage of these idling planes to make some thrilling media for us to consume.

<comment><USER27> There would be many, many more not that old aircraft out there in storage that will be much, much cheaper to organise and insure a film shoot for.

</comment></comment><comment><USER29> Now that everybody, even non-pilots on HN like me, know how to turn MCAS off, it doesn't really make sense to keep them grounded.

<comment><USER30> Everyone who earned a type rating to fly 737s also knew how to turn it off, by following the non-normal (aka "emergency") checklist memory items for stabilizer runaway.

It is shocking to me that the second crash happened, if they both turn out to be MCAS and stab trim sourced. How could you step into the cockpit of a 737-Max that day and _not know_ about the MCAS issue and be primed to respond according to the checklist?

I have to add that I'd be happy to put myself or my family onto a 737-Max flown by a US-flag carrier (Southwest, American, United [Delta doesn't fly the -Max]), as I believe there's a significant variance in crew training worldwide.

<comment><USER31> Bad sensor data was represented as accurate sensor data. It is easy to solve some problem you know is occurring, it is hard to solve a problem where something weird happens and the data in front of you is telling you that what you think is happening is not what is happening. ("I think we're stalling." "Nah, the sensor that directly measures that says we're not." "Hmm, what else could it be? Get me the checklist" _crash_ )

It shocks me that the redundant angle of attack sensor and the "disagree" light is not standard equipment. Who is buying multi-million dollar airplanes and cares about the cost of an angle of attack sensor and a lamp? Not people that care about safety, that's for sure. I know the airline industry loves nickel-and-diming their customers, but safety equipment is a little more important than priority boarding and a checked bag. It is shameful that Boeing adopted that business model.

More on angle of attack sensors: [https://www.flightliteracy.com/angle-of- attack-indicators/](https://www.flightliteracy.com/angle-of-attack- indicators/). If you fly GA, you should get one. Having a readout of the flight energy you have available is one of the greatest safety upgrades you can make.

<comment><USER30> Agreed on the value of AoA; it's a toss-up whether we'll be upgrading in the next couple years. Not much sense in adding it to a plane we might be selling shortly as it doesn't bring much increase in resale. Next airplane is likely to have it as OE.</comment></comment></comment></comment>


What resources do you recommend for creating landing pages?  - <AUTHOR> I am about to begin the process of testing a product idea. Before I schedule any meetings with potential customers, I would like to set up a landing page.
I am considering http://unbounce.com or building my own landing page.
Are they any other services that could be helpful for setting up a landing page? What resources would you recommend to create a good landing page?
Thanks!
- Ernesto <comment><AUTHOR> Thanks for all your comments!

I'm now considering: 1\. Unbounce 2\. Performable 3\. <http://themeshaper.com/wordpress-domain-parking-theme> 4\. <http://netserious.com>

</comment><comment><USER2> Hey Ernesto, Thought I'd chime in here with some extra info. Unbounce has a selection of templates that you can use - but you can also build your own page from scratch if you already have any designs lying around.

It's all hosted for you and you can set it up to appear on your own domain (via a CNAME).

We have a free package which you can use if you are driving a small amount of traffic and free trials for bigger account plans.

There is super simple A/B testing built in if you need that.

If you want to do MVT - I'd suggest Visual Website Optmizer www.visualwebsiteoptimizer.com - which adds a nice layer of abstraction on top of Google Website optimizer.

Happy to answer any other questions you might have. Cheers Oli (from Unbounce)

<comment><AUTHOR> Hey Oli,

I don't see the free package in your site. Could you help me with that?

I'm still considering my options. So far this thread has been super positive.

Thanks!

</comment></comment><comment><USER3> This is a popular WordPress theme for landing pages: <http://themeshaper.com/wordpress-domain-parking-theme/>

That said, I wish I'd known to use it when I needed to make mine. I just cobbled it up manually. The link is in my profile.

<comment><USER4> Thanks for that, it was exacly what I was looking for. I'm really impressed by the designer, even though I fouled his design up a bit:

<http://www.stochastictechnologies.com/>

Thanks again, now I don't have to have a textfile with "coming soon" on there!

</comment></comment><comment><USER5> Are you're asking for a MVT testing platform, information on how to build a great landing page, or a simple host for the page?

For testing, I personally like Google Website Optimizer: <http://www.google.com/websiteoptimizer>

<comment><AUTHOR> I am asking for information on how to build a great landing page.

If there are services like <http://unbounce.com> that would make it easier to build a landing page, I would like to know any recommendations.

Also, if you know a good place to find templates for landing pages, that would be helpful.

I am a developer, so I could implement & deploy a landing page on a server. But I just want to know whether I should use a template, hire unbounce or read more before I build it.

Thanks!

<comment><USER6> Google "Ryan Deiss".

</comment></comment></comment><comment><USER4> Can someone explain to me what a landing page is? I thought it was a page on your site that you pointed visitors to when they were coming from different sources, but the OP seems to mean holding page by it?

I'm confused...

<comment><USER7> He's referring to a page on a site for a product or service that is not yet available to buy/use/sign up for but that might do one or many of these things: collect e-mail addresses for a mailing list, collect e-mail addresses for future invites to an app/site, show "sneak preview" images of the future app/site, merely say "coming soon."

Going back a few years, though, "landing page" almost always meant a page that people are directed to (usually through advertising) that then attempts to "convert" them into a customer or subscriber of some sort, though this is not necessarily (but can be) a goal of the modern startup-type landing page.

<comment><USER4> Thanks, the latter definition is what I knew, but I'm not aware of people creating dedicated landing pages for each of their ad campaigns, so I wasn't sure what the term meant. Thanks again!

<comment><AUTHOR> Yes, it's exactly what petercooper describes.

In my case, I want to create a landing page for a product idea.

My goal is to drive traffic to this landing page in order to see if people are interested in such a product.

By adding a call to action in the landing page I can get an idea of the conversion rate.

Also, I'd like to add that I'm not just driving traffic using ads. I plan to have customer interviews in order to shape my product idea and see their reaction.

I hope that those activities 'outside the building' will also drive traffic to the landing page.

</comment></comment></comment></comment><comment><USER8> You can just use a basic HTML landing page and use <http://www.reedge.com> to create variations in the product offer to test what gets the best conversion.

</comment><comment><USER9> Performable: <http://www.performable.com/>

David Cancel and crew are top notch. Great product, easy to use. Give it a whirl.</comment>


Interview with chumby's former VP of Hardware - <AUTHOR> http://blog.makezine.com/2012/04/30/makes-exclusive-interview-with-andrew-bunnie-huang-the-end-of-chumby-new-adventures/

<comment><USER2> Andrew (bunnie) Huang is also the first person to hack the original Microsoft XBox. He wrote a book about it and it's a great read for software hackers wondering how a knowledgable person would go about hacking hardware.

[http://www.amazon.com/Hacking-Xbox-Introduction-Reverse- Engi...](http://www.amazon.com/Hacking-Xbox-Introduction-Reverse- Engineering/dp/B002YX0EN4)

He also has a pretty cool blog, although it's not always updated on time, he hosts a monthly contest called "Name That Ware" where he posts close-up pics of a circuit board (or chip xray) and people guess what it is.

<http://www.bunniestudios.com/blog/?p=2328>

<comment><USER3> Another of his hacks that i found quite notable was a man-in-the-middle attack on HDCP-secured connections to overlay video in any HDMI video stream and gave a nice talk about it.[1]

[1][http://hackaday.com/2012/01/21/overlaying-video-on- encrypted...](http://hackaday.com/2012/01/21/overlaying-video-on-encrypted- hdmi-connections/)

<comment><USER4> The neatest part about the HDCP hack is that all the overlay stuff is done on- the-fly in the FPGA, without any easy way to actually dump out the unencrypted content.

That makes it much harder to use for actual DRM stripping, and thus easier to argue that it doesn't qualify as a DMCA circumvention tool.

</comment></comment></comment><comment><USER5> What a great, detailed interview. I have a _ton_ of respect for Bunnie. His work on Chumby is miles beyond some of the other "open" projects like Raspberry Pi.

His take on Kickstarter is wonderfully honest and refreshing as well:

 _"Customers are sold on a vision, buy-in early on, and you have to deliver on that vision; in crowdsourcing your money, you've also crowdsourced your board of directors."_

</comment><comment><USER6> Shameless plug: see Bunnie (from this article) and other hardware startup guys at MAKE's Hardware Innovation Workshop

<http://makezine.com/hardware-innovation-workshop/>

</comment><comment><USER7> Nice find! I was thinking today how I'd really enjoy reading some postmortems on Chumby. (My big regret is not having bunnie autography the Chumby he gave me as a "Name That Ware" prize.)

</comment><comment><USER8> Maybe bunnie is interested in going to work for Per Vices. Those guys seem set on demolishing the world with their one-wireless-chipset-rules-them-all approach.

Would be an awesome combination, especially given his previous learning experience at Chumby and his new open-source hardware platform that he's working on.</comment>


Basic tweaks to improve your videoconferencing setup - <AUTHOR> http://jonpurdy.com/2020/03/how-to-improve-your-zoomskype-teleconferencing-game/ <comment><AUTHOR> Author here. TL;DR: \- Use 5GHz wifi if you're in the same room or close to your AP (or hardwired if possible) \- Optimize your internet connection for symmetric, or get the fastest upload speeds available \- Use a headset with a mic \- Built-in webcams suck, external webcam is better, iPhone or DSLR is best (if you can deal with more complicated setup)</comment>


Usbkill – anti-forensic tool to halt computer when new USB device is connected - <AUTHOR> https://github.com/hephaest0s/usbkill <comment><USER2> If you are paranoid about something like this happening, just use [https://www.qubes-os.org/](https://www.qubes-os.org/). all usb devices are jailed in a non-networked vm by default.

In general, if what you do warrants that level of paranoia, qubes will help you massively.

Micah Lee held a great overview talk at HOPE 2018: [https://www.youtube.com/watch?v=f4U8YbXKwog](https://www.youtube.com/watch?v=f4U8YbXKwog)

<comment><USER3> I don't think it solves same problem.

<comment><USER2> it does not solve the same problem, correct. it's still a great tool if your threat model warrants it.

<comment><USER4> Can you give an example of a threat model that would warrant it?

<comment><USER5> You're a journalist. Source gives you a usb drive full of documents. Source is in reality hostile/compromised, so is the usb drive.

</comment></comment></comment></comment></comment><comment><USER6> Interesting project, I'm sure this is useful for people at risk.

Somewhat related, I'm wondering about the physical security of computers. There is an attack where they open your PC, take out the ram, and freeze it immediately so the bits don't decay and they can extract your encryption keys.

All BIOSes have an option for cassis intrusion detection, but I've never seen a case that has the necessary cable. Has anybody here set up a chassis intrusion kill switch that erases the RAM/shuts down the PC etc. if the case is opened improperly? Can you buy anything like this on the market?

<comment><USER7> Back in the BBS days, there were textfile describing how to wire your beige box to either turn on strong magnets or ignite termite if a case was detected.

... I don't know of anyone actually implementing this though :)

<comment><USER8> I would imagine that's thermite and not termite ;)

If the latter, the server would probably be okay, and it would take a very long time for the termites to damage the surrounding room enough to be a security deterrent.

<comment><USER9> Probably just a debugging technique.

<comment><USER10> Well, it certainly complicates debugging.

</comment></comment></comment></comment></comment><comment><USER11> > In case the police or other thugs come busting in

I like this wording.

Disclaimer: Not a comment on current political happenings.

But seriously, the use case of disallowing USB sticks on devices is unnecessary hard to configure. Just an option to disallow certain device classes would be appreciated.

<comment><USER12> how would you authenticate the USB stick that is allowed though? Without some sort of authentication mechanism an attacked could clone the device id of an allowed device. better than nothing though! :)

<comment><USER13> There's the USB Authentication Protocol where devices identify themselves through digital signatures. But i don't know whether each device has a unique ID or its one cert for the whole production series.

</comment></comment></comment><comment><USER14> I really like this concept.

That's why I've made similar projects. One to detect when USB storage devices get attached to domain workstations, and email the administrator with device and user info..... [https://github.com/zelon88/Workstation_USB_Monitor](https://github.com/zelon88/Workstation_USB_Monitor)

And one which detects USB HID devices, confirms them, and notifies the administrator..... [https://github.com/zelon88/Rubber_Ducky_Defender](https://github.com/zelon88/Rubber_Ducky_Defender)

</comment><comment><USER15> "immediately terminates the connection"

Reminds me of some old Firewalls that would actively poll active connections, and when one is made that violates their rules, "immediately" terminate it. Often times, an attacker can embed a lot in just a single URL in the query string (stolen passwords etc) that would be done in < 5ms, faster than the firewall can act (if not even faster than the polling interval itself), specially if there is plenty of rules and active connections and/or the machine is slow (e.g playing games).

That's like choosing to not have a door on your house, because you know you can run fast and shoot the thief when they enter.

Maybe its not as bad for hardware due to the inherit latencies involved, but I am always skeptic about things that use polling vs sitting in the middle at the kernel before a USB connection is allowed to happen to the OS in the first place.

The default (aka the one that nobody will change) connection-polling interval for this thing is 250ms, which doesn't seem too small for me for many conceivable attack scenarios.

For Mac, it runs this:

os.system("killall Finder ; killall loginwindow ; halt -q")

This won't prevent windows from reopening after a reboot.

A possible exploit for this could be the USB pretending to be a keyboard, opening an exploit website or an app with malicious argument values, then you immediately shutdown the Mac, reboot manually and boom, the website/app opens up and the machine gets owned anyway post-reboot!

Also, lack of Windows support is upsetting, considering there isn't much code change required to do so.

The "melt" feature is one I really like and respect the thought they put to make it.

<comment><USER16> I think it's aimed at scenarios in which the attacker is not aware of this utility running. Otherwise they could just kill it before inserting the USB.

<comment><USER15> Well, for attack vectors like Mouse Jiggler (I have one, very cheap on Amazon) or polymorphic USB devices, it would work if the attack is unaware of the utility's existence. For polymorphics specifically, I checked the code, and it does indeed validate the Ids of the devices, not just their count.

For others, even if the attacker is unaware of the utility, those shortcomings are still serious enough (e.g. rapid keyboard typing).

</comment></comment></comment><comment><USER17> I attended a talk by GSK and there was part of the talk about security. They don't allow usb devices to be plugged into their analysis computers. But every year they get an intern that tries to charge their phone from the PC USB.

Something like this, that doesnt halt the computer but shows a warning on screen and logs information would perhaps be a solution to their problem. Although in the case of industrial espionage maybe locking the system would be worth it...

<comment><USER18> At a former gig for a post-production facility we used CoSoSys EndpointProtector to restrict USB access to workstations. Works as described in your second paragraph, (logs and warning) admin can then allow approved devices remotely if necessary.

<comment><USER19> I worked for a car mfg that had that on all their laptops. It was annoying and I'm 99% certain no one ever checked up on the alerts and instead was just logging in case there was an issue later.

</comment></comment></comment><comment><USER20> Seems like a lot of code for what should be, on Linux anyway, a simple udev rule?

echo 'RUN+=/root/usb-changed.sh' > /etc/udev/rules.d/usb-changed.rules

Then just put whatever you want to be ran in /root/usb-changed.sh.

<comment><USER21> I think you would at least add an allowlist of safe (i.e. owned by you) USB ids you don't want to shut your pc/laptop down if connected

<comment><USER22> Your script can have the allowlist so you don't have to fiddle with udev everytime you introduce or retire USB-devices.

<comment><USER21> But then it's not a oneliner anymore, and the original project starts to make sense.

<comment><USER23> It doesn't warrant to make a product that replaces a dedicated feature of the system. To whitelist in usbkill you have to do more than one line too.

</comment></comment></comment></comment></comment><comment><USER24> "Tip: Additionally, you may use a cord to attach a USB key to your wrist. Then insert the key into your computer and start usbkill."

This line particularly caught my eye. I wonder what's the percentage of people (I'm presuming people working in security or those who are trying to avoid detection) go to this extreme?

Is is even extreme?

<comment><USER25> How about a bluetooth dongle in your pocket? Less visible, and unless there hostiles know about it, they will separate you from the computer.

A phone could work. An apparent car key would be better. Best would be a piece of clothing, like a belt.

<comment><USER26> That would work great for half an hour, until your Bluetooth connection drops for no reason, the dongle pairs with your car or phone instead, decides it's a headset now, or one of the hundred other things that inevitably go wrong with Bluetooth.

<comment><USER27> hehe, Do not think like an engineer in this case. Think like someone who only has to get it right once but can try 100 times. So even if you have a flake connection. Just so long as it works that 'one time'. You are good.

</comment></comment></comment></comment><comment><USER28> In a similar vein, there's antijiggler[1] which only locks the PC when a new device is connected.

[1] [http://www.codefromthe70s.org/antijiggler.aspx](http://www.codefromthe70s.org/antijiggler.aspx)

</comment><comment><USER29> I thought this was [https://usbkill.com/](https://usbkill.com/) I think maybe this would be more effective in anti-forensic because it actually destroys the computer?

<comment><USER30> Gets the work done, somehow.

</comment></comment><comment><USER31> From going through the discussion I'm getting the impression that the only feasible attack vector provided by USB is by emulating a keyboard like a USB Rubber Ducky. Is this really the case?

For instance, if my laptop is locked (with a proper[0][1] lock screen like xscreensaver) and that lock screen is capturing all keyboard input and magic SysRq keys[2] are disabled, too, is there really no way an attacker could use a USB device to hack my laptop?

Similarly, if my laptop is _not_ locked but comes with unusual key bindings (maybe even a different keyboard layout), what are the chances of me getting hacked with a USB device? (Let's assume that the attacker manages to secretly plug in said USB device but doesn't want to access my unlocked laptop directly – maybe because we're in an open office and people are watching.)

My impression had always been that USB devices are dangerous beyond simple keyboard emulation but I might be wrong.

[0] [https://www.jwz.org/blog/2015/04/i-told-you-so- again/](https://www.jwz.org/blog/2015/04/i-told-you-so-again/)

[1] [https://www.jwz.org/xscreensaver/toolkits.html](https://www.jwz.org/xscreensaver/toolkits.html)

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

<comment><USER32> > [0] [https://www.jwz.org/blog/2015/04/i-told-you-so- > again/](https://www.jwz.org/blog/2015/04/i-told-you-so-again/)

Sorry for the digression, but WTF is this guy doing? Looks like he redirects all requests that have HN as the referrer to a picture of a testicle. Copy- pasting the link (i.e., dropping the referrer) seems to work, though.

<comment><USER33> That's exactly what he's doing. I can't remember why he hates HN though, but it's been that way for a really long time.

<comment><USER32> What a little asshole!

</comment></comment></comment></comment><comment><USER34> I dont understand. Is USB just always insecure because of hardware?

<comment><USER20> Yes, but that's unrelated. The idea here is that if a USB device is connected to your machine, it's an indicator that your machine is compromised. Mouse jigglers that stop your lock screen from activating are very common when confiscating machines: [https://www.cru- inc.com/products/wiebetech/mouse_jiggler_mj-...](https://www.cru- inc.com/products/wiebetech/mouse_jiggler_mj-3/)

And of course, depending on the OS, it's possible to craft a USB stick that copies files to a remote server as soon as it's plugged in.

<comment><USER35> > depending on the OS, it's possible to craft a USB stick that copies files to > a remote server as soon as it's plugged in.

Is this possible with Linux?

<comment><USER36> You can get a 'USB rubber ducky' [1] which emulates both a USB memory stick and a USB keyboard, allowing you to script keystrokes for the keyboard [2]

So it can do anything a newly plugged in keyboard can do. Which, if the user is already logged in, makes grabbing the user's files easy.

[1] [https://shop.hak5.org/collections/usb-rubber- ducky/products/...](https://shop.hak5.org/collections/usb-rubber- ducky/products/usb-rubber-ducky-deluxe) [2] [https://github.com/hak5darren/USB-Rubber- Ducky/wiki/Payloads](https://github.com/hak5darren/USB-Rubber- Ducky/wiki/Payloads)

<comment><USER35> This will only work, I suppose, if the attacker knows beforehand a keychord that will focus a terminal.

<comment><USER37> on most desktop linux distros: <windows>terminal<enter> is enough

<comment><USER38> Hehehe...on my machine that selects "Emacs (Terminal)". Good luck with those key combos...

</comment></comment></comment></comment></comment></comment></comment><comment><USER39> And now, we've come full circle to plug-and-stop-playing.

</comment><comment><USER40> A hotplugd script can be used to mimic this on OpenBSD

</comment><comment><USER41> I saw this solved with a USB stick on a keychain and the computer shuts down when the stick is removed. Does anybody still have the link?

Ah. Found it: [https://tech.michaelaltfield.net/2020/01/02/buskill- laptop-k...](https://tech.michaelaltfield.net/2020/01/02/buskill-laptop-kill- cord-dead-man-switch/)

</comment><comment><USER42> How does this work for usb typec? When I plug in my power cable will my computer shutdown?

<comment><USER43> And does it work for things that look exactly like USBC but are actually Thunderbolt? (with all its direct memory access via DMA and all of that nastiness).

See the Apple combo USBC/Thunderbolt ports.

</comment></comment><comment><USER44> Everyone should also install a hard power off on the front of their computer and always have encrypted drives. Unrecognized USB storage in my computer also is instant off. Might corrupt my files someday, but it's worth the risk.

</comment><comment><USER45> I've made a video about disabling the USB to prevent rubber ducky attacks a long time ago.

never thought about shutting down the computer.

[https://youtu.be/RtRsBTGZUgc](https://youtu.be/RtRsBTGZUgc)

</comment><comment><USER46> What's stopping the forensic people from just spoofing the USB device IDs?

<comment><USER47> Nothing. And that's not the problem this program is intended to solve.

<comment><USER46> It is. The program tries to prevent use of unauthorized USB devices, yet it uses the easily spoofed USB device IDs to authenticate them.

<comment><USER47> It isn't. The problem this program solves is thwarting a naive attempt to alter the state of the USB bus. The design assumes the attacker is not aware of the consequences of adding or removing devices and has no reason to employ spoofed devices or any other Ever Greater Adversary Regression techniques you can imagine.

<comment><USER46> After they got bitten but tools like this usbkill once, ID spoofing will just become the standard practice, and it will be made so easy to do they don't even need to think.

</comment></comment></comment></comment></comment><comment><USER48> Destroying evidence is considered a crime on it's own. Use something like this at your own legal risk, since it's usually far easier to prove obstruction than it is to prove the underlying crimes that were being investigated.

<comment><USER49> Any relevant case law here? I mean, clearly destroying evidence (e.g. shredding documents) is one thing but I assume it's harder to prove when it's a byproduct of computer security?

Apple phones can be wiped with 10 invalid password attempts, but the cops already know it. If it's a piece of custom software that erases a computer after 2 attempts, can the prosecution really claim it was pure evidence destruction?

I honestly don't know, but I'm curious.

</comment></comment><comment><USER50> does encryption offer any benefit if you're using a cloud syncing solution?

</comment><comment><USER51> not as easy but more fun to ruin the usb device.

if they use mousewiggling the screensaver could use other triggers/patterns to keep the box on. say 1 google search per 15 min minimum. randomly moving the mouse seems a good reason to shut down.

</comment><comment><USER52> Obligatory $5 wrench comment: [https://xkcd.com/538/](https://xkcd.com/538/)

Something like this is probably good when you - as a person - are not around when your hardware gets extracted from your place. But then again, why would it be running openly and unattended in the first place?

<comment><USER53> In many places, law enforcement will pressure but not torture you to provide decryption keys, maybe imprison you for a while, fine you, ...

But that may be preferable than them knowing about all those highly illegal nuclear doomsday space arms technology knowledge deals you've brokered, or that collection of child porn, or those detailed assassination plans, or whatever. Maybe the authorities suspect something, maybe a SWAT team will snatch your laptop, but if all evidence is in there and encrypted, you may get off with a lot less than otherwise.

<comment><USER54> In the UK you might well be in prison for five years for refusing to hand over the keys.

[https://www.schneier.com/blog/archives/2007/10/uk_police_can...](https://www.schneier.com/blog/archives/2007/10/uk_police_can_n.html)

Not sure what the situation is now.

<comment><USER55> Section 49 to force key disclosure should only happen if:

\+ The person being given the notice has the key

\+ Investigators need the key to prevent or detect crime

\+ Disclosure is proportionate

\+ They can't get the encrypted material by other means

Not complying with the is a criminal offence. The maximum sentence is 2 years, unless it's a case involving child sexual exploitation or national security where the maximum sentence is 5 years.

There is a code of practice for use of these powers here: [https://www.gov.uk/government/publications/code-of- practice-...](https://www.gov.uk/government/publications/code-of-practice-for- investigation-of-protected-electronic-information)

I think that properly regulated key disclosure powers are important. I'm not sure we're (the UK) are getting it right with RIPA. I'd want to see stronger audit and oversight of the S49 notices, and better advice given to people who are served S49 notices.

For example: I have no idea how many people are served S49 notices, and I don't really know how to find out. I don't know how many people have been imprisoned for not disclosing keys; I don't know what sentences they've been given; and I'm not clear on how to find that out. I feel that it should be easier for citizens to have clear data about these really intrusive powers.

EDIT: I just found this page, and it seems like it's small numbers of people. But still, it's a bit worrying. [https://wiki.openrightsgroup.org/wiki/Regulation_of_Investig...](https://wiki.openrightsgroup.org/wiki/Regulation_of_Investigatory_Powers_Act_2000/Part_III#Cases)

<comment><USER56> > _Investigators need the key to prevent or detect crime_

That's a bit scary. 'Detect crime' could be pure speculation on the polices' part.

"We think you've done something bad, let us see the contents of your phone. No we don't have any evidence already as we're detecting the crime right now."

<comment><USER55> I'm not sure that would be proportionate.

It's not great, but it's better than before where this kind of crime detection had much less regulation.

<comment><USER57> Get out spook.</comment></comment></comment></comment></comment></comment></comment>


Juggernaut (Easy real time Ruby on Rails) - <AUTHOR> http://juggernaut.rubyforge.org/

<comment><USER2> I have been digging juggernaut for a while now. It can be a bitch occasionally, but is a great solution! I use it for real-time monitoring of traffic on the site. It's working great still with 20 online users, broadcasting their clicks to an admin panel so I can see how users are interacting with the site in real-time. I am interested to see how it scales to 100+ users - my guess is in my particular example, the flash socket will give up much sooner than juggernaut itself!</comment>