The future of .NET - <AUTHOR> http://haacked.com/archive/2012/10/21/monkeyspace-dotnet-oss.aspx

<comment><USER3> There seems to be some discussion about Mono's performance, and I wanted to address that.

The default configuration for Mono is a blend of fast startup, and decent code speed. You can tune these parameters depending on your use profile which can range all the way from: startup is the most important factor to high performing code at any cost.

In general the language Shootout compares the default configuration of Mono vs all kinds of other configurations.

Those interested in Mono for High Performance Computing will be interested in some options:

* LLVM: passing the --llvm flag to Mono instructs Mono to pass the code to the LLVM optimizing compiler, and will run your program through every heavy weight optimization that LLVM supports. This comes at the price of slow startup times (much slower), but for HPC or server loads, the extra time it takes to JIT is worth it.

* Unsafe mode. If you have battle tested your application and you never get an IndexOutOfRange exception, you can instruct Mono to never perform array-bounds checking. Arrays bounds checking basically ensures that every time you do array [i] that the value of "i" is within the range 0..array.Length. This can be expensive, but makes your program safe.

Passing -O=unsafe basically gives you the same semantics of C or C++: you know what you are doing, and you really are not too much into safety.

With LLVM + unsafe access, as far as the LLVM optimizer is concerned, there is really no difference between C# and C++ code, and you will get the same performance for compute intensive tasks. The only case where the dynamic of performance would come into play is when the garbage collector kicks-in, vs manual memory management. That in general depends a lot on the kind of app you are building. Many HPC applications preallocate all of their memory before large computations anyways, so in those apps the GC makes no difference.

The third optimization is to use Mono's new garbage collector, which gives in general a nice 2x performance boost to memory intensive applications. In general, the new GC is great for memory intensive applications, while the old one is better for pure computational applications that are not memory allocation bound.

With Mono 3.0, we also have implemented the inlining attribute (new in NET 4.5), which developers can use to force a function to be inlined, something that before was entirely based on JIT heuristics.

And of course, you can tune the individual Mono or LLVM optimization options.

</comment><comment><USER4> _"But even if Microsoft started to deemphasize .NET, I believe .NET would endure because the community will continue to fill in the gaps so that the ecosystem abides."_

Is .NET really that great a platform that these OSS devs will continue to support and improve it after it's been abandoned by Microsoft?

Not saying that's going to happen—but as a .NET dev myself, I'm curious. If it did go that way, I think my only motivation to continue using .NET would be that I don't want to rewrite years worth of code.

<comment><USER5> C# the language itself is quite nice, probably one of the best mainstream languages out there. I don't really care tho if it would run on the JVM or native (or something else) instead of the CLR.

Right now tho probably the only popular use of non-ms .net (mono) is Unity (which is btw a pretty big deal in the games industry).

<comment><USER6> I find it somehow sarcastic that as you say "the only popular use of mono" is a platform that does not support linux.

<comment><USER7> It's in the pipeline though for Unity 4 which will be out soon (I think there is already a preview available).

<comment><USER8> They are adding Linux publishing but according to this post ([http://blogs.unity3d.com/2012/07/03/linux-publishing- preview...](http://blogs.unity3d.com/2012/07/03/linux-publishing-preview-what- how-and-wherefore-3/#comment-42961)), the editor won't be available for Linux.

Still though, this means that Mono is being used with Unity on Linux. Unfortunately not the development part.

<comment><USER6> thanks that's actually cool news. Last time I checked (half a year ago or more) I couldn't find a single hint about that.

</comment></comment></comment></comment></comment></comment><comment><USER9> When I evaluated .Net for my database client I saw a nonportable Java. When I was working on a structural mechanics code I had performance considerations that were not met. The former niche of .Net was that it could painlessness interface with Microsoft technologies, without MS's love, support and their technology why would anybody use .Net?

<comment><USER10> First, it's very portable. Second, performance is as good or better than pretty much anything else that is not optimized C or C++. Finally, there are many reasons to love C# beyond interfacing with MS technology. It's a very beautiful language, much nicer than Java used to be and in many respects better than even the latest Java language. And innovation continues: If you've worked with node.js for some time, you will see how ugly code becomes where everything is done using callbacks. C# just now introduced new syntax where you can basically write code in a linear way and the nesting of callbacks is done by the compiler.

<comment><USER11> >it's very portable

Mono, I'm guessing you mean. Mono's not great for server applications, it's best used for desktop apps. If you want to write server apps, you need to be using the official Microsoft implementation. (Which is becoming the red-headed stepchild platform in Microsoft's strategy apparently?)

> Second, performance is as good or better than pretty much anything else that > is not optimized C or C++

Lets find out:

[http://shootout.alioth.debian.org/u64q/which-programs-are- fa...](http://shootout.alioth.debian.org/u64q/which-programs-are-fastest.php)

List of things that are faster than C#:

Fortran, Ada C, C++, ATS, Java, Scala, Common Lisp (SBCL), and Go.

List of things that aren't faster than C#, but are close enough to call it a wash:

Haskell, Ocaml, Clojure, Pascal, Racket

I'd say you have some choices if performance is an issue yet C#'s is acceptable.

>It's a very beautiful language, much nicer than Java used to be

No, yes. It's nicer than Java, it's not "very beautiful". Try working through the Little Schemer to see a beautiful language.

>And innovation continues: If you've worked with node.js for some time, you will see how ugly code becomes where everything is done using callbacks.

Bizarre strawman? What? I don't like Node.js either, but what's your point? A lot of languages that aren't C# have better concurrency idioms than Node. You know, like all of them that aren't C#.

> C# just now introduced new syntax where you can basically write code in a > linear way and the nesting of callbacks is done by the compiler.

Yeah, uh, Scala has had this since forever. And Lisp. And Scheme. And Clojure. And C++. And Node.js (ugh).

For a C++ example, look at Tame/Tamer, SFSLite, etc.

For anything else, google "promises".

There is nil that is special about C#, it's a slightly nicer Java without a home or a stable implementation. If neither of those things matter to you and you wanted a Java++ that wasn't as ambitious or intellectually challenging as Scala, then you've found your language. Godspeed.

<comment><USER12> Mono certainly works on the server.

Your comment just tries to derail the discussion by bringing up Scheme or Lisp in a context where only languages are considered that are widely used in the industry. Otherwise, how could the word "abandon" possibly apply?

This language shootout has been criticized before. Except for optimized C and C++ there is no popular language (I'm talking about the performance that is due to the design of the language, _not_ a particular implementation. For example dynamic typing is necessarily slower.) that is faster than C#. Try unsafe C# and you know what I mean.

Bringing up Scheme here is entirely inappropriate. It's common wisdom that Lisp and Scheme are more beautiful, but this article is about a language that is supposedly "abandoned", because it may not be mainstream enough anymore at some point. If C# is abandoned, then what can you say about Scheme?

As far as node.js is concerned, it's not a strawman: In fact, the people who claim that MS abandoned C# think that they want to replace it by Javascript. MS even supports node.js in Azure.

"concurrency" is not the same as asynchronicity, which is what I was talking about. And promises are not even close what C# 5.0 tries to achieve. In fact, promises have been present since .NET 4.0.

Finally, please explain how Scala is "intellectually challenging". This is not my experience.

(throwaway account due to procrastination setting)

<comment><USER13> > Except for optimized C and C++ there is no popular language (I'm talking > about the performance that is due to the design of the language, _not_ a > particular implementation. For example dynamic typing is necessarily > slower.) that is faster than C#.

Er, but you can't just completely disregard implementation, because it really matters in practice. You're not going to get a lot of adoption simply because your language is _theoretically_ better/faster/...

In these language shootouts, Lua, a dynamically-typed language aimed at small size and simplicity, regularly beats out C#, because Lua has LuaJIT[+], which is a _really good_ implementation, whereas C# for many people means Mono, which is at best an "OK" implementation.

It's the same as with algorithms: big-O complexity is obviously important, but it isn't everything; for real-world uses, the constant factors may make all the difference...

[+] The standard Lua implementation is also very good, but it's a more typical VM, and while very fast for a non-JIT VM, can't match LuaJIT in many cases.

</comment></comment></comment></comment></comment><comment><USER14> _"There's also this perception that with Windows 8, the Windows team is trying its best to relegate .NET into the dustbin of legacy platforms"_

I haven't heard that anywhere. They are tightening the APIs for security and there is the usual rebranding (Silverlight apparently is out) together with the addition of 'our new things are brilliant, unlike the things that we, lasy year, called our new brilliant things', but AFAIK, Microsoft bet and is still betting heavily on .NET.

Anybody know what this statement is based on?

<comment><AUTHOR> The Windows team made a huge investment in HTML & Javascript. You could even say they bet on developers using that over XAML/C#.

Looking at the apps in the Store though, and talking to insiders, and the picture is clear that over 80% of the apps in the Windows 8 Store now are XAML/C#. I've been tracking this for the last few months, and the trend is continuing.

<comment><USER15> I know I am but one data point, but I feel that was a poor investment choice for the windows team. They should have doubled down on XAML/C#, along with unmanaged code to bring in toolkits like unity and other developers that prefer working in C++.

</comment></comment></comment><comment><USER16> Xamarin appear to be pushing big time the cross platform abilities of C# now. It _is_ possible to have your business logic shared between Windows desktop, WinRT, iOS, Android, web apps etc, with a thin native UI layer on top.

<comment><USER17> You need to add _IF you're using visual studio_ to that sentence.

This is currently not possible using mono develop; the portable library support doesn't exist, which means your 'shared' libraries can't do things like use sqlite or linq; in fact, they can't have references to anything other than other portable libraries at all. Like, for example, system.collections.generic.

<comment><USER18> I thought it was possible to do all of this without using visual studio - <USER2> any other IDE_ \- with the possible exception of the WinRT app submission process.

I know you're wrong about sqlite and linq as I've used them on both .net and mono. I think you're using the phrase "portable library" incorrectly. In the .net world, these are libraries created by microsoft that use the more limited version of the framework on their other platforms. For example, windows phone 7 and win rt use different portable libraries (a pain to manage, admittedly).

<comment><USER17> I'm referring specifically to portable class libraries (PCL) ([http://stackoverflow.com/questions/5238955/what-is-a- portabl...](http://stackoverflow.com/questions/5238955/what-is-a-portable- class-library)) that allow you to write code that is 'cross platform'.

(ie. PCL --> One code base that compiles and runs on multiple c# runtimes; a _key feature_ of writing cross platform c# applications)

Support is currently limited, see: [http://docs.xamarin.com/ios/tutorials/Cross_Platform/Buildin...](http://docs.xamarin.com/ios/tutorials/Cross_Platform/Building_Cross_Platform_Applications/Part_3_-_Setting_Up_A_Xamarin_Cross_Platform_Solution#Portable_Class_Libraries_\(PCL\))

Of course you can copy and paste your code into different projects manually, and compile it for a specific runtime. Or... you can use visual studio.

<comment><USER3> It is easy to be confused, because PCL is confusing.

My personal preference is to just link source files and use partial classes (very much like the Linux kernel uses "pluggable" files to create a kernel) to create a product.

The problem is that there is no "Portable Class Library", there are dozens of profiles, and you need to pick the subset you want, for example: "Desktop and Windows8" is a much larger profile than "XBox and Silverlight", the subsets are different.

If you ignore Xbox and Silverlight, you pretty much have the whole stack everywhere.

</comment></comment></comment></comment></comment><comment><USER19> What it would take for me to consider .NET/C# more often, is easier interop with C. I really like the way Golang does it, I know P/Invoke isn't terribly hard, but it's still messy and you have to muck around with attributes and annotations. In Golang I did some interop by simply pasting lines and names of header files around. That's a lot more convenient than having to decide how to layout a struct, at least that was my impression when I looked into it. Mono documentation is very sparse as well, they basically tell you to just look for the msdn docs, which splits your efforts up and makes you uneasy whether you'll run into Mono specific things. (which there are)

<comment><USER4> If Go already does C interop easily, what other factors make you want to consider using .NET instead?

<comment><USER3> Generics, iterators, functional-style programming, LINQ, asynchronous programming, dynamic, Reflection.Emit are the things that I would miss.

</comment></comment></comment><comment><USER20> This is one of the areas that open-source shines: when a core technology that has a passionate following is no longer supported, that passionate following can take on the project themselves and continue.

</comment><comment><USER21> .Net not equals C#. C# is great, but .Net sucks. limited ecosystem, no one want to implement good open soure project on .net stack. no similar level project like JBoss.

<comment><USER3> I would say that not having J2EE and JBoss is a plus for .NET or any other platform :-)

There is a whole new set of framrworks for building web applications. My favorite frameworks include:

* ServiceStack: everything you need to build sophisticated web apps with a clean, beautiful API.

* WebAPI: if you want to get a more "Enterprisey" set of APIs

* ASP.NET MVC: .NET's approach to Ruby-on-Rails-esque development.

* SignalR: real-time web applications.

</comment></comment><comment><USER22> Anyone who bought into Microsoft's Proprietary .Net platform deserves what's happening to them now. Anyone who buys into Microsoft's Windows 8, Windows RT, Windows Phone 8 ninsense is just plain braindead.

But some people never learn :-)

<comment><USER15> I'm not sure how you got this from that post, if anything the future has never looked brighter for .NET/C# developers. The ability to target all mainstream platforms, a burgeoning open source community, and fantastic tools. Of course, other technologies have had these in one way or another ... but that doesn't invalidate the C# communities advancements.

The fact is that as a C# developer currently focusing on mobile development, I am very happy these days.

</comment></comment><comment><USER23> Windows 8 is being released soon. Got it.</comment>


Why Should you Open Source? - <AUTHOR> http://iraghu.com/weblog/why-should-you-opensource/

<comment><USER2> I felt his recommended article was even better [http://www.intridea.com/blog/2011/4/28/you-should-be-an- open...](http://www.intridea.com/blog/2011/4/28/you-should-be-an-open-source- developer)

<comment><AUTHOR> Yup, I know. I just wrote with the point of view of a newbie coder and the referenced article sums it all. :D

</comment></comment><comment><USER3> Wrote almost the same article a while back: <http://blog.jupo.org/2011/09/12/open-source-for-you/>

<comment><AUTHOR> Nice :D

</comment></comment><comment><USER4> Good points, thanks for sharing. Github is changing the world

<comment><AUTHOR> thanks for the feedback man.</comment></comment>


Browser Automation - <AUTHOR> <comment><USER2> Was this supposed to be an Ask HN? Did you forget a link?

</comment><comment><USER3> Yes.

I like puppeteer and simple bookmark scripts. And you?</comment>


Ask HN: How many times did you fail before creating a succesful startup? - <AUTHOR> <comment><USER2> Multiple failures do not guarantee success. Failure is a thing to avoid. If you _do_ fail—as we all do eventually—you should learn from it, but you can usually learn something without having to fail yourself.

</comment><comment><USER3> Failing is a very nature of the human being.In order to achieve, one has to try and, eventually fail, until he comes to success.Unless you are genius :)</comment>


Motivational Blogs. What Are Your Favorites? - <AUTHOR>

When you need a bit of a pick me up, some inspiration to get you fired up and motivated, what blogs do you read? <comment><USER2> Seneca: On the Shortness of Life

[http://www.fourhourworkweek.com/blog/2009/04/24/on-the- short...](http://www.fourhourworkweek.com/blog/2009/04/24/on-the-shortness-of- life-an-introduction-to-seneca)

speed-reading bold by Tim Ferriss</comment>


Apple Introduces iOS 8 - J-H http://www.apple.com/ios/ios8/ <comment><AUTHOR> Call/SMS integration is great. It's worth noting that Google had absolutely everything they needed to do this _years ago_ , and just... didn't. Hangouts is still inferior to iMessage today. It's a real shame.

Edit: this extensibility stuff might be enough to tempt me back to Apple from Android, at last. Third party keyboards, too (I've gotten quite attached to the Android swiping stuff). Honestly, at this point, I'm not sure what keeps me on Android. I confidently predict that iOS Active Notification usage will be far higher than on Android, even though Android has had it for years.

<comment><USER2> "It's worth noting that Google had absolutely everything they needed to do this years ago, and just... didn't."

This is so true and so sad. Google Voice, why are you so almost great and so neglected?

I have to say though that my disappointment in Google Voice is quickly being matched by my disappointment in Google Maps which actually was great but continually gets less so with each release.

<comment><USER3> I would have agreed with you except I'm actually liking the very latest bump. Telling me which lanes to get into to make an exit? Brilliant. I think it's also taking traffic into account now.

<comment><USER4> Telling you which lane to get in is like a 12 year old feature of car navigation systems isn't it? I certainly remember the car navigation systems in rental cars from 12 years ago having that feature.

Same with taking traffic into account, especially in Japanese systems which have done that since like 2004.

If Google finally got around to adding those features that's great but hardly worthy of "brilliant" praise for something that's been around for years.

<comment><USER5> > If Google finally got around to adding those features that's great but > hardly worthy of "brilliant" praise for something that's been around for > years.

We only do that if it's Apple, right?

</comment></comment></comment></comment></comment><comment><USER6> There are two big things here:

Health: it's stepping on the toes of many partners, but might be groundbreaking. It's extremely hard to crack healtcare, it's very closed, defensive system of people and bureaucracy, Apple might just have the power to do it.

Extensibility: intents are basically _the_ reason Android can work so much better in many cases than iOS. I hope MS will bring it to WP very soon.

<comment><USER7> Per Microsoft: "App contracts and extensions" have existed since day one: [http://msdn.microsoft.com/en- us/library/windows/apps/hh46490...](http://msdn.microsoft.com/en- us/library/windows/apps/hh464906.aspx)

Per Healthcare: that is a really exciting new feature and there is a LOT of potential here. But I wonder how successful it can actually be in the grand scheme of things. I.e. not everyone can have or wants an iPhone.

Edit, expanding a bit:

On the flip side, I am huge advocate for personal health records ([http://en.wikipedia.org/wiki/Personal_health_record](http://en.wikipedia.org/wiki/Personal_health_record)), but no one really knows about them and no really uses them because they don't work with your doctor. I don't think Apple has even remotely come close to solving the overall problem of integration and usefulness, but maybe it will get more people interested and thinking about the concept of a personal health record.

<comment><USER8> Expect health devices to be the new hot space for the next few years.

Yes Apple will have an iWatch but they would be more than happy having hundreds of dirt cheap equivalents that integrate seamlessly with the iPhone.

<comment><USER9> Really? It's my understanding that those with the least amount of money have the greatest need for healthcare. How is Apple with its premium product going to help those that cannot afford their products?

A cheap Android device could be used to help monitor the health of an elderly relative, however do you really perceive people leaving the latest iPhone with their dementia stricken parent?

Are expectant mothers going to be happy with having wireless transmissions constantly next to their unborn child (regardless of safety records)?

Are nurses going to have sterilised iPads for for the ward, where fluids are abound?

Health monitors haven't taken off because people do not care enough to want constant monitoring.

</comment></comment></comment></comment><comment><USER10> I don't have an iPhone, but I just can't understand why the keyboard cannot be lowercase when you're writing in lowercase. I just don't understand the motivation.

<comment><USER11> And I don't understand why they can't cram the punctation marks (at least full stop and comma) on it. And I have an iPhone...

<comment><USER12> Typing two spaces turns into a full stop and a space.

<comment><USER13> I think you and I are the only two people left on the planet putting two spaces after a full stop/period.

<comment><USER14> It removes the first space and adds a period instead.

</comment></comment></comment></comment></comment><comment><USER15> Still no user accounts on iPad. The only thing I want, and 8 versions in, it's still not there. Why I can't create a login for my kids on my iPad that hides my mail, calendar, certain games, etc? I don't understand why this isn't possible.

<comment><USER16> They announced new family features today that imply that they think each family member should have his/her own device.

<comment><USER15> Like I'm going to get my 5 year old an iPad. Not happening.

I let him use mine, and when he logs in, I want him to see a few educational apps... and that's it.

When we're at functions, we see parents let their kids use their iPads all the time, and they are always checking in to see if they've opened their email, or certain games, etc.

Maybe just a "Kids" login. It has NOTHING but a few apps of choice show up. Doesn't have to be a full user-account system, just a pseudo login that hides almost everything.

<comment><USER17> Oh man, I wish more services had a kids login/kids button. Watching videos with my daughter really messes up my youtube recommendations.

YT: "What do you want to watch? Some blood-drinking metal band from eastern Europe? Some fine ladies playing beach volleyball? Richard Hammond racing ice- cream trucks on fire? Or Bob the Builder?"

</comment></comment></comment></comment><comment><USER18> I'm personally excited about the possibility of creating an "Emergency Card" ([http://www.apple.com/ios/ios8/health/](http://www.apple.com/ios/ios8/health/)) that's accessible from the lock screen.

Currently, I use a screen-shotted contact screen as my wallpaper for my ICE contact - just in case the worst were to happen. This will let me put more information, and might even let me have a wallpaper again!

<comment><USER19> Wouldn't it be more sensible to just carry that information in hard copy?

If you're hit by a car and your phone is smashed...

<comment><USER20> Why not both?

</comment></comment></comment><comment><USER21> "Huge for developers. Massive for everyone else."

"Completely new. Completely Mac."

I find meaningless slogans like these really disgusting and annoying. And it's not just Apple, every second startup does this.

<comment><USER22> The fact that it is so widely used should tell you that it is effective.

Here is a small primer on the psychology of slogans: [http://www.adslogans.co.uk/ww/prvwis11.html](http://www.adslogans.co.uk/ww/prvwis11.html)

<comment><USER23> Did you really link to material on an ad company's website in order to provide evidence that advertisements are effective? Would you expect anything other than "ads are useful and effective" from an ad company?

More importantly when OP said the slogans were annoying/disgusting, it was a statement of OP's personal opinion. OP never said in general the public finds these slogans disgusting/annoying.

<comment><USER22> An ad hominem if I have ever seen one! To answer your question though, yes as it gives a simple, researched and concise explanation as to why these are useful and might make the commenter think that they aren't as "meaningless" as they seem.

<comment><USER23> I am not sure why you interpreted my comment as an ad hominem but I sincerely apologize for offending you, that was not my intention.

</comment></comment></comment></comment></comment><comment><USER24> Totally on a tangent here, but I find myself disappointed, again.

I'm a long time hobbyist programmer, got my start back in the days of Apple IIe, got my first Mac in 1984...and I'm still not switching back to iPhone until I can write my own software and run it on my own phone without paying Apple for the privilege.

I'm waiting for two simple words: "Unknown sources". Guess I have to wait some more. Not sure how low Apple's market share will have to go before they start allowing it.

Can't say I love programming for Android, Java just doesn't feel right to me, but I'm sticking with it as long as I can write my own software, run it on my phone or tablet, share it with others, even sell it without Google's permission.

<comment><USER25> I think you missed that the App Store is an iPhone afterthought -- the original, still supported, intent was to support HTML5 apps installed to your home screen.

You can write your own software, run it on any iOS device, share it with others, even sell it without anyone's permission.

Here is a PacMan style game, for example:

[http://mrgan.tumblr.com/post/257187093/pie- guy](http://mrgan.tumblr.com/post/257187093/pie-guy)

If that's not "hobbyist" friendly, I don't know what is.

<comment><USER26> It's an awful way to program. You don't get a choice of languages. There's no debugger. There isn't even an easily accessible console log to print to. It's like trying to assemble a watch, in the dark, while wearing mittens. You can do it, but it's not terribly fun.

There's a reason that there was a massive developer outcry at the "sweet solution" of HTML5 apps, causing Apple to release a native SDK instead.

<comment><USER27> You can actually attach desktop Safari's Web Inspector to both Mobile Safari and webviews running on a remote iPhone and get debugging, console logging, etc. The native stuff still has much better tooling, but the situation with webviews isn't as dire as you imagine.

<comment><USER26> Oh, that's nice! Looks like it's new with iOS 6. So, it _was_ awful for a long time, but that is indeed a substantial improvement.

</comment></comment></comment></comment></comment><comment><USER28> We changed the url for this story from [http://techcrunch.com/2014/06/02/apple-introduces- ios-8](http://techcrunch.com/2014/06/02/apple-introduces-ios-8). If we pick the wrong url, happy to change it again, so let us know. The goal is to have one discussion about each significant announcement, and have the best url for each.

<comment><USER29> I like the techcrunch url better, thanks for including it in the comment at least.

A third-party editorial review is much more useful to me than a marketting brochure.

</comment></comment><comment><USER30> So so happy to see the SceneKit API make it to iOS. Even though 'minor' compared to some of the other announcements, it was the number one thing I was looking for in today's keynote, and it was nice to see it featured. Can't wait to start using it.

<comment><USER31> That's the most useful thing I saw for my current development.

The integration, widgets, etc. will open up a lot of new possibilities too.

I'm not too excited about Swift but it looks like it could speed up the code, compile, load, test cycle.

</comment></comment><comment><USER32> Impress by All the announcements for developer in the WWDC. But taking the perspective of a enduser, there are key features i was hopping to get in iOS 8 that i didn't:

-Spotlight Integration For third Party Apps.

-Multi-User Support Or Guest Mode

-iMessage For Android

-App Trials

-Fixing The Music App ( Artis-Album View is broken)

-Third Party Default Apps

<comment><USER33> Can you expand a bit on what you mean by "third-party default apps?" I'm not sure I know any users who are particularly vexed that Apple doesn't allow carriers to load up their devices with crapware.

<comment><USER34> Probably it was about ability of third party apps to register itself as default handlers of protocols, mime types and file extensions.

</comment></comment></comment><comment><USER35> Wow, real dynamic linking. Xcode even let me do so when targeting 7.1. Does anyone know if you will be able to submit apps to the AppStore that use dynamic frameworks while still deploying to < iOS 8?

</comment><comment><USER36> HealthKit and HomeKit are both really exciting (probably going to look at smartlocks now in particular). However, I'm easily most excited about being able to leave a group text.

</comment><comment> J-H The new texting suggestions in QuickType are awesome (if it works as suggested).

<comment><USER37> Swiftkey already learns quite well. For example, I often type "Hey what's going on?" and it has now learned that if I type "Hey" it should suggest "what's" and so on, so in 4 taps I have the whole sentence.

What it doesn't have, is the context-aware switching. That is something really neat about the new keyboard. Switching context from a meeting being "postponed" to "boring" is great.

<comment><USER38> And the keyboard on Windows Phone is also really great, especially in WP8.1. So Apple needed to improve the keyboard, they were already far behind the competition.

</comment></comment></comment><comment><USER39> You can finally leave group MMS! That is awesome.

<comment><USER40> Can you leave group MMS or just group iMessages?

<comment><USER41> I think all those features mentioned like attachments and sharing location and leaving/adding people to a conversation is a strictly-iMessage featureset. iOS Messages app doesn't even work well with Android phones in group texts. They way they package up the text is totally different.

</comment></comment></comment><comment><USER42> The family sharing looks like a great idea that is way overdue. Hopefully it works as easily as the marketing material indicates.

</comment><comment><USER43> This was interesting:

"Touch ID- For the first time, you'll have the option of using Touch ID to sign in to third-party apps — there's no need to enter a password. Your fingerprint data is protected and is never accessed by iOS or other apps."

Will this be used significantly by developers?

<comment><USER44> It depends. For secure applications? I doubt it; fingerprints is identification, not authorization. Bank apps and the like won't consider it secure enough.

</comment></comment><comment><USER45> Apple's iOS support for older products has been stellar, though I'm betting iOS 8 will be the last update the iPad mini, iPad 2, and iPhone 4S receive -- they will have had a good run of four years (except for mini) by the time iOS 9 is released.

</comment><comment><USER46> It wasn't made clear in the keynote and the page doesn't mention it--I hope this includes sharing contacts with "Family Sharing". That'll be huge for helping my older family members keep a coherent address book.

</comment><comment><USER47> The do not disturb sounds great. Does this mean the recipient or the sender sets it?

<comment><USER48> Recipient I think

</comment></comment><comment><USER49> I have to say, I'm pretty impressed with the amount of stuff they've packed into iOS 8. Looks like it'll be more than enough to easily rip me away from jailbroken iOS 7.

</comment><comment><USER50> The extensions for apps look very promising. I don't think Android intents provide this kind of deep integration between apps. But I would wait for some one to confirm that part.

<comment><USER51> i can confirm that intents are this deeply integrated in android. more so because they are custom, any app can fire or register an intent, so they don't need to be something baked into the OS from the start.

i do like the ideas for extensions apple presented, but they all seem to specific. the android intents i use day to day are way past this.

</comment></comment><comment><USER52> Sounds minor, but I would have loved to have been able to change the SMS screen so I could have a black background instead of a white one. Is it that hard to do?

<comment><USER53> I set up the accessibility feature called Invert Colors and assign it to a triple tap on the home button. That works great for things like Mail and Messages, especially first thing in the morning when my eyes are tired and I don't want my retinas seared by a crisp white screen.

</comment></comment><comment><USER54> Mobile Safari now has WebGL enabled by default. How the hell isn't that bigger news?!

Look eg here to get an idea of what it means for webapp: [http://www.photonstorm.com/html5/a-first-look-at-what- ios8-m...](http://www.photonstorm.com/html5/a-first-look-at-what-ios8-means- for-phaser-and-pixi-js-hint-bunnies-lots-of-them)

</comment><comment><USER55> I was really hoping for split screen multitasking (which Windows 8 on tablets does a good job of). I heard it was possible, but was having problems getting it out the door in time. I _really_ hope it comes out in the final version of iOS 8, because that's the one thing that would tempt be to get a Surface over the next iteration of the iPad.

<comment><USER56> I think there's a jailbreak thing for that

<comment><USER26> While jailbreak hacks are really cool, you can't really base any long-term decisions (like hardware purchases) around them, because jailbreaks are so unpredictable. It's a crapshoot as to whether any given OS version will have a jailbreak, and who knows how long it will take. Even if you wait for the jailbreak to be released, there's no real guarantee you can _keep_ it. The next OS release will probably break it, and even if you refrain from upgrading, it's likely that you'll eventually be forced to upgrade due to a hardware failure, OS corruption, inadvertent button press, massive widespread security hole, etc. And good ol' Apple doesn't let you install older OSes after new versions come out, even on hardware that supports them.

</comment></comment></comment><comment><USER57> The mac integration for calls is great.

<comment><USER58> It does seem to have promise. I didn't catch all of the details, was there a demo? Was it able to say, switch a call over to your mac with the ability to do something like FaceTime?

<comment> k-mcgrady They did a demo call with Dr. Dre. They didn't showing switching a call between devices. I did notice a video button on the call on the Mac suggesting you might be able to switch from audio to video (presumably FaceTime).

</comment></comment></comment><comment><USER59> I have read through the entire text on that page and I still have not found the answer to the question "What makes iOS 8 the world's most advanced mobile operating system?".

</comment><comment><USER60> Download iOS 8 for every device. (I'm downloading at 4MB/s) [http://i.trackr.fr/tutoriel-telecharger-et-installer- ios-80-...](http://i.trackr.fr/tutoriel-telecharger-et-installer- ios-80-beta-1-12a4265u-liens-ipsw)

</comment><comment><USER61> Share the latest about Swift here! Be part of the biggest page for the language. Looking for admins now. [https://www.facebook.com/swiftofficial](https://www.facebook.com/swiftofficial)

</comment><comment><USER62> The attention to deal is mind boggling. If you missed the presentation, they said how many time they spent just trying to design a proper trash can.

</comment><comment><USER63> Really, what does android have on ios that mainstream user would want?

</comment><comment><USER64> "Coming This Fall"

Let me get my US-centric conversion calculator out... Fall > Autumn, carry the one, add 2, and oh look it's "coming this Spring".

</comment><comment><USER65> I am surprised that we see more then one submission about iOS 8 on this site (if you take into account the curation)

</comment><comment><USER66> >"Plus, it also knows who you're talking to, which is crazy. By knowing who you're talking to, it will send up predictions that are right for the type of conversation you have with that particular person."

This is a bit scary... This means that Apple not only knows who I talk to but now actually maintain an index on how I talk with everyone. 1984 is getting closer and closer.

<comment><USER67> Well, they said that data will reside on your device only (no default internet access for custom keyboards, too).</comment></comment>


Ask HN: Multiple client bug tracker/agile board for consultants? - <AUTHOR>

What are people using to track issues as well as plan their weeks across multiple projects/clients.  I work at a consulting company and currently we have a number of different tracking tools depending on the client and project.  Sometimes the client uses their own tracker, sometimes asks us for one, etc.
It'd be great if we could organize it so that we have one board to login to.  From our perspective we could login see all the different bugs, tasks, etc. of all the clients/projects.  We could organize them onto a single sprint board and work on them accordingly.
From the client's view they'd be able to login and only see their own issues/etc. that is assigned to them/their company.
Looking around Jira with Grasshopper may be a good fit, however prices are going to jump quickly between having ourselves as users and giving clients and their employees/PMs accounts.
Any recommendations on some different solutions?  We're also fine with hosting a solution on our own servers if that is required. <comment><USER2> [http://www.redmine.org/](http://www.redmine.org/) with [http://www.redmine.org/plugins/agile_dwarf](http://www.redmine.org/plugins/agile_dwarf) works great for a free self-hosted solution.

You can create projects and subprojects with custom user elevation for each. Time tracking, reporting, etc.

UI could use some updating though

<comment><AUTHOR> Does agile dwarf allow cross project boards though? doesn't look like it?

<comment><USER2> Not that I'm aware of. They seem to be project specific boards. Though they track from sprints. Allow a product backlog, etc.

<comment><AUTHOR> It looks like the "Stuff To Do" plugin may also be a good fit. Going to look into redmine on Friday, thanks a bunch for the suggestion.

</comment></comment></comment></comment><comment><USER3> This is EXACTLY the same problem I have run into, so much so that we are working on an agile board to solve it. www.matterhorn.io

Its coming along nicely, I'd love to talk to you more about the problems you are having, if you are free my email is email@example.com

<comment><AUTHOR> Will shoot you an email now, would love to see what you are working on!</comment></comment>


Cloudflare outage on July 17, 2020 - <AUTHOR> https://blog.cloudflare.com/cloudflare-outage-on-july-17-2020/ <comment><USER2> Head of DevOps at a major financial exchange where latency & resiliency is at the heart of our business, and yes, we pay Cloudflare millions. I see two things here:

# Just be ready

Most definitely not the first time Cloudflare has had trouble, just like any other system: it will fail eventually. If you're complaining about the outage, ask yourself the question: why were not you prepared for this eventuality?

Spread your name servers, and use short-TTL weighted CNAMEs, defaulting to say, 99% Cloudflare, 1% your internal load balancer. The minute Cloudflare seems problematic, make it 0% 100% to bypass Cloudflare's infrastructure completely. This should be tested periodically to ensure that your backends are able to scale & take the load without shedding due to the lack of CDN.

# Management practices

Cloudflare's core business is networking. It actually embarrasses me to see that Cloudflare YOLO'd a BGP change in a Juniper terminal without peer reviews and/or without a proper administration dashboard, exposing safe(guarded) operations, a simulation engine and co.? In particular, re-routing traffic / bypassing POPs must be a frequent task at scale, how can that not be automated so to avoid human mistakes?

If you look at the power rails of serious data centers out there, you will quickly notice that those systems, although built 3x for the purpose of still being redundant during maintenance periods, are heavily safeguarded and automated. While technicians often have to replace power elements, the maintenance access is highly restricted with unsafe functions tiered behind physical restrictions. An example of a common function that's safeguarded is the automatic denial of an input command that would shift electrical load onto lines beyond their designed capacity - which could happen by mistake if the technician made a bad assumption (e.g. load sharing line is up while it's down) or if the assumption became violated since last check (e.g. load sharing line was up when checked, became down at a later time - milliseconds before the input even).

<comment><USER3> > _and use short-TTL weighted CNAMEs, defaulting to say, 99% Cloudflare, 1% > your internal load balancer. The minute Cloudflare seems problematic, make > it 0% 100% to bypass Cloudflare's infrastructure completely._

Except if you're using CF for DNS service, this wouldn't have worked, as both CF's website & DNS servers were impacted by the outage.

<comment><USER4> That can't be possible, CF's website explicitly says that their DNS is "always available" with "unparalleled redundancy and 100% uptime"! ;)

In all seriousness, I wonder if they are going to have to change the marketing on the site now...

[https://www.cloudflare.com/dns/](https://www.cloudflare.com/dns/)

<comment><USER5> If they are truthful it will now probably change to 99.997% uptime or similar. I expect that's still good compared to many DNS providers.

<comment><USER6> Some dns provider only have one name server which is naturally bad.

However it is a bit bad of CF that a single configuration error can bring all the slave servers down. It mean that they have no redundancy in term of BGP misstakes. Customers of CF that want to avoid this would benefit to add an additional slave server outside the hand of CF.

Zonemaster (dns sanity checking tool) actually complain about CF hosted domain names because of the lack of AS redundancy. The outage yesterday demonstrate nicely why that is an concern and why one should care. [https://zonemaster.iis.se/?resultid=7d1fab165987e195](https://zonemaster.iis.se/?resultid=7d1fab165987e195)

<comment><USER7> Same goes for route53 too unfortunately

</comment></comment></comment></comment></comment></comment><comment><USER8> CloudFlare is a good company and everyone has outages. IMHO the post-mortems they post are not only some of the best I've read from a big company, but they are produced quickly.

I only wish they could update cloudflarestatus.com more quickly. Shouldn't there be some mechanism to update that immediately when there is an incident? When the entire internet knows your down and your status page says All Systems GO! it looks very poorly on them.

<comment><USER9> Their comment regarding the late update here: [https://news.ycombinator.com/item?id=23878496](https://news.ycombinator.com/item?id=23878496)

> Because of the way we securely connect to StatusPage.io from most locations > where our team is based. The traffic got blackholed in ATL, keeping us from > updating it.

<comment><USER10> Circular dependencies like this are not a good look when the core of your business is networking...

<comment><USER9> Yep, I was joking with our rep that them using Cloudflare Access for their internal services sounds like a problem waiting to happen.

Guess I wasn't wrong, they might even have lost access to internal monitoring systems which is pretty unfortunate in such a situation. If you ask them about Cloudflare Access they will happily tell you that it was built for internal tool access and that they use it for everything, later they went on to sell it as a product.

<comment><USER11> An example of dogfooding your own product is actually a bad idea?

<comment><USER12> While they could dogfood the product, status monitoring systems should be separated from your bread-and-butter product's failures. If you are in the business of messing with BGP, then the BGP that controls the routes that let you report outages should not be the same one you are messing with regularly, or at least, there should be redundancy.

</comment></comment></comment></comment></comment></comment><comment><USER13> Here's our blog post detailing what happened today and the mitigations we've put in place to ensure it doesn't happen again in the future: [https://blog.cloudflare.com/cloudflare-outage-on- july-17-202...](https://blog.cloudflare.com/cloudflare-outage-on- july-17-2020/)

<comment><USER4> I mean this in only a slightly judgemental way: What kind of change management/testing is going on over there at CF? This is not the first time that someone at CF has made a hasty config change that brought down a significant part of the network.

Now I'll admit that proper change management won't catch _every_ issue, but the issue described in this post seems like something that should have been caught. It's a little worrisome that a company that so much of the internet relies on is apparently playing fast and loose with major config changes. The changes you describe in the post-mortem sound like they will fix the immediate problem and possibly prevent future occurrences of this exact same problem, but what about making broader changes about how you deploy these things?

Not only that, but this single config change not only brought down the CDN, but brought down _both_ 18.104.22.168 and the secondary 22.214.171.124. Was this type of failure never tested, or...? What's the point in having both if they both go down at the same time?

<comment><USER14> What makes you think that whoever would be responsible for approving the change would somehow know better and catch the issue?

<comment><USER15> The fact that such a critical problem can only be detected by a human noticing it is, itself, part of the problem. Having multiple people look at the change instead of just one is a little bit better, but it's still just a band-aid. Ideally, there would be automated processes in place that could prevent and/or mitigate this kind of thing. (If we were talking about software instead of configuration, how would you view an organization that required every commit to be reviewed, but had no automated tests?)

One possibility would be to parse the config file and do a rudimentary simulation, taking into account traffic volumes, and warn the user if the result would be expected to overload any routes.

Another possibility would be to do something a bit smarter than just instantly, blindly propagating a change to every peer at the same time. If the bad routes had been incrementally rolled out to other routers, there might have been time for someone to notice that the metrics looked abnormal before Atlanta became overloaded. (I don't know whether that's feasible with BGP, or if it would require a smarter protocol, but it seems like it would be worth looking into.)

Finally, it seems like if a config change is made to a router and it immediately crashes, there should be systems that help to correlate those two events, so that it doesn't take half an hour to identify and revert the change.

</comment></comment></comment></comment><comment><USER16> I was on a call with an investor and an employee mouthed to me, silently, "everything is down!"

Immediate hot flash.

After I got off the call (thank god he had an appointment to run to), I checked it out. Our internal dashboards were all green so we realized it was a DNS issue pretty quickly.

Since we couldn't get into Cloudflare we searched Twitter and realized it was their issue and I stopped worrying.

One of the benefits of CF and other major internet vendors is that when they're down, you can kind of shrug it off and tell your customers to wait a bit. Not so if you're using a smaller/unknown CDN company.

<comment><USER17> Why did you stop worrying?

<comment><USER18> You have a bigger name to blame. It is much easier to tell customer Amazon is down, or Cloudflare is down, rather than explaining something that customer dont want to hear.

And if everyone else on the AWS / CF is down as well, then it is no one's fault. We all keep calm and just wait it out.

<comment><USER19> Your customer doesn't care, as they don't have business with cloudflare. Your fault is in not having plan b.

<comment><USER20> I was CTO at a SaaS company with a whole host of companies you've heard of relying on us as a core part of their business. They absolutely would and did accept "AWS was down, soz" as an excuse, where they were much spikier about fuckups where we were to blame.

Tangential: nobody got fired for buying IBM

<comment><USER19> I was in eng leadership at largest gaming network. Our customers (gamers) absolutely didn't care about reasons they couldn't play. It was always our fault as we were responsible for tech choices, not them. And I believe it is a way. If I'm selling you a service it is my responsibility to make sure it is reliable and not to blame it on something that is under my control (like cloud providers). Of course I can't fix local internet going down, but I can make sure I'm not married to 1 vendor

<comment><USER16> I'd argue that you're probably holding yourself to a standard that is more/less unachievable in such an interdependent world. It's idealistic and idealism is a square peg in the funny shaped hole of reality.

Taking accountability and having backup plans are extremely important, but you simply can't remove every last shred of dependence. You eventually have to accept that there are things that are out of your control and may take you by surprise despite best efforts.

<comment><USER21> In web and online infrastructure pretty much nothing is out of your control except for two things: ISPs people use and domain name registrar you use for your domain name. And even domain name registrar centralization can be mitigated against by having multiple domains from multiple registrars and promoting different domains to different users and having backup communication channels to inform users about new domains in case something happens.

Other than that it's your choice whether to make your infrastructure dependent on a bunch of unreliable centralized SPOFs from big corporations or build highly available infrastructure relying on servers from many different providers running your own DNS servers with DNS routing, failover, etc. You will definitely beat Cloudflare's availability this way many times over.

<comment><USER16> And you will still be exposed to being blindsided by something out of your control. It's really only in your control of you can think of and plan for it ahead of time. And there will certainly be things that we don't consider. You can call that a failure but it happens all the time and it's reality.

What if a political event impacts you, for instance? A pandemic? A storm taking out a major data center? A weird Linux kernel edge case that only happens beyond a certain point in time? That only sounds ridiculous because it hasn't happened, but weird things like that happen all the time. There are so many unseen possibilities.

I understand that might sound unreasonable or facetious or like I'm expanding the scope.

The point is, the more confident that you've built something that has no SPOF the more exposed your are to the risk of it, because one probably does exist.

<comment><USER21> Honestly, you are not making any sense. This is not how engineering works. If you design for resilience, you get more resilience and you build confidence as you see the evidence how the system works in real world. Furthermore, with resilience you have to always cover all risks, it's just that you don't immediately reach fine granularity of decisions that don't trigger failover to servers in different countries, you improve granularity as you learn from actual operations and modify your designs accordingly.

I remember when I first deployed DNS routed system it was too reactive, constantly jumping between servers, monitoring was too sensitive, it didn't wait for servers to stabilize to return them into the mix and exponential backoff was taking servers out for far too long. But even given all that it was still able to avoid outages caused by data center failures and connectivity problems.

<comment><USER16> It does make sense, and it's paradoxical, I know.

> If you design for resilience, you get more resilience and you build > confidence as you see the evidence how the system works in real world.

You simply can't foresee or eliminate all risk. This is referred to as "the turkey problem." It's not my idea, but one I certainly subscribe to.

[https://www.convexresearch.com.br/en/insights/the-turkey- pro...](https://www.convexresearch.com.br/en/insights/the-turkey-problem-2)

<comment><USER16> > The whole idea behind resilience is to cover unforeseeable risks

Speaking of things that don't make sense... if it's unforeseeable, one will have a difficult time adequately preparing for it

<comment><USER21> It's not difficult, it's just different. It's the difference between predicting that a truck might crash into a data center and building concrete wall around it, and designing a system in a such way that users only ever resolve to servers that are currently available regardless of what happened to some of them in a data center that had a truck crashed into it.

<comment><USER16> ... and after you've solved for the truck problem, you have a potentially infinite list of other things to plan for, some of which you will not foresee. And of course, there's probably an upper bound on the time you can spend preparing for such things.

Famous to the point of being a cliche, the titanic was thought to be unsinkable, and I would have a similarly hard time convincing the engineers behind the ship's design to believe otherwise.

The level of confidence you're displaying in predicting the unforeseeable is something you may want to take a deeper look at.

<comment><USER21> You are missing the point. Solving the truck problem is exactly what you shouldn't do, well, at least until your system is resilient. Because it could be something entirely different, it could be law enforcement raiding a data center and your wall around it won't protect it from them. So instead you approach the system in terms of what it has to rely on and all possible states of the thing it has to rely on. Which maps to a very small number of decisions. Like whether a server is available or not. If it's not available it really doesn't matter which of the infinite things that could happen to it or to a data center it is in actually did, you simply don't return it to users if it's not available and have enough independent servers to return to users in enough independent data centers to achieve specific availability. It's really not difficult.

I understand that most of those leetcode corporations don't care much about resilience, likely even incapable of producing highly reliable systems, and may give you a false impression that reliability is something of an unachievable fantasy. But it's not, it's something we have enough research done on and can do really well today if needed, we are not in titanic era anymore.

I have high confidence in these things (not in "predicting the unforeseeable"), because I've done them myself. My edge infrastructure had like half an hour of downtime total in many years, almost a decade already.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER22> Compare this to Facebooks SDK "postmortem" and you can tell which company cares more about its customers.

<comment><USER23> They actually did a postmortem?

<comment> john-shaffer I think this is the "postmortem" he's referring to: [https://developers.facebook.com/blog/post/2020/07/13/bug- now...](https://developers.facebook.com/blog/post/2020/07/13/bug-now-resolved- fb-ios-sdk-outage-causing-disruption-third-party-ios-apps/)

> Last week we made a server-side code change that triggered crashes for some > iOS apps using the Facebook SDK. We quickly resolved the issue without > requiring action from developers.

<comment><USER24> I'm pretty sure at least half a billion people were affected, and this is the best they can come up with...

</comment></comment></comment></comment><comment><USER25> It's seems these major infrastructure outages always are from a configuration change. I remember Google had a catastrophic outage a few years ago, and the postmortem said it all began as a benign configuration update that snowballed worldwide. In fact I tried googling for it and found the postmortem of a more recent outage, also from a configuration change.

Some seasoned sysadmin will say to me, "Of course it's always from a configuration change. What else could it be?" I don't know, it seems like there are other possible causes. But in today's superautomated infrastructures, maybe config files are the last soft spot.

<comment><USER26> There's always a lot of initiative to get rid of unsafe manual network config changes right after a major outage, but the difficulty of automating such changes is surprisingly high, and the rate at which the initiative decays is also surprisingly high.

<comment><USER27> Is it possible to test config changes in a simulated version of the network?

</comment></comment></comment><comment><USER28> > We saw traffic drop by about 50% across our network. Because of the > architecture of our backbone this outage didn't affect the entire Cloudflare > network and was localized to certain geographies.

I'm not even sure.. Is that second sentence supposed to signal some sort of success? Dropping 50% of your traffic isn't isolated. If your gonna try to spin it, at least bury the damn lede. Further:

> The affected locations were San Jose, Dallas, Seattle, Los Angeles, Chicago, > Washington, DC, Richmond, Newark, Atlanta, London, Amsterdam, Frankfurt, > Paris, Stockholm, Moscow, St. Petersburg, São Paulo, Curitiba, and Porto > Alegre. Other locations continued to operate normally.

Locations with THEIR equipment, but certainly not all "affected" locations. I live 4 hours from Dallas and can assure you that I was impacted. That coverage is like.. Most of the United States, Europe, Brazil and who knows how much of South America? Oh right, 50% of their traffic!

<comment><USER29> I appreciate the transparency of the 50% figure other than some generic spin "some connectivity was degraded".

</comment></comment><comment><USER30> Wow, BGP brings down globally-used DNS. It's like a perfect lesson in weak points of the modern web's accidental design.

<comment><USER31> If you own a prefix and announce some bad routes that cause all your traffic to be blackholed due to misconfiguration on your end i dont see how it's bgp's fault.

</comment></comment><comment><USER32> Network Engineering: Invisible when you're killing it at your job, instantly the enemy when you make a mistake.

</comment><comment><USER33> We need to do something about BGP.

Just in the past year Verizon, IBM, Apple, now Cloudflare have seen outages from BGP misconfiguration. The Verizon issue took down a significant part of the internet.

BGP is a liability to society. We need something which doesn't constantly cause widespread outages.

<comment><USER34> Any replacement would also need the ability to route traffic, and subject to similar risks. A "pre-push" testing simulator might be easier than throwing out BGP.

<comment><USER35> I recall watching a Microsoft talk where they explain how they do exactly this.

</comment></comment></comment><comment><USER36> In the last three years we have hosted our enterprise software on Azure, and the only outages we've had have been caused by mistakes or issues at Cloudflare. Azure has been rock solid but our customers don't understand that and assume that we're "just down", which impacts our SLAs.

During the most recent outage a few weeks ago, Azure were available to discuss the issue by phone. I wish I could say the same for Cloudflare.

I would be interested to hear from anybody who knows of a good alternative to Cloudflare. I'm completely fed up with them.

<comment><USER37> If you're so happy with Azure, why aren't you using Azure CDN? [https://azure.microsoft.com/en- us/services/cdn/](https://azure.microsoft.com/en-us/services/cdn/)

Obviously, AWS and GCP offer their own CDN systems as well. (CloudFront and Cloud CDN, respectively)

There are tons of third party CDNs as well.

Unless by "good alternative" you mean that you're on Cloudflare's free plan, and hoping to find someone else who will willingly soak up huge amounts of bandwidth for free?

Cloudflare is one of the only services I know of that offers this, but it's hard to complain about a short outage every once in awhile when you're paying nothing or very little. The Cloudflare customers who are paying quite a bit are surely upset.

<comment><USER36> My head of product is looking at the Azure offerings and how they compare with what we have from Cloudflare as we speak.

No we are not using Cloudflare's free plan.

I was simply interested to know if anybody else had recommendations for a Cloudflare alternative.

</comment></comment></comment><comment><USER38> >"We are making the following changes:

Introduce a maximum-prefix limit on our backbone BGP sessions - this would have shut down the backbone in Atlanta, but our network is built to function properly without a backbone. This change will be deployed on Monday, July 20.

Change the BGP local-preference for local server routes. This change will prevent a single location from attracting other locations' traffic in a similar manner. This change has been deployed following the incident."

It should be noted that configuring prefix limits for your BGP peers is kind of BGP 101. It's mentioned in every "BGP Best Practices" type document.[1] It's there for exactly this purpose to prevent router meltdown and resource exhaustion. For a company who blows their horn as much as these folks seem to about their network this is embarrassing.

I think it's worth mentioning that it was this time last year when Verizon bungled their own BGP configuration and brought down parts of the internet. When that incident occurred Cloudflare's CEO was front and center excoriating them for accepting routes without basic filtering [2]. This is exact same class of misconfiguration that befell them yesterday.

[1] [https://team-cymru.com/community- services/templates/secure-b...](https://team-cymru.com/community- services/templates/secure-bgp-template/)

[2] [https://twitter.com/eastdakota/status/1143182575680143361?la...](https://twitter.com/eastdakota/status/1143182575680143361?lang=en)

</comment><comment> rob-olmos Commented on the original outage: Hopefully with this outage Cloudflare will provide non-Enterprise plans a CNAME record, allowing us to not use Cloudflare DNS and more quickly bypass Cloudflare if the need arises.

<comment><USER39> If Cloudflare DNS is down how would that CNAME resolve? In the case that record is not hosted by Cloudflare DNS then why does it matter if it's a CNAME or not? Sorry, probably not familiar with the offering you're referring to.

<comment><USER40> The idea is you host in your DNS

foo.example.org. CNAME blah.customer.cloudflare.whatever. with a ttl of loke 5 minutes

Then when cloudflare goes down, you switch that to your origin server, or your static system is down page or something. Most of your traffic moves within 5 minutes and when you're satisfied Cloudflare is working again, you move traffic back.

If you've delegated your domain to Cloudflare, you can switch your delegation at your registrar, and a lot of TLDs update their servers pretty quick, but the TTL is usually at least a day, so you'll be waiting a while for traffic to move.

<comment><USER41> But now you have an additional point of failure. You would need a very reliable DNS provider to host that CNAME. It increases your flexibility when CF has an issue, bit it does not necessarily increase the reliability of your site.

<comment><USER40> Yes, but if all your fancy names are simply cnames, you can use normal zone transfers to copy between servers, and use servers from multiple providers. Most recursive resolvers will retry requests against multiple delegated name servers until they get one that responds (or they all fail to respond). It adds some delay, so you wouldn't want the servers to be down often, but it's tolerable.

</comment></comment></comment></comment></comment><comment><USER42> 2 years ago, about 1 in 3 people in the UK were watching England in the World Cup.

Towards the end of the game, a CDN the bbc used crashed, taking a million people's live streams offline.

Traditional TV with its 20 million plus viewers worked fine.

A 15 minute global outage during the World Cup or Super Bowl is not acceptable in the world of boring old TV

Meanwhile github has been down how many times this year?

IT is still a terrible industry of cowboys. It's just hidden under the veneer of abstaction, microservices and outsourcing. Other industries like the national grid or water of radio have outages that affect a local geographic area or a limited number of people, but they are far more distributed than the modern internet. It's ironic a network designed to survive nuclear war can't survive a typo.

[https://m.huffingtonpost.co.uk/entry/bbc-iplayer-crashes- in-...](https://m.huffingtonpost.co.uk/entry/bbc-iplayer-crashes-in-final- minutes-of-england-v-sweden-in-the-world-cup_uk_5b40e196e4b09e4a8b2d88fc)

</comment><comment><USER43> what is funny you go to cloudflare customers page, check all these companies status page, all down, non of them admits it's due to third party cloud provider e.g. cloudflare. In most cases it was "performance issue". Its so silly... you're in the interconnected world. It's ok your major cloud providers went down...

</comment><comment><USER44> Why did it take so long for a status page to be published I wonder?

From the timeline in the blog post the issue with Atlanta was fixed between 21:39 to 21:47 but a status page wasn't published until 21:37. Everything had been broken for over 20 minutes at that stage with lots of people already posting about it or other status pages reflecting issues. See [https://twitter.com/OhNoItsFusl/status/1284239769548005376](https://twitter.com/OhNoItsFusl/status/1284239769548005376) or [https://twitter.com/npmstatus/status/1284235702540984321](https://twitter.com/npmstatus/status/1284235702540984321)

Without an accurate status page it leaves businesses pointing the finger everywhere wondering whether its their hosting provider having issues, their CDN, DNS provider etc etc.

<comment><USER13> Because of the way we securely connect to StatusPage.io from most locations where our team is based. The traffic got blackholed in ATL, keeping us from updating it. An employee in our Austin office was finally able to use his Google Fi phone and connect through a PoP that wasn't connected to our backbone so didn't have traffic blackholed. Something we'll address going forward.

<comment><USER44> Damn that sucks, sounds like a stressful Friday evening for all involved. Thanks for taking the time to answer.

</comment></comment></comment><comment><USER45> You mean the service that everyone is centralizing in caused problems because everyone centralized in it? Pikachu shock face. If you're web or network dev act responsibly. Don't just pick cloudflare because everyone else does. Don't pick cloudflare _because_ everyone else does.

</comment><comment><USER46> I got the same issue today when I was on-call. took me 1 hour to figure out it was Cloudflare.

I'm currently working on a project to monitor all the 3rd party stack you use for your applications. Hit me up if you want, access I'll give free access for a year+ to some folks to get feedbacks.

<comment><USER47> Not to take away from your project, but check out [https://statusgator.com/](https://statusgator.com/)

</comment></comment><comment><USER48> Cloudflare is experiencing a bit of karma and a bit of Murphy's Law.

They slung some mud not long ago and now it came to bite them. They were a bit righteous on their reliability. However, anyone in this game long enough knows it's only a matter of time before shit goes down. If they didn't have any graybeards over there to tell them this, then hopefully they earned some gray.

Stuff was down long enough for Googles and OpenDNS caches to expire, and to take down DigitalOcean in some respects.

Thankfully CF can afford to learn and make improvements for the future. Not all organizations are that lucky.

<comment><USER49> > They slung some mud not long ago...

Oh, at whom?

<comment><USER38> [https://twitter.com/eastdakota/status/1143182575680143361?la...](https://twitter.com/eastdakota/status/1143182575680143361?lang=en)

</comment></comment></comment><comment><USER50> This is not the first time human error on BGP routing configuration which then caused a significant portion of the Internet down. Is there any kind of configuration validator that can be implemented to prevent and catch this type of errors? I am fairly sure this won't be the last time we will hear about human error on BGP routing config causing Internet down.

Or is BGP intrinsically a unsafe protocol without builtin protections on this sort of human mistakes?

<comment><USER51> BGP is a fitting name for such a distinct plane of computation. Indeed the border where any remaining physical concerns are cut loose and reality melts, receding behind a shroud of gateways, giving way to the vast expanse of cyberspace. Traffic whirls past. Raw elemental ether flows with abundance in this region. Any wizard who happens to experience even brief exposure to it normally considers themselves lucky. But to be enlisted to serve as a warden of the border, whether punishment or honor, is a a responsibility most high. BGP is either the final, or the primal, abstraction depending on which side of the gates you most intimately inhabit. And the task of maintaining it a meticulous and manual art.

<comment><USER52> We live and die by the finite state machine, hallowed be the Protocol.

</comment></comment></comment><comment><USER53> It would be interesting to classify network outages and determine the number that involved practices that would be obviated by a standard VCS / release process like found in software. Routers/firewalls seem to be a particular pain point everywhere.

</comment><comment><USER54> I guess it's easy to become complacent when you're a networking expert at Cloudflare and likely making several of these ad-hoc, on-the-fly config changes every single day, but it's always good to remember why Juniper introduced the automatic rollback feature.

Of course, this particular outage would not have been _prevented_ even if they had used

      # commit confirmed

as it can't stop you from screwing up but it almost certainly would have limited the duration of the outage to ~10 minutes (plus a minute or two, perhaps, for the network to recover after the rollback) -- and it could have been shorter than that had they used "commit confirmed 3", for example.

Even as a lowly network engineer working on networks much, much smaller than Cloudflare's, for pretty much my entire professional career, it's been my standard practice to start off pretty much _ANY_ change -- no matter how trivial -- with

      # commit confirmed 3

or

      # reload in 3

or similar, depending on what type of gear I was working on (and, of course, assuming the vendor supported such a feature).

This applies even when making a changes that are so "simple" that they just "can't" go wrong or have any unexpected or unintended effects.

In fact, it applies _ESPECIALLY_ in those case! It's when you let your guard down that you'll get hit.

\---

Fortunately, all that was necessary (I assume) to recover in this case was to

      # rollback

to the previous configuration. Then, the correct configuration could be made. That still had to be done manually, however, and resulted in a 27 minute outage instead of what could have been a 5 or 10 minute outage.

I would hope that Cloudflare has full out-of-band access to all of their gear and are able to easily recover from mistakes like this. If they had lost access to the Atlanta router and weren't able to log in and revert the configuration manually, this outage could have lasted much, much longer.

</comment><comment><USER55> Did this sink any eCommerce websites?

<comment><USER56> Shopify went down so all of those storefronts were down.

<comment><USER55> Wow - so real dollars!

</comment></comment></comment><comment><USER57> Everyone has outages, CloudFlare is a decent company making a good product.

BUT

What's interesting here is that so many non-CloudFlare services went down (including even AWS - partially) caused by DNS outage - because every sysadmin and his mom are using 18.104.22.168 as their DNS.

<comment><USER58> And that is precisely why you shouldn't try to centralize like that and send everything to and through the same vendor.

Decentralization is what makes the internet function in a robust fashion.

</comment></comment><comment><USER59> looks like Tesuto was a good buy

[https://investors.fastly.com/news/news- details/2020/Fastly-A...](https://investors.fastly.com/news/news- details/2020/Fastly-Achieves-100-Tbps-of-Edge-Capacity- Milestone/default.aspx):

> By emulating networks at scale, Tesuto's technology can be used to create > sandbox environments that simulate the entire Fastly network, providing a > view into the potential impact of a deployment cycle before it is put into > production.

</comment><comment><USER60> It's fine that they made mistakes and there were an outage, shit happens to everybody.

What is really scary though that half of the internet stopped working. That's not ok!

</comment><comment><USER61> It's amazing to me that in this situation, humans still had to intervene and update a configuration file.

I'm surprised stuff like this wouldn't happen more often and there would at least be a well tested, automated remediation step in place which also validates the change prior to going live.

I get they may be busy solving other issues, but it's interesting this isn't a more fool proof procedure given the huge impact a mistake can have.

</comment><comment><USER12> I wish they would go into why the rather complete outage was not visible to cloudflarestatus.com. I fully understand that mistakes can be made, but I'm really not pleased with how hard it was to tell if I was experiencing a localized issue. During the entire outage, cloudflarestatus.com displayed "all systems operational" for me, once accessed it with a functioning DNS resolver.

</comment><comment><USER62> Fun, I got hit by this since I use cloudflared behind my Pi-Hole. I was able to troubleshoot the issue, localized the cause to Cloudflare, found the partial outage in various regions and assumed I was affected, switched to using Level 3 DNS temporarily. I'm glad to see it's back up and this is a great retrosepctive.

<comment><USER58> Set up unbound instead of clousflared, and switch to using smaller trusted DNS services. Don't put all your eggs in one basket.

<comment><USER62> I am intentionally using cloudflared in order to have DOH between me and Cloudflare to protect my DNS traffic from snooping by my ISP for marketing/ad purposes.

<comment><USER58> I forgot to add that the main reason for setting up unbound is to use DNS over TLS.

I am not suggesting to ditch DoH and go back to unencrypted DNS.

There are a number of small independent and trusted DNS providers who support DoT. Uncensored DNS is one that I woul absolutely recommend.

</comment></comment></comment></comment><comment><USER63> I don't understand Cloudeflare is making direct configuration changes to a router like this. If these are changes that are made regularly, why not use a tool to make them. You can then assure that only certain changes are possible, preventing simple mistakes like this.

</comment><comment><USER64> Hmm, duckduckgo and qwant also seem to have some trouble, time to head for [https://searx.space/](https://searx.space/) I guess?

</comment><comment><USER65> Fascinating to see that airport codes are used as datacenter names. I know at least one other company which does that but I thought that's something peculiar to them.

<comment><USER66> I was always a fan of that. Airport codes are unique and almost never change, even after the city/country changes.

</comment></comment><comment><USER67> Is there any work being done to replace BGP or current IGP's? Wondering if modern computing and memory capacity and algorithms can be used to make more fail-safe protocols.

<comment><USER68> Scion is such an effort: [https://www.scion- architecture.net/](https://www.scion-architecture.net/)

</comment></comment><comment><USER69> Random question:

The Cloudflare revolvers definitely went down (184.108.40.206 and 126.96.36.199), do we know if authoratative DNS did?

</comment><comment><USER70> Large portion of some network is down? Oh, right, it's BGP. It's always BGP.

</comment><comment><USER71> What configuration error? Was this human or automatic? What was done to mitigate?

</comment><comment><USER72> It shows that the system is pretty fragile.</comment>


Will Keyboards Become Obsolete As PCs Decline? - <AUTHOR> http://midsizeinsider.com/en-us/article/keyboards-obsolete-as-pcs-decline

<comment><USER2> I cannot, even in a world of total science fiction, think of anything short of straight up mental entry that could totally replace a keyboard.

Even in a world where dictation is perfect, do you really want to be saying 'Colon, Dee' to enter in :D. Not to mention the implications on coding, or other places where the language we use is simply the middle man.

So, as Aaronem said, 'no'. Maybe one day if/when a device can just read your mind and immediately put what you are thinking on the screen, but until then, the keyboard isn't going anywhere.

<comment><USER3> > do you really want to be saying 'Colon, Dee' to enter in :D

"Open mouth smiley"

> Not to mention the implications on coding

Could be the renaissance of english-alike programming languages like HyperTalk.

       on mouseDown
         answer file "Please select a text file to open."
         if it is empty then exit mouseDown
         put it into filePath
         if there is a file filePath then
           open file filePath
           read from file filePath until return
           put it into card field "some field"
           close file filePath
           set the textStyle of character 1 to 10 of card field "some field" to bold
         end if
       end mouseDown

<comment><USER2> > "Open mouth smiley"

But this is ambiguous. That could be ':D' or '=D'.

As for the coding example, I cannot imagine that ending well. I mean, it's full of little oddities that don't exist in spoken language. Even look at "filePath". You can't say filePath because while in our heads, we see it like that, the spoken is 'file path'. Paths themselves are a mess to deal with since words like 'space' and 'backslash' and other 'reserved words' couldn't be used in the actual name of the path because they would have to be used in other places.

Spoken language is just way too context sensitive to work at that level. Written language is absolute, at least to a machine.

</comment></comment></comment><comment><USER4> This article was written on a keyboard.

kthxbai.

</comment><comment><USER5> No.

<comment><USER6> This is the exact comment I was hoping to add to this thread, but you beat me to it. This article begs for a straight up "No."

</comment></comment><comment><USER7> Yes, just like the traditional icon-based GUIs became obsolete on mainstream tablets and smartphones... NOT.

</comment><comment><USER8> Try typing a paper, thesis, book, etc. on a touch screen...

</comment><comment><USER9> Betteridge's law: "Any headline which ends in a question mark can be answered by the word no."

</comment><comment><USER10> What on Earth has virtualization got to do with input devices?

</comment><comment><USER11> Hell no.

</comment><comment><USER12> It's going to take a long, long while.

</comment><comment><USER13> Only an idiot would ask the question.</comment>


Ask HN: What's the Big Deal With Google Wave? - <AUTHOR>

I've seen some of the demonstrations and read some of the features and I'm afraid I just don't get why this is so 'revolutionary.' It doesn't seem like anything we haven't seen before, it's just that now it's got Google's name on it.<p>Anyone care to explain what, if anything, I'm missing? <comment><USER2> I think that the fact that google is behind it is in fact that only thing that drives all this media attention, it means that if it is anywhere near successful that it is going to set the bar for collaborative systems, and set it considerably higher than it has been before.

Cisco and a whole bunch of others have been trying to put together a comprehensive suite of tools to do all this, but so far they've failed to make it feel seamless. Google might change that, they've certainly got the resources to make it happen.

Just like there was already free email before gmail and search before google came along, it's a major event.

But I agree with you that all the components have been seen before, maybe with the exception of a system like this having an API.

</comment><comment><USER3> Key idea: if N people sending emails to each other are all on Gmail, then Google can keep only one copy of the email discussion and show it to all N of them.

This is why gmail-to-gmail emails arrive so quickly.

More generally, rather than using point-to-point protocols to make N(N-1)/2 pairwise connections between N people, there are certain new possibilities if everyone just maintains a single link to a document (a Wave) hosted on the server.

Wave is kind of the inverse of P2P. Downloading is more efficient if you can simultaneously download from N people. Uploading is more efficient if you only need to upload to one server.

<comment><AUTHOR> That's a good explanation, thanks.

</comment></comment><comment><USER4> i got an invite yesterday and my bit of playing around in my own wave (no other contacts have wave) - was of no excitement (say compared to gmail when it came around)

however I can imagine super productivity in communication/im for teams sitting across continents.

A tiny advantage of wave is that you can watch your colleague typing realtime. Those two minutes of impatient waiting (specially during a heated discussion) now would be drastically shortened. You could forget IM etiquettes during 'waving'.

I also thought of similarity with etherpad (specially the code while on the phone interview which was discussed earlier on HN)- where the interviewer may see the interviewee coding live.

imho, google wave may not matter now, when the users grow to decent numbers, we will find out.

PS: your gmail id becomes your google wave id (I had a good wave-id in the sandbox, i ended up getting my gmail account to the public preview).

</comment><comment><USER5> Slightly off topic, but I'd be interested to see what 37signals have to say about Wave, since it seems to encroach on their core business with the added benefit of Wave being free.

<comment><USER6> Yeah, they sure do hate competition. Remember Huddle Chat, an awesome, free group chat client written by some Google Engineers on Google App Engine in his/her spare time, and the whining from 37signals that ensued? It's ridiculous.</comment></comment>


The Nacho Dorito - <AUTHOR> http://www.nytimes.com/interactive/2013/10/01/dining/nacho-graphic.html/# <comment><USER2> I've read recently the book that the article references - Why Humans like Junk food - and it's a fascinating read - despite being poorly written.

Putting theories behind food appreciation, like Vanishing Caloric Density, the Umami flavor (MSG, garlic and Friends) and flavor familiarity (vanyloids are present in breast milk) - on the context of foods your familiar with, changes your perspective when you're tasting any kind of food, allowing you to deconstruct what are you experiencing: "Ho, I like this because it's greasy, and it salty, and it has loads of umami from the garlic".

It allowed me to deconstruct a common action, changing it from an immediate appreciation to a more rational, pondered thought process.

<comment><USER3> Reminding me of my favorite hunger hack: got into kitchen, chop onion or press garlic, toss into oil, fry. In ten seconds, I go from "dinner sounds like a hassle" to rooting through the cupboards, salivating madly.

</comment></comment><comment><USER4> It is really impressive when you think about it; the level of genius that goes into tricking our brains to like this synthetic mush is astonishing. But only the same way that the porn industry is astonishing in some ways - both appeal to a desire and then over-stimulate, and both are on tenuous morale standing.

<comment><USER5> What's morally tenuous about making food people enjoy? Gourmet chefs use the same science as Frito Lay. The only difference is that almost anyone can afford to have Doritos whenever they like.

<comment><USER6> Really. Price is the only difference between gourmet chefs and Doritos. Oh, come on. Frito Lay doesn't make food people enjoy, they make food people crave. You don't feel satiated after eating a lot of Doritos, and as this article points out, Doritos are engineered that way on purpose. You don't get sick of them, or full from them, or long-lasting enjoyment out of them. You just get an overloaded reward center in your brain, a lot of empty calories, and a blood sugar spike. Gourmet food typically strives for the opposite: intense and complex flavors, long-lasting enjoyment, and a pleasant full feeling. To keep with OP's analogy, saying Doritos and real food are the same is like saying porn is the same as being in a great relationship, except anyone can afford porn.

<comment><USER5> _Really. Price is the only difference between gourmet chefs and Doritos._

That wasn't my claim. My claim was that they're using much of the same chemical and culinary science. For example: salt = good, more salt = usually better! Similarly, people can and do gorge themselves on gourmet food. God knows I've done so myself a few times.

 _You don 't get sick of them, or full from them..._

I invite you to test this claim with a 17oz bag!

Plenty of people find themselves completely satisfied with a reasonable quantity of Doritos. It's also an enjoyable experience for them. This food engineering is designed to make that experience more enjoyable. They're not physically addictive in any meaningful sense. If your threshold for "moral tenuousness" is the potential to cause harm because you've produced something tasty enough that people have more than is healthy for them, then you'd have to string up a whole bunch of brewers and winemakers, too. Which would be too bad.

<comment><USER6> You are right and I concede your point. I just wonder at what point does a product maker become irresponsible? Obviously a manufacturer is not directly at fault when someone misuses their product, and they also are only selling what the consumer wants, but what level of responsibility do manufacturers have to help the consumer make good choices? I disagree that Doritos are not physically addictive in any meaningful sense. Like all simple carbs, Doritos can and do create cravings. If you eat a small bag of Doritos every afternoon for a month then stop, you will experience fairly strong cravings. You will feel miserable if you don't get your sugar. Try it! I used to eat a big bowl of cereal every day, then I stopped because I realized I needed to lose weight. It worked, but I felt miserable for a few weeks, cutting out my daily sugar infusion. That doesn't mean that selling simple carbs is bad, but I would argue that Doritos are engineered to be as addictive as possible, and purposefully sold in portions that encourage overconsumption.

You mention that we would have to string up a whole bunch of brewers and winemakers, but we do currently. Brewers, winemakers, and cigarette companies are all heavily regulated and taxed _because_ they have the potential to cause harm. Is Four Loko, which is designed for overconsumption, morally tenuous? Probably. Four Loko is on a different level than Doritos because the health effects are much worse, but the same principle applies. Clearly Doritos should not be illegal, but maybe they should be disincentivized, because...

We have an obesity epidemic. More people in this country are overweight than not overweight. It's becoming a national health crisis, and costing us a lot of money. Type 2 diabetes, renal failure, and the like are preventable.

I think this article sums up my feelings on the whole situation. We have a health problem, and the cheapest, tastiest products make the problem worse. [https://medium.com/health-the-future/918b3d08f21f](https://medium.com/health- the-future/918b3d08f21f)

<comment><USER7> > Obviously a manufacturer is not directly at fault when someone misuses their > product, and they also are only selling what the consumer wants, but what > level of responsibility do manufacturers have to help the consumer make good > choices?

As much as I agree with the sentiment of responsible companies (with my upvote), IMHO the reality is that consumers are the ones calling the shots.

Demand is like a vacuum suction. When there is a demand there will be supply, even if some don't choose to provide on moral grounds, others will fill in. No demand, no supply.

The only responsibility that companies have is to make money, and that is done via making products consumers want. If consumers want to buy only from the responsible companies, all viable companies will be responsible.

They aren't all responsible because we don't all vote with our wallets that way.

Look at the demand for health food these days even causes McDonald's to offer salads. Change demand, and you change supply.

> We have an obesity epidemic. More people in this country are overweight than > not overweight. It's becoming a national health crisis, and costing us a lot > of money.

Each individual is responsible for his/her own health. We can't legislate unhealthy lifestyles away. We can only educate and motivate people to learn more and take control of their own health, starting from not visiting the highly popular junk food isles.

</comment></comment></comment></comment></comment></comment><comment><USER8> Even though I eat a generally healthy diet, even I can't resist the pull of the Dorito... There's just something about salty, savoury, crispy, fatty and sometimes spicy treats that is so appealing.

</comment><comment><USER9> I forget where I read it, but a while back Frito-Lay food scientists were actually able to eliminate the 'gold dust' from Doritos. Focus groups for the new chips -- that had the exact same taste and 'biology', just without the dust -- revealed that consumers hated them, because at some level we equate flavor with the dust (and thus lack of dust with lack of flavor.)

<comment><USER10> I remember reading that (probably on imgur). I looked it up but first result wasn't promising: [http://wafflesatnoon.com/2013/05/07/doritos-powder- hoax/](http://wafflesatnoon.com/2013/05/07/doritos-powder-hoax/)

I can't really dig too much deeper because I am at work but it really seems unlikely that they would pay for a powder that isn't needed.

</comment></comment><comment><USER11> I love this flavor... reading this article makes me wish I had a bag right now.

</comment><comment><USER12> This article read like a commercial.

</comment><comment><USER13> I'm curious if they understood all these concepts when they created the chips or if they were developed afterwards and realized this is why we love them.

<comment><USER14> [http://en.wikipedia.org/wiki/Doritos](http://en.wikipedia.org/wiki/Doritos)

 _The original product was made at the Casa de Fritos at Disneyland in Anaheim, California. Using surplus tortillas, the company-owned restaurant cut them up and fried them (as in traditional Mexican chips called totopos) and added basic seasoning, resembling the Mexican chilaquiles, but in this case being dry. Arch West was the Vice President of Marketing of Frito-Lay at the time, and noticed the popularity. He made a deal with Alex Foods in 1964, the provider of many items for Casa de Fritos at Disneyland, and produced the chips for a short time regionally, before it was overwhelmed by the volume, and Frito-Lay moved the production in-house to its Tulsa plant._

Sounds like the chips came first. It wouldn't surprise me if the additional flavors of doritos were experiments studying the phenomenon, and plunged back into reformulations of the original.

</comment></comment><comment><USER15> This page isn't rendering correctly, text is overlapping with images. Good job NYT.

I'm on Firefox, btw.

</comment><comment><USER16> reads like a syndicated article

</comment><comment><USER17> Nacho Doritos - I don't even know why they make other chips anymore.</comment>


In Defense of Parenthood: new study shows children bring happiness [pdf] - <AUTHOR> http://www.faculty.ucr.edu/~sonja/papers/NKEDLinpress.pdf

<comment><USER2> A quote: "Recent scholarly and media accounts paint a portrait of unhappy parents who find remarkably little joy in taking care of their children, but the scientific basis for these claims remains inconclusive."

Yes, and this study suffers from the same problem -- insufficient rigor, obvious bias on the part of the investigators, no control group, sloppy experimental design. A typical psychology study that discovers exactly what the researchers expected to discover.

A meta-analysis of all the studies on this topic would produce nothing that would contradict the null hypothesis (of no significant measured effect), as has recently happened with respect to depression medications.

It's not science, it's psychological science.

</comment><comment><USER3> What is happiness? How can you objectively evaluate if a person is happier than his friend?

<comment><USER4> Oh, you just measure the SPH (smiles per hour), substract the SWI (swear word index) and voila, you have a number</comment></comment>