Founders: Burn Your Boats - <AUTHOR> http://www.venturebent.com/2011/08/burn-your-boats/

<comment><USER3> Well first the story about Alexander the Great is incomplete. When Alexander the Great faced the Persians they had the most formidable Navy in the world. So when his men wanted to retreat to get reinforcements Alexander the Great realized they wouldn't make it by sea. THAT is why he ordered the boats be burned. Because his men were so afraid he thought they'd use the boats to make a run for it even without his permission.

That is also why I think the author's logic falls short here. It may be brave to say "victory or death" but it is also kind of stupid. Especially if there's a chance you could be defeated but escape to fight another day.

Conflict is about strategy whether it be in business or war. Winning means using every resource you have available to you in the most efficient way possible. So I don't see the logic in destroying resources as motivational tools.

<comment><USER4> How do you know that about Alexander? Googling finds me no source.

<comment><USER5> _How do you know that about Alexander? Googling finds me no source._

I want to archive this comment as evidence that in the year 2011 Google and Wikipedia _still_ were not as good as books and libraries.

<comment><USER6> Okay, please cite the dead tree written by a credible historian. Near as I can tell, there are tons of claims about famous conquerors who burned their ships (Caesar, Alexander, Cortez), but the only reputable source I know about is the _Iliad_. Which was a very lovely piece of fiction, but nevertheless fiction.

<comment><USER7> I believe it was the Trojans who burned the Greeks' ships in the _Iliad_.

</comment></comment></comment></comment></comment><comment><USER8> Taking your best shot has more to do with determination than with getting yourself into a situation where failure is not an option.

If we're talking generals of old: Sun Tzu kept on stressing that one should not fight a battle that has not been won in advance. That when outcome is uncertain it is better to live and to fight another day. Patience and resilience are even greater virtues than boldness.

That is a lesson that for example Alexander, Napoleon and Hitler failed to learn.

But it is indeed hard to be wise, patient and resilient when you are an narcissist on a rampage. If you learn from figures of old, please don't take them out of context and bet your life to heavily on their philosophies. Because it may cost you dearly.

Edit: Thus if you really want to do good. Prepare. Prepare obsessively and when time comes execute with determination. This ability is one virtue that all the truly great people I know of posses.

<comment><USER9> I think you're misunderstanding Sun Tzu's "a battle should not be fought unless it's already won". He's not saying you shouldn't go into battle if you're not certain of the outcome - he's saying you should secure the victory before you engage the enemy directly. It's a subtle difference, but an important one.

<comment><USER8> To be exact Sun Tzu's point is that every battle is decided in advance. Because the more prepared side always wins, where "prepared" is broadest possible term and includes all five elements: Mission, Climate, Ground, Leadership and Methods. The lesson is that one should not rush into battle if circumstances are not favorable.

Thank you for clarification - this is exactly what I meant, but English is not my primary language and thus my point didn't come across the way I wanted. And I indeed meant it to come across the way you put it.

<comment><USER10> > the more prepared side always wins

I'd say it's more subtle than that: the side which is more appropriately prepared always wins. Arguably the French were "more prepared" for WWII if you go by amount of effort expended - building the Maginot line wasn't cheap - <USER2> it didn't do them much good.

<comment><USER8> They were more prepared only in context of Von Clausevitz's delusional view of military strategy. Bureaucracies that were European armies of that time had completely lost all touch with warfare and its tenets. Napoleon was one of the last great European Military commanders. Nowadays mobility is again rightfully viewed as most important property of an fighting force.

Preparation is not about spending the most money - its like saying that 00's startups were way more prepared than nowaday's companies. No they only foolishly blew more resources.

A great general (or businessman for that matter) needs to have a knowledge of art, history, psychology, rhetorics, economics, philosophy and lastly military strategy (and also needs to be physically fit). That is what Sun Tzu really teaches. Being well rounded in all life's aspects gives one sufficient power to rise to any challenge.

Not some brutish spending of money and lives. Be it war or business.

As Sun Tzu said: It is best to win without fighting. And if we return to the French - they could have won WW2 without fight - if their deluded politicians wouldn't load Germans with unfulfillable liabilities.

<comment><USER11> Slightly off-topic: I've been reading Clasewitz's "On War" recently, so I'd appreciate it if you could say a little more about what's delusional about it.

<comment><USER8> I haven't read his work yet. So my argument does not apply directly to his work. Thus my statement is misleading in this direct sense.

What I have read of his work does make much sense - but is dangerous when taken out of context of his vast military experience - which is exactly what happened - what we have seen in western Europe from mid 19th century and culminating in WWI was predominantly fueled by Von Clausevitz's work. His delusion was trying to present his subjective life's experience in a scientific and absolute manner. And what happened was that people took his work and applied it literally.

</comment></comment></comment></comment></comment></comment></comment><comment><USER12> A counter example:

When the USSR was invaded in world war II, Stalin implemented the "not one step back" policy. Officers and NKVD agents were under orders to shoot anyone who so much as took "one step back" in the face of the german onslaught. Officers would be shot if they ordered a retreat. He did it so that Russians would fight bravely and to the death, and many did. But it also meant that Stalin's generals were not allowed to maneuver away from the Germans, and so the German army could move past them and cut off their lines of supply. The order was rescinded because it hampered the Russians more than it helped them.

But I am dubious of any comparison between business and war. War analogies seem to bring out the least productive alpha traits in people (Balmer wanting to crush Apple springs to mind). There are some parallels, to be sure, but they are pretty damn different, too. Confuse the two at your peril.

</comment><comment><USER13> Alexander the Great won Persia, but only after 10 years of dire struggle. His was unable to reproduce this success in India.

The meta lesson is that anecdotes are not wisdom. Smaller armies sometimes defeat bigger armies, but they mostly don't. Over enough trials, there will be some stories of success in the face of failure, some interesting enough to become legends. You should make decisions against the aggregate data, not selectively interesting data points.

Alexander is an epic exception, hence "the Great". Even though he succeeded, that doesn't mean it was wise of him to risk death and possible subsequent collapse of his civilization.

</comment><comment><USER4> Alexander didn't burn his boats. That was Tariq ibn Ziyad, the Muslim general who conquered Spain (well, Gibraltar - which is named after him) in 711. [http://books.google.com/books?id=L-6ghsWDMTAC&pg=PA85](http://books.google.com/books?id=L-6ghsWDMTAC&pg=PA85)

According to Plutarch, Alexander did burn some wagons, but that was because he wanted to make his army lighter so it could move faster.

</comment><comment><USER14> Is anyone else tired of the contrived, amped-up metaphors we use to discuss startup life?

Dying in battle != having a failed startup venture

I don't get what we gain by pretending that the joy and opportunities of startup life is somehow analogous to fighting for our very lives.

What's our downside, really? That we're embarrassed when we fail? Or that we forgo a few years of big-company paychecks?

That's materially different than Alexander's army's downside - suffering and then death.

<comment><USER15> Even though you are tired of it, here is another one.

The root cause of Alexanders invasion as of Herodotus was the march of the 10000. The Persian army could not stop this ragtag band of Greek mercenaries in all those months and so they had obviously grown weak.

So if you see a big market were at least one new entrant survived, you should raise more capital than they did and conquer the peacock throne of your market.

<comment><USER14> I can't tell if you're joking or not... so I'll just reiterate my main point: men fighting to prevent the suffering and death of their families is not even remotely the same category of thing as startups (and business in general).

We can read in lots of fancy analogies, but unless we recognize that war (with the possibility of real, major loss) is played at completely different stakes (and therefore different strategy), it seems like a silly exercise. My $0.02!

</comment></comment></comment><comment><USER16> Ugh, another article offering a platitude.

No, removing your options is never good. No amount of anecdotes can change that. You will probably come to a point where you'll wish you had the option, because everything's crashing down.

Removing _other people's_ options, like in the anecdote, might be good _for you_ , though.

Am I the only one who's tired of these empty articles all the time? "I take cold showers to prove myself", "I burn my boats to make sure I can't leave", etc. I don't think they serve any purpose.

</comment><comment><USER17> For anyone wishing to repeat this anecdote without being made fun of by your friends, Alexander the Great did not burn his ships upon arriving in Persia, because, you know, there is not much of a sea between the Middle East and Persia.

It was Hernán Cortés who burnt his ships off the coast of Mexico in 1519 to eliminate any ideas of retreat.

</comment><comment><USER18> Let me see... Consider the situation were you see your opponent burn their boat. Given that you read the art of war, you remember never to corner your opponent, but always to provide him a way of escape. So, you send your messenger to their camp and say you will not harm anyone who surrenders. Additionally, you make a public scene of the men who surrender eating happy, you get the point.

What has happened is your opponent has now created a room for your escape, now what?

It is similar with entrepreneurial ventures. But instead of your enemies creating an escape, your family and friends will provide one. Your parents will offer to pay grad school for you; your friends will hook you up with a new highly paying job. Your resolve will be broken.

</comment><comment><USER19> This theme appears on VC blogs over and over: Don't hedge your bets; swing for the fences.

Small successes don't help VC funds, so VCs will present it as universally good advice. In reality, it's good advice for some entrepreneurs and bad advice for others. You have to examine your own situation and make your own choice.

</comment><comment><USER10> I thought it was Cortes who ordered his boats burned once he landed in the New World.

Source: <http://burningboats.com/about-burningboatscom/>

<comment><USER20> Uh, your source _also_ claims that Alexander burned his boats as well.

</comment></comment><comment><USER21> This is a tactic that works to give large organizations a sharp focus... I fail to see the analogy or usefulness for startups.

<comment><USER22> I think the analogy has some merit when relating it to startups. For example you could say at some point a founder must quit their safe day job in order to focus on their startup. They are removing the option of retreat and sharpening their focus by quitting their job.

</comment></comment><comment><USER23> This is a horrible strategy.

Full-tilting might be brave, but better players are always willing to fold.

</comment><comment><USER24> I think maybe some of you are trying to make the analogy fit exactly and missing the general point...

There is a lesson in this especially for startups. I took "burning your boat" as a way to take that first leap and not look back. Someone else mentioned quitting your job. It's purposely creating circumstances that force you to look ahead and prepare for the future.

</comment><comment><USER25> One thing that's true about our brains is that even if we fail having not fully committed we will change our internal narrative to always say something like this:

"That didn't work out but there's really nothing I could have done differently. This outcome turned out great because of X, Y, and Z anyway so who cares?"

</comment><comment><USER26> Here's a better strategy: burn the other guy's boats. Limit _their_ options, put _them_ in a position where their backs are to the water, make _them_ take on enemies or burdens at no cost to you. Burning your own boats is a poor substitute for lack of discipline.

<comment><USER27> This reminds me of the old George S. Patton quote: " _"The object of war is not to die for your country but to make the other guy die for his_."

</comment></comment><comment><USER28> If there's one thing I've learned in my career, it's that people who don't keep a plan 'B' (and preferably 'C' and 'D') in mind are the absolute worst to work for. This attitude is nothing more than a lazy refusal to maintain a complex strategy, poorly disguised as heroism.

</comment><comment><USER29> I have done discounted promotions in the past, but we did revenue sharing and it turned out great. 100k free downloads is painful. I wonder if there is a way to tell amazon to limit the free copies to the first 5k people who download, then go into discount mode.

<comment><USER29> posted on wrong thread.</comment></comment>


TellSpec: hand-held device that tells you allergens/calories/ingredients of food - <AUTHOR> http://www.indiegogo.com/projects/tellspec-what-s-in-your-food?

<comment><AUTHOR> The technology seems interesting, even though they say the device is only a model (not even a prototype) and the mobile app is clearly just screen mockups.

It seems like you should be able to use a spectrometer to get chemical content from food, and thus ingredients, but I'm not clear on how you can calculate calories or nutrition.

I wonder if it works on Soylent? ;)</comment>


Ask HN: What are some design trends that have died out in the last 2-5 years? - at-fates-hands I bring this up since our industry moves so fast, and I'm curious what others saw come and go either with a lot of fanfare and or nearly none at all, or something that didn't get a lot of attention fade away.
The one that really hits me now is Parallax Scrolling. I remember everybody scrambling to use this in their sites less than a year ago and now almost nobody uses it anymore.
What's your observation? <comment><AUTHOR> Modals. They're used properly now, to a good extent, but 4-5 years ago everything was a modal.

Hover states are also mostly gone from good design.

Fixed-height layouts were a fad that I think is on the decline, for good reason.

<comment><USER2> Hover doesn't work on mobile, so I'm not surprised it's disappearing.

One trend I miss is the textured, paper-like backgrounds. It seems like they were everywhere a few years ago, and then they disappeared. I think Stripe had a background like that until just recently, and I thought of them as one of the last hold-outs.

</comment></comment><comment><USER3> * Rounded corners

* Gradients on buttons

* Text shadows

* Superfluous drop shadows

* Videos as background images

* Fading in, fading out

* Sliding in, sliding out

* And like you said, parallax. I'm so glad that's dead.

<comment><USER4> >* Rounded corners >* Gradients on buttons >* Text shadows >* Superfluous drop shadows

Basically all of those were replace by "flat design" stuff right?

<comment> at-fates-hands Almost every framework - Bootstrap, Foundation, Semantic UI, Skeleton and Gumby (which is dead now) all continue to use rounded corners in their buttons.

</comment></comment></comment><comment><USER5> Scrolljacking. Smoothscroll is terrible, no I don't want to use it, _thanks_. I'd leave it enabled if that is how I wanted to scroll.

The worst are the sites that decide if I want to scroll at all, I need to scroll in _full-page_ intervals as if I had used the "Page Up" or "Page Down" buttons with a smooth transition.

</comment><comment><USER6> < 800 pixel width websites. I don't know this as a fact, but it really seems like a lot of older websites had very thin layouts, most likely due to older CRT monitors and non-widescreen monitors.

<comment><USER7> I appreciate it for half-screen references, but good reflow / resizing is still the better option.

</comment></comment><comment><USER4> What about the video backgrounds on webpages? Haven't seen them the last 8 months or so compared to early 2014 when everyone from Spotify to web agencies used them

</comment><comment><USER8> Metro design, I remember it was a big hype when Windows 8 was announced. I guess it was just a step towards Google's material design.

<comment> at-fates-hands They just renamed it "Microsoft Design Language" and is still very much around with their Windows 10 Platform:

[https://www.microsoft.com/en- us/stories/design/](https://www.microsoft.com/en-us/stories/design/)

[http://www.neowin.net/news/from-metro-to-microsoft-design- la...](http://www.neowin.net/news/from-metro-to-microsoft-design- language-2-a-side-by-side-comparison)

<comment><USER8> But it used to be on bootstrap themes and WordPress templates and everywhere. Now It is only Microsoft.

</comment></comment></comment><comment><USER9> its a little longer than 2-5 years but I remember [https://en.wikipedia.org/wiki/Bauhaus](https://en.wikipedia.org/wiki/Bauhaus) was popular around 2001

</comment><comment><USER10> Helvetica</comment>


.NET Standard 2.1 - <AUTHOR> https://blogs.msdn.microsoft.com/dotnet/2018/11/05/announcing-net-standard-2-1/ <comment><USER2> I think they prepare already a while the shift to .NET Core as the primary .NET platform (also on Windows).

\- .NET Core will soon run all three UI technologies of modern Windows UWP, WinForms and WPF (.NET Core 3). \- The Windows Compatability Pack for .NET Core shifted some popular .NET Framework libraries to .NET Core (some only on Windows).

There are one thing, Microsoft is really bad with: Telling the world that something is deprecated. There is a set of technologies in the .NET Framework which have no future: AppDomains, WCF, Code Access Security, Workflow Foundation, Cardspace, ... (just to name a few). They are all already dead for some years, but no one tells. They are supported in the .NET Framework but no progress happens. And .NET Core will never see them.

<comment><USER3> > Microsoft is really bad with: Telling the world that something is > deprecated. There is a set of technologies in the .NET Framework which have > no future: AppDomains, WCF, Code Access Security, Workflow Foundation, > Cardspace, ... (just to name a few).

There's no reason to deprecate a mature product if there's need for it, it has sufficient test coverage, and there's low/no maintenance. There is however a risk involved with deprecating them that users will migrate to another technology stack entirely.

WCF is one of those technologies that was deployed heavily in Enterprise and is deeply ingrained in applications and systems going on a decade old. WFC has better support for SOAP than anything I've seen in the open source world and with a minor configuration tweak it can simultaneously support JSON from the same endpoint.

Workflow Foundation is in a similar state to WCF, though I wouldn't shed a tear if it vanished off the face of the planet.

<comment><USER4> I agree. Don't deprecate just to clean house. Only deprecate when you have a mature / table replacement.

</comment></comment></comment><comment><USER5> Suggested naming standard:

\- .Net API Specification - (now known as .Net Standard)

\- .Net Windows - (now known as .Net Framework)

\- .Net Cross Platform - (now known as .Net Core)

<comment><USER6> There's already universal windows platform, which is basically windows 10 only.

<comment><USER4> Universal windows platform also runs on Xbox One and certain mixed-reality headsets. It's not just for Windows 10.

</comment></comment></comment><comment><USER7> > Given many of the API additions in .NET Standard 2.1 require runtime changes > in order to be meaningful, .NET Framework 4.8 will remain on .NET Standard > 2.0 rather than implement .NET Standard 2.1. .NET Core 3.0 as well as > upcoming versions of Xamarin, Mono, and Unity will be updated to implement > .NET Standard 2.1.

At some point, is it reasonable to expect Xamarin, Mono, Unity, and .NET Core to all really be backed by .NET Core? And if/when so, is there any difference between .NET Standard and .NET Core since, after .NET Framework has been essentially maintenance-mode'd, there will be only one .NET Standard implementation? Similar question, besides just having multiple implementations, what benefit is there to having both Mono and .NET Core separate (at least for the .NET Standard impl part)?

<comment><USER2> Mono and .NET Core will never merge. But it is not a black and white thingy.

.NET Core has a sub project named corefx (Base Class Library), which acts as a master for most of the class library of Mono nowadays. However, the runtime below (mono or coreclr for .NET) are different animals. Mono is highly optimized on portable code (it runs in many more places than .NET Core) while .NET Core is tuned for performance.

Unity is based on Mono but also has yet another different runtime (it basically compiles the code first in C++ and then with C++ backends to the target architecture). Expect here the same as for Mono. It is specialized and will stay specialized.

<comment><USER7> That makes sense with regards to the runtimes and non-spec'd libs. But I was under the impression .NET Standard was essentially the class library spec and if .NET Core is/becomes the only impl of that class library spec it would seem strange to separate the spec from the impl when only one of each exists built by the same blessed implementer. I can definitely understand different compilers, AOT/JIT engines, GCs, etc. Even with minor .NET Standard impl differences in Mono, if they are so minor that they only augment .NET Core, it comes off as an optimization rather than a separate implementation. If the class library impl differences remain major, I would wonder why as surely, even when optimizing for portability vs performance, there is a lot of potential reuse.

<comment><USER2> Consider e.g. the cryptography support in the .NET Standard. On Linux it is based on OpenSSL (AFAIR), on Windows based on the crypto library there, on MacOS on another one, on Android another one and let us not speak of iOS. All of them follow on the surface the same API spec. But behind the scenes all .NET implementations have different strategies to deal with. And for good reasons.

In this cases you need a standard but not a shared implementation.

<comment><USER7> I don't think deferring by platform preference is enough of a reason to separate the standard from the abstracting implementation. Most languages, with or without a "standard" and multiple implementations, defer to the platforms' preferred ways of, say, obtaining cryptographically random numbers.

</comment></comment></comment></comment></comment><comment><USER8> Everytime I start to think Microsoft is heading in the right direction they go and blow it all away again.

This week we've already had a new asp.net core which drops support for .net standard and only supports .net core.

And now, a new version of .net standard that .net fx isn't going to support.

We are right back at the mess of portable class libraries with all their different supported profiles.

It means app devs are constantly dealing with problems like "is this library I want to use, supported by all the targets my app needs to run on", and library devs have a mess of different frameworks and combinations to support, so inevitability drop a few of them unless they are a big project with lots of manpower.

<comment><USER2> I need to highlight, that ASP.NET Core never run on .NET Standard. Some parts always have been dual-compiled for netcoreapp2.0 and net46(?).

<comment><USER8> Ah, my mistake, I didn't know that. Kind of actually enforces my point of the ecosystem being a mess though and the only realistic thing to do is compile for multiple targets.

<comment><USER9> I believe that ASP.NET Core should be able to move to .NET Standard 2.1 (Span<T> is the big reason they decided they needed to drop .NET Framework support). They dropped .NET Framework, but there's still a case that they can support .NET Standard here, for what that is worth.

</comment></comment></comment></comment><comment><USER10> Let me just check if I finally understand this:

\- .Net Framework: The Windows Specific (and nearly deprecated) branch

\- .Net Core: The replacement for Framework and cross platform branch (but with Windows specific libraries)

\- .Net Standard: A way to write something that runs on both .Net Framework and Core?

<comment><USER11> .NET Framework is not anywhere close to deprecated, AFAIK...

<comment><USER10> I guess it is a matter of perspective and your definition of the word "deprecated". This is the definition I use (from Wikipedia):

> In several fields, deprecation is the discouragement of use of some [..] > feature

Microsoft are currently telling people for new projects only use .Net Framework if you have a specific requirement, otherwise use .Net Core. .Net Core is therefore the default choice.

That to me is discouragement which starts to put .Net Framework into the realm of depreciated. Is it deprecated yet? It is not, but it is definitely going in that general direction and you can see it on the distant horizon.

<comment><USER12> There is still just a lot of stuff you can't do on Core alone. It's fine, I guess, if you are doing fairly vanilla web server development, although the last time I tried it was not the easiest to run .NET Core on Azure. Probably the story is better there now than it was.

Microsoft also has the entire silent iceberg of enterprise development that is going to be slogging along with .Net framework applications for years and years. Billions of lines of code that work as is, and just are not going to be invested in to update them.

<comment><USER9> The .NET Standard 2.0 push moved a vast amount of code to being compatible on .NET Core alone. The "desktop app packs" for .NET Core 3.0 to run WinForms and WPF closes the gap a lot further.

(.NET Core on Azure seems pretty easy to me. Even from early beta days of .NET Core, but there are certainly even more Azure tools for it today than then, including some really good .NET Core on Docker support from what I hear.)

Yes, enterprises will always be slogging along with ancient solutions so long as "if it isn't broke, don't fix it" aligns with the bottom line. Arguably that seems exactly why .NET Framework might not support .NET Standard 2.1+, because Microsoft doesn't want to accidentally break ancient enterprises if they can avoid it.

</comment></comment></comment></comment></comment><comment><USER13> It's a pity 2.1 will not be implemented by netfx 4.8. I wonder if there will ever be E netfx with netstandard 2.1.

Sadly things are not looking good for standardization - on one hand we have new netstandard without netfx and on the other aspnet.core without netstandard ([https://github.com/aspnet/AspNetCore/issues/3753](https://github.com/aspnet/AspNetCore/issues/3753)).

<comment><USER9> The interesting thing to note is that the core runtime in netfx hasn't changed in a long while (.NET Framework 3.x and .NET Framework 4.x are still essentially CLR 2), and it sounds like after what Microsoft learned from the CLR 1 -> CLR 2 (.NET 1.0 -> .NET 2.0) update they never want to do that again if they can avoid it. CLR 1 to CLR 2 had a very good reason to do that (generics); .NET Standard 2.1 has a lot of little reasons, but no good, big reason to break the .NET Framework world with a runtime upgrade.

(Also, it looks like ASP.NET Core still should be considered .NET Standard 2.1 compatible, but yes the "upgrade" to .NET Standard 2.1 is fascinating because it loses compatibility with netfx.)

<comment><USER2> ASP.NET Core is not .NET Standard based. Most of its libraries are, but the core runtime is bound to a platform like .NET Core (and earlier the .NET Framework). It was never running on a pure .NET Standard interface.

<comment><USER9> One of the biggest reasons for that seems to be Span<T>, so it seems possible that ASP.NET Core can move toward .NET Standard 2.1, since it includes Span<T>. Certainly it isn't guaranteed, but it seems plausible. (Not that it would help much in the case that .NET Framework doesn't seem to be capable of .NET Standard 2.1.)

</comment></comment></comment></comment><comment> c-smile So they added Span<T> as a big thing ...

> (Span<T> is) at the heart of most performance-related improvements in .NET > Core 2.1. Since it allows managing buffers in a more efficient way, it can > help in reducing allocations and copying. We consider Span to be a very > fundamental type as it requires runtime and compiler support in order to be > fully leveraged.

Small struct that is declared as

        public readonly ref struct Span<T>
        {
          private readonly ref T _pointer;
          private readonly int _length;
          ...
        }

which is exactly what I am using in Sciter ([https://sciter.com](https://sciter.com)) for 10+ years:

        template <typename T>
          struct slice {
            const T* start;
            unsigned int length;
            ...
          }

[https://github.com/c-smile/sciter- sdk/blob/master/include/au...](https://github.com/c-smile/sciter- sdk/blob/master/include/aux-slice.h#L48)

Such small thing definitely speed ups many areas and surprisingly quite a lot, parsing in particular.

Nothing new under the Sun, eh?

<comment><USER14> Does your template work with memory managed by a GC and provide all the memory safety guarantees that .NET does? If so, does it work seamlessly across the stack & the heap for both managed memory and unmanaged memory at the same time?

I get it, similar concepts - but let's not dismiss the value in this addition.

<comment><USER15> I didn't read the poster as dismissing it (or claiming to have outright invented the concept) - rather pointing out that good implementations naturally keep re-arising.

<comment> c-smile Yeah, this concept is quite old.

It reincarnated quite many times: in D language by Walter Bright where arrays are just such slices. Or by Andrei Alexandrescu in its range<T> thing: [http://www.informit.com/articles/article.aspx?p=1407357&seqN...](http://www.informit.com/articles/article.aspx?p=1407357&seqNum=10)

</comment></comment></comment></comment><comment><USER16> I thought the Java framework nomenclature was bad, but .Net is way more confusing.

<comment><USER17> I was thinking about this... but I'm not so sure :)

JRE, JDK, Java EE, Java SE, Beans, Enterprise Beans, Managed Beans, JEE APIs vs Implementations etc, containers, app containers, app servers.

'Enterprise' has to be the worst prefix/name ever for an API or technology.

It is a tough contest.

</comment></comment><comment><USER18> Anybody got any updates on the state of Mono/.NET Core convergence?

I actually don't care very much if they're actually the same code base, but I'd like to be able to use the dotnet CLI for everything. Xamarin project templates in the new SDK format are also on my wishlist.

<comment><USER19> Are .NET Core and Mono converging? I would have thought that they'd remain separate while both implementing .NET Standard, and becoming interchangeable as .NET Standard implementations.

<comment><USER18> At least some convergence is happening: [https://www.mono- project.com/news/2016/11/29/mono-code-shari...](https://www.mono- project.com/news/2016/11/29/mono-code-sharing/)

And here's a more recent update: [https://www.mono-project.com/docs/about- mono/releases/5.0.0/...](https://www.mono-project.com/docs/about- mono/releases/5.0.0/#corefx--reference-source-adoption)

<comment><USER9> Also, this article on .NET Standard 2.1 mentions that for new features to be considered for future .NET Standard APIs they expect them to be MIT-compatibly licensed in at least one .NET Standard implementation with option for the other implementations to just use it outright, which indicates convergence as a policy goal.

</comment></comment></comment></comment><comment><USER20> I do mainly desktop dev but reading that Core is now the platform with rapid improvements I wonder if it's possible to write WPF or UWP apps with .NET Core or Standard.

Does anyone know?

<comment><USER21> This is coming in .NET Core 3. Slated for Q1 2019 AFAIK. [https://blogs.msdn.microsoft.com/dotnet/2018/05/07/net- core-...](https://blogs.msdn.microsoft.com/dotnet/2018/05/07/net-core-3-and- support-for-windows-desktop-applications/)

<comment><USER22> If WPF is coming in .NET Core, does this mean we are going to be able to run WPF apps on Linux and Mac?

<comment><USER23> Nope, it will be a windows only capability.

-Edit-

I should add that the purpose of them adding this capability isn't to set up a new cross-platform UI suite. It is just to lure enterprise shops to .NET core by supporting more of their .NET Framework workloads

<comment><USER24> I'm still wondering whether it would be smart for them to port WPF or UWP to all platforms. They are already decoupling their services from Windows and a UI library would be quite a flagship for them.

Then again they'd also lose the Windows vendor lock-in, which might still be more valuable to them.

Then again they could sell their development toolchain and gain developer sympathy.

<comment><USER23> Well, I think it is an engineering problem. WPF is basically cemented to DirectX which only exists on Windows.

</comment></comment></comment></comment></comment></comment><comment><USER25> I thought we already have .NET 4. I don't understand.

<comment><USER26> .Net framework is upto 4.7 .net standard is now 2.1 .net core is 2.1

<comment><USER25> Thank for clarifying all the "synonyms" associated with .NET. I did not know there were three different things: framework, core and standard.

Are there others I am missing?

<comment><USER9> Mono (5.0) and Xamarin (4.5) implement .NET Standard 2.0.

</comment></comment></comment></comment><comment><USER27> i really wish they would say "the .net standard" rather than just ".net standard". missing that prefixed article is confusing for someone not in the ecosystem (or me at least).

even better would be "specification" rather than "standard", the later being a word frequently used to indicate a particular version of some thing.

<comment><USER28> Totally fair. The original name was ".NET Standard Library" but we were too lazy so we shortened it to just ".NET Standard", which then ended up becoming the product name.</comment></comment>


Monolist: working hard to preserve the spirit of Inbox's organizational features - <AUTHOR> https://monolist.co/blog/news/new-inbox/ <comment><USER2> I think "Google Inbox Replacement" is misleading if your workflow assumes users will use Gmail in addition to Monolist:

> We're working on a Gmail integration as you read this! To start, the emails > you star in Gmail and any threads that you haven't responded to will become > action items in Monolist, but we have plans for much more.

Personally I don't think I would use Monolist because I want to replace Google Inbox with a single service, not Gmail plus another service.

<comment><USER3> That's fair (cofounder here).

Our eventual goal is to replace Gmail for any work/transactional emails. We're taking the approach of doing that one integration at a time, and providing a richer experience.

We do think that there's a world in which both of them are useful though. The problem as we see it right now with Gmail is you may receive a notification about a pull request or whatever, but you can't do anything with it and the data gets stale. Monolist will keep it in sync, and let you approve/merge/comment on it inline so you don't have to switch between 10 apps.

<comment><USER4> akshaynathan, if I am understanding this right the eventual goal of monolist is to be the bucket for all incoming notifications and communications, and the be-all-end-all for quickly replying to or addressing action items. If that is right I am hoping you the best of luck because I've long wanted something like that. Someplace where my todo list, my inbox, my chatbox, my git repo notifications, my slack notifications all live would be awesome!

<comment><USER3> yeah, thats exactly the goal! In fact we already have git/slack notifications right now. It would be awesome if you could try it out and let us know what you think.

</comment></comment></comment></comment><comment><USER5> I can see why this title seems misleading, but I think it really depends on how you use Inbox and what features you care most about. What I'm really going to miss with Inbox is how my e-mails were framed as tasks that I needed to get through each day. I could easily check them off, or snooze them with an implied priority (later today, this weekend, someday, etc.).

I found a lot of value in that, so I hope that I'll find a lot of value in Monolist. I haven't found a task management app that successfully incorporates many integrations (that I actually use) in a way that is useful, and intuitive. I think there are a lot of opportunities to add delightful features, looking forward to giving feedback!

</comment><comment><USER6> Just a heads up, their planned free version limits you to 500 items per month: [https://monolist.co/pricing](https://monolist.co/pricing)

I absolutely despise this kind of 'free' offering since it's more of a demo than an actual offer. Split it by user count, split it by features but the whole purpose of this thing is rendered moot by that limit.

<comment><AUTHOR> Oops, that pricing page was actually left up erroneously (thus why it's not linked anywhere). That was a previous pricing model that is no longer active. Monolist is currently entirely free while we're in this open beta and development phase.

We actually abandoned that model because we agree with you. Limiting the number of items per month would be going against the use case of the product.

<comment><USER7> How will you be monetizing it?

<comment><AUTHOR> We think a lot of the same problems that Monolist is solving for the individual also exist for cross-functional teams. The plan is to eventually offer paid enterprise and team-based features.

<comment><USER6> Thanks for that. I'll be giving it a try

</comment></comment></comment></comment></comment><comment><USER8> What.. I've totally missed this. Inbox will be shut down? What the....

I am a happy user of inbox since its first days and now.. Again.. Google shuts down the next service.. Another point not to invest (time, in this case) into Google products, sadly. :(

<comment><USER9> Yep, the major features of Inbox will be rolled into gmail at some point.

</comment></comment><comment><USER10> My main use for inbox is snooze - it's allowed me to manage and prioritise emails brilliantly over the last couple of years. I also far prefer the clean interface to Gmail.

As a result of the demise of inbox, I'm looking for a replacement, but it will need a native android app for me, alas, so I guess I'll be stuck with Gmail after March 2019...

<comment><USER11> The new Gmail interface has snooze, so if that's the only thing you're missing it'll stick around. I mostly miss the "Trips" feature, having recently switched from Inbox to new Gmail...

<comment><USER12> The automatic bundling in Inbox - trips, purchases, finance, etc - is a killer feature for me. I tried going back to gmail and immediately missed it. I'll keep using Inbox until they take it out back, just like Reader.

</comment></comment></comment><comment><USER13> Can this misleading title be corrected? This isn't (and can't be) an Inbox replacement. It seems to have been written this way to self-promote.

<comment><USER14> Ok, we replaced the title with a more modest phrase from the article body.

</comment></comment><comment><USER15> This seems like a potentially good service, but as 'kcon said, not an Inbox replacement. It doesn't do bundling, snoozing, or pinning for emails, which are the key features of Inbox.

<comment><USER3> We already have snoozing for items that come into Monolist, and bundling is on our radar as well.

We're working on a Gmail integration right now so we'll pull in any emails you actually read automatically, and let you label/organize/snooze/bundle/reply all without leaving the feed.

<comment><USER16> I want to reiterate that bundling is absolutely essential to me. Specifically I make newsletters come once a week and burn through them batch so that I don't get distracted; I bundle activism emails together so that I can be engaged but don't feel spammed all the time; etc. without that I also would feel no strong reason to use Monolist - hope you make something powerful!

<comment><USER3> Thanks, we'll reach out as we spec out bundling, looking forward to hearing your feedback.

<comment><USER17> It's a real encouragement for those of who are looking for a replacement. While your current feature-set isn't everything we're after, I'm keen to see how you flesh it out!

I'll be keeping an eye on this tool, thanks for being responsive to all of our comments!

</comment></comment></comment></comment></comment><comment><USER18> Now when I see any new product I look for a pledge to not get acquired like PostHaven[0]. Otherwise I simply refuse to use it. Sparrow, Mailbox, Inbox...Have been burnt too many times.

[0]: [https://posthaven.com](https://posthaven.com)

</comment><comment><USER19> Would love to see an Outlook/Outlook Calendar integration. Any plans for that?

<comment><AUTHOR> Not in the immediate future, but we've discussed it and it's definitely on our longer-term roadmap. Requests like yours also help us better prioritize that, so thanks!

</comment></comment><comment><USER20> For me, the place where inbox mattered was as an email client, not a task manager. I like the task manager metaphor for an email client, and they way that it made me think about my email, but I never wanted to apply that to my other workflows. I just liked the inbox email client.

</comment><comment><USER16> In addition to what others said below, an iOS app is a hard requirement for me. Gonna have to pass for now but cheering you on.

<comment><USER3> Thanks! We have an iOS app coming up. If you sign up or message me your email, we can notify you when it's done.

<comment><USER16> I signed up so can't wait to hear back.

<comment><AUTHOR> Thanks! Also completely understand the need for an iOS app, but just so you know the mobile experience and full responsiveness are top considerations when we ship new features.

</comment></comment></comment></comment><comment><USER21> Gmail itself will be the Google Inbox replacement. They will integrate some missing Inbox features. Instead of panicking I would use inbox till the end and give Google some time... hopefully they will integrate the bundles in Gmail before shutting Inbox down.

</comment><comment><USER22> Snoozing and bundling are they key features that I love with Inbox.

</comment><comment><AUTHOR> Looks like the logged-in application is experiencing the "HN hug of death". The blog should still be fully accessible, but we'll have everything else back up soon!

</comment><comment><USER23> Requiring full google drive access without explaining why or giving an option to opt out is a no go for me.

Idea seems interesting but I can't see why they would require access to my files.

<comment><AUTHOR> We require full Google Drive access for a few reasons:

\- Creating action items when you're tagged on any file \- Creating action items when any comments are left on your files \- Allowing you to search your entire Drive from Monolist

We never store the contents of your actual files. Those are just the permissions necessary to keep you up to date on any Drive action items.

<comment><USER24> Any way you can make that permission optional? I suspect there are a lot of people who may not know or care about Drive integration and as a result may not want to grant full Drive access.

<comment><AUTHOR> That's definitely possible, and an option we've considered but haven't yet been able to implement. We'll be sure to add it to our list. Thanks for the feedback!

</comment></comment></comment></comment><comment><USER25> Any Inbox replacement will need to work completely offline. By that I mean it would have to speak to Gmail directly instead of routing my mail through some 3rd party servers.

</comment><comment><USER26> Show me the finished product. Stop promising to self-promote.

<comment><AUTHOR> I don't think we'll ever be "finished". All the features that are listed in the blog post other than email (coming later this week), are already implemented, and you can check them out!

I know that email is the biggest one considering we're trying to replace Inbox, but I think creating a richer experience around transactional emails you receive from all your apps is already leaps and bounds better than Gmail for that use case.

</comment></comment><comment><USER27> Bit of an aside here so sorry, but did any successful clones of Google Reader live longer than a week?

If so could someone point me towards it?

<comment><USER28> I use Feedbin with a number of apps that use it for synchronization, and it's run as a paid-for service by a reliable dev. [https://feedbin.com](https://feedbin.com)

</comment></comment><comment><USER29> I just switched to hosting my own server and using mu4e in emcas.

</comment><comment><USER30> Needs Jira to be useful for me, very cool idea though!

<comment><AUTHOR> We actually do have full Jira Cloud (and Confluence) support! Those just went live in the last week.</comment></comment>


Learning Clojure with Project Euler - <AUTHOR> http://grok-code.com/367/learning-clojure-with-project-euler/

<comment><USER2> The 2nd and 3rd solutions are also incorrect.

The second solution will run indefinitely:

      (defn e2 [limit]
        (filter #(and (< % limit)
                 (zero? (mod % 2)))
              fibs))

Using a predicate in the filter function of "< limit and mod 2 == 0" does not work as the fibs sequence is evaluated even after the terms in the sequence become greater than the limit (all it means is that every term above the limit is filtered out). Replacing the limit check with _take-while_ would fix this.

The third solution is also broken, it works fine for small values of n but enter a large number such as is given in the problem and you quickly run out of stack. Replacing the recursive call with _recur_ will enable tail-call optimisation and give your stack a lot more breathing room.

I recommend the clojure-euler wiki for more reliable examples of good clojure code :)

<comment><AUTHOR> Ha thanks for your comments spuz. Not sure what happened on #2 that I ended up posting broken code. For number #3, I don't think recur will work without changing the algorithm a bit. There are 2 recursive calls depending on the conditional, and recur needs to be last for it to compile. Also in my defense it works on my machine ;)

So, yes its a learning process. I'm updating the post. Thanks again for your comments.

<comment><USER2> I tried your solution to #3 on my old windows laptop and trying to find the prime factors for 600851475143 gave a stack overflow. However, replacing the recursive calls with recur produced the correct result. I think this is because only one of the two branches that recurse is ever executed so tail- call optimisation is still possible in this case. If it was called twice (as in some implementations of the Fibonacci sequence) I'm guessing it would fail.

<comment><AUTHOR> Sure makes sense. Any idea why clojure doesn't do automatic tail call optimization, and instead depends on recur?

<comment><USER3> The first reply at [http://groups.google.com/group/clojure/browse_thread/thread/...](http://groups.google.com/group/clojure/browse_thread/thread/3a2da6a71a2213be) goes into pretty good detail from the language designer.

The short version is that it's a limitation in the JVM currently that he's hoping is removed some day.

</comment></comment></comment></comment></comment><comment><USER4> wiki for Clojure solutions <http://clojure-euler.wikispaces.com/>

nice ;)

Actually, on serious note, a great way to compare if your clojure code looks anything like it should.

</comment><comment><USER4> >The above simply creates a lazy sequence of all of the numbers between (inclusive) 1 and limit - 1.

> (range 1 (- limit 1))

this is wrong, it should be: (range 1 limit)

which will produce: (1 2 3 ... 999)

</comment><comment><USER5> This is interesting. I'd be interested to see the runtimes of these programs. It's fascinating to see how fast some of the most seemingly-complicated problems go. (It's also fun to use a programming language with unlimited-size integers, as I think Clojure has -- for an example, see problem 97. Arc just did the arithmetic in 44 milliseconds without me having to do any optimization.)

<comment><USER6> Clojure promotes Integer's to Long's and BigInteger's, if needed. Compare (type 5) (type 555555555555) (type 55555555555555555555555555555555555555555555555555555555555)

The difference is thus visible to the programmer and can be controlled with type hints.

</comment></comment><comment><USER7> Funny, I just started a new repo for doing euler problems with clojure. I'm only on the first couple problems, but am generally pretty impressed. For the seconed problem (sum of fibonaccis), my commit message is this: confirmed, timed at: "Elapsed time: 0.41989 msecs" -- original c solution will no longer run.

My old 32 bit machine died and the original (crappy) C solution now segfaults immediately, and was much slower.

Anyway, calculating and summing all the fibonacci numbers in less than half a millisecond is pretty cool.</comment>


Robotic telescope discovers three super-earth planetary neighbors - <AUTHOR> http://newscenter.berkeley.edu/2015/04/28/robotic-telescope-discovers-three-super-earth-planetary-neighbors/

<comment><USER2> Is super-earth some term with meaning here, or are they purely using it as a headline? I don't imagine with orbits closer to their host start than mercury and mass 7-8 times that of the earth that they are actually all that earth- like.

<comment><USER3> It's a term used to describe a planet more massive than the Earth, but less massive than Neptune. These planets are thought to be typically rocky. From the introduction of the paper:

> The archetypical planets of our Solar System --- Jupiter the gas giant, > Neptune the "ice" giant, and Earth the terrestrial planet --- represent an > incomplete inventory of the planet types in our galaxy. We are locally > impoverished in "super-Earths," the broad category of planets intermediate > in size and mass between Earth and Neptune.

<comment><USER4> Solar inner planets are mostly metal-silicate worlds. The seven major satellites are mostly hydric.

Under different circumstances, particularly if there were no Jupiter, we might expect a metal-poor, water-rich rocky planet in the system, larger in volume and more massive than Earth.

Jupiter has had a huge influence on the solar system, and if that mass were not concentrated there, it would have to be _somewhere_. The H and He would probably have blown away, but the silicaceous, carbonaceous, hydric, and metallic materials might have contributed to terrestrial planets.

If you squashed all the moons of Jupiter together along with the entire asteroid belt, you almost get a wetter, less dense Mars. Add the 5% of Jupiter that isn't light gases, and you get about 1*10^26 kg, which is about 16 times the mass of Earth.

So if the light gases blew away instead of forming Jupiter, and the remaining mass formed asteroids that combined via capture and collision, the solar system could have had a super-Earth. But instead, Jupiter sucked down most of that mass and put the rest into stable orbits around itself.</comment></comment></comment>


Enforced privacy is rude: advise instead - <AUTHOR> http://sidekicksrc.com/post/enforced-privacy-is-rude/ <comment><USER2> The problem with this argument is that no matter how much you make the developers aware that they are doing something wrong, there will be developers who do it when under pressure. (Meaning to go back and clean it up, but we know how that one goes.) And then when you break stuff, people _OTHER_ than that developer will not be aware of how well you warned the developer.

In that situation, you'll be the one blamed. It is unfair, but that is what will happen.

For a case in point, Microsoft encountered this one repeatedly in the 80s and 90s. (It didn't help that sometimes it probably was their fault..but most of the time it wasn't. It really, really wasn't.)

</comment><comment><USER3> I'm in nearly complete disagreement with the author here. I guess it helps that I've been burned more than once when using code from two third parties where party A reached into the "private areas" of party B's code. Rather than working with party B to resolve the incompleteness of the solution, they work around it and then push it to everyone. Later, when party B makes a change ("Hey, it's private, and the public interface doesn't change!") and suddenly breaks A's code - there are a bunch of un-related other parties which now have a nightmare on their hands.

Case in-point (of which there are many, I'm sure): QExtSerialPort. The author needed access to underlying Windows functionality that Qt didn't publicly provide, however, there was this nice, private header file laying around they could use. The Qt team later decided they wanted to remove the contents of that file, because no one should ever be using it. Anyone who wanted to build QExtSerialport had to go and grab the original file, and put it into the correct location. If they had instead submitted a patch to Qt to fix the problem, many hours would have been saved.

The author might get more points with me if they added "keep private usage private," but instead they are advocating accessing private internals of 3rd party tools in new open-source projects, which restricts the original developer from making changes without impacting users of the third party tools. Privacy is important - if you want to go around it fine, but you have to expect the price for you and your users, to hand-wave around that is naive at best.

<comment><AUTHOR> "advocating accessing private internals of 3rd party tools in new open-source projects": no - I didn't advocate that as it's obviously insane :)

I said advise your users and trust they won't do insane things. This allows _your_ users to patch/hack in their _application_ code, as a temporary or exploratory thing. I didn't suggest releasing libraries that themselves monkey-patch dependencies (ugh).

You're straw-manning.

<comment><USER4> Not really, it's the same thing except from the other point of view. If you allow people to patch/hack in their application code, then someone will patch/hack in their application code without telling you (because it works and they're under time pressure), then once you change something it will break.

<comment><USER3> Exactly this. Whatever you allow people to do - they will, at some point. At some point, monkey-patched code gets used in someone's library, at some point they put it on Github, and at some point it gets forked.

The OP is literally suggesting replacing "private" with either "public" or "protected" in C++ code, and then expecting comments/documentation to communicate what was already communicated previously by "private".

</comment></comment></comment></comment><comment><USER5> It seems that the post argues that enforced privacy is too theoretical, in practice, advice is better than enforcement.

I'd argue that the post is too theoretical, in practice, enforced privacy works much better. People will do stuff against your advice. That's OK, you say - they'll get in trouble eventually, but it was their decision. However, it affects you, the library (app, etc.) developer, as your clients might turn out to be more powerful than you.

Think of Linus' rant on not breaking userspace. He's right I believe. In general, you are not allowed to break client code, even the client did something he was discouraged to do.

Interfaces are contracts. The ultimate documentation is the code, not the comment. You are saying that in the following case,

// do not access;

public int getSize();

comment has precedence over the visibility modifier. Well, no.

<comment><USER6> In practice enforced privacy is rarely used in languages other than Javascript. In Java, C#, Ruby, Python, PHP advisory privacy is the default.

You would enforce privacy when you need to run untrusted code in same process (like the Servlets model), which is not the case in any Javascript application.

Enforced privacy in Javascript is also very inflexible, disabling many ways of extensiond and reuse and encouraging god objects because you cannot fine-tune the access - other internal "classes" are just as unpriviledged as some random application code.

So in my eyes there are plenty of downsides for no visible upside - in all other languages the developers seem to play well and not write code to access privates. Maybe that's due to incompetence though.

</comment></comment><comment><USER7> This is quite naive.

When I learned to drive, my tester required that I demonstrate competence with the controls, using them at the appropriate times, in the appropriate ways.

If my car exposed all of its private internal operations, I would have needed to know how to use them, and demonstrated that I know that. I haven't a clue about fuel flow and gear ratios, or air/fuel mixture or how the thermostat affects how the engine operates. I'm quite happy that I didn't have to demonstrate all of that too.

What the article ignores is that a good API provides everything the consumer _needs_ , while keeping the API small and easily comprehensible. A driver who has to keep track of 5 details is more likely to learn to use his car more quickly, and less likely to crash than one who has to keep track of 200 details and make decisions about each one.

<comment><USER8> You give a great analogy, but IMO extract the wrong conclusions. The car _exactly_ follows the philosophy outlined in this article; the driver/user doesn't _need_ to know the internals, but you can always open up the hood and adjust/fix/modify the inner working.

<comment><USER5> There's one problem with the analogy - exactly the point what you're trying to use... a car is almost never updated. There's no patch for the turbocharger, the piston design stays the same after manufacturing, etc. So it's OK to retrofit a custom turbocharger.

<comment><USER9> Not true. Every now and then you'll see a car recalled because of manufacturing or design defects.

</comment></comment></comment></comment><comment><USER10> Enforced privacy is advisement. It's a signal that if you want access to a library's internal behaviours or state you should either communicate your use cases to the library's maintainer or fork it and manually integrate upstream changes. This leaves the maintainer free to make changes to internal behaviours and state without breaking an implicit API contract they didn't realize they had made.

<comment><USER11> "Advisory privacy" allows all the options you listed. It also allows me to write the lightweight patch that I need and use it - immediately, temporarily, and at my own risk.

</comment></comment><comment><USER12> Unenforced privacy is a Bad Idea for (shared) libraries that may be upgraded independently of whatever uses them. It means that any internal change becomes a breaking change, and when some application stops working after a library upgrade _it is your fault_ regardless that you told the application developers "don't do that" (the users don't know or care that you said that, they only know that upgrading your library broke their stuff).

</comment><comment><USER13> There's a middle ground between public and private, and some languages call it "protected".

In FOSS libraries that I maintain, methods and properties that I don't want to expose are prefixed with an underscore and designated as protected. Protected members are not directly accessible, but anyone who wishes to play with them can create a subclass to access them. They also don't need to make any further changes other than subclassing, whereas private members might need to be overridden or (even worse) reimplemented depending on the language. So I think "protected" hits a nice balance between simplicity, openness, and maintainability.

The requirement to create a subclass to access protected members might come across as an inconvenience, but it sends the same message as the article's "dodgy" JS syntax: _Here be dragons, tread carefully and don 't blame me if your app breaks._ It would be very nice if users understood that the leading underscore is meant to send the same message, but since they're apparently not getting the message, a little more inconvenience might be needed.

</comment><comment><USER14> The two footnotes are good counter-arguments. The only time I can imagine making a class final (can't extend) is when it's a matter of security (e.g., Java's String class).

Then there is a matter of "well, it's not MY fault if you didn't use the public API and your code is now broken." I recall even Steve Jobs chastising developers for doing this.

Building something with a sensible yet strict privacy model takes a lot of upfront design. Makes sense for code that will be used by the masses, but maybe not for a small project.</comment>


Show HN: I built an AI that recognizes food - <AUTHOR> https://www.infino.me/hungrybot <comment><USER2> Something like this would be a fantastic addition to MyFitnessPal.

I find myself sometimes not logging food on that app because I couldn't be bothered to search for it.

On the other hand if the product has a barcode I always scan it in because that is convenient.

<comment><USER3> If you're eatting a lot of food with barcodes on it then your doing it wrong.

<comment><USER4> I don't understand this sentiment. My grocery store allows us to print barcodes that describe the weight and price of any produce or bulk order we purchase. This ranges from quinoa, oats, nuts, seeds, tea, along with the usual fruits and veggies.

Also, don't bulk packages of vegetables tend to have barcodes on them inherently?

<comment><USER3> But those barcodes wont show up in a public database. Also bulk foods are not fresh. Fresh food from local farmers does not usually have a barcode on it. This is not just snobbery.

</comment></comment></comment></comment><comment><USER5> I would pay something like $5 per day for this if it was a real person who looks at my photos, categorizes them accurately, and enters them into MyFitnessPal.

I won't trust an AI until it has a massive database and a million users. Until then, it's just not going to work well enough. You also need to convince users why they should use your app, instead of MyFitnessPal (which already has a massive database, including barcodes.)

<comment><AUTHOR> I have considered something like this as a business model, although I was thinking of nutrition coaching instead of mere logging itself, but thats actually a really great idea.

<comment><USER6> There's nothing stopping you from having a human aspect do the training and verification behind the scenes.

It's how companies such as Expensify were able to handle their receipt OCR gracefully for such a wide variety of invoices and receipts.

I'd err on the side of saying this is a more palpable sales approach to selling it as AI. Letting your customers know that while AI is running the show, things are being monitored closely and fixed by real people when misclassifications arise.

<comment><AUTHOR> Ive been running the underlying nonprofit (infino.me) for about 3 years with this ambition to study gene-exercise-nutrition interactions, with very little interest in making any money at it. But this thought of having a paid service for people who don't want to go through the asspain of logging .... this does have me intrigued. Everyone tells me they want an effortless meal logging app ... and photo snaps might be the closest we can get short of having something like google glass persistently monitor intake.

</comment></comment></comment></comment><comment><AUTHOR> Built using those newfangled convolutional neural network things. Trained caffe on a set of about a million food related images. Can't believe how accurate the classifier is...

UI needs work. Would love feedback on how to make food logging more intuitive.

<comment><USER7> why caffe ? why not something like h2o or tensorflow ? just curious.

<comment><USER8> Is not Caffe actually GoogLeNet? So technically it is Google architecture.

</comment></comment></comment><comment><USER9> Someone should combine this AI with something like Google glass (so you don't have to pull out your phone), a basic calorie/nutrition filter, and a shock bracelet[1].

That way when I look at a Krispy Kreme donut I get immediate feedback!

[1]: [http://pavlok.com/hello.php](http://pavlok.com/hello.php)

<comment><USER10> I'm dying here. Sign me up for your startup.

Let's call it: "American Dystopia"

<comment><AUTHOR> There's a trump joke in there somewhere.

<comment><USER10> Electrification was called "the greatest engineering achievement of the 20th Century" by the National Academy of Engineering. - [https://en.wikipedia.org/wiki/Electrification](https://en.wikipedia.org/wiki/Electrification)

With today's technology we can do it again.

</comment></comment></comment></comment><comment><USER11> I've been thinking of this exact thing for a few years now, good to see others are interested too. I think there is HUGE potential for an app that can accurately (within a reasonable error range) count macro-nutrients through pictures of food, but I think that is WAY more difficult than you would imagine. How can you train a classifier to tell how much butter is in a dish? How can you account for food that is literally underneath other food?

Maybe a combination of spectrometer, weight, and photos would be a future solution. I certainly don't have an idea of how it would be implemented, but I think using data from all 3 of those sources could be a good step.

<comment><AUTHOR> Another angle is post-consumption. Ive always wondered if precisely monitoring body temperature might tell you something about consumption, since there is this 'thermic effect of food'. Would be hard to get right though ...

In the lab, we can use doubly-labelled water to precisely measure calorie intake and burn, but its so damned expensive. If only it were commercially viable.

<comment><USER12> About post-consumption could a turd-shot help to compute the calories in/out ?

<comment><AUTHOR> That could be called hungryPOT ...

ah, good ole toilet humor

</comment></comment></comment></comment><comment><USER13> This has HUGE potential. Some of the comments here disregard the fact that AI can do a __better job __than humans. An expert chef looking at dishes will make an educated guess on the ingredients and quantities that went into a dish and will have a better idea of the caloric content. The AI could learn a similar skill, identifying whether a dish contains pastry, buttery sauces, fatty meat etc etc.

</comment><comment><USER14> You have a business opportunity here if you train that on fresh vegetables. Many people have trouble with these issues:

1\. Knowing what the hell a (example) rhubarb is or looks like.

2\. Knowing if it looks fresh or about to go bad.

Being able to aim a camera slowly across an isle with it getting highlighted would solve first problem. Spinning vegetable around in front of the camera would could solve second. So, try that and make it a paid app.

<comment><AUTHOR> You know, its funny. being a former fat guy, Im not entirely familiar with all of my vegetables. I took this app to a farmers market recently and it was actually helping me identify a few things ...

Had never seen a beet before un-cut. Ashamed of my ignorance ;)

<comment><USER14> I live in a semi-rural area. Gives me a bit more experience. I still don't know what all these things are in the supermarket, though. So, I can't judge. ;)

That said, you should try training it on different kinds of produce that look very similar. One example I recall is Zucchini vs Cucumber as the stem at one side is the giveaway. Another is Nappa Cabbage vs Romaine Lettuce. Only two examples I could think of off top of head that would confuse people.

</comment></comment></comment><comment><USER15> Pretty nifty, but please consider allowing creation of an account with a simple email address, or even anonymously. I really don't want to have to connect my Facebook or other social-networking information to your app in order to use it.

Thanks for allowing one to try it out without logging in via another service; it'd be great to be able to actually have an account.

<comment><AUTHOR> Email accounts are definitely on the long todo list.

</comment></comment><comment><USER16> This is not compatible with my device which is an LeTV X500, running Android 5.0.2. Is there any reason that it might not work? I'm in the UK, if that might be the reason.

<comment><USER17> This happening for me as well with a Moto X Play running Android 6.0.2

Looking forward to trying the app once I can install it though, looks neat

<comment><AUTHOR> Found my bug! Try again. Way more droids are supported now.

</comment></comment></comment><comment><USER18> Hey Subcomos, great work! We've been working on something pretty similar, an app called Logameal (only available in the UK). We have run into (are running into) a lot of those UI issues too and would be glad to help. Let me know if you'd like to chat.

<comment><AUTHOR> Your UI looks great!

</comment></comment><comment><USER19> I remember the latest Android camera app being able to extrapolate distances in the app (thus simulating photos with large apertures/shallow depth of field).

I wonder if you could use this visual distance algorithm to somehow judge portion sizes/plate sizes?

<comment><AUTHOR> Haven't thought of that! What I have considered is letting users put something like a quarter or ID card in the field of view for that purpose.

Aside from that though, I figured Id do portion estimation down the road should this preliminary version take off.

<comment><USER19> Good thinking. Assuming you don't have the portion size data, you may be able to run your data set through Mechanical Turk or hire an oDesk worker, and you could build a training set..

</comment></comment></comment><comment><USER20> Nice work! Another big user group of stuff like this is diabetics who need carb estimates to adjust insulin doses.

<comment><AUTHOR> I earned my PhD in diabetes research at the Mayo clinic. My whole goal for this project is to cure that damned illness.

Aim high ...

</comment></comment><comment><USER21> Isn't it strange that in [1] the beginning of the "Normal" BMI has more risk of death than the beginning of the "Obese"? I'd even venture to say that the "Overweight" range has, in average, lower Mortality Risk than the "Normal".

PS, another plus for the Metric System. The Imperial System form includes Feet+Inches, while the metric one only needs Centimeters for the height.

[1] [https://www.infino.me/join/](https://www.infino.me/join/)

<comment><USER22> The finding that people with an "Overweight" BMI have a lower rate of all- cause mortality is consistent and has been called the "obesity paradox." A very interesting study came out this month that addressed it.[0] Basically, they did a prospective study of 55,000 (mostly elderly women) where they measured their body fat percentage directly using DEXA scans. It turns out that when you control for body fat percentage, it's actually better for all cause mortality to have the highest BMI category and the lowest body fat percentage. Of course, the measure "BMI after controlling for body fat percentage" is kind of unintuitive, since BMI is supposed to be a crappy proxy for body fat percentage. But basically, as long as your body fat percentage is low, being bigger is healthier than being smaller.

0: [http://annals.org/article.aspx?articleid=2499472](http://annals.org/article.aspx?articleid=2499472) (this paper used to be available, because I read the whole thing, but I guess it's paywalled now)

<comment><AUTHOR> Thanks for posting this! I wonder if part of this paradox is also explainable because people with high muscle mass will tip towards the high end of the scale.

Very cool!

</comment></comment></comment><comment><USER23> First thing I tried: logging /two/ Granny Smith apples manually.

I had do the entire process twice because there is no (obvious) way to change the serving size to 2.

<comment><AUTHOR> If you click the 'no barcode' button to pull down a fatsecret nutrition record, there is a servings pulldown that is displayed. Its kinda hard to see. Working on the CSS

</comment></comment><comment><USER24> Please do blog about the technical details, if you could post a walkthrough of setting up and training the net it would be great!

<comment><AUTHOR> Someday! Right now I need to put the fire out in my server room. Didn't quite prepare for HN traffic ...

</comment></comment><comment><USER25> That is very cool subcosmos! I am also very interested in both cooking+nutrition and AI (see for example my web site cookingspace.com). My contact information is in my HN profile - shoot me an email if you want to talk about AI, food technology and business, etc.

</comment><comment><USER26> This should be in use at those self-registry machines at food markets. I imagine that you place the food item on the scanner and it will automatically register it or ask for human input when something unrecognized is found.

Would decrease cheating perhaps?

</comment><comment><USER7> Where did you get your training data set? I'm trying to build a network to recognize faces from ID cards and match them to faces/selfies. Onenof the hard things has been to get a training data set.

<comment><USER27> This sounds like it could be used for the wrong purpose for sure.. Are you working for some nosy employer?

<comment><USER7> Employer? No - we are automating paper applications for financial institutions. This includes a photo ID and a photo.

That is checked manually today.

<comment><USER27> Haha nice! I was assuming someone was going to do some web screening before hiring people.

</comment></comment></comment></comment><comment><USER28> That's very interesting indeed. Are you using any API?

<comment><AUTHOR> Fatsecret API for nutritional information and Foursquare for checkins, but installed and trained the neural network on my AWS instance for the prediction stuff.

<comment><USER29> Is it possible to implement the myfitnesspal API in the way user can scan the food and it gets entered in their food log on MFP ?

<comment><AUTHOR> I've been emailing myfitnesspal for years for access to their API .... emails go ignored.

</comment></comment></comment></comment><comment><USER30> I think something like this could get really good at estimating calories too. I'm saying within +\\- 50 calories.

<comment><AUTHOR> I've heard that Google is working on that problem. They have way more resources than my one-man part time nonprofit operation, so I look forward to how awesome their thing will be when they finish it.

Will probably opensource this, since I want to grow up a nice research community around quantified self fanatics.

</comment></comment><comment><USER31> The classification looks good, congrats!. Where did you get the million labeled images to train your classifier?

<comment><AUTHOR> Wordnet! Got a list of URLs from there and then hit flikr with some python.

</comment></comment><comment><USER32> Is there a writeup about how you approached this? All I see are a couple of app store links.

<comment><AUTHOR> Ive been meaning to make a blog for some time now, since my nonprofit also has some preliminary research results with the genetic basis of obesity. Just havent had the time really. It will happen though. These neural networks are amazing and worth sharing.

</comment></comment><comment><USER33> This is great. Where are you hosting your caffe model? Just AWS with API Gateway?

<comment><AUTHOR> Its on the instance right now, but I could certainly post it to github at some point. I think I need to retrain it though and swap a few categories out. Theres a few animals in there ;)

Also, been needing to train on non-food items to weed out abuse.

</comment></comment><comment><USER34> How much hardware and how much time was used in training?

<comment><AUTHOR> Took a single AWS instance about a month. Not too bad.

</comment></comment><comment><USER35> How does it measure the glucose content of that sauce?

<comment><USER36> Probably gets it from FatSecret?

<comment><AUTHOR> It does! They've been gracious enough to let me use their data since I'm running a nonprofit experiment.

</comment></comment></comment><comment><USER37> Another app that is similar to this is called tuingle [http://tuingle.com](http://tuingle.com)

</comment><comment><USER38> where did you get the annotated training data ?

<comment><AUTHOR> wordnet: [https://wordnet.princeton.edu/wordnet/](https://wordnet.princeton.edu/wordnet/)

<comment><USER39> I can't find anything related to images... Could you expand on this?

<comment><AUTHOR> Oh dear, I meant Imagenet! [http://image-net.org/](http://image-net.org/)

<comment><USER39> Awesome! Thanks! :D

</comment></comment></comment></comment></comment><comment><USER40> halonewstza.blogspot.com</comment>


Ask HN: What's your recovery plan after a major hardware loss? - <AUTHOR> Suppose that while you're out for a run, your apartment burns down. Your PC/Notebook is gone as well as your smartphone, all your external hard drives, your NAS, all kind of recovery codes you printed out on paper. (Alternative scenario: Your backpack with your notebook and smartphone gets stolen while you're traveling abroad)
Which steps do you have to do in order to access

  - your emails
  - your current project data
  - your personal backups (photos etc.)
  - control over your domains
 I noticed that since I use a password manager I don't know any of my passwords. Also, many accounts are protected with 2FA, so to recover anything I have to drive 200 km to my parent's house where I keep my offsite backup.
I'm trying to assess the risk of locking myself out of my data, and looking for ways to improve my backup concept.
What do you do? Could you go to the Apple Store, buy a new MacBook, then use a public WiFi to completely restore everything? Do you have a zipfile hosted somewhere, encrypted with a password you know, that contain the "root keys" you need? <comment><USER2> I just sync everything important (laptop, phone) to a couple of cloud providers and an additional home server (so it's in 4-5 places) and figure that at least one of those will be okay. Physical items are kept locked in my desk at work inside a second locked container (U2F backup token, 2FA codes, etc.) If I lost everything, it would suck, but it's happened before and I was fine.</comment>


Flask book project funded in just 36 hours on Kickstarter - <AUTHOR> http://www.kickstarter.com/projects/1223051718/practical-flask-book-project/posts/513183 <comment><USER2> Man, I seriously expected this to be a flask disguised as a book. A book on Flask is cool too though.

<comment><AUTHOR> Haha, I hope you weren't too disappointed.</comment></comment>


Klarna launches in US - <AUTHOR> https://www.klarna.com/us <comment><USER2> To those of you who doesn't know Klarna, it's pretty big in Sweden (and also used in the other Scandinavian countries).

When you order a product online, you will not pay by credit card. Instead, you will receive an invoice with the product - so you don't pay until you have it. Furthermore, they'll give you 30 day credit, and can even split the payment over several months (3, 6, 12, 24 or 36) for an extra fee.

It's pretty easy to pay by installments. You get the invoice with the full amount to pay. If you then pay a lower amount (e.g. full_amount/12 to pay over 12 months), you will automatically be transferred to the split plan, and get a new invoice every month for 10 months.

I think it's very used in Sweden, where they've had an habit of paying via invoice instead of credit/debit card for years.

Klarna tried a few years ago to enter the market here in Denmark, but I don't think it has been a huge success. People in Denmark are more used to just pay with credit card, and I think that's the same problem Klarna will face in the US.

<comment><USER3> > you will receive an invoice with the product - so you don't pay until you > have it. Furthermore, they'll give you 30 day credit, and can even split the > payment over several months (3, 6, 12, 24 or 36) for an extra fee.

How is this different and better for me than a credit card? Using a credit card I don't have to pay until the end of the credit cycle, which usually is after I receive the product, and pay over a longer term for the 'extra fee' of interest. The credit card company also reverses charges for items I don't receive, protects me from fraud (over $50), and provides a host of other services such as frequent flier miles, insurance, etc.

Also, what are their interest rates?

<comment><USER4> Well, I guess the main driver is "one click buy" (tm) - that you don't have to bother with spending time on entering the credit card details, security questions, etc.

You click "buy" and then you are done. Off course, _later_ you will have to do all the boring stuff...

<comment><USER3> Is the difference between old (credit card) and new (Apple Pay, Klarna) payment services is merely UI? That is, credit cards require either a card reader or for the user to type in lots of digits, and the new services are one click.

</comment></comment></comment></comment><comment><USER5> Shortly after moving from the US to Germany, I was asked to investigate Klarna as a solution for payment processing for my company. I was pretty ill-suited for it, as I had no idea about paying by 'invoice'.

Payment by invoice means that when you order a product online, you simply receive an invoice along with the product when it arrives, and you're trusted to pay for the item on the invoice within the next few days or weeks by way of a direct bank transfer.

I found the process quite foreign to me, but the availability of fast and cheap credit checks made this possible. Companies like Klarna maintain and/or license a database of people in the country who have a history of failing to pay their invoices, and they are denied when they order products from other websites in the future.

What I'm wondering here is, how are they going to pull this off in the US? There are credit checks, but they really only apply to whether you've made loan payments or declared bankruptcy recently, and wouldn't reflect if a company has a claim against you.

<comment><USER6> I'm not so sure you have to be very thorough doing credit checks. Klarna has a rumor of making more money from customers who don't pay (on time) than from those who do. Added late-fees and selling the invoices to companies who handle bad credit can be pretty lucrative.

<comment><USER7> It's not a rumour, it's their business model. I a have no opinion on it myself, but that's how they roll, they collect debts.

<comment><USER4> The initial invention was this very quick algorithm for risk assessment.

What they do really quick is a credit check, based on what they know. They may also use third party suppliers the first time (or more?) if they do not have enough data.

I am not actually sure if they "buy" the invoices, but they collect a fee for reminders and handling if the payment is late.

</comment></comment></comment></comment><comment><USER8> So for the HN crowd they might be famous for being a successful company using Erlang.

All I really know is that they are all over the place if you go online shopping here in Sweden, they probably handles payments for a majority of online shops here, or a very large chunk of it at least.

<comment><USER9> Haven't they basically moved everything over to Java nowadays?

<comment><USER10> Former Klarna employee here.

Klarna has a significant presence with both Erlang and Java.

</comment></comment></comment><comment><USER11> This may just be Sunday-brain, but I can't seem to see what this service actually _does_ \- is it effectively just an outsourced credit-control department?

If so (and even if not, to be honest), I do find it interesting how often something pops up that seems to be a return to older ways of doing things. In this case, I'm reminded of how things worked in my early childhood (1980s, UK) - our local butcher, petrol station and others would all keep an account, which my parents would pay off when invoiced. In the context of the last 15-20 years, though, that appears old-fashioned to the extreme - yet here we are reinventing new ways of doing things the old ways.

<comment><USER12> For one thing, it offloads the risk inherent in online transactions -- you buying an iPad and getting a brick and the seller actually getting her money.

Second, it makes dealing with payment a _lot_ easier for any internet business. You know the headlines from hacking where a lot of credit card numbers are stolen. Using Klarna, the internet company does not have to handle credit numbers by offloading that whole thing to a trusted third party.

An online store using Klarna is really a stamp of quality on that business.

Disclosure: I'm writing this from Sweden where Klarna is based, but I am not affiliated with the company. I did some research into online payment for a customer (a municipality) a while ago and came across Klarna.

<comment><USER11> Mm, I'm not speaking against it by any stretch, just to be clear. To be honest, I _like_ the approach more - there's a lot to be said for more pervasive trust in commerce between vendor and customer; it feels nicer to me.

Naturally there are related problems that one has to solve, but the major one (unintentionally extending credit to someone you shouldn't have) is, I think, a lot less of an issue than commerce at large instinctively thinks.</comment></comment></comment>


Job creation: Bill Clinton's job ideas - <AUTHOR> http://www.economist.com/blogs/democracyinamerica/2011/06/job-creation <comment><USER2> The article states that the auto bailout "left Ford and GM as solid companies."

Ford did not take bailout money. It was GM and Chrysler. And I'm not sure I'd call either of them "solid" at this point.

</comment><comment><USER3> How about a time machine so Mr. Clinton can go back and stop himself from signing a lot of the legislation that made this disaster possible in the first place?

<comment><USER4> signing of: <http://en.wikipedia.org/wiki/Gramm–Leach–Bliley_Act>

repeal of: <http://en.wikipedia.org/wiki/Glass-Steagall_Act>

Although, looking back, President Clinton and the Republican Congress of the time at least had a clue about debt spending.

</comment></comment><comment><USER5> Is this a politically motivated article or what? Most if not all of the comments of the page, not to mention the article on the page, deal with Republican vs. Democrat issues. The subject at the top is even written as "American politics".

<comment><USER6> _The subject at the top is even written as "American politics"._

Chill. It's just the name of the section within The Economist in which this article was published. They're UK-based, so they mostly write about other stuff than American politics.

<comment><USER5> I don't think an article where Clinton, a life long Democrat, bashes Republicans is particually useful to a site for entrepreneurs. I am obviously in the minority of with this opinion.</comment></comment></comment>


Haystack – The only source you need for stock photography - <AUTHOR> https://www.haystack.im/ <comment><USER2> Hey everyone,

I am vachi, one of the founders at Haystack.im. Let me know if I can answer any questions.</comment>


We can solve the coronavirus-test mess now if we want to - <AUTHOR> https://www.newyorker.com/science/medical-dispatch/we-can-solve-the-coronavirus-test-mess-now-if-we-want-to <comment><USER2> [https://news.ycombinator.com/item?id=24359988](https://news.ycombinator.com/item?id=24359988) has

[https://archive.is/5ceYd](https://archive.is/5ceYd)

</comment><comment><USER3> Everything about Paul Romer's plan ([https://roadmap.paulromer.net/](https://roadmap.paulromer.net/)) makes sense and seems uncontroversial except Step 5: Let everybody get tested and if you get a negative result, you don't have to wear a mask. This permission not to wear a mask is also mentioned in the New Yorker article.

But I don't see any justification given for the no-mask part. I can see how it would be an incentive, but I'm not sure it wouldn't just erode the norm of wearing masks until everyone felt they could get away without wearing one.

</comment><comment><USER4> A sobering and depressing read. What's even more depressing is we'll probably stumble through this, get past it (hopefully), and nothing significant will change before the next pandemic, which might be dramatically worse.

<comment><USER5> What should change?

<comment><USER4> The article presents the case much better than I could summarize, but effectively we need dramatically better coordination between government, public health organizations, and healthcare, and that coordination should be established before a crisis hits.

<comment><USER2> and not systematically de-funded right before the next crisis, unlike this time.

<comment><USER4> I wanted to avoid the political aspects, but yes.

<comment><USER2> reclaiming the term a little to be closer to the broader "pertaining to public affairs", it's hard to see how public health could be anything but.

I hope for, and am prepared to pivot my career in support of, a resurgence of public health work opportunities. (which atul gawande points out in an earlier column from april or so)

</comment></comment></comment></comment></comment></comment><comment><USER6> Some of the leading vaccines present their own logistical challenges. Some of the leading vaccines (Moderna, Pfizer) are quite fragile and are hard to transport and store. Moderna needs to be shipped and stored at -20C (-4F) this is tricky but not that hard, since it is in the range of commercial freezers. The Pfizer vaccine needs to be shipped and stored at -70C (-94F) which is outside the range of ordinary freezers (bio labs have them but doctors labs do not). Pfizer can be packed in dry ice to ship, but the ice needs to be replenished every 24 hours. [https://twitter.com/LizSzabo/status/1298646754884300800](https://twitter.com/LizSzabo/status/1298646754884300800)

<comment><USER4> How does that compare to, say, flu vaccines? If these are hitherto unsolved problems at scale I'd be worried that a rush to deploy them will lead to no small number of failed vaccinations.

<comment><USER7> Flu vaccines are stable in household refrigerators. At the hospital I worked at, we stored roughly 10,000 doses in a 38°F fridge that wasn't even on a dedicated backup. The benefits of decades of research...

*Edited to show F instead of a unitless 38º

<comment><USER8> 38 degrees is the opposite of refridgeration, crazy!

<comment><USER9> That's probably 38 degrees Fahrenheit (~3 degrees Celsius).

</comment></comment></comment></comment></comment><comment><USER10> This seems like a well-researched article.

But I've read an article or two from the New Yorker before in my area of expertise-- music-- where I noticed logical flaws and spurious arguments. According to the well-known Gell-Mann Amnesia effect-- an effect which gets posted on HN like clockwork on any story wrt journalism (which I proudly continue here)-- I should therefore reject this article out of hand.

People who incessantly paste links to the Gell-Mann Amnesia effect-- am I generously interpretating the Gell-Mann Amnesia effect here? If not, what am I missing?

<comment><USER11> The strange thing about all this is that my experience has been completely opposite of how this is described. Fast, easy testing was available right away. The labs seem to have had this working perfectly from the beginning of the pandemic. Since April (with initial limited availability), anyone has been able to request a test from LabCorp on their website. They bill directly to insurance, send everything overnight with simple instructions and return packaging, and email results within a day of receiving it. The cost without insurance is just over $100, and governments were quick to offer coverage for the uninsured.

I'm not sure what their capacity has been, and this article states that they anticipate a lack of capacity going into flu season, but I didn't encounter any barriers, and it was the most seamless and polished experience I've had with any medical system. It made me wish I could always deal with labs directly instead of having to go through a hospital.

So it seems that everything was done very well, very quickly, but many problems occurred on on the layer of coordination at local testing sites which can more easily serve many people. It's strange that a seemingly inefficient system like direct mailing would be so efficient while something that would seem to be much easier like a central testing location would have so many difficulties.

So we already have the capacity to connect people with labs directly, but if everyone did it, it might overwhelm their capacity. I tend to agree with the sentiment in the article that we need to address this disconnection and work on removing layers of indirection between labs and people. I'm not sure what the best method of doing that would be, but the labs seem to have already figured out most of the logistics on their own, and they just need the resources to scale up.

</comment></comment><comment><USER12> It has always been true that "we" can solve any problem we put our minds towards.</comment>


Watch: Fake Elon Musk Zoom-bombs meeting using real-time Deepfake AI - <AUTHOR> https://thenextweb.com/neural/2020/04/21/watch-fake-elon-musk-zoom-bombs-meeting-using-real-time-deepfake-ai/ <comment><USER2> All great but I believe this should be illegal unless there is some notice that it is fake.

We all love the tech behind it but this is very scary stuff. Not only for the people who are thinking they talk to the real Elon Musk, but also for Musk himself.</comment>