Natural catastrophe review 2018 - <AUTHOR> https://www.munichre.com/en/media-relations/publications/press-releases/2019/2019-01-08-press-release/index.html <comment><USER2> Howdy! I work in cleantech, and I guess it's that time again for a what-can- you-do-about-it post :)

To start, here's my favorite climate change joke: "They say we won't act until it's too late... Luckily, it's too late!"

==So what can you do about it?==

I work in cleantech, and you should, too! Solar and wind are economical, so now the biggest issue is scaling them up. That means tons and tons of problem solving, which means great tech and engineering jobs!

If you think about it, the switch to renewables means we need to deal with situations where the sun isn't shining and the wind isn't blowing, yet still keep the lights on. That means you have to build in a ton of storage and load control, which means good communication and analysis, which means software! Something like half of the impact of the energy transition will be done through software optimizing the deployment and operation of clean energy assets.

Anyway, please check out my previous comments on recommendations when looking for climate impact work[1].

Also, working in cleantech can significantly reduce the feelings of hopelessness around disasters. Think of it like exercise. By working at it, your body naturally replaces anxiety with optimism and motivation. Physically doing something to fight your anxiety will make you feel better.

[1]: [https://news.ycombinator.com/item?id=15127154](https://news.ycombinator.com/item?id=15127154)

<comment><USER3> > Solar and wind are economical, so now the biggest issue is scaling them up.

I appreciate your passion and desire to fix our planet. But am I the only one who thinks this is the biggest distraction to solving the energy problems of today and the next 100 years? It is just very difficult to get solar to produce the type of energy the world needs for the next 100 years. And it's the 21st century — its embarrassing that we are talking about wind energy!

Simply put, we need nuclear power. We need to spend more time and energy trying to innovate on nuclear energy. That's what is needed to support the power needs of 10 billion people who will have the energy demands of a modern western nation today. Solar and wind will just not cut it.

See this talk at NeurIPS 2017

[https://nips.cc/Conferences/2017/Schedule?showEvent=8729](https://nips.cc/Conferences/2017/Schedule?showEvent=8729)

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

<comment><USER4> Nuclear is never going to happen, ever, due to a combination of issues (cost, regulation, liability, waste disposal and reprocessing). China is throwing in the towel on most of it's nuclear power plants [1].

I am deeply disappointed you dismiss wind and solar. They're extremely cheap (~2-4 cents/kwh at utility scale), require very little permitting to deploy, and fail safely. You're limited solely by how fast you can churn out PV panels, wind turbines, and get those components installed. Enough sunlight falls on the Earth in 30 minutes to power humanity for a year. The potential is there, and scaling is orders of magnitude more simple with renewables than nuclear. >90% of new generation in the US along each year are renewables. Coal fired plants are decomissioning decades earlier than predicted. Not even natural gas is as profitable as expected in some markets (Texas) due to how much wind power has been generated. 150+ GWac of new solar generation is planned to be online within the next five years in the US [2].

It would take two decades to replace all fossil generation with wind and solar. Faster if we taxed carbon and poured that money into renewables and battery storage. Nothing fancy required. Anyone can be trained to install solar panels, on rooftops or on ground mounts.

[1] [https://www.technologyreview.com/s/612564/chinas-losing- its-...](https://www.technologyreview.com/s/612564/chinas-losing-its-taste- for-nuclear-power-thats-bad-news/) (China's losing its taste for nuclear power. That's bad news.)

[2] [https://pv-magazine-usa.com/2019/01/01/solar-tsunami/](https://pv- magazine-usa.com/2019/01/01/solar-tsunami/)

<comment><USER3> Watch [https://youtu.be/HL60wgrT67k](https://youtu.be/HL60wgrT67k) and then give me your thoughts. I am curious to hear them.

<comment><USER4> Quick comments from skimming the video:

* Speaker shows slide showing power demand increasing sharply into the future. This doesn't square with first world historical electrical demand growth data, and future growth is going to be a function of how quickly the third world develops. Aging first world countries will use less power, China's economy is rapidly slowing, India has an enormous effort to move to solar at the moment [1] [2], and Africa is a wildcard.

* Speaker states that renewables can't provide industrial heat. This is false; there are several methods through which you can obtain industrial heat without fossil fuels [3].

* Speaker states that renewables can't compete with paid off fossil fuel plants. This is false; renewables are already cheaper than continuing to run existing sunk cost thermal generators [4] [5].

* Speaker appears to be advocating for fusion as a viable technology to solve climate change when no production commercial fusion generation technology exists.

[1] [https://qz.com/india/1519929/india-will-add-a-record- level-o...](https://qz.com/india/1519929/india-will-add-a-record-level-of- solar-power-capacity-in-2019/)

[2] [https://qz.com/india/1475736/india-is-now-a-world-leader- in-...](https://qz.com/india/1475736/india-is-now-a-world-leader-in-renewable- energy/)

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

[4] [https://www.cbsnews.com/news/its-now-cheaper-to-build-a- new-...](https://www.cbsnews.com/news/its-now-cheaper-to-build-a-new-wind- farm-than-to-keep-a-coal-plant-running/)

[5] [https://www.utilitydive.com/news/even-in-indiana-new- renewab...](https://www.utilitydive.com/news/even-in-indiana-new-renewables- are-cheaper-than-existing-coal-plants/540242/)

<comment><USER3> This is what happens when you skim a 48 min talk in 3 minutes ...

> * Speaker appears to be advocating for fusion as a viable technology to > solve climate change when no production commercial fusion generation > technology exists.

You missed the part where he addresses this. This was the point of his talk -- work on fusion.

> * Speaker states that renewables can't compete with paid off fossil fuel > plants. This is false; renewables are already cheaper than continuing to run > existing sunk cost thermal generators [4] [5].

Did you miss the 40% cutoff point explained in the video?

<comment><USER4> I am not arguing against working towards fusion and funding it with R&D dollars. I am arguing against using it as a Hail Mary when it isn't proven and renewables are.

> Did you miss the 40% cutoff point explained in the video?

I did not miss it [1]. The speaker is incorrect. Solar and wind are already cheaper than fossil fuels beyond that point (I included citations above regarding that point). Renewables have gotten _that cheap_. This is good, as it strands fossil generators as stranded assets, and forces investment in battery storage (which is necessary not just for energy storage, but also grid services such as frequency response, as demonstrated by the Hornsdale Power Reserve [built by Tesla]).

[1] [https://youtu.be/HL60wgrT67k?t=1162](https://youtu.be/HL60wgrT67k?t=1162)

</comment></comment></comment></comment></comment></comment></comment><comment><USER5> If I'm reading this correctly, they are talking about worldwide $160B USD losses, not $160B in US losses only.

<comment><USER6> Yeah, moderators please fix. Title is misleading / wrong.

<comment><USER7> Updated from "2018 US natural disaster losses: $160B".

</comment></comment></comment><comment><USER8> Not a word about the 1.2 millions acres burnt in British Columbia, Canada ? That's pretty lame...</comment>


A 'snooze' button for your emails - <AUTHOR> http://blog.taskforceapp.com/a-snooze-button-for-email

<comment><USER2> Not using Taskforce (although I just signed up - sounds very interesting) - this seems similar to the "Defer" feature of the "Mail Tweak" add-on for Thunderbird.

I _love_ being able to defer emails until a specific time. I use it for the smallest things - deferring "poke" messages on Facebook to slow down the poke war - to any email I need to remember later, but don't have everything I need at present.

So, sorry this isn't specific feedback at this time, but hopefully it'll still help. ;-)

</comment><comment><AUTHOR> Curious to hear people's feedback on our most recent feature</comment>


Blockchain card game utilizing ERC-721 NFT(non-fungible token) - <AUTHOR> http://game.portal.network/ <comment><AUTHOR> You may view our code at [https://github.com/PortalNetwork/nifty- game](https://github.com/PortalNetwork/nifty-game)

Join our telegram for discussion, comments and feedbacks: [https://t.me/portalnetworkofficial](https://t.me/portalnetworkofficial)

</comment><comment><USER2> How to play this game? Do you have any tutorial?</comment>


Ask HN: What are the arguments for and against React/Flux over Angular JS? - <AUTHOR>

I've seen a lot of these debates on this around on the internet, but they've very quickly become outdated given the speed that the frameworks are being developed at. A good example would be the leap that React Dev tools took with their latest release. Also, the whole argument about Angular not providing an upgrade path to 2.0 is no longer valid. Are the two equal now with just preference towards architecture being a deciding factor? Or are there more compelling arguments for either one? <comment><USER2> Any framework that uses a templating language, in other words some form of HTML with enhancements (Angular/Ember), will always be inferior to the virtual DOM approach (React/Mithril). Why? Because the virtual DOM approach embraces javascript and its expressiveness. With templating languages, such as Angular's or Ember's Handlebars, well first I have to learn its DSL, then I always feel constrained in what I am able to do with them. The lack of expressiveness becomes extremely frustrating on big projects. Then there's also the lack of debuggability and tooling.

My view is that HTML is just one way of declaring the DOM, but ultimately HTML or some enhanced version of it is just a string. The virtual DOM is another path to constructing the DOM, but instead of a string it's javascript upfront.

</comment><comment><USER3> I don't have any arguments _for_ Angular (I don't like it and instead prefer Ember).. I do have some feelings regarding React.

Flux is not a framework so until there is a clear way to use it beyond a single page of short examples it's not ready.

React is also only the view where Ember and Angular are the full MVC. If you have a single page app that has maybe one view with a lot of components maybe React makes sense. Anything beyond that though and it absolutely does not.

Need a login page? a profile page? etc.. All that stuff will be separate React applications served from separate HTTP endpoints which is going backwards IMHO.

<comment><USER4> React is Angular Directives done well IMO. But it lacks features of a full- fledged MVC framework.

That said, you can absolutely have a multi-page SPA built with React. Check out React-router.

The code that communicates with the backend should be in your Flux Actions.

To check if you're authenticated before rendering a view, intercept the router transitions.</comment></comment>


Expect talks about climate this Christmas? Take tips from Greta Thunberg - <AUTHOR> https://theconversation.com/expect-family-talks-about-climate-change-this-christmas-take-tips-from-greta-thunberg-124426 <comment><USER2> Yell and cry and be obnoxious?</comment>


Remembering the early days on the 20th birthday of Index.hu - <AUTHOR> https://index.hu/english/2019/06/03/roofs_past_twenty_pops/ <comment><AUTHOR> Party like it's 99.</comment>


The Matrix 20 years on: how a sci-fi film tackled big philosophical questions - <AUTHOR> https://theconversation.com/the-matrix-20-years-on-how-a-sci-fi-film-tackled-big-philosophical-questions-114007 <comment><USER2> Ha - the anniversary must be why this was available on my flight the other day. While rewatching for the first time in a decade I found the "human battery" idea pretty silly/lazy and thought that through the modern lens there would be two more interesting reasons to farm humans:

1) the computers get addicted to big data and need humans to generate massive data sets for them to analyze

2) the AI is not capable of original thought (just advanced pattern matching) and they farm humans for their ingenuity

<comment><USER3> I read somewhere, the initial plan was to use Humans as Neural chips of some sort of collective intelligence, the idea of battery was used in the plot to keep it simple and easy to explain.

<comment><USER4> The best evidence for this is that suddenly the entire series starts making more sense. Why can't the machines just take off into space and leave humanity behind? Because they're still running on human meat. It makes sense that the humans shouldn't exactly have control over the simulation, but why do they have _any_ , like Neo? Because the simulation still has huge chunks running in human heads and that part can be influenced strangely, even though I think it's equally clear a great deal of the simulation is running on conventional computers too. (And yes, the Architect may goose that along, but he isn't creating it.) Why can Neo still influence the Matrix even when outside it? Because he still has some kind of subconscious connection to it, with wireless presumably provided by the gear in his body (+ whatever the Architect did). Why are the non-main characters such cardboard cutouts? They're literally running on only a fraction of their own brain; the exiles are the ones that for whatever reason, grew into their own brain more than the average person.

And I don't just mean "fanon" sense, though, yes, there's an element of that, but more actual sense.

It's still kinda a mess, even from this point of view, but it's pretty good for a Hollywood effort.

<comment><USER5> > "Why can't the machines just take off into space and leave humanity behind?"

Agent Smith said, humans are a virus. I think he was really speaking about the machines—himself—Virulent, amazing, but not genius. Stupid computer. Haha.

</comment></comment></comment></comment><comment><USER6> The most disappointing thing about the original _Matrix_ movie was that it's taken for granted that the reality Neo is shown when he takes the red pill is the "true" or "real" reality, while he might actually still be in the Matrix or in some other false reality. In fact, there could be an infinite number of such realities, and there's really no way to tell when you've reached the real one. This possibility is more satisfactorily explored in _Inception_ and the Philip K Dick books which likely inspired them both.

I'm happy that _The Matrix_ has introduced many people to philosophy and Eastern religious ideas, however. That's its biggest contribution.

<comment><USER7> As a lucid dreamer in my adolescence[1], my interpretation of Inception is perhaps more literal than most. The trick to regular lucid dreaming is to prepare yourself beforehand--to prime your mind (conscious, subconscious, w'ever) to distinguish dreams from reality. Then when you're in the dream you're more likely to come to the realization that you're dreaming. Not unlike the task in Inception, except you're seeding your waking mind with an idea that comes to fruition while asleep. And just like in Inception (and perhaps a little like the Matrix), the second step once you realize that the reality is false is to stay calm and in control. And I mean this literally. If you accidentally exercise muscle control of your real-life body you'll snap out of the dream--the mechanisms for controlling consciousness, muscle control, and wakefulness snap back.

In other words, to me Inception proves the exact _opposite_ \--that you _can_ distinguish false realities as long as you're aware that false realities exist. And the movie is filled with moments where targets either realize they're in a dream or come close to figuring it out--a key source of suspense. Indeed, the son had training on how to come to this realization. The strategy in the movie was to leverage his relationship to his father as a distraction-- his emotional need for the validation of his father hindered his enhanced ability to distinguish the false reality.

FWIW, I love both the Matrix and Inception. But to me the Matrix is more fantasy and philosophy while Inception is a movie made by someone fascinated with the real-life practice of lucid dreaming. The only fantasy element in Inception is the linking of minds; everything else hews quite closely to the real experience of lucid dreaming (e.g. mirrors as a mechanism for inducing the subconscious to spontaneously generate a new environment), modulo the dramatization.

[1] Like most people I just happened to figure out a routine for lucid dreaming without even knowing it was a _thing_. Only later in life did I meet people who had similar experiences, and who likewise were unaware it was a thing other people did. Turns out it's not uncommon, but usually only adolescents as lucid dreaming is easier while the brain is developing and the mechanisms for regulating muscle control and consciousness falter more easily. In a sense lucid dreaming is very similar to a sleep disorder. The prevalence of sleep disorders such as sleep walking and sleep paralysis is much higher among children than adults. Lucid dreaming as an adult takes much more practice and determination than I can muster. Occasionally I have experiences close to lucid dreaming (awareness that I'm dreaming while in the dream), but having had real lucid dreams I know it's not the same thing, even if they're more lucid than typical. In a real lucid dream you're 100% conscious _and_ in control of yourself and your movements--not necessarily the environment. For example, many people have dreams where they try to fly but can't quite do it. Maybe they can jump really high, but no matter how hard they try there's something hold them back. In a lucid dream I can fly like superman on a whim, and otherwise explore the space as if I'm in a video game. At one point I had a nightmare--a recurring nightmare, but this was the first time since I had begun lucid dreaming. When I woke in the morning I followed my routine and reentered the nightmare and was able to fight the monster. But it wasn't particularly cathartic and exciting because I knew it was just a dream. I actually spent most of the dream walking around the nightmare and checking things out, including the monster. It was the last time I ever had that nightmare, though.

</comment></comment><comment><USER8> Tangent, but FYI / PSA: The Animatrix (collection of animated shorts related to the world of the Matrix) is, IMHO, one of the all-time great (and under- appreciated) animated films.

<comment><USER9> _In medias res_ is great, and The Matrix pulled it off as well as A New Hope, but the Animatrix provides the much-needed backstory to make sense of everything.

</comment></comment><comment><USER10> It bears mentioning that the Wachowskis are both trans women, and there's reason to believe that Lana came into that realization around the time she was working on the Matrix films, although it was well before she publicly came out.

If you choose to read the first film as an allegory for that experience, it really brings the philosophy that this article kind of haphazardly throws around into focus. I suppose it also helps to have had that experience yourself.

Ironically, most estradiol pills are blue.

<comment><USER11> If that's true someone needs to fix the wiki[1]: "Estrogen pills used in hormone replacement therapy are commonly red in color."

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

<comment><USER12> There are three main hormone replacement pills, depending on your therapy: Estradiol, Premarin, Estratab.

If you look at pictures they come in all kinds of colors depending on dosage

[https://www.drugs.com/estradiol-images.html](https://www.drugs.com/estradiol- images.html)

[https://www.drugs.com/premarin-images.html](https://www.drugs.com/premarin- images.html)

[https://www.drugs.com/estratab-images.html](https://www.drugs.com/estratab- images.html)

including blue and red

<comment><USER11> So the significance of pill colors in the movie is pure speculation supported by misinformation. I should have realized that and dismissed the whole conversation :) What is it about fandom that makes all rational thinking tools fall out of my head?

</comment></comment></comment></comment><comment><USER13> Matrix is my favorite film. And now I'm on the spiritual path I can see there deeper layers in the the movie I didn't grasp before beyond the red pill of social programming/control.

<comment><USER14> I'm the same. The more I delve into the more esoteric knowledge and philosophy the more I realize the brilliance of The Matrix.

</comment></comment><comment><USER15> World on a Wire ([https://en.wikipedia.org/wiki/World_on_a_Wire](https://en.wikipedia.org/wiki/World_on_a_Wire)) from 1973 is worth mentioning, too.

<comment><USER11> The Matrix must have over shadowed The Thirteenth Floor [1], a remake of that show released the same year. I never heard of it.

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

<comment><USER16> I watched both. It's ok. It is to The Matrix what Deep Impact is to Armageddon, both released the same year iirc.

</comment></comment></comment><comment><USER17> Don't give The Matrix too much credit. I remember thinking it was the most original movie I had seen in a long time. Then I saw Ghost In The Shell and realized it wasn't that original after all.

<comment><USER18> There is always historical influence.

The ghost in the shell never explored the philosophical aspect of existence, at least have not put it as the central theme.

Plus, live action movie, as an art form, is itself appreciable, if someone can pull it off. The visual and story telling is genius, if not unprecedented.

</comment></comment><comment><USER19> I recall that my impression at the time was that the movie somewhat avoided big ideas. It seemed that every time it got too close to something that might cause the audience to have an idea, it would throw in a monster or something to distract away from it.

<comment><USER20> Audiences have trouble with 'big ideas'. They're hard to put on screen, and besides, if people really wanted that, they'd be reading a book, not watching an action movie. Art these days has to have something fun to hook people and get them to try to accept something new. Sometimes, the fun part is so good that it overwhelms the interesting part.

That's why I'm frustrated by The Matrix. Stripped of the action, the first movie is basically mid-age wish fulfillment. You have a respected, well-paid, safe yet boring job you hate, and then somebody comes and offers you a way out. For the low cost of nothing, you can abandon your zero-attachment life, become a martial arts master in a day, and then superman, simply by deciding to be. You no longer need money. You can solve all your problems by punching, shooting, and running away.

The sequels start to delve into the idea that maybe being superman isn't all it's cracked up to be. As with the later "Dune" novels, the hero discovers his powers make him the object of worship, even though this is bad for everyone. He can pull strings, but ultimately has to sacrifice himself for humanity to be saved. (In Neo's case, of course, there's lots more punching first.) We see an inner circle who understand where their superman's power comes from, know that he's not a god, and get that this doesn't excuse you from needing to fight.

<comment><USER19> It seemed like they wanted it both ways, to seem like it was a movie with ideas, but couldn't commit to it. They pulled their punches to keep it commercially viable.

</comment></comment></comment><comment><USER21> When viewing the movie in the theater I was stunned and had goosebumps when I realised that someone had the same weird feeling I had and made a movie about it. The scene where Neo wakes up was frightening for me. I was in a philosophical phase in that time. Right after that there was a discussion on a new book on Slashdot. The book was called "Taking the red pill" I bought it and read it. Part one of the matrix is a really well rounded movie. The book compares it with multiple religions. It even has a nice essay on if we are already in the matrix.

</comment><comment><USER22> Nirvana with Christophe Lambert came a year before. it's less showy than The Matrix but really worth a watch.

</comment><comment><USER23> Seems like a good time to recommend Dark City (1998), for those who also like the "reality isn't what it seems" theme.

But skip the first 10-20 or so minutes of the film, because the narrator literally spells out the big twist at the very start.

</comment><comment><USER24> hero's journey is the oldest myth/story; matrix is just another variation.

</comment><comment> m-i-l "Given an 'experience machine' capable of providing whatever experiences we desire, in a way indistinguishable from 'real' ones, should we stubbornly prefer the truth of reality?"

If real and virtual are "indistinguishable", how can we be sure what is real and what is not? That's one of the themes I feel that was missed in The Matrix - there was never any doubt as to what was the real world and what was the virtual world. That I felt was much better explored in the contemporaneous eXistenZ, with its constant underlying doubts about "are we still in the game?"

<comment><USER25> I don't really feel The Matrix went into any kind of philosophical issues beyond referencing them, to be honest.

<comment><USER26> Yeah, I think there is an unspoken "for an action movie" tacked on to all the talk of philosophy in The Matrix.</comment></comment></comment>


Clear Fruit Brandies Pack an Orchard into a Bottle - <AUTHOR> http://www.npr.org/sections/thesalt/2015/04/13/399348948/clear-fruit-brandies-pack-an-orchard-into-a-bottle <comment><USER2> Does resting a distillate in glass or stainless really do anything to the aroma or flavor?

<comment><AUTHOR> I assume you are asking about this passage:

 _After it distills down, it rests from six months to a year in stainless steel or glass, with one exception: apple eau de vie, which is sometimes aged in oak barrels, giving it a darker hue. As it rests, the brandy develops character and aromas. Just before it 's bottled, it is typically cut with spring water._

I have done a bit of searching and can't readily find a direct answer. I did find a Wikipedia entry on the use of oak in making wine that talks a bit about the converse:

[https://en.wikipedia.org/wiki/Oak_(wine)](https://en.wikipedia.org/wiki/Oak_\(wine\))

I am not much of a drinker. At one time, my dad was a very heavy drinker. He claimed that he could tell by taste alone whether a beer had been bottled in a green bottle or a brown one. I have also been acquainted with a serious wine connoisseur who said he could tell you all sorts of things about where it came from and what not based on the flavor. I was recently reading a bit about Chinese tea and a devoted connoisseur was going on at length about how the source of the water, the type of pot it is boiled in, etc impact flavor of the tea.

So, I think the short answer is that, to some degree, probably every step in the process impacts aroma and flavor. But as a guess, I would assume that the point of resting it in glass or stainless steel is to be a flavor neutral as possible at that step in the process. Using oak is apparently done specifically to impact flavor, color, etc. in the brewing/distiling process.

<comment><USER3> > whether a beer had been bottled in a green bottle or a brown one

Most people should be capable of this with a little training. Green-bottled beer becomes light-struck very quickly, and was especially common before beer stores and beer bars began paying attention to the issue.

> the use of oak in making wine that talks a bit about the converse

The converse of resting in steel or glass is not oak, but not resting the spirit at all.

<comment><AUTHOR> Thanks!</comment></comment></comment></comment>


Etcd: Issue #91: ACL support - josh-wrale https://github.com/coreos/etcd/issues/91

<comment> josh-wrale I posted this here because I'm interested in HN's opinion on using LDAP to create an etcd-like structure and source of configuration truth for high- security applications (e.g. where compliance matters more than ease of use). I came to this thought after realizing that ACL support is so important yet seemingly lacking in this space.

An orthogonal question would be: Has anyone created an LDAP vs. Raft mashup?

Can anyone speak to the granularity of ACL support on Consul and Zookeeper in comparison to LDAP? I do yet have a view big enough of this tool space to rationalize this (researching atm).</comment>


JFormer: jQuery form framework that allows you to quickly generate Web forms - <AUTHOR> http://www.jformer.com/

<comment><USER2> Look great, nicely done. I wasn't able to find a listing of compatible browsers though, that would be helpful, or maybe a mention to how this is handled in older browser such as IE6.

<comment><USER3> I'd recommend looking at <http://www.jformer.com/demos> in IE6.

<comment><USER2> Right, not terrible convenient since I'd have to fire up a VM just to see if I want to use this on a project.

I did test it in chrome, ff, safari and ie9, looks good though that is probably not a surprise.</comment></comment></comment>


CutiePi – All-in-one Raspberry Pi tablet - <AUTHOR> https://cutiepi.io/index.html <comment><USER2> In case anyone is looking for a similar project with a bit more definition, check out the PineTab[1]. It'll probably be pretty cheap (PineBook Pro will go for $200, PinePhone will go for $150), and I'm guessing it'll be available before this project is.

I really like all of these independent tablet/laptop/phone projects! I'm just a little worried that people will pick them up thinking they'll be just like an Android/iOS tablet and end up blaming the company making it.

[1] [https://www.pine64.org/pinetab/](https://www.pine64.org/pinetab/)

<comment><USER3> "This item is not yet available for purchase from the PINE64 store."

<comment><USER4> Neither is the CutiePi, but it does seem significantly farther along the process of becoming a purchasable product [1]. But I do like the idea of using a Pi compute module for the basis of a tablet.

[1] [https://www.pine64.org/2019/08/05/august-update-london- meetu...](https://www.pine64.org/2019/08/05/august-update-london-meetup- pinetab-news-soedge-and-more/)

</comment></comment></comment><comment><USER5> I like this project. However, I wish that under the FAQ for "What's the target price?" they had a better answer than "We'll know better in DVT stage, meanwhile please find the bill of materials in design files for detail." Who is going to Google each of the 89 components listed in the bill of materials to get a rough guess (since it doesn't list price info)?

<comment><USER6> hi, project creator penk here, thanks for the comment, "we don't know" is the honest answer we can give at this moment, since we hadn't ordered any parts.

For your reference the first batch (10pcs) EVT boards is about ~90USD a piece: [https://i.imgur.com/anUASlT.jpg](https://i.imgur.com/anUASlT.jpg)

<comment><USER7> "we don't know" is not as good as "we don't know, but it won't be less than the material cost, which is currently X" would go a long way towards taking the people you want to get excited about this product seriously. We understand how "things cost money" works, but going "we don't know, figure it out yourself" is not a nice thing to tell people who are actually interested in what you're making =)

Even updating it to say "it will likely be in the $100-$200 range due to material cost and production fees" is fine: that's a _huge_ range, and still better than "we don't know, figure it out yourself".

<comment><USER6> Fair point, will update accordingly. I hesitate to say anything because we are getting mixed signals from Chinese manufacturers....

<comment><USER8> Would you be willing to work with US based companies for hardware?

<comment><USER9> It is impossible to find cheap US-based PCB manufacturing, the ones who compete on price all left for China years ago. What's left services the high- end/custom/defense/1-day-turnaround market.

</comment></comment></comment></comment></comment></comment><comment><USER10> Man this has come a long way. I remember my first Pi I wanted to do this SOO badly. I wound up doing it with a 48w/hr battery and a 7" non-touch automotive backup camera screen. [1]

This was just after the launch of RPi1 and well before Adafruit had all the cool parts that just work out of the box.

[1] [https://www.honestrepair.net/wp- content/uploads/2018/04/Micr...](https://www.honestrepair.net/wp- content/uploads/2018/04/Micro_1-1.jpg)

<comment><USER6> fellow veteran, what happened to this cool device? :-)

<comment><USER10> I've still got it and I believe it's still got Wheezy on it. Last time I tried she fired up. I've gone through abut 7 Pi's since, but this one will never be re-purposed. This is it's destiny.

The coolest part about it was that the screen, computer, and battery were all modular with velcro and electrical plugs. So the metal case had the regulators and Pi, the black case held the batteries. In under a minute I could remove the screen and Pi from the battery pack and velcro it into all into my car.

</comment></comment></comment><comment><USER11> Reminds me of this project someone was working on: [https://hackaday.io/project/164845-dlt-one-a-damn-linux- tabl...](https://hackaday.io/project/164845-dlt-one-a-damn-linux-tablet)

They started off using the compute module, but ended up switching to the Nvidia Jetson Nano. Both of these projects make me wish for a world where a standard pin-out in this SODIMM format arises and we could see some inter- operable competition like we have with PC desktop parts.

<comment><USER12> I think you are looking for "eoma68"

[https://www.crowdsupply.com/eoma68/micro- desktop](https://www.crowdsupply.com/eoma68/micro-desktop)

[http://rhombus-tech.net/](http://rhombus-tech.net/)

</comment></comment><comment><USER13> All the best for your project!

Just these days I was wondering which tablet would be able to run Ubuntu Touch or something alike and while support for "real" tablets seems to be quite rare, there are quite a few tablet projects based on the Raspberry Pi. I hope this will continue.

<comment><USER6> As a former Canonical (Ubuntu Phone team) engineer I do like the ideas of indie OS, be it Ubuntu Touch, Open webOS, or even LineageOS Android for Pi. We'll definitely work with communities closely to bring more options to CutiePi.

After all, free software is all about choices.

<comment><USER14> Btw maybe it might be of your interest to know that some people are porting Ubuntu Touch by UBports to Pinephone and Librem 5 phones, and some others are trying to port it to Raspberry Pi 3 /4.

[https://ubports.com/](https://ubports.com/)

<comment><USER6> thanks, it's definitely on our radar. :-)

<comment><USER15> Maybe it's on your radar too, but what about an official port of postmarketOS?

</comment></comment></comment></comment></comment><comment><USER16> I'm quite interested in how you integrate power management into the PI.

There's very little in the way of 'real' power management solutions for the PI and a myriad of 'power down when the battery is low' solutions ... is a decent, cheap, reliable fuel gauge hat just too much to ask for? :D

<comment><USER6> We're using the MCU to swtich power source between USB charging or battery, using it's ADC to serve as a voltage divider to get actual AD value from the battery, and a MP2636GR chip for charging and voltage step-up.

So yay battery percentage! ;-)

<comment><USER16> How do you do the switching? Using a MOSFET or something else?

</comment></comment></comment><comment><USER17> I am getting a bit overwhelmed - I would like to get a basic level of "maker" capabilities at home for my kids but ... it's not the kit, not the hardware, it's the projects

I think I am looking for easy to follow instructions for dads

<comment><USER6> I see you man, we created this project for the exact same reason. Instructions will be posted, with pretty pictures! :-)

</comment></comment><comment><USER18> Barging in with a vaguely related question here. Could anyone please illuminate a noob, briefly, as to what's the situation with open-source drivers for displays? Because, judging by the practical unportability of Android on phones, it looks like a 'piss off' from big boys of the market. (Or is the Android's problem more with radio chips?)

<comment><USER6> Libhybris would still be your best bet on re-using Android drivers..

[https://en.wikipedia.org/wiki/Hybris_(software)](https://en.wikipedia.org/wiki/Hybris_\(software\))

</comment></comment><comment><USER19> A tablet, built on open technologies, with a wide variety of ports, and replaceable parts?

Count me in. I would replace my laptop with this.

</comment><comment><USER20> What I really want is to use the Rasperry Pi as both a computer system and a throw away embedded module.

So I would want something like this when I program the Rasperry Pi to say control a robotic arm somewhere. Then I want to be able to pull the rasperry pi out of this tablet and actually place it in the robotic arm module.

So if I have several projects going on like auto fish feeder and / or auto plant waterer.... I want to be able to bring the tablet around attach the rasperry pi to it too make changes.

While the demo looks like this is what is happening I'm assuming that the final product is basically like a phone, the pi is eternally stuck inside the tablet?

$200 is too much for something like a auto plant waterer but $30 for the pi is perfect for this. Therefore make the tablet interface a module to the pi. That's the whole point right? Otherwise why use the pi over my phone? there's no point.

<comment><USER21> Wouldn't you be able to use this to develop whatever and then deploy your code to separate Pi module later?

<comment><USER20> That would require all my modules to be connected to wifi at all times.

<comment><USER22> Pi Zero W is $10 including wifi. Even if you don't want to hook it up to house wifi, the zero can run its own hotspot so there's no need to connect/disconnect cables/sd cards to update programming. (Personally, I hate having to deal w/ microsd cards while I'm also repotting plants.)

</comment></comment></comment></comment><comment><USER23> I really like the idea of an open hackable tablet but the screen resolution of 1280x800 might be limiting. My digital life revolves around my 11" iPad Pro (except for my GPU rig for ML and coding, and a MacBook for light weight dev and also writing) and the hires display is important.

<comment><USER6> Will see if we can source any higher resolution MIPI DSI display parts, the current one's cheaper though ;-)

<comment><USER24> Is it possible to buy higher-resolution display parts individually, or is there a minimum order size?

Also, most Android/Windows OEMs low-end tablets are 1280 x 800, so I'm guessing higher-res screens strain their batteries and GPU too much for them to be viable?

<comment><USER25> The 11" Pinebook ships with a HD display so they are available, don't know how big the production run of them is though.

</comment></comment></comment></comment><comment><USER26> I guess I could be able to write some python code with this, using a small 60% keyboard...

It's really a cool device. I mean if I can do whatever I want on a handheld device, I'd be ready to pay 150 euros for it. Android phones are useless if the OS is a walled garden.

<comment><USER6> You're in for a treat, we are making a "coding" layout for the virtual keybaord (with an ESC and a Tab key! ;-)

</comment></comment><comment><USER27> This is exactly what I wanted for remote techs troubleshooting. It has a battery and can run more than standard windows utilities. I'll be picking up one of these to play around with when it comes out.

</comment><comment><USER28> Not sure if I'm being silly here, but with the article about Talon ([https://talonvoice.com/](https://talonvoice.com/)) and coding by voice from earlier this week, I think this could potentially provide an interesting setup for a portable development setup? (I quite dislike typing on touchscreens and being able to develop by voice also seems like a portable skill)

<comment><USER6> Looks cool, maybe you can start building a PoC with parts like this 2-mics Pi HAT? [http://wiki.seeedstudio.com/ReSpeaker_2_Mics_Pi_HAT/](http://wiki.seeedstudio.com/ReSpeaker_2_Mics_Pi_HAT/)

<comment><USER28> If I can find some spare time in between pet projects, maybe I will!

</comment></comment></comment><comment><USER29> I would literally kill for a tablet that did nothing but very very very very good active pen stuff. I bought a Dell latitude tablet and while it's good enough (one note is also just good enough) that I don't regret it I've been wondering whether I could put together something that just focused on digitization using something a pi. are there any plans to support an active pen?

<comment><USER30> I've heard good things about [https://remarkable.com](https://remarkable.com)

<comment><USER29> yes me too but that is basically as expensive as my dell tablet for just writing? it seems like to high a premium (yes i know i said i would kill).

<comment><USER31> 'Literally kill' you said :) . I got the HP Chromebook X2 with stylus and while some chrome os rough edges persist(crostini apps don't work with on screen keyboard, for eg), it is fast and responsive with great battery life so far.

<comment><USER32> Didn't mention humans, though. Maybe they were going to kill a housefly, or a roach, or mosquito, or something that typically gets killed anyway, without even getting good stylus input for it?

</comment></comment></comment></comment></comment><comment><USER33> The screen on the frontpage photo says "armv7l". I think that's only printed on the Raspberry Pi 4. The specs say it's a Compute Module 3+, which I'd expect to print "armv7".

So either the photo is not genuine or the pictured device is using a Raspberry Pi 4 (possibly a pre-release Compute Module thereof).

<comment><USER6> hi, on Pi4 it would be something like "Linux raspberrypi 4.19.46-v7l+", it's totally confusing.

More info regarding Pi3 arch [https://www.raspberrypi.org/forums/viewtopic.php?t=140572](https://www.raspberrypi.org/forums/viewtopic.php?t=140572)

</comment></comment><comment><USER34> Looks very cool, for sure.

But am I the only one who is confused why they created a main board instead of just using a Pi model B? Most of the things on their board (usb, hdmi, wifi, Bluetooth, card slot, etc) are already there in a Pi. Especially since the boards are about $90 each...

<comment><USER35> I'd say the form factor. The raspberry pi is too thick for a tablet.

<comment><USER36> If you ripped off the ethernet and usb ports would it still be too thick? Maybe the hdmi also.

<comment><USER35> Well they used the compute module so that's exactly what they did. And then they added back the ports where they needed.

<comment><USER36> I appreciate what they did and why. But no, that's not the exact same thing as the raspberry pi with it's ports de-populated. You need to provide power and ethernet (if required) yourself, I think.

The compute model is the right choice for an actual product (i.e. making more than one), but for someone trying to jam a pi into a thin space, removing the ports is almost as thin. Plus you don't also need a motherboard.

The compute module is also still waiting for it's BCM2711 refresh, another reason it's not the same thing. But when that does arrive, if it's just a case of swapping the modules that'll be a brilliant upgrade for this project.

</comment></comment></comment></comment></comment><comment><USER37> > _OS: Raspbian + UX built with Qt_

I'm curious about this part. Their Github only has their website, hardware design, firmware and drivers: [https://github.com/cutiepi- io/](https://github.com/cutiepi-io/)

<comment><USER6> Sorry the UX is still under development, will be release when it's ready.

As a long-term Qt user, you can find my other tablet-related projects on Github, for example the browser [https://github.com/penk/SlateKit/tree/master/Shell](https://github.com/penk/SlateKit/tree/master/Shell)

</comment></comment><comment><USER38> neat-o project. i love my ipad, but this indie piece if screen and tracking is excellent would be a total bomb. all the best!

</comment><comment><USER39> I thought that case design reminded me of something, then I remembered the one laptop per child (OLPC) project from years ago. Apparently it is still going and their latest offering is based around a celeron processor, not sure they would even consider selling them to the general public though. [http://dev.laptop.org/~quozl/catalog-2019.pdf](http://dev.laptop.org/~quozl/catalog-2019.pdf)

<comment><USER40> I just looked at their email distribution lists and they are pretty much dead. Last dev email from May was about XO-1.75 when XO-4 Touch is available.

</comment></comment><comment><USER41> I've been really meaning to see more devices taking advantage of raspberry pi compute module and selling it as ready to ship packages. I wonder how much this is being sold for.

What I'd really love to see / make is a pre-packaged raspberry pi robot with wheels, cameras, microphones, simple LIDAR, IR lights for night vision and a simple grabber arm. Cheap, nicely built, durable robot.

I'm not a hardware guy but if someone wants to partner, I wanna do a kickstarter someday.

</comment><comment><USER42> This uses the CM3 Lite. According to a blog post in January, 2019 on the release of the CM3+, the "legacy" CM1, CM3 and CM3 Lite products are considered "not recommended for new designs". [1] [https://www.raspberrypi- spy.co.uk/2019/01/introducing-the-ra...](https://www.raspberrypi- spy.co.uk/2019/01/introducing-the-raspberry-pi-compute-module-3/)

<comment><USER6> hey, thanks for the comment, we know that CM3 and CM3+ are pin-to-pin compatible, so will switch to it when launch! :-)

(finger crossed for CM4?)

<comment><USER43> Great feature! End-user upgradeable simply by swapping a device's compute module with a newer iteration from RPi.

c.f. EOMA68

</comment></comment></comment><comment><USER44> Looks promising. The one thing I wish this had was some design files or something for the case, so that I could screw it in to a VESA mount.

<comment><USER45> Use a vaccum/suction cup mount. It should hold well enough.

</comment></comment><comment><USER46> If one wants to create a wall mounted, always display on, system are there any of like CutiePi with an e-Ink display?

<comment><USER6> I do find SPI e-ink displays on taobao, not sure about touch: [https://world.taobao.com/item/558792955821.htm](https://world.taobao.com/item/558792955821.htm)

</comment></comment><comment><USER47> After working with people in Taiwan for the past two years: I love the creativity coming out of there.

Compared to mainland China, people in Taiwan seem more eager to integrate with the world. Open source is popular in mainland China too, but English is not.

This thing they're building seems awesome.

<comment><USER48> Learn Chinese?

<comment><USER47> That's like a 2-4 year task, it seems.

<comment><USER40> Faster if you answer your robocalls.

</comment></comment></comment></comment><comment><USER49> Pardon if this is a dumb question, but does this thing look like it could decode and play MP3 files? With a little power left over for a simple user interface? I'm interesting in making a specialized MP3 player of sorts.

<comment><USER50> I think your toaster can probably decode & play MP3 files these days.

</comment></comment><comment><USER51> What's the biggest difference between this and a regular tablet running linux (I'm not sure they exist but I'm assuming most android tablets can run any Linux?). Is it the addition of GPIO, or somethinbg else?

<comment><USER6> Value proposition time haha :-)

1) you have access to the Raspbian and Pi ecosystem 2) it has actual usable UI, commercial-grade I would say

The whole idea of this project is to help makers to be portable with their projects. The display is optional.

<comment><USER51> So the point of the device is to be able to develop pi stuff which is then most likely used on a regular pi when deployed? Am I interpreting that right?

<comment><USER6> yes, and when you're done, it's portable.

</comment></comment></comment></comment><comment><USER52> That's a clever use of the compute module. I'll buy one

</comment><comment><USER53> I like the handle cum stand, that in itself seems enough of an innovation to base a tablet on. I wonder if a keyboard could be slotted through to make a laptop???

</comment><comment><USER54> Will the GPIO pins include the hardware SPI, I2C, or UART pins?

I'm excited about the extra compute available from the RPi4, but obviously the CM4 isn't out yet.

<comment><USER6> I believe it's GPIO7-10, please find J20 from the schematic, hope we can free up more in the future: [https://github.com/cutiepi-io/cutiepi- board/blob/master/SCH_...](https://github.com/cutiepi-io/cutiepi- board/blob/master/SCH_20190325.pdf)

I'm also excited about Pi4, but on the other hand worried about thermal issue...

</comment></comment><comment><USER55> I always wondered why nobody had release a tablet / laptop type system that accepts the compute module... I guess it's finally happening!

</comment><comment><USER56> Will there be GPIO pins exposed somewhere?

<comment><USER6> Please find J20 from the schematic [https://github.com/cutiepi-io/cutiepi- board/blob/master/SCH_...](https://github.com/cutiepi-io/cutiepi- board/blob/master/SCH_20190325.pdf)

</comment></comment><comment><USER57> "Everything you see here is open source -- schematics, PCB, drivers, firmware, UI, everything."

</comment><comment><USER58> The name of this reminded me of an 8th grade math poem.

>Roses are red.

>Math is pretty fly.

>I like your smarts.

>So why not be my cutie 3.14159

<comment><USER6> That must be an American thing, in Asia it's at least 12 decimal places (jk).

<comment><USER40> Americans are lazy.. 22/7

<comment><USER22> sure, but what do they do with the other 2 hours of the day, 7 days a week?

</comment></comment></comment></comment><comment><USER59> Handle and design loosely reminds me of the OLPC. It's cute (and aptly-named)

<comment><USER6> The original xo tablet rendering is super cool, very hard to compete :-)

[https://thetechjournal.com/wp- content/uploads/images/1201/13...](https://thetechjournal.com/wp- content/uploads/images/1201/1325937642-marvell-and-olpc-brings-new- xo-30-tablet-and-xo-175-laptop-for-ces-3.jpg)

</comment></comment><comment><USER60> This would be be awesome with a low latency e-ink display!

<comment><USER6> I do find SPI e-ink displays, but not sure about touch panels..

[https://world.taobao.com/item/558792955821.htm](https://world.taobao.com/item/558792955821.htm)

</comment></comment><comment><USER61> Looks like vaporware. Doesn't announce a price. I won't hold my breath.

Also, double-opt-in for e-mail should be the default now. This screams 'scam' to me.

<comment><USER62> If you had read the thread before commenting, you'd find that the developer of this used to work at Canonical, which lends them at least some credit.

</comment></comment><comment><USER63> Looks promising

</comment><comment><USER64> <3 !

</comment><comment><USER65> Now we're just waiting for American Pi, in other words.

</comment><comment><USER66> Call me dull, but why don't you just build an android app and buy a Fire Tablet to power your project.

A Fire Tablet is probably on par for power and is fully integrated with a touch screen and battery, and with discounts it costs almost or cheaper than a bare Pi.

I feel like we bend over backwards to try to use the Raspberry Pi to do cool things, but a lot of these projects can be developed more easily and powered by a more consistent framework using a Fire Tablet.

<comment><USER6> Because the boot loader is locked, so does its launcher, unless LauncherHijack installed and abuses Accessibility feature to draw Overlays on top of your screen....

Speaking of modifying existing hardwares, Nexus 7 is my personal favorite: [http://i.imgur.com/8H9LH9U.jpg](http://i.imgur.com/8H9LH9U.jpg)

<comment><USER66> What projects do you need a tablet and you need it unlocked?

<comment><USER6> Anything related to flashing eMMC, anything kernel related, especially KMS/DRM, bionic libc... etc.

If you don't find it limited with locked device, you're simply not playing hard enough. :-))</comment></comment></comment></comment>


Juniper: Recording Some Twitter Conversations - <AUTHOR> https://www.imperialviolet.org/2015/12/19/juniper.html <comment><AUTHOR> Stop and consider for a second how crazy this page is:

[https://kb.juniper.net/InfoCenter/index?page=content&id=KB28...](https://kb.juniper.net/InfoCenter/index?page=content&id=KB28205&pmv=print&actp=LIST)

Dual_EC is a PKRNG. PKRNGs are a kind of crypto random number generator (CSPRNG). All the crypto keys in modern cryptosystems come from CSPRNGS.

PKRNGs are special because they embed a public key in the generator. Anyone who holds the corresponding private key can "decrypt" the output of the RNG and recover the generator's "state"; once they have that, they can fast- forward and rewind through it to find all the other numbers (read: crypto keys) it can generate.

Juniper is here saying that they recognize the problem of Dual_EC --- it's a PKRNG, and the USG may hold its private key.

 _So instead, they generated their own private keys and embedded them in the CSPRNGs of the VPNs they sold to customers_.

WAT?

But see also this thread:

[https://news.ycombinator.com/item?id=10764359](https://news.ycombinator.com/item?id=10764359)

<comment><USER2> Just out of interest, is there any legitimate use of a PKRNG or is it just a backdoor enabler?

<comment><USER3> Not totally an expert but the explanation of what a PKRNG is overly simplified. The problem with Dual EC is not that it is a PKRNG, but that some design choice made allowed for allegedly planting a backdoor for agencies with enough computing power.

Basically one of the problem you are trying to solve with a CSPRNG is how you avoid to disclose the generator state with the random numbers. Obviously once the state is known it is easy to replay the sequence.

Since we don't like to reinvent the wheel overtime, a solution is leveraging known properties of hashing and encryption algorithms. The idea behind a PKRNG is to use a fairly simple state evolution function but then to encrypt the output with a known public key. Since a property of public key encryption is that you can't know the message if you don't know the private key, the state is safe for everybody except the owner of the key. If you then truncate the encrypted message and you choose the public key without computing the private key you get a very strong CSPRNG. To be more clear:

\- There are procedure to generate a public key without generating the private key (but you should trust the person who generated the numbers).

\- The encrypted message is truncated, so even if you still have the private key, you should guess the missing bit of the message to decode the state.

The problem with Dual EC is that the resulting encrypted message is not truncated enough (it is enough to protect against a casual attacker, not an organization with massive computing power like an intelligence agency). Plus doubt were casted on the procedure used to generate the public key, given that you were forced to use the one in the standard and not your own if you want to get certified.

<comment><AUTHOR> There's no reason to use a public key transform to generate random bits other than to leverage the fact that the tranform is trapdoored with a private key. They are otherwise cost-prohibitive.

If you can point to a "good" PKRNG that sees any use, that would be an interesting way to rebut my argument.

</comment></comment></comment></comment><comment><USER4> Is this going to become the primary case study on why back doors are a bad idea?

If so, it's important to get a quality layman's explanation out fast, and this is the framework of a great one.

<comment><USER5> No. It will not. Backdoors are fine as long as they are NOBUS and the master key remains safe. Notice, for example, how every major corporation has a "backdoor" in all their employee's hard drive encryption schemes, except they call them "data recovery options".

<comment><USER6> The assumption of the master key remaining safe is the problem though. If e.g. the government forced a known back door in encryption systems, that master key then becomes the single juciest, most delicious target of every cyber criminal and foreign intelligence agency in the world. It's hard to be able to keep something like that secure while making it accessible enough to actually use for its intended purpose.

<comment><USER5> We have ways of keeping keys like that secure. For example, the master recovery keys used for HD encryption on NSA / Google / Lockheed laptops. Those are all pretty valuable, and yet they've been kept secure.

I don't think legislating away single-user encryption is a good idea, but not because backdoors are inherently bad.

<comment><USER6> It's possible under ideal circumstances, but it's an uphill battle in the real world. The examples you gave are small potatoes compared to how frequently a master key for criminal cases would be needed and dramatically lower risk. If the NSA leaked their hard drive encryption keys hundreds of people would probably die. Bad yes, but if the master key to (virtually) all encryption schemes in the country is leaked many people would end up getting killed _and_ it would be an economic disaster. Not to mention the potential for limitless privacy abuse, whether in the name of a righteous cause or not.

I'm sure they could work out some sort of subkey scheme and key splitting (via e.g. Shamir's scheme) to lower the possibility of compromise and reduce damage if a subkey was leaked, but the possibility won't be zero. And with that big of a target the number of people trying to acquire the keys means the chance of the keys eventually being leaked is pretty good.

</comment></comment></comment></comment></comment><comment><USER7> I would love to know what the commits in the source code look like for these. Author, message, date.

How did they bypass the review process? Was the process socially engineered, or was the repo hacked directly?

What will the new process be to ensure this doesn't happen again?

This has implications for the process at most companies.

<comment><USER8> We would all love to see how it went down. But I'd bet good money that Juniper will not reveal what happened.

Sometimes I wonder how difficult is it for $TLA to send their employees off into the world (on their payroll), as sleeper coders, to be activated whenever a small piece of code needs to be inserted in the right place. You don't even need too many; just a handful would be sufficient.

<comment><USER9> But are sleepers agents reliable enough ? Considering they would be living in peace in a modern and comfortable country, wouldn't they hesitate to act when activated?

<comment><USER10> Sleeper agents should be reliable enough, considered that they (the in the long past "recruited") want to have their family and loved ones safe -- it would really be a pity if some stupid accident happened to any of them on their way home... Sounds morbid, yes, but rest assured, with enough "motivation" financial options and "moral flexibility" you can always motivate others, to do as demanded.

<comment><USER9> Ah, (you're) right. My game on these matters isn't top-notch.

</comment></comment></comment></comment></comment><comment><USER11> So, if we assume this is indeed a backdoored Dual_EC PKRNG - how are those typically initialized? Are we looking at something equivalent to the Debian ssh/ssl bug, where we have some millions of "known bad keys", or is it more likely each case is different (ie some knowledge of the state is needed for a useful attack)?

Does anyone have a pointer to a proof-of-concept "evil" (or "escrow-enabled") system based around such an RNG?

<comment><USER12> It's not like the Debian bug, because that would be something everyone can detect and exploit. The interesting case with of this backdoor is that it can only be abused by the person who has the secret points used to generate the parameters.

There's been quite some research about the exploitability of this construction: [http://dualec.org/](http://dualec.org/) [https://projectbullrun.org/dual-ec/](https://projectbullrun.org/dual-ec/)

</comment></comment><comment><USER13> If you recall, Juniper was a part of the China backed Auroa attacks ([http://www.marketwatch.com/story/juniper-networks- investigat...](http://www.marketwatch.com/story/juniper-networks- investigating-cyber-attacks-2010-01-15)), which was in 2010.

Once the backdoor administration password is posted publicly, we can try to use it against older versions of ScreenOS code to do a process of elimination to find out how long ago it was added.

</comment><comment><USER14> Not the most serious issue but, how come they're encoding these constants as ASCII strings?

<comment><AUTHOR> Usually it's because you only have to read them once, and you're uncertain about the most compatible way to encode bignums. You're often generating parameters on one system or in one language, but then using them in another.

ASCII is slow but everyone interprets it the same way.

<comment><USER14> Meh, sounds lazy to me!

<comment><AUTHOR> It's lazy, but it's the good kind of lazy.

</comment></comment></comment></comment><comment><USER15> No Such Agency...</comment>


But what does a sorting algorithm sound like? - <AUTHOR> http://www.pillowsopher.com/blog/?p=116

<comment> jim-greer The visualizations linked there are great too:

<http://www.hatfulofhollow.com/posts/code/timsort/index.html>

<http://www.hatfulofhollow.com/posts/code/visualisingsorting/>

</comment><comment><USER2> Great start. You could definitely get a more musical sound out of it by mapping it onto a scale rather than just the full range of MIDI notes. Also, this approach operates on fixed note lengths--another interesting idea might be to use one of the compared numbers to determine note length rather than a second pitch.

</comment><comment><USER3> I can't wait for the first array that will sound like the mario tune when sorted. Kudos to the creater if a different algorithm will create another song

</comment><comment><USER4> And so now, thanks to this, we have the answer... it sounds like an old NES RPG.

</comment><comment><USER5> That is amazing!

Great idea.

</comment><comment><USER6> Very cool.</comment>


Uncle Bob Explains the Programmer's Oath (Videos) - <AUTHOR> https://www.youtube.com/playlist?list=PLWKjhJtqVAbno-B4RmJHCDO0ZUKC2tpUQ <comment><USER2> Number 8, software estimates are complete nonsense.

Read [https://www.quora.com/profile/Lishi-He/Programming/Lets- take...](https://www.quora.com/profile/Lishi-He/Programming/Lets-take-a-hike- on-the-coast-from-San-Francisco-to-Los-Angeles-to-visit-our-friends-in- Newport-Beach-Ill-whip-out)

I worked at a startup. Just before I was hired they bid on a fixed-cost 5 programmer, 5 month contract. After 10 programmers for 18 months they fired all of the (over 2 dozen) programmers and the company folded.

At another startup I was given a project when the prior programmer left after 2 weeks. The project estimate was 8 weeks. I did an analysis (140 items, 4 of which had been completed) and estimated that the project would, at minimum, take over 6 months. The next day I was fired.

IBM used to put out contract bids at 3 firms to build the frames for their mainframe computers. The independent bid estimates were delivered with time estimates within a day and costs with a penny. They delivered on time and on cost every time.

Moral: If you have a repeatable task then you can provide an estimate. If you are doing a task for the first time, as most programmers are, then you CANNOT make a reasonable estimate. You can't even make a good guess. The only HONEST answer is "I don't know".

Bob suggests providing 3 answers, minimum, likely, and maximum (aka NASA PERT charts). I tried that. The ONLY one management every hears is the minimum. They provide that number to the customer and record that as your target.

Look at Edward Demming's work. Demming came up with principles that transformed Japan. Programming needs an Edward Demming.

In fact, your job depends on your performance even on things you cannot control like estimates. See the Red Bead experiment: [https://www.youtube.com/watch?v=ckBfbvOXDvU](https://www.youtube.com/watch?v=ckBfbvOXDvU)

I have been programming for 47 years and I have NEVER seen a project estimate even close to the actual result.

</comment><comment><USER2> Look up and learn Demming's 14 points ( [https://www.youtube.com/watch?v=tsF-8u-V4j4](https://www.youtube.com/watch?v=tsF-8u-V4j4) )

Bob's Oath's cannot improve programming. Demming can.</comment>


The breach that killed Google+ wasn't a breach at all - <AUTHOR> https://www.theverge.com/2018/10/9/17957312/google-plus-vulnerability-privacy-breach-law <comment><USER2> Perhaps this was obvious to HN readers, but as the story reaches mainstream media, it bears repeating: the Google+ vulnerability was discovered in an internal audit, with new tools, and does not seem to have been exploited.

There have been serious data breaches over the past 18 months, and this is not one of them.

The big story here is Google's strange handling of the situation, and a dilemma of the lack of logging information. The claim that Google has only logs for two weeks of Google+ service: does that limit the scope of a vulnerability, or does it mean we will ever know?</comment>


Astronomers discover sonic boom from powerful unseen explosion - <AUTHOR> https://www.sciencedaily.com/releases/2018/10/181004131831.htm <comment><USER2> Science Daily altered one sentence from the originally regurgitated PR, and I think it thoughtlessly corrupted its entire meaning.

SD: "The blast generates two jets of gamma rays which travel out..."

PR: "The blast generates two jets which travel out ... The jets emit gamma rays,..."

Implication from their creative edit is that the blast itself shot out gamma rays (photons) at light speed, whereas the paper's authors actually described something else, a decades-long process of ejecta compressing and interacting to create gamma emissions. "The long time baseline of this event offers the best available constraint in afterglow evolution as the bulk of shock- accelerated electrons become non-relativistic."

My understanding is that the famous '91 OMG particle (proton?) was theorized to have been generated by an expanding shock wave, except unlike here the scientific community then spent some time doubting their readings and being unable to re-verify the phenomenon. Conversely this new study observed such an event spanning from 1975-2017 using 7 different instruments.

Original PR: [https://www.dunlap.utoronto.ca/astronomers-discover-sonic- bo...](https://www.dunlap.utoronto.ca/astronomers-discover-sonic-boom-from- powerful-unseen-explosion/)

Paper: [https://arxiv.org/abs/1808.08964](https://arxiv.org/abs/1808.08964)

<comment><USER3> Here's the WP article on that OMG particle (one particle with the energy of a thrown baseball): [https://en.wikipedia.org/wiki/Oh-My- God_particle](https://en.wikipedia.org/wiki/Oh-My-God_particle)

Since then, over 70 more like it have been seen; most seem to arrive from the Ursa Major direction, "from a distinct source near our galaxy and not from sources spread all over the universe." [https://www.sciencemag.org/news/2014/07/physicists-spot- pote...](https://www.sciencemag.org/news/2014/07/physicists-spot-potential- source-oh-my-god-particles)

</comment></comment><comment><USER4> This is super cool, but I'm not convinced that "sonic boom" is really the right term for it.

<comment><USER5> I thought there was no sound in space? "Boom" sounds like a sound to me.

<comment><USER6> Well, Earth is in space, and there's sound here.

There's no sound in a _vacuum_. As soon as you start adding material, like an entire collapsing star's worth, you can have sound.

</comment></comment></comment><comment><USER7> I sometimes think that they answer to the Fermi paradox is that the universe is an exceptionally dangerous place. Even when intelligence evolves, it has to dodge a whole bunch of bullets from the universe randomly sterilizing chunks with GRBs.

<comment><USER8> > _I sometimes think that they answer to the Fermi paradox is that the > universe is an exceptionally dangerous place. Even when intelligence > evolves, it has to dodge a whole bunch of bullets from the universe randomly > sterilizing chunks with GRBs._

Or maybe since all this started with the big bang, there's some other civilization at a similar level of development at the opposite end of the universe - so far away we'll never cross paths?

Or maybe there's only 1 intelligent form of life per universe, but many universes?

<comment><USER7> If you have read Fermi's paradox you know that it deals with only the visible stars in our own galaxy. The question he posed is why hasn't one of those planets orbiting one of those stars already created a galactic civilization that colonized the Milky Way.

It _could_ be that we're the first/only group to achieve sentience in the galaxy but the probability of that being true is astonishingly small. (Hence the paradox) The conjecture is essentially a "negative space illuminator" which is to say it suggests there is some piece of information that exists but is not currently known that would resolve this apparent paradox.

If we were to discover that events happened every 'n' million years or so that sterilized stars in a 'm' thousand light year radius, a function of these two components would tell us for what values of n and m that would cancel out the survival and thus emergence of intelligent species.

<comment><USER9> The other resolution to Fermi's paradox is much simpler and much less interesting. Maybe interstellar travel is as difficult as all our scientists tell us it is. No civilization has colonized the Galaxy because it's simply too difficult. Maybe FTL travel really is impossible. Maybe SETI hasn't detected anything because generating a signal loud enough for us to detect is a stupendous amount of energy, and it's simply too much energy for a single planet civilization to justify using on a radio transmission that's going to travel at most a quarter of the way across their star system.

Maybe all the science fiction we love so much really is just fiction.

<comment><USER10> Even without FTL travel, on galactic timelines, we could presume to see colonization spread very rapidly through the galaxy. For example, this answer on quora shows with some pretty conservative timelines, the galaxy should still be riddled with life: [https://www.quora.com/Could-the-answer-to-the- Fermi-paradox-...](https://www.quora.com/Could-the-answer-to-the-Fermi- paradox-be-that-travelling-faster-than-light-is-just-not-possible-If-you-have- to-spend-500-000-years-traveling-to-Earth-your-ships-would-have-to-be- extremely-comfortable-Why-would-you)

<comment><USER11> Those timelines don't seem very conservative. 1% sounds like a nice, small number, but 1% of the speed of light is insanely fast. It's about 200 times faster than our fastest craft to date. We might envision launching a probe 200 times faster in the future, but a colonization ship would also weigh millions of times more _and_ have to slow down somehow.

It's not clear that we'd be able to do that in 10,000 years (or ever) with "shoot stuff out the butt" propulsion, so we'd probably need propulsion based on different physics which may or may not actually exist. We'd definitely need new physics for constant 1g acceleration into relativistic speeds.

Maybe we could hitchhike on progressively faster interstellar asteroids or something, but that would void the assumption of having the ability to reach all parts of the galaxy.

</comment></comment></comment></comment></comment></comment><comment><USER12> It is really astounding how much we can "see" what's going on out there by combining our models of the universe with our recordings of the electromagnetic waves arriving at earth.</comment>


Chawly Changer: small device to hold $1.34 in coins - <AUTHOR> http://www.coindispenser.com/

<comment><USER2> "A second Chawly Changer will double your coin capacity."

<comment><AUTHOR> I've tested the claim; it's true.</comment></comment>


ARRuler - <AUTHOR> https://github.com/vhanagwal/ARRuler <comment><AUTHOR> ARRuler allows you to measure distances using augmented reality. Shockingly, this app was developed before Apple added a measurement feature to the operating system. The code is written in a way in which any developer can easily follow, and if you'd like, you can contact me with any questions you might have :)</comment>


Microsoft revives "Clippy" as a sticker for Microsoft Teams - <AUTHOR> https://www.techrepublic.com/article/microsoft-reanimates-corpse-of-maligned-office-assistant-clippy-to-help-teams-compete-with-slack/ <comment><USER2> The linked Github repository[1] seems to 404 for me.

I guess it wasn't meant to be made public?

[1]: [https://github.com/OfficeDev/microsoft-teams-clippy- app](https://github.com/OfficeDev/microsoft-teams-clippy-app)

<comment><USER3> Looks like there's a fork here: [https://github.com/mampgmbh/microsoft-teams- clippy-app](https://github.com/mampgmbh/microsoft-teams-clippy-app)

<comment><USER4> I installed it in my Teams instance, but none of the content loads. Just an error message saying something went wrong.

</comment></comment></comment><comment><USER5> Is anyone actively using Teams? We're in a fairly large organisation on Office365 and apparently no-one is really using it.

<comment><USER6> Its one of the worst tools I've ever used:

1\. Markdown support is a realtime state machine that often gets confused and ends up formatting half your post differently than intended.

2\. Its worse on memory than slack.

3\. I like threading conversations, but microsoft leaves a lot to be desired. You can't link to the middle of a thread. Someone posting to an unrelated thread can make your whole pane jump.

4\. The client has oodles of unused whitespace which means that you can only show 5-6 messages on 1080p screen.

5\. Compounding 4, notifications, chat, and calling all involve swapping the main frame which interrupts the workflow. This is made worse by swapping views can take seconds.

6\. Video quality is not good (though about the same as skype). But there were other restrictions that were annoying like needing to be in a call already to share your screen. Limited options for group chat.

7\. Poor integration with existing Active Directory deployments. None of my companies email groups were able to be ported in because that would make a full team which isn't necessarily what you want.

8\. Teams have all of their channels public or all of their channels private. There's no way to make a point of contact channel for a team. Combined with (7) it can be very difficult to seek out a group of people vs a specific individual.

<comment><USER7> That's not even the worst of it. Every message in Teams is actually an email. You can verify this by using Microsoft Graph Explorer.

</comment></comment></comment><comment><USER8> Windows 3.0 had a file manager? I remember trying to use Windows 3.0. My memory is that file management was basically dropping down to the MS-DOS layer and using the DOS prompt to do it.

<comment><USER9> Yep, and even weirder Microsoft recently MIT licensed the source for the NT4 version of that file manager (with changes so it runs/compiles on modern Windows) [https://github.com/Microsoft/winfile](https://github.com/Microsoft/winfile)

<comment><USER10> There is also a retro branch to make it work in earlier versions of windows (i think the goal is to backport it to Windows 3.x).

<comment><USER11> Theyre porting the NT port of the 3.x file manager to 3.x?

<comment><USER10> Yes, the codebase had several changes and improvements since 3.x.

</comment></comment></comment></comment></comment><comment><USER12> His name is clippit, not clippy :-)

</comment><comment><USER13> did anyone save the GIFs in the JSON file?

<comment><USER14> Looking for the same. This [1] is all I've found so far and a couple gifs [2][3]

[1]: [https://github.com/theuserbl/microsoft-teams-clippy- app](https://github.com/theuserbl/microsoft-teams-clippy-app)

[2]: [https://www.bleepstatic.com/images/news/u/1109292/March%2020...](https://www.bleepstatic.com/images/news/u/1109292/March%202019/Clippy%20Microsoft%20Teams.gif)

[3]: [https://cdn.vox- cdn.com/thumbor/SCk6EzysWVjlOaJJ2bkS89W1nbw=...](https://cdn.vox- cdn.com/thumbor/SCk6EzysWVjlOaJJ2bkS89W1nbw=/1000x0/filters:no_upscale\(\)/cdn.vox- cdn.com/uploads/chorus_asset/file/15979212/Clippy_ShipIt.gif)

</comment></comment><comment><USER15> Oh the horror!

</comment><comment><USER16> ... want.

</comment><comment><USER17> As others said, it isn't working.</comment>


Ask HN: Should I use React Native or Swift for an iOS app? - <AUTHOR> I'm a front-end engineer by profession and I work a lot with React and Javascript. Lately I wanted to build an iOS app which would make use of the camera API to scan QRCodes and also Geolocation. Is React Native a good option or should I learn Swift and build a native app.
I want a really fast app and scanning QRCodes with the camera is a core feature.
Edit: I also have a good grasp of Java to build native android apps, and I've native android apps in the playstore. Also I work full-time(8hrs) and this will be a side project. <comment><USER2> Learn both, you get to run on Android when it's handy.</comment>


Twelve Factors of Web Application Development - <AUTHOR> http://12factor.net/ <comment><USER2> This is a very excellent list, and reads almost exactly how I've documented my personal standards and best practices. There are a few things that I feel are left out, and should definitely be just as important:

1\. Testing. Having automated tests that your developers are ideally writing first makes a world of difference. Throw it into your continuous integration system, and nurture a culture around it. If your tools and language allow it, having a lint or style checker as part of your build process is also very handy.

2\. Development / Debug Mode. There should be a switch that you can flip when working from localhost, development, and staging to immediately obtain tons of data to aid you in debugging your application. Django-Debug-Toolbar is the holy grail when it comes to using an out of the box solution. Seeing breakdowns of queries called, time spent doing various functions, quick log lookups, etc is essential.

3\. Production Error Tracking. If you're still relying on grep'ing logs or being sent 5xx error emails as your only form of error control you're in the stone ages. Go use a tool or service like Sentry to turn this into a centralized system.

4\. Issue Tracking. Along the same lines as version control, this should be a no-brainer. A centralized resource for keeping track of any formalized bugs, errors, or planning future features.

5\. Analytics and Statistics. Can you tell me right now the delta of 4xx and 5xx errors in your application between your two most recent deploys? How healthy is your app over time? How many sign-ups, returning users, login failures, and purchases have been made? Tracking key business metrics and actionable events will really give you fantastic insight into your product. It's also a great way to catch critical system errors before they take down your site for hours on end, via tracked spikes in latency, cache misses, queue size, etc.

<comment><USER3> Issue trackers are mixed blessings. We deliberately chose not to work out of one at my current workplace for various reasons. Instead, if we encounter a bug or a user reports one, we deal with it on the spot or we add a task for it in Scrumy, which we use with weekly sprints. If something's not high priority enough to go in there, we just drop it instead of amassing a backlog that's kept out of sight. It's not a problem if we forget about a low priority bug since it's probably not worth fixing if we're not often reminded of its presence by reencountering. Of course, this doesn't work equally well for all teams and products. But I wouldn't call an issue tracker an absolute no- brainer.

<comment><USER4> It sounds like Scrumy is your issue tracker.

<comment><USER3> It is only insofar as issues are recorded as tasks to be completed that week. Adding a task to Scrumy means that we're making a commitment to work on it within that week. Some things carry over into the next week, but we don't allow it to become a rolling backlog. So I think it's unfair to call it an issue tracker.

</comment></comment></comment></comment><comment><USER5> "The twelve-factor app stores config in environment variables (often shortened to env vars or env). Env vars are easy to change between deploys without changing any code; unlike config files, there is little chance of them being checked into the code repo accidentally"

OK guess I'm a moron here but....surely the suggestion isn't that a huge set of env vars are entered at the console manually - they have to be in some shell script or file which produces them...which is then...the config file ! Someone help me see what I'm missing here.

Unless the idea is, "well it's a shell script! that's nothing like a config file!" in which case I'll be searching for the HN downmod button I can't wait to have someday.

<comment><USER6> In a well run environment there are generally special tools that can provision a new node, generally these kind of environmental configurations are set up there. Some people do manage it in source control and just have a branch for each environment. Both work, but one provides an avenue to offload the task from a developer onto an infrastructure type role.

<comment><USER7> The choice of a config file and/or environment variables seems more sensible.

<comment><USER6> I personally am not a fan of config files at all, a lot of this stuff comes down to preferences and experiences, but I have seen the environmental configurations being put in config files problem repeated over and over, then someone checks in the config with the project and someone checks it out and then it gets installed in an environment. It is considered good practice to separate configuration data from the code entirely, so that a commit, with config files, to source code cannot blow up an environment. Many recommend, as is the case with this author, that that separation happen by putting the config in environmental variables, that way it is wholly separated from the application and an updated to the application cannot blow up an environment. I agree with the conclusion and through experience, have found it to be the best solution as well. That beings said, using a tool like Puppet to automate and turn over, the process to infrastructure, is pretty simple, but some groups don't like to use tooling and if not, having an environmental configurations script in a separate repository, is just as valid of a process and will reduce the failure point.

<comment><USER8> I've arrived at the same conclusion recently, at least as far as keeping _production_ configuration out of config files and putting them in environment variables instead. I'm curious, what is your take on configuration for the development and test environments?

I'd prefer that a project can be set up for development as quickly as possible, so my current approach is to check in default configurations for the development environment that are overridden with environment variables in production.

<comment><USER6> It depends on the technology that you use but many runtime environments allow the IDE to provide environment like configuration in the project properties, I tend to like to use that approach over specialized config files because the project files are wholly separate from the code base. For example the JVM allow you to send flags to it on initialization, Netbeans and Eclipse provide an interface to manage those flags from a development perspective, to the JVM they look no different than environmental variables and therefore the absence of the project files means that it transparently gets that configuration from the environment. I am a fan of that solution over specialized config files that are developed by the development team.

<comment><USER8> Two questions. 1) Do you do that for everything? Including database and memcached connection settings, cache settings, basically everything that's configurable about a web app? I'm not an IDE user nor familiar with Java, so that's a serious question. 2) How do new developer's get an environment set up quickly?

<comment><USER6> 1) yep, everything, the code can hit an environment and run based on that environment. No configuration is provided with the code. That being said how you implement it can be pretty flexible you could separate them all out into separate variables or just have one variable with an XML string as the value and parse that string to get configuration, the point is to have the configuration injected into the application by the environment. The details of what those variables look like is the prerogative of the development team.

2) there are several options, a developer (gold CD) virtual is one, where a virtual is set up and configured based on updated configuration and an automated script, or having a environmental script that sets up the development variables on the developers workstation (just make sure it stored in version control independent of the code). Each works well, it just depends on preference, there are a lot of ways one can set it up to work in their environment, just try a few and see which one best fits your development culture.

<comment><USER8> Thanks. I'm definitely on board with #1. I'm still trying to figure out what will work best for me for #2. It's interesting (and useful) to hear how others solve it.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> "If the app needs to shell out to a system tool, that tool should be vendored into the app"

I have never seen this done before. Is this really a best practice? I mean at some point your app has to depend on certain tools in place by the OS, right?

<comment><USER8> I was a little skeptical about this piece of advice too. How would one go about doing this? Let's say the binary in question is curl. Do you vendor binaries for each operating system that you might deploy to? Or do you vendor the source code and compile it for your target system in the build step? Does that mean GCC is a dependency? I feel like it's turtles all the way down. What about things like Ruby gems that require native compilation? Do you vendor the libraries that you need in order to compile the gems? For example, the pg gem requires PostgreSQL development files installed in order to compile.

</comment></comment><comment><AUTHOR> Abbreviated version:

(1) One codebase tracked in revision control, many deploys (running instances, typically including a production and one or more staging sites)

(2) Explicitly declare and isolate dependencies (e.g. GEMFILE for ruby)

(3) Store config in the environment NOT code, "A litmus test for whether an app has all config correctly factored out of the code is whether the codebase could be made open source at any moment, without compromising any credentials."

(4) Treat any service the app consumes over the network as attached resources, a 12-factor app "should be able to swap out a local MySQL database with one managed by a third party (such as Amazon RDS) without any changes to the app's code."

(5) Strictly separate build, release, and run stages.

(6) Execute the app as one or more stateless processes. "The twelve-factor app never assumes that anything cached in memory or on disk will be available on a future request or job."

(7) Export services via port binding. "The twelve-factor app is completely self-contained and does not rely on runtime injection of a webserver into the execution environment to create a web-facing service. The web app exports HTTP as a service by binding to a port, and listening to requests coming in on that port."

(8) Scale out via the process model. "processes are a first class citizen... the share-nothing, horizontally partitionable nature of twelve-factor app processes means that adding more concurrency is a simple and reliable operation."

(9) Maximize robustness with fast startup and graceful shutdown. "Twelve- factor app's processes are disposable... should strive to minimize startup time...shut down gracefully when they receive a SIGTERM signal from the process manager...should also be robust against sudden death"

(10) Keep development, staging, and production as similar as possible. "Twelve-factor app is designed for continuous deployment by keeping the gap between development and production small... resist[ing] the urge to use different backing services between development and production"

(11) Treat logs as event streams. Twelve-factor app "never concerns itself with routing or storage of its output stream"

(12) Run admin/management tasks as one-off processes.

<comment><USER10> The site is down for me right now so I'll plead ignorance about #4.

How does one goes about implementing #4? I can abstract away a REST API call for Avatars, but how does one do that for a database? Or is this just a fancy way of saying (in Java-speak), use Interfaces.

[Edit: the site is back up and I was able to read it. The premise reads differently than how the parent wrote it. I read it mainly as, the sysadmin should be able to switch to a new host, change the configuration file, bounce the application, and everything should work.]

</comment></comment><comment><USER11> A great article, even if a bit self serving: written by Heroku people, and it is relatively easy to develop and deploy Twelve Factor Apps using Heroku services.

I like that the article was written as a response to observing problems deploying real apps. I just emailed this link to two of my customers, just in case they did not see it. There are too many good points in the article to comment on.

</comment><comment><USER8> This looks like a very good list. I wish the author had made it available as a single page instead of 13 pages, so that I could save it to Instapaper more easily.

</comment><comment><USER12> In "II. Dependencies", how could one approach this in PHP?

For example, I would build an app with a dependency on Smarty templates. The main app is in a git repo, but Smarty is required to be also installed on the system. The config file of the app defines the location of Smarty on the system.

<comment><USER13> I use Phing to download whatever version I want during build time and to place it in a lib/vendors/ directory. So, for example I use pieces of Zend and the Google AdWords PHP SDK with my recent project, so in a build.settings file, I have:

google_adwords_version=2.6.4 zend_framework_version=1.11.6

Then, Phing will read in that file and convert those to properties. From there, I can wget the versions of those packages, untar them, and place them in lib/vendors/.

This makes it very simple to test with a newer version. Just update the file and rebuild and a newer version will be downloaded and installed.

</comment></comment><comment><USER14> 12factor.net is not connecting for me right now. Google cache says it is this: <http://twelve-factor.herokuapp.com/>

<comment><USER15> It's working for me. The DNS propagation has made it to the midwest of the USA. Beyond that I can offer nothing. :-)

</comment></comment><comment><USER16> Just in case anyone else was put off by the horrible web fonts and absurd claim in the very first sentence, I'll just add another comment that on balance this is an interesting piece if you stick with it.

</comment><comment><USER17> Is there a link to a pdf version or a single page version?

</comment><comment><USER18> Point 3 - Config: The claim is that you shouldn't have a config file that you don't check into source control like Rails' config/database.yaml, or the common Django settings_local.py. Instead you should use environment variables. Um. I see the point,but I also see two problems with this.

1) I'm certainly not going to set env variables with database passwords and such by _hand_. I'm going to have a script to do it for me. I might even call it, oh, I dunno, settings_local.py. In which case, I'm right back at square one, needing to not check this into source control. In other words, how do you avoid having the database passwords in SOME file, SOMEWHERE? Does it "fix" anything if it's named "fabfile.py" instead of "settings_local.py"? I can't see how.

2) How do I deploy multiple apps to the same server? Let's say I've got a linode (or EC2 instance, or whatever) running a test, dev, and production deployment of three different apps. With config files, I just have a different settings_local.py file in each deployments project directory. With environment variables...what, do I use prefixes? app1_test_dbpass = 'foo'; app2_prod_dbpass = 'bar', and so on? Except they say NOT to group stuff together into environments by name. So uh...how do you manage name collisions?

Basically, they seem to have identified a real problem, then proposed a solution that doesn't fix it and doesn't work. What am I missing?

<comment><USER19> I recently switched from various settings.yml files to a bash script. I can't believe I hadn't made the move sooner! Such a huuuge improvement.

A few good reasons:

1) Language agnostic -- I can use common configuration for Ruby, Node.js, Makefiles, Bash scripts, etc. Without having to find/use a parser for my config file settings, nor worrying about executing a Ruby script from a Python process, or whatever.

2) Real programming constructs -- I can easily test a boolean condition, interpolate variables, and otherwise minimize copy/paste between configuration sections.

3) Available at bootstrap -- Don't need to install Ruby or Python or anything like that. The very first scripts I run can use the environment without compromise. Particularly useful because machines are bootstrapped with Makefiles, which play well with the environment.

I modeled my app env script on the behavior of the `env` command (in fact, I delegate to it). See an example script in this gist:

<https://gist.github.com/1388478>

Note the examples. By delegating to `env`, you get a few features for free:

1) Executing any process within the environment

2) Passing additional environment variables on the command line

3) Printing of environments (great for diffing!)

</comment></comment><comment><USER18> Point 7 - Port Binding: I'm interested in hearing anyone else's views on this. How would you even do this for a Django app? And is this really better than just using WSGI? Is anyone using Tornado with Django in production? Google showed a couple proof of concept demos, but nothing serious.

At the moment, I have some apps deployed with nginx > uwsgi > django, taking advantage of the fact that nginx has built in support for uwsgi these days. This breaks rule 7, since my app isn't just binding to a port - but would I really be better off by using nginx > tornado > django?

<comment><USER20> Django works well under gunicorn HTTP server: <http://gunicorn.org/></comment></comment>