Errors and Exceptions - <AUTHOR> https://giantfublog.wordpress.com/2015/03/11/errors-and-exceptions/

<comment><USER2> Well, that's one position on the subject. The Rust people prefer option 3 over option 4. Go takes the same approach. Python prefers exceptions, and the exception hierarchy puts (almost) all the exceptions which result from external problems under EnvironmentError.

Much of the trouble with error returns comes from the strange C convention that functions with return values can be called as if they didn't return a value. This is a consequence of the original K&R PDP-11 implementation without function prototypes, and has messed up programmers for four decades now.

RAII (resource acquisition is initialization) is popular in C++, but if anything goes wrong in a destructor, things usually come unglued. I/O errors on file close where close is via a destructor tend to be either ignored or fatal. Python "with" clauses handle failure during release better. This was well thought out in Python; exceptions in "with" clause exits are handled rationally.

With Javascript, you get none of the above, although you can build it out of the primitives, and there are kludges to do this.

<comment><USER3> I also prefer option 3 over option 4. It bothers me that the article recommends exceptions without seeming to understand their drawbacks (the major one: as soon as you use exceptions you suddenly need to apply nonlocal reasoning everywhere in order to understand what your program will do at any point. They turn your program from a simple local thing into a complex nonlocal thing, which is not a good idea if you want to understand it well.)

This article seems not to have a lot in the way of new contribution; it is just parroting the oft-repeated idea that you need exceptions to pass "error information" up several layers of abstraction. But here is what I think about this:

1) In this age when we are realizing strong typing is a good idea, that hidden state is a bad idea, and that in general you should be very specific about what is going on, why are we even conceptualizing this as "error information"? Why instead, when we try to open a file, do we not return "all information you might need to know in the case of opening a file" (which includes what happened if it didn't open properly). As soon as you make that conceptual switch, all this hand-wringing goes away. It's a non-problem. You certainly shouldn't add heinous complications to your program to solve this non-problem.

1a) This conceptual change also helps disambiguate between what the article calls "hard errors" and "soft errors". In portions of the code where you have attempted an operation that might have failed, and you are not completely sure that it didn't fail, you have the full body of "what happened" information (it is a small struct or whatever). After the situation has been checked and you know it is exactly what you need to be, you may drop the other information and pass the raw file handle. At this point it is clear that these parts of the code should only be executed if the file handle is valid, and if that is not true, the programmer made an error. This is analogous to the situation with nullable and non-nullable pointers (in some languages you would even use the same mechanisms to deal with null pointers and invalid file handles, etc, but I am not sure this is really helpful.)

2) If one insists on not making the simplifying leap from (1), well, maybe the other problem is that you have so many layers. If you didn't have so much glue, your code would be simpler and easier to deal with, and it would run faster, and you wouldn't be so worried about needing to pass lots of context information up several layers between modules, because those situations don't really arise.

<comment><USER4> _In this age when we are realizing strong typing is a good idea, that hidden state is a bad idea, and that in general you should be very specific about what is going on_

Java tried to be typesafe about errors, about not obscuring the state, and it was a dreadful idea. The way code fails is a function of its implementation; communicating high quality error information is fundamentally an abstraction violation, but a strongly typed facade that forces you to rewrap all your error cases in some other type just obscures the underlying problem.

Strongly typed error information also breaks composability. How do you write a 'map' function that can accept a callback, where the callback may want to communicate back one of several distinct kinds of error information? With unchecked exceptions, the way forward is clear. Without them, you either need to write a lot of boilerplate to unify your error types in some kind of container, or rely on subtyping to fit them into a single type and live with the lack of strong typing via another route.

Dynamically typed programming languages improve usability over statically typed languages particularly when a precise description of the types used in the static case is difficult or tedious to express. Error information, and its intrinsic implementation-dependent content, is one of the strongest instances of this.

<comment><USER5> You could have checked exceptions with more flexibility than Java had, and it might work out well (or might break down for other reasons).

 _" How do you write a 'map' function that can accept a callback, where the callback may want to communicate back one of several distinct kinds of error?"_

With Java style checked exceptions, you don't, and that's for sure a problem.

However, one approach would be to say that map is polymorphic in the exceptions that may be raised from within it. But that set is not entirely unbounded - it is precisely the set that can be raised by its function argument, unioned with any that might be raised during traversal of its container argument.

</comment></comment></comment></comment><comment><USER6> And option number five, conditions + restarts, [http://www.lispworks.com/documentation/lw61/CLHS/Body/09_a.h...](http://www.lispworks.com/documentation/lw61/CLHS/Body/09_a.htm), which is a bit like more formalised callbacks / exceptions depending on usage. Restarts are a great thing for both interactive (using a "continue" restart if e.g. something can be safely skipped) and programmatic usage (to customise an algorithm where you control from the outside whether a restart should be invoked in case of a "soft" exception/condition).

</comment><comment><USER7> He talks about "soft" errors as if the only way to handle them is to propagate them up to the UI layer, displaying a message.

In many situations the error handling affects the code paths at a more profound level. Something might be considered an error in the callee, but at the same time it might be an acceptable result in the caller, for which a well-defined path exists. Throwing an exception in such situations is just disconnecting the faulting code from the error handling code.

<comment><USER8> The perspective is about layered code and reuse. So what is wrong with delegation? My file access library should not know that it is linked in an application with an UI. Throwing an exception just delegates the issue to the code which depends on me. Whether the IO exception is really a problem can only be decided by the user of my library.

</comment></comment><comment> Const-me Exceptions only work well in managed languages like C#, Java, Python.

In C++ they don't.

In C++, error codes FTW. On Windows you usually return HRESULT, call FAILED/SUCEEDED macros to check, call OS-provided FormatMessage API to format an error (the messages are of course localized). If you're using some 3rd party library that uses its own error codes, it's usually trivial to pack them in HRESULT when failed, check HRESULT facility when formatting.

In C++, exceptions have fatal disadvantage: they don't work across modules. Two reasons: (1) C++ exceptions aren't binary compatible across compilers (2) memory management isn't compatible across compilers either, if some module has called new/malloc, the same module must call delete/free

<comment><USER9> Don't really agree, this seems too general? It's a matter of preference, what level you're working on and of what is possible. For example you're writing C++ which is going to be wrapped in a C-style api then yes you are going to need those error codes. If you are writing an application using some C++ api with well-defined exceptions then using them might lead to much nicer code. Consider some function in main() which takes care of a ton of initialization; I just happen to prefer

      try
      {
        MethodA();
        MethodB();
        MethodC();
      }
      catch( const FooException& e )
      {
        //show e
        return 1;
      }
      catch( const BarException& e )
      {
        //show e
        return 1;
      }

over

      auto resulta = MethodA();
      if( FAILED( resulta ) )
      {
        //show result
        return 1;
      }
      auto resultb = MethodB();
      if( FAILED( resultb ) )
      {
        //show result
        return 1;
      }
      auto resultc = MethodC();
      if( FAILED( resultc ) )
      {
        //show result
        return 1;
      }

_they don't work across modules_

A problem which fades away if you build all code using the same compiler and build settings, which is a good idea anyway (there's not much which works across modules when mixing e.g. debug and release builds). I've written a lot of C++, and misbehaving across modules is like the _one_ thing I didn't have problems with :]

<comment><USER10> Go read one of Herb Sutter's "Exceptional C++" books. Okay, just read the _first_ one. If you don't close the book and reflect, "I am never writing this shit," Herb didn't do his job.

Writing exception-safe code in C++ is very hard.

Depending on another module's authors to get their C++ exception handling right is the road to madness.

In the example above, the FAILED clauses clearly handle all the failures. In the exception handling example it is not clear if all the failures are caught, or if they are more that are meant to be caught at higher levels, or perhaps exceptions were forgotten. It becomes very difficult to reason about control flow because exceptions distribute it across the program and over time. Someone might add another exception: Oops, you didn't handle FileNotFoundException and your program bombs. You add a new exception that seems reasonable, but you wind up changing a hundred places in your source code (... and your callers! hope you have good customer support).

Exceptions are exceptional, they should not be used to return indications of failure. Exceptions should be used when it's lights-out important that something Really Bad be handled or the program will be killed. Most C++ systems I've worked with catch an exception near the top, do some diagnostics, and either tell the use "wups" or attempt to restart.

A "FileNotFound" exception from an open() function is just colossally stupid. I don't have a nicer way of saying that. If I saw code with this pattern in a project that I was on, I would remove it and make sure it didn't happen again.

<comment><USER11> _If you don 't close the book and reflect, "I am never writing this shit," Herb didn't do his job._

The same Herb who said _Prefer to Use Exceptions to Report Errors_? (which makes no sense btw, just like saying to never ever use them)

 _Depending on another module 's authors to get their C++ exception handling right is the road to madness._

Wait, so we should just forget about STL/boost/.. and reinvent all wheels? Or maybe just all code - depending on another module's authors to get their error code handling right, as in not ignoring all of them, is also madness.

 _You add a new exception that seems reasonable, but you wind up changing a hundred places in your source code (... and your callers! hope you have good customer support)._

That is just not how proper code using exceptions gets written, ever. Anyone can make up similar horror stories for error codes (you are checking if HR is FILE_NOT_FOUND or FILE_NOT_ACCESSIBLE but suddenly the author changed the name into FOOFILE_NOT_FOUND and now you wind up changing a hundred places in your source code) Callers know what exceptions they can handle (if they don't the code is crap anyway) and handle those. If a caller wants to provide a strong guarantee the caller catches everything and nothing is forgotten. Everything else is truly exceptional and bubbles up, eventually to the top like all most C++ systems you saw.

<comment><USER5> _" you are checking if HR is FILE_NOT_FOUND or FILE_NOT_ACCESSIBLE but suddenly the author changed the name into FOOFILE_NOT_FOUND and now you wind up changing a hundred places in your source code"_

Not weighing in on the broader discussion (in this comment), but more languages support exhaustiveness checking of case statements than of exceptions.

</comment></comment></comment></comment></comment><comment><USER12> This article caused me to lose my faith in exceptions : [http://ptgmedia.pearsoncmg.com/images/020163371x/supplements...](http://ptgmedia.pearsoncmg.com/images/020163371x/supplements/Exception_Handling_Article.html)

<comment><USER13> That article is extremely outdated and by today standards quite ill-informed. Many of its arguments could be equally made for error codes.

Try some of these instead:

        http://channel9.msdn.com/Shows/Going+Deep/C-and-Beyond-2012-Andrei-Alexandrescu-Systematic-Error-Handling-in-C
        www.boost.org/community/exception_safety.html
        https://github.com/Quiark/CppExceptDetails
        http://www.boost.org/community/error_handling.html

</comment></comment><comment><USER14> Regarding what he calls "soft errors" (a better name would be environmental errors, I think), it's unfortunate that option 2 (error handlers) is so often neglected by programming language designers (for example Code Complete doesn't mention option 2 at all).

In my view, just like option 4 (exceptions) is more general than option 3 (return values), also option 2 is more general than option 4. The biggest advantage of 2 compared to 4 is that recovery is much easier. However, more generality also unfortunately means more complexity (both for programmer and runtime). That's why many people here prefer 3 to 4 or 2, and neither one of them is really better than the other.

Common Lisp is a good example of language that has good support for all three. It can return multiple values which facilitates option 3, it has usual exceptions as option 4, and most importantly, it also has signals and restarts that serve as option 2.

I would classify what he calls hard errors into two categories. One is inconsistent input and the other internal (logic) error. This depends on level of view, if you are looking only at one module or a bigger whole (inconsistent input into one module from the other can be considered internal error in the whole).

Now, I don't think inconsistent input should be dealt with asserts. If it's worth checking the inconsistent input at the module boundary, do it and return an error (in any of the three ways mentioned above). The caller should decide whether or not this is a logic error (it may also be bad input from the user), and how to handle the failure.

While I agree with the statement that on logic errors one should generally fail hard, sometimes it's not desirable, for instance in server you may want to just restart the wrong thread instead of shutting down the whole server.

Finally, I think asserts are very much underrated in the current development practices, compared to tests. I wish the effort spent on testing frameworks would be spent on frameworks that would let you add lots of asserts into the code and turn them on/off as needed (for example based on required tradeoff between reliability and performance).

</comment><comment><AUTHOR> Some interesting discussion here.

First of all it seems that some people are still having a bit muddled vision about _what_ is an exceptional error/condition. Of course you will need to first define what constitutes an exceptional situation in your application and its domain. The blog post used a file opening as an example. That example implied that in that software, in that particular context we have a requirement that our file _must_ be opened. If for some reason it cannot be opened we have grounds for an exceptional condition. When we have this condition we then choose some particular method/means for how to indicate the situation and how to deal with it.

We can also demonstrate this the otherway around. Someone mentioned as an example something like a (web)server. Obviously in that application's domain not being able to open and serve some file is just a part of the normal flow. Clients may make request to resources that do not exist. So in that example that would not be an exceptional circustamce but the "FILE NOT FOUND" condition is just part of the normal conditional flow of the program.

However in that same server we might be for example reading the initial configuration file when the program is started and if we fail to open the file then we might have grounds for an exceptional situation.

So to sum this up, what constitutes an exception situtation is all up to the domain of the program. The blog post discussed methods for dealing with that situation. This is an important point to realize.

Finally a note on assert, yes there are cases when you can't hard fail and core dump on assert as much as you would like to. For example when implementing API's that define error return values for "hard failure" conditions. Whether this is sensible practice and makes the software world better or worse is a matter for another discussion.

</comment><comment><USER15> It's a bit sad (and an indictment to "modern" languages) that option 5 "Conditions" (resumable/non-unwinding exceptions) is not mentioned.

<comment><USER16> How is that different to option 2?

<comment><USER15> It has nothing in common with 2. It's an extension of 4 where the eventual (dynamically scoped) handler is executed on the non-unwound stack and may unwind the stack (same as an exception), perform an action on the non-unwound system (e.g. resume, resume with a value provided, resume with a restart specified, repeat, etc…) or dynamically opt to resume looking up handlers.

<comment><USER14> I have to disagree. Historically, conditions and restarts came from Multics and PL/I. There is also similar thing in IBM z/OS, descendant of MVS (ESTAE recovery routines). When ESTAE is invoked, you can decide where you want to recover (since it's assembler you may unwind stack if you have one), or you can "percolate", which means to pass processing on the next error handler. Unix signals is probably another descendant. So in the 1960s, recovery by error handler (the option 2) was very common thing. It only got a bit forgotten later due to them not being properly supported in C, so it didn't get into C++ and Java due to cultural disconnect.

</comment></comment></comment></comment><comment><USER17> No discussion of errors and exceptions could be complete without including Erlang (/OTP)! How does its philosophy of fail fast and rely on your supervisor to restart fit into 1-4? I've been dabbling in Elixir lately, and I really like how easy it makes writing the "happy path", while still robustly handling errors.

</comment><comment><USER18> I find anything but a Result<T, E> ADT to be a poor solution. Errors shouldn't have language-level support (exceptions), and error codes are just a poor implementation of a result ADT - they cannot be enforced by the type system.

Result is a monad, so it doesn't require an alternative code path. It's the cleanest and safest.

"Exceptions" should always be for fatal, irrecoverable errors (array index out of bounds). I'm okay with having them, but I don't think languages should support "catch".

<comment><USER19> How about using an algebraic effect system? That's sort of a general purpose alternative to monads that also doesn't require an extra code path, and adds a bit of theoretical niceness. For example, if your code can throw two different exceptions, composing two monads is order-sensitive (because the monad interface is in some sense too general and forgets too much), while algebraic effects always commute with each other.

<comment><USER18> True. I could rephrase as "the possibility of errors is just another type, and is best treated as such"?

</comment></comment></comment><comment><USER20> Great post. Soft errors have a different meaning altogether in electronics. It's an interesting read.

[https://en.m.wikipedia.org/wiki/Soft_error](https://en.m.wikipedia.org/wiki/Soft_error)</comment>


Research: The Average Age of a Successful Startup Founder Is 45 (2018) - <AUTHOR> https://hbr.org/2018/07/research-the-average-age-of-a-successful-startup-founder-is-45?gig_events=socialize.login <comment><USER2> It makes sense that the average is roughly in that bracket, and that you wouldn't know it if you just read the news.

Someone young starting a company that grows massively is in itself newsworthy in the modern world. So you tend to think those stories will float to the top regardless of what industry they're in. On top of that, when is someone young with no connections or experience going to have a chance? In a new industry, where everyone is like that. And new industries are unsurprisingly also newsworthy.

But not everything is some revolution that's about to explode and eat the world. Quite a lot of new businesses are only identifiable as opportunities by people who've been in an old business.

For instance a friend of mine just did a seed round for a finance startup that you'd have problems understanding if you didn't work in fund management. And of course he has the connections needed to get the first customers. Mid forties.

Another friend, also mid-forties, is doing the same in pharma. He found yet another thing that you'd never know was a problem if you hadn't worked in the industry.

</comment><comment><USER3> It would be interesting to see the valuation-weighted average.</comment>


How the Fed Funds Rate Impacts the Wealthfront Cash Account - <AUTHOR> https://blog.wealthfront.com/how-the-fed-funds-rate-impacts-the-wealthfront-cash-account/ <comment><USER2> That's an awful lot of explaining for a pretty simple concept. Fed funds rate is a benchmark interest rate that Wealthfront, like many products, is tied to.

Rate goes down, and your interest payment goes down.

I suspect this has to do with fact that there has never been a rate decrease in the lifetime of the product:

> Wealthfront Inc. is an automated investment service firm based in Redwood > City, California,[2][3][4][5] founded by Andy Rachleff and Dan Carroll in > 2008

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

The decrease came only as a surprise to those who weren't paying attention.

The rate is in all likelihood headed to zero and below, just like so many other industrialized economies have already done.

If that comes as a surprise then once again, you haven't been paying attention.

<comment><USER3> Indeed, word on The Street leading up to the announcement was 0.25 rate cute was most likely followed by a small likelihood of 0.50 cut. No surprise.

I disagree, however, that rates are going to zero in the States. ZIRP/NIRP are going very badly in EU and JP and The Fed does not want to replicate that outcome. What's more likely is a long-term interest rate peg before cutting short-term rates that low.

<comment><USER4> PSA: You can track market sentiment with regards to rate cuts here: [https://www.cmegroup.com/trading/interest-rates/countdown- to...](https://www.cmegroup.com/trading/interest-rates/countdown-to-fomc.html) (CME FedWatch Tool)

</comment></comment></comment><comment><USER5> Frankly, I don't trust anything Wealthfront says about this product. Try invoking arbitration opt-out as per your right in 18-A of the Wealthfront ToS: turns out they don't actually support opt out, and will gladly cancel your account if you insist on having it. Makes you wonder what else in their contract they won't adhere to.

</comment><comment><USER6> They say multiple times that this decrease was unexpected but it seemed to be pretty well telegraphed based on my read of the situation.

Is this article for customers that don't know what interest rates are so they are not upset about a lower rate?

<comment><USER7> This article is advertising for their product, nothing more.

</comment></comment><comment><USER8> "The vast majority of our competitors will likely lower their rates even more than 0.25%" is silly FUD

Personal Capital & Betterment are lowering their rates on their high yield accounts by the same 0.25%

<comment><USER9> Sofi and a bunch of other high yield checking/savings accounts are doing the same

</comment></comment><comment><USER10> Why are people upvoting this? It's a thinly veiled ad for Wealthfront with minimal content. How is anyone surprised that savings account interest rates are tied to Fed rates?

<comment><USER11> How is there minimal content? It's a simple explanation of how how Fed rates impact interest rates. People have to learn about these things _somewhere_ ; I learned about it from this article.

</comment></comment><comment><USER12> Slightly off topic: does anyone know if Wealthfront manages HSAs? I really have liked their stuff and would like to "rollover" (not sure if that's the proper term) an old former employer HSA to them.

<comment><USER13> Doesn't appear that they do, based on Google, but I can offer a suggestion, Fidelity is the best place to keep your HSA. No fees and excellent investment options.

<comment><USER12> Thanks! Didn't know Fidelity did that. I'll see about rolling over to them for now.

<comment><USER13> It's new - They've done HSAs for employers for more than a decade but they just very recently opened them up to individuals.

I have an individual HSA with Fidelity, so I'm speaking from experience.

</comment></comment></comment></comment><comment><USER14> I have a high interest savings account with Marcus by Goldman Sachs. They used to pay out 2.25% but lowered to 2.15% recently. There are a few big red flags about Wealthfront for me...

1.) They claim to offer FDIC-insured up to $1 million, yet on the official FDIC website, and as far as I understand they only insure up to $250,000 per account. How is $1M possible?

2.) With the 10 year and 2 year US treasury yields plumitting well below 2% today, I don't understand how wealthfront can continue to offer 2.57% without taking a loss.

<comment><USER15> The way they and their competitor, betterment, work is that they distribute your funds to a real bank or up to 4 of them for that 1m FDIC insurance.

The real risk I see using them is the money transition period from your current bank to their partner banks while moving the funds. It's why I opted for a traditional bank with high yield savings but not as high as theirs.

I'd be interested to know how they explain FDIC insurance during the transitional period. I could be wrong and they have that covered, too.

<comment><USER16> It's not FDIC covered during the transitional period, and they don't say how long the transitional period is either.

<comment><USER11> What is the transitional period? Is it that when you make a deposit, you're actually transferring to Wealthfront, which distributes it to the real bank accounts they keep your money in?

<comment><USER16> Yes, that's my understanding. But there's no guarantee that Wealthfront transfers to the FDIC-insured bank accounts as soon as possible. For all we know, Wealthfront could hold on to it for weeks.

</comment></comment></comment></comment></comment><comment><USER17> The dopes that are saving in USD will pay a huge inflation tax. Same for the bond holders (aka bag holders) too.

<comment><USER18> What's the alternative?

Stash it under the mattress so you don't make _any_ gains that can be taxed?

Save it in gold so you can be taxed as capital gains (unless you suffer a capital loss)?

Save in stocks & shares so you can be taxed on your capital gains _and_ dividends? Good luck if you need to fix your boiler in the middle of a down turn.

Bitcoin? That has proven itself to be a rock stable currency and you still won't avoid losing your shirt / capital gains tax.

<comment><USER19> Technically you would've 'lost your shirt' in bitcoin if you had bought it during only 2 of the last 520+ months...

<comment><USER20> But those two months happen to be the months where _everyone_ was buying. That's what made the price rise so dramatically.

<comment><USER21> > happen to be the months where everyone was buying.

So, in many ways the way any market distortion happens. If everybody else is buying, sell. If everybody else is selling, buy.

<comment><USER22> > If everybody else is buying, sell. If everybody else is selling, buy.

As always, the market can remain irrational longer than you can remain solvent.</comment></comment></comment></comment></comment></comment>


Tell HN: the iPad is hot in small businesses - <AUTHOR>

http://techpinions.com/the-ipad-is-hot-in-small-business/2668<p>There must be startup opportunities there. <comment><AUTHOR> Clickable [http://techpinions.com/the-ipad-is-hot-in-small- business/266...](http://techpinions.com/the-ipad-is-hot-in-small- business/2668)

</comment><comment><USER2> I wonder, why haven't you just submitted it as a url?</comment>


Apple: Always 'Late'. Never the Bridesmaid - <AUTHOR> http://mentalfaculty.tumblr.com

<comment><USER2> There's a lot of good things about Apple. One of the worst is this cottage industry of self-appointed evangelists with their constant need to re-assure themselves of a reality that gets less recognizable with every retelling.

Remember when Apple swept in late to the social networking party with Ping and killed Facebook? No, me neither. So much for "never the bridesmaid".

Remember when Steve Jobs removed the floppy disk from his computers and it went down like a lead balloon? No, hold on a minute, you've probably been told endlessly about the second time he did this, and how it cemented him as an infallible prophet of where computing was going, but I'm talking about the first time he tried it with Next a decade earlier and they had to go back to floppy disks.

It's bad enough getting fed BS from people with billions in stock options to protect, and where it's literally their job to put the best possible spin on things. The amateurs just make it all so much more tragic. There's no information in these things, anything that doesn't fit the storyline gets dropped or rewritten, so you're left with nothing (or worse, a false impression of something). Mostly it's just empty noise though.

</comment><comment><AUTHOR> I think this is not a bad thing actually. Think of the iPod. Lots of devices pre-dated the iPod, in fact I got a Diamond Rio ([http://en.wikipedia.org/wiki/Rio_PMP300](http://en.wikipedia.org/wiki/Rio_PMP300)) for a wedding present. It was horrible. I had a portable CD player and I much preferred carrying that around and a small pack of CDs than the Diamond Rio which was difficult to use, difficult to load songs onto, and only held about 30min of music (and only at 128kbit/s at that).

Then the iPod came out and it was basically like Apple announcing to the world "OK GUYS HERE'S HOW YOU DO IT PROPERLY"

I think the same thing will happen with the iWatch.

AppleTV may take a while longer to negotiate licensing deals etc... but as Apple showed with music, they can do it. Also they have a head start with relationships in the business and knowledge of how to negotiate these things.</comment>


The funnel of human experience - <AUTHOR> https://www.lesswrong.com/posts/SwBEJapZNzWFifLN6/the-funnel-of-human-experience <comment><AUTHOR> You often hear startups using the term: man hours to describe how popular something is.

YouTube uploads x amounts of years of content every minute.

Cool to see it illustrated across time.</comment>


iPhone - nice, but not for me - <AUTHOR> http://journal.dedasys.com/articles/2008/03/07/iphone-nice-but-not-for-me <comment><USER2> This reminds me a lot of the coverage of the Wii before its release. Some people don't seem to grasp the huge difference between what Apple (and Nintendo with the Wii) have done compared to previous mobile platforms. We are looking at a first of its kind device that has the potential to wildly grow the smart phone market to be the mainstream of phone users, plus a big chunk of gamers, plus... the appeal is just so huge.

<comment><AUTHOR> It's very well executed, no doubt about that. But is the technology a great leap forward? I'm inclined to think not really. Just good execution and good design - nothing to scoff at, but not a revolution, either.

<comment><USER2> Exactly. The Wii doesn't contain any new technology either, nor is it even as powerful in specific measures compared to its competitors. I think this is a similar situation of the right execution of good design and execution of the full system that will bring a big change.

<comment><AUTHOR> Have you looked at Android, BTW? It's not as polished and slick, but technically it's pretty close, and certainly better in some areas like the ability to run background processes. And it's going to be _way_ more open. "Technically equivalent + open" gives it a lot of potential, I think.

</comment></comment></comment></comment><comment><USER3> A few close friends and family have an iPhone. But to be honest Nokia's e90 Communicator looks better to me. It kicks the crap out of the iPphone's features. I would rather have 3G, GPS, 3 megapixel camera, and a keyboard with tactile feedback. To each their own...

<comment><USER4> I agree. I am using Nokia e50 which is great too. I am waiting for Nokia to upgrade n95 with iPhone competitive features.</comment></comment>


Show HN: How does your Australian MP vote on issues that matter to you? - <AUTHOR> https://theyvoteforyou.org.au/

<comment><USER2> Good work, this looks like a great resource. I've always found your hansard alerts incredibly useful. Another interesting resource for Australian politics is the ABC's (relatively) new FactCheck service ([http://www.abc.net.au/news/factcheck](http://www.abc.net.au/news/factcheck)).</comment>


The Culture of Shut Up - <AUTHOR> http://www.theatlantic.com/politics/archive/2014/04/the-culture-of-shut-up/360239/

<comment><USER2> One of the best things I've read lately. Have we really just gained this communication freedom to use it to tell each other to stay in line and shut up?

<comment><AUTHOR> Agreed. Quite interesting. It's often very true in the tech industry as well. I've found that many Alpha personalities will dominate conversations and stifle interaction, which, while sometimes productive (nobody loves a rabbit trail), can also stop potential ideas from surfacing to the top.

</comment></comment><comment><USER3> An unusual and piquant analysis of Internet debate culture.</comment>


Bill Gates 2013 Annual Letter - <AUTHOR> http://annualletter.gatesfoundation.org/ <comment><AUTHOR> Bill Gates always seemed like a more appropriate person to idol, if you must do such things, than Steve Jobs. Not only did he build the worlds largest technology company (in its time), but he's making a global philanthropic impact.

<comment><USER2> _Not only did he build the worlds largest technology company_

With what tactics and strategies, though?

 _he's making a global philanthropic impact._

How would one measure the destruction Microsoft caused? The wasted time? The wasted money, the wasted lifes? I mean, if HNers can scream bloody murder about Shirley Hornstein "stealing jobs that would have gone to others" ( <http://news.ycombinator.com/item?id=5135436> ), surely that should enter into this as well. If someone takes with one hand and gives with the other, you can't just count the giving. Well you can, but I can't follow. Personally, I judge people solely by how they react to a pie to the face, and Bill Gates scored quite low on that.

<comment><USER3> __How would one measure the destruction Microsoft caused? The wasted time? The wasted money, the wasted lifes? __

Wat. I'm sure lots of work that gets done at Microsoft is misguided or redundant. Welcome to working at a big company. The pay is competitive and the environment, from what I hear, is some of the best in the software industry. It's not some sweatshop where you're forced to toil for pennies; I bet a lot of people here would enjoy and benefit from the experience of "wasting their lives" at MSFT for a few years.

<comment><USER4> I think he meant the time 'wasted' or perhaps just used working with Microsoft Windows. Rebooting, configuring/reinstalling every few months, etc.

Every reboot required during the install or upgrade of a Microsoft product multiplied by an install base of hundreds of millions of machines is a big number.

(Not that this is really relevant to Bill Gates's work today)

</comment></comment></comment></comment><comment><USER5> Kottke's Report on it is very interesting: <http://kottke.org/13/01/read-bill- gates-annual-letter>

</comment><comment><USER6> This five-part exchange between a public education advocate and a member of the Gates Foundation team working on education was eye opening.

[http://blogs.edweek.org/teachers/living-in- dialogue/2012/07/...](http://blogs.edweek.org/teachers/living-in- dialogue/2012/07/dialogue_with_the_gates_founda.html)

The Gates Foundation work is and will likely continue to be disastrous for public education in the U.S. It is simply an attempt to push education into the private sector.

<comment><USER7> He's pushing for same review system MS uses to be implemented into public schools in order to increase their school rankings, which is apparently riddled with corruption and ineffective according to ex employees like this guy: [http://www.qbrundage.com/michaelb/pubs/essays/working_at_mic...](http://www.qbrundage.com/michaelb/pubs/essays/working_at_microsoft.html)

"Microsoft's review system, in which a mid-level manager has significant control over all the review scores within a 100+ person group (so it's in your best interest to get on his/her good side), and conversely needs only a fraction of that group's total support to succeed as a manager (so it's in his/her best interest to cultivate a loyal fanclub to provide that support). The cult gives the manager the appearance of broad support, and makes the few people who speak out against him/her look like sour grapes unrepresentative of a larger majority. After a string of successes, the manager is nearly invincible."

</comment></comment><comment><USER8> The letter led me to wonder about measurment and results in the world of "doing good". I was wondering what this forum's thoughts on the matter are. Should we only fund the things that get results? How should we quantify our results? And probably most importantly: what do we choose to measure? (Decrease in rainforest destruction vs companies that choose to use non rainforest sources for wood or palm oil?)

I worry sometimes--and I co-founded an organization that brings data science to civic and social organizations--that this will be similar to No Child Left Behind (or World Bank like), where non profits do what is best for their metric instead of what is best for the population they are trying to serve.

</comment><comment><USER9> Gates' legacy will ultimately be his foundation, more so than Microsoft.

<comment><USER10> Like Carnegie before him.

<comment><USER11> The Gates Foundation's answer to the thousands of _public_ libraries Carnegie built is . . . the Khan Academy?

<comment><USER12> If I were a bettin' man I'd wager that more people have access to the internet than to public libraries.

Also, no one ever snags that last book that you really need for class. (Instead publishers charge you out the ass for a digital copy you dont even own!)

</comment></comment></comment></comment><comment><USER13> Steve Jobs keeps coming up in this thread. People seem to be missing two very important things regarding him.

Warren Buffett is giving his wealth away, but he isn't doing much actual charitable giving of his own direction. If you read up on it, you'll find that Buffett regards the best use of his time to be capital allocation, aka running Berkshire to generate profit. And then giving that wealth generation to the Gates Foundation to distribute. Why? In Buffett's own words, he thinks he would suck at distribution, so he picked someone better to do it.

Buffett is regarded as an important philanthropist now. However, he had no intention of being that during his lifetime. Susan was supposed to give his wealth away, but she (unexpectedly) died before him, forcing Buffett to change course. I assume I don't need to elaborate the point that things are not so linear as so many here seem to think.

Has anybody considered that Jobs regarded his best gift as building products? And that his wife would be far better at giving the wealth away.

Jobs died at a mere 56 years of age. He was sick for seven years with a form of cancer that is particularly hard to cure. If we're talking about his fortune, in all likelihood his best use of time was to drive Apple forward (he held something like $2 billion worth of Apple stock), and complete the sale of Pixar to Disney (2006) to secure his billions there as well.

Was Jobs going to suddenly become an amazing philanthropist, while dying from a horrific cancer, while running Apple and Pixar? This is an absurd notion. Bill Gates - by all accounts a highly productive person - had to leave his work at Microsoft in order to become a good philanthropist and go full time at the Gates Foundation.

Gates will spend the rest of his life on the philanthropy course. There was no 'rest of his life' for Jobs, his wife will fulfill that end. His wife will be the great philanthropist. And I believe it's very likely that was exactly what he had in mind. That thought is amplified by his lack of affection for wealth, there's no reason to think Jobs was desperate to hold onto it so he could buy mansions and leave his children billions. The logical conclusion is, he didn't view himself as the one to do the giving. Laurene is a mere 48 years old, she has a long life of giving ahead of her, bet on it.

<comment><USER14> It would seem that steve jobs was more interested in suing other companies than anything non-ego driven. He wouldn't even pay up for his super-expensive titanium boat.

I'll keep betting on Bill and Warren to save the world, thanks.

</comment></comment><comment><USER15> I don't know how many of you who have followed the link where offered the reader survey as you visited the link. I found that interesting, in that it asked a few of the same questions before reading the page, with my consent, and then again after I read it. I suppose the questions are designed to track attitudinal change from reading the page. I had read some of the page content earlier as the New York Times op-ed, which I think was also submitted here to HN.

I will always rail at Microsoft products, although I still use them. (Two of my four children have already switched to Linux for their PCs, but I'm still an old Windoze fuddy-duddy.) I do like Bill Gates's approach to philanthropy a lot. I particularly like the Gates Foundation research on effective teaching, some of which I apply to my own work as a mathematics teacher in private practice. Helping charities become more effective would indeed be a great contribution to society.

</comment><comment><USER16> I am happy to be building the startup (BloomBoard) that Colorado is using to assess the quality of their teachers =)</comment>


Ask HN: Freelancers / Hourly workers – how do you track your time and get paid? - <AUTHOR>

I've been freelancing for a few years now, and have always used a plain text file (or a spreadsheet if I'm feeling industrious). I've tried a few time trackers over the years but always end up forgetting to pause or start it back up, and end up having to do it all manually anyway.<p>So then there's the second part - how do you invoice clients? Personally I've just used excel templates and my clients have been happy paying with dwolla.com after the initial setup. How much in fees do you end up paying with other providers? Do any particular features make it worth it?<p>(full disclosure: I'm building a nearly fully automated time tracking and invoicing app which works great with my workflows, so I'm trying to get a sense of whether other freelancers have the same pain points I do and/or if it could work if I productized it...) Thanks! <comment><USER3> I used harvest; along with good notes about what type of work each block was. Hit a button, instant invoice. Really great product.

The time tracking marked is already oversaturated with competitors - I can think of a half dozen from memory, I'm sure there's many more than that. Good luck to you sir - I hope you have a worth while differentiation strategy.

If I may be so bold as to suggest: build a product that's great, rather than cheap. Competing on price for a service like time tracking is silly - <USER2> who needs such a service won't care if its $6 a month or $25 a month, as long as it does what they want, and does it well.

</comment><comment><USER4> I use wave accounting for expense tracking and invoicing. Most of my clients pay via check or ach.

For time tracking I create a spreadsheet per client job with the daily hours.

Time tracking and invoicing seems like a popular choice for consultants looking to white label something.

</comment><comment><USER5> I use [http://www.paymo.biz/](http://www.paymo.biz/) and a spreadsheet to invoice.

I also use a shared spreadsheet to track TO DO items and provide rough estimates.

My need is minor - almost anything would do.</comment>


Credit Card Debt Correlates with Small Business Failure - <AUTHOR> http://www.businessweek.com/smallbiz/running_small_business/archives/2009/08/does_credit_car.html

<comment><USER2> Note that, once again, this is about small businesses generally, not startups. These reports from the Kauffman Foundation ought to come with a warning label attached.

<comment><USER3> "Startups that lean too much on credit cards are more likely to fail" is the very first line of the article. It seems like they're speaking specifically about startups.

<comment><USER2> That is exactly the problem. They give the impression they're writing about startups; they may even believe it themselves; but this data is based on a random cross-section of new small businesses. They explicitly mention "coffee shops" as an example.</comment></comment></comment>


"Upvote If [Coinbase] Wire Withdrawal Still Missing" - <AUTHOR> https://www.reddit.com/r/CoinBase/comments/7p0769/upvote_if_wire_withdrawal_still_missingshare_your/ <comment><USER2> I've posted about my experience on some of the other Coinbase links on here, and will continue to do so to be informative.

I had an issue with Coinbase back in early 2016, where my bank account was charged for a transaction that I didn't initiate, and I contacted their support and got no response. I waited a few weeks and reached out multiple times and got nothing. I contacted my bank and they initiated a fraud investigation, and determined it was fraud and refunded my money, partially because Coinbase refused to communicate with myself or the bank.

Do NOT use Coinbase. Use Gemini or Bitstamp, yes you have to get verified, but it's worth the headache.

<comment><USER3> BTDT, in 2013.

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

Just tread lightly about criticizing Coinbase here. You're still on YCombinator turf.

<comment><USER4> Nobody should have to tread lightly about criticizing YC companies on HN, the mods specifically note taking a light touch on threads like this to avoid the perception of censorship and bias.

<comment><USER3> Dig into the thread I posted and you'll see a different attitude back then.

If it's changed, that's great. But you're still on their turf. And I'm getting downvoted for saying it. Draw your own conclusions.

<comment><USER5> Perhaps it needs a mow and some weeding.

</comment></comment></comment></comment></comment><comment><USER6> That thread contains numerous people claiming their USD withdrawals were marked as completed, but the money failed to appear. Overloaded customer service reps from Coinbase appear to be looking into and handling them individually.

I think this is what it would look like if their systems had been hacked, and thieves were cleaning them out by changing the destinations of wire transfers. If that was happening, they wouldn't necessarily be insolvent - they were probably holding lots of Bitcoin during the massive rise in price, and the losses would be in USD - but it'd certainly mean they were in trouble.

</comment><comment><USER7> Every article I read about Coinbase is either about the system being down, people not able to withdraw their funds, or not being able to contact support.

Who's the primary competition for Coinbase in the USA? Seems ripe for a competitor to step up.

<comment><USER8> Primarily because people tend to complain only about issues. I've both funded and withdrawn from bitcoin on several occasions, no issues at all, always quick.

We're talking millions of users with significant money at stake, when things go wrong it turns to vitriol very quickly (and there is a lot of room for user error, too). You don't see others catch as much flak because nobody is even close to the size of Coinbase, but there are similar issue threads for e.g. gemini out there.

<comment><USER9> This rings true, but also, a "no response" from support is never acceptable.

<comment><USER8> I suspect it's less no response and more extremely delayed response. They added hundreds of thousands of users (maybe a million +) in the space of a couple weeks. December growth of the crypto space was absolutely massive - something like 10 exchanges have closed off new registrations. I'm sure their support is currently massively overworked and they can't hire quickly enough.

</comment></comment></comment></comment><comment><USER10> While I don't think Coinbase is scamming users, and they are certainly highly regulated. They are definitively the most incompetent organisation this year.

Bitfinex does get lots of heat in the crypto space, but comparing it to the rest of exchanges they have been rather very professional and fast to fix issues.

</comment><comment><USER11> Hopefully this is just growing pains and not the first signs of insolvency. MtGox stopped most USD withdrawals by June 2013 but didn't shutdown until Feb 2014.

<comment><USER12> Well, as a counterexample, I have been withdrawing to bank account from Coinbase for a couple weeks now with zero problems.

</comment></comment><comment><USER13> The telltale sign of a business with cash-flow issues.

<comment><USER14> Mt. Finex and Mt. Coinbase are in a race to see who can claim the title from Mt. Gox. Unfortunately for cryptocurrency markets, the end result will be disaster regardless of who wins that race.

</comment></comment><comment><AUTHOR> Many more threads like this:

[https://www.reddit.com/r/CoinBase/comments/7mpk7s/upvote_is_...](https://www.reddit.com/r/CoinBase/comments/7mpk7s/upvote_is_your_wires_withdrawals_are_from_dec/)

[https://www.reddit.com/r/CoinBase/comments/7o6nqb/880000_wit...](https://www.reddit.com/r/CoinBase/comments/7o6nqb/880000_withdrawal_delay/)

[https://www.reddit.com/r/CoinBase/comments/7o4tgz/please_hel...](https://www.reddit.com/r/CoinBase/comments/7o4tgz/please_help_coinbase_lost_my_8000_usd_wire/)

[https://www.reddit.com/r/CoinBase/comments/7o7wxa/its_time_f...](https://www.reddit.com/r/CoinBase/comments/7o7wxa/its_time_for_organized_legal_action/)

[https://www.reddit.com/r/CoinBase/comments/7nnqxx/us_wire_tr...](https://www.reddit.com/r/CoinBase/comments/7nnqxx/us_wire_transfers_from_coinbase_to_bank_from_dec/)

[https://www.reddit.com/r/CoinBase/comments/7mpk7s/upvote_is_...](https://www.reddit.com/r/CoinBase/comments/7mpk7s/upvote_is_your_wires_withdrawals_are_from_dec/)

[https://www.reddit.com/r/CoinBase/comments/7kwllo/stop_givin...](https://www.reddit.com/r/CoinBase/comments/7kwllo/stop_giving_lies_and_false_hope_with_up_to_3_days/)

[https://www.reddit.com/r/CoinBase/comments/7kt75b/coinbase_n...](https://www.reddit.com/r/CoinBase/comments/7kt75b/coinbase_not_paying_out_i_transferred_26k_by_wire/)

[https://www.reddit.com/r/CoinBase/comments/7mcy2n/up_vote_if...](https://www.reddit.com/r/CoinBase/comments/7mcy2n/up_vote_if_your_wire_withdrawn_from_1212_1215/)

[https://www.reddit.com/r/CoinBase/comments/7nntqf/waiting_fo...](https://www.reddit.com/r/CoinBase/comments/7nntqf/waiting_for_30k_wire_for_two_weeks_already/)

[https://www.reddit.com/r/CoinBase/comments/7o6oyv/list_of_ca...](https://www.reddit.com/r/CoinBase/comments/7o6oyv/list_of_cases_for_olga_from_coinbase_sepa_and/)

</comment><comment><USER14> Having met some early (and I'm assuming still current) Coinbase employees several times in social situations, I can say without a doubt that "I would trust these guys with my money" wasn't among my thoughts about them.

They were the types of people who could make _any_ social interaction feel like an MLM pitch.

<comment><USER15> It's a currency trading platform - like all businesses created for the sole purposes of making money, but that's certainly a more prominent mission in this type of company. It's about money, and it's purpose is to help make more money. It's not surprising that this kind of business attracts a certain type of personality and people.</comment></comment>


Easter Islanders Sailed to Americas, DNA Suggests - <AUTHOR> https://www.sciencenews.org/article/easter-islanders-sailed-americas-dna-suggests

<comment><AUTHOR> This is reminiscent of Thor Heyerdahl and the [http://en.wikipedia.org/wiki/Kon-Tiki](http://en.wikipedia.org/wiki/Kon-Tiki) but actually rather different.</comment>


Where's the Generic Insulin? - <AUTHOR> http://www.psmag.com/health-and-behavior/why-is-there-no-generic-insulin <comment><USER2> Time for a history lesson. From 1922 until 1981, the only insulins available commercially were extracted from bovine and porcine pancreases -- a process which was both expensive and dangerous, since if the product was insufficiently purified it could cause life-threatening immune reactions or carry diseases from the animals used. (This is why insulin-using diabetics are to this day not allowed to donate blood in most of the world.)

It took _sixty years_ between discovering insulin and figuring out how to produce it biosynthetically (all modern insulin is now produced by genetically engineered yeast or E. coli). This yielded so-called "regular" insulin, which -- at the concentrations necessary to make it feasible for injection -- has the unfortunate property of hexamerizing. As a result, it has is peak activity about 3 hours after injection, and ends its activity around 6 hours after injection -- compared with endogenous insulin, which acts within 5-10 _minutes_ , but is excreted 24 hours/day.

In 1996, we finally had "rapid" insulin -- Insulin Lispro, which adjusts a couple amino acids in order to prevent hexamerization. This makes it act roughly twice as fast as regular insulin, roughly matching the time taken for a meal to be digested and to enter the bloodstream -- thus reducing the postprandial "peak" and cutting down on the chronic hyperglycaemia related complications of diabetes.

Remember how I said that regular insulin stops working after around 6 hours? If you want to get 8 hours of sleep, that's not so good. In the 1940s and 50s some modified insulins were released which "slow down" the insulin so that it lasts for longer; but it wasn't until 2003 that the first "24 hour" insulin was released.

So why is insulin still so expensive, 90 years after it was first introduced? Because the insulin we're using now is a heck of a lot better than the insulin 90 years ago. You might as well ask why a Tesla is so expensive when the Model T was launched over a century ago.

<comment><USER3> Interesting—had no idea the 24 hour insulins were so new.

I think that also explains a certain trend I've seen with insulin usage guidelines (typically) given by doctors, versus by learned users. I found at first independently, then later had the finding corroborated, that using meal- time insulin (e.g. Humalog) was too unpredictable: too many factors are involved; blood sugar almost always go too high or too low—and, unpredictability varies with dose size (even while 'appropriately' matched by carbs). So, many people, including myself decide that since the lowest dose is most predictable, use zero (this is a Type 1 speaking)—zero meal-time insulin that is—and compensate by eating an extremely small number of carbs. This is only possible because I have the 24 hour insulin running in the background, however. My perplexity about it was that doctors seem unaware of this strategy (in my experience, which, while limited does extend to several doctors, and I hear this consistently from other diabetics). Instead, there's this myth that you just calculate your carbs, match with insulin—everything's good! But if it's only been around for 11 years or so, I guess it takes a while for the literature to catch up.

The other side of the situation, at the risk of sounding unappreciative, is that it feels like I'm paying Tesla prices, but still opt to get out and walk most of the time since the car is so bad.

Better blood sugar monitoring tech (e.g. continuous) and quicker meal-time insulins would seriously improve things. Quicker is better since carbs convert to blood sugar more rapidly than the insulin acts—unless I take a large insulin dose. That's another aspect of insulin's unpredictability: its processing rate is proportional to dose size, so there isn't just one ratio of insulin-to-carbs—though one could still infer their dose->(insulin units/gram of carbs) function :)

<comment><USER2> _So, many people, including myself decide that since the lowest dose is most predictable, use zero (this is a Type 1 speaking)—zero meal-time insulin that is—and compensate by eating an extremely small number of carbs._

Yes, a lot of T1s find that keto diets work well for them. (It doesn't work for me, unfortunately; if I drop below about 80g/day of carb my liver decides that I'm starving it and dumps crazy amounts of glucose into my bloodstream.)

 _Better blood sugar monitoring tech (e.g. continuous) and quicker meal-time insulins would seriously improve things._

We have continuous blood glucose monitoring. It's expensive and not very accurate right now, but it does exist. Faster insulins are one of the big targets for use in insulin pumps, because they would make a closed-loop system much easier (less need to predict where blood glucose is going if you can just wait 10 minutes, measure a new value, and give a new bolus), but there are two difficulties: 1. Diffusion from subcutaneous tissue into the bloodstream depends mostly on the molar mass, and insulin monomers are quantized; diffusing half of a monomer would be faster, but it wouldn't be useful. 2. People need to be able to "unplug" pumps from time to time without dying, and if ultra-ultrarapid insulins leave the body too fast the mere act of taking a long shower could become life-threatening.

<comment><USER4> Interestingly, I know someone who's the chief scientist for a company that has developed a non-invasive blood glucose meter. It measures the glucose content from earlobe. [http://www.groveinstruments.com/](http://www.groveinstruments.com/)

Looking at that page, the funny part is that someone decided to use the marketing term "cutting edge" for a technology that specifically does _not_ cut your ear to measure blood glucose...

<comment><USER2> Considering the name "Optical Bridge technology", I'm guessing this is yet another company trying to use the slightly different absorption curves for water vs. water-with-dissolved-glucose? This is not a new idea; I've seen lots of companies try this and fail because they (a) weren't accurate enough, (b) needed frequent recalibration, (c) were thrown off by exercise, dehydration, or common medicines, or (d) all of the above.

I'd love to see such a product become available, but I've learned not to hold my breath.

</comment></comment></comment></comment></comment><comment><USER3> Heh, was just wondering this at the pharmacy a couple of days ago... For one type of insulin I use (Lantus), it costs $400 for ~2.5 months worth, without insurance—which I happen to be without atm. Frustrating.

What's worse are the prices for 'test strips' for blood sugar monitors, though: about $120/mo for the cheapest kind, and insurance doesn't help much.

And what you really want is a continuous monitor, but they're over twice that last I checked.

And what you REALLY want is a glucose monitor/insulin dispenser feedback loop—or a new pancreas (speaking for Type 1's) :D —but those solutions obviously have their problems as well.

[/rant]

<comment><USER5> From this side of the Atlantic, or really probably from any country that has some form of assured health care, the notion that you could have to go without insulin in the states is... baffling. Utterly baffling. Best of luck with it!

<comment><USER6> This adds nothing to the conversation and is just used to start a flame war about health care.

<comment><USER7> Flame war? I doubt there can be much of a flame war when just about everybody agrees.

</comment></comment></comment></comment><comment><USER8> The prices quoted here seem rather low for a biologic drug. The way insulin is made is somewhat complicated, the best standard is typically production in yeast, followed by reverse proteolysis, then purification and formulation. The chem. Eng. Flowchart is ten 'steps', most requiring lots of chillers; insulin is not at all a thermostable drug (patients know this, over time insulin will flocculate and become useless)

<comment><USER9> Sure, but as has been pointed out, pricing doesn't just include the cost of manufacture- drug pricing includes the ability of the country to pay for the drug. Pharma amortizes costs globally.

Also, many companies have compassionate care programs to get access to people who simply can't pay for expensive biologics.

<comment><USER8> Cost is however a lower bound. Insulin at $200/month pales in comparison to generic herceptin at $20k for a six month? course. Of course herceptin is made in mammalian cells; going to a microbial platform might result in a 10x decreasr but that's still about 300 a month on razor thin margin.

</comment></comment></comment><comment><USER10> Perhaps we need a regulatory change to allow import of a drug when it would be legal to make a generic in the US but no manufacturer is willing to do so.

Even better, perhaps this could be combined with aid to the country the drug is imported from. I was just reading an article on insulin outside the US that talked about an 8 year old girl that died because her family could not afford the cost of insulin (about $1.50 for 40 units).

We could allow Americans to import insulin from India if the American buys twice as much as they need, with 1/2 of their purchase being given to a poor Indian who needs but cannot afford it.

</comment><comment><USER11> Fulltext: [http://sci- firstname.lastname@example.com](http://sci- email@example.com) / [https://www.dropbox.com/s/wzdt3ioryz4n7rb/2015-greene.pdf](https://www.dropbox.com/s/wzdt3ioryz4n7rb/2015-greene.pdf)

<comment><USER12> Thank you. All the other links mentioned (including the OP) are news pieces about this NEJM article, which is itself a cracking good read, very accessible.

For completeness of links: here's the NEJM article page:

[http://www.nejm.org/doi/full/10.1056/NEJMms1411398](http://www.nejm.org/doi/full/10.1056/NEJMms1411398)

</comment></comment><comment><USER13> The article fails to mention that you can get a vial of insulin (regular or NPH) without a prescription at Walmart for $25. Not generic, but inexpensive. The rapid acting and the once daily insulins are indeed very expensive, but $25 will get you the very best the early nineties had to offer, just like most drugs that were expensive name-brand drugs back then.

<comment><USER14> how many days worth can you get from a Walmart vial, out of interest?

<comment><USER15> 28 days after it's opened according to the literature. I think the actual quantity in the vial would last longer, depending on dosage.

(On the first vial of $25 Walmart Novolin N for a diabetic pet)

<comment><USER16> Just for clarification: Does Walmart sell an Insulin approved for human use? Animal insulin has been used for human use, and human insulin for use in pets...

Insulin's amino acid sequence varies a little by species, but as far as I recall most mammal's insulins are interchangeable.

<comment><USER15> Novolin N is human insulin. Walmart pharmacies likely sell more than one brand/type, this was just the one my vet prescribed (although a formal prescription isn't necessary, you just have to ask the pharmacist for it). It was about $25, so I assumed it was the same stuff the parent comment was talking about.

</comment></comment></comment></comment></comment><comment><USER17> There was a good summary story on this on NPR this morning as well:

[http://www.npr.org/blogs/health/2015/03/19/393856788/why- is-...](http://www.npr.org/blogs/health/2015/03/19/393856788/why-is-u-s- insulin-so-expensive)

</comment><comment><USER18> Perhaps the right policy to serve the public interest is for Uncle Sam to pay the patent owner $1B for each of the remaining years on its insulin patent and then 'genericize' today's insulins.

The shareholders would earn their profits while the public would be served by gaining immediate access to superior diabetes treatment for a trivial cost of perhaps $20B -- a pittance when compared to the current scenario where millions of diabetics worldwide continue to suffer because unthinking pols continue to publicly kowtow shamelessly before the altar of Capitalism.

<comment><USER19> How about getting universal healthcare with a single payer system (at least state wise) so instead of having a billion smaller organizations with a more limited buying power that can't get you the best prices? You know why in the UK drugs cost 20-25% on average of the US price, not because of subsidies but because the NHS provides healthcare for 60M people and they say we are paying X for the drug now bid. Your local HMO not to mention an IPA simply can't do that. But anyhow as people have stated Insulin even the "older" versions is insanely expensive to fabricate and purify, it's simply not something that a generic company will go after. Most generic companies go for medicine which is easy to produce and is compatible with their existing fabrication capabilities.

<comment><USER20> _You know why in the UK drugs cost 20-25% on average of the US price, not because of subsidies but because the NHS provides healthcare for 60M people and they say we are paying X for the drug now bid._

That's not why drugs are cheaper in the UK. The largest US health insurance company is United and it covers almost 40M people. More than in all of Canada. Yet United pays more for drugs than Canada.

Also, drugs in the UK don't cost 20-25% of the US price. Maybe you meant 75-80%?

</comment></comment></comment><comment> xkcd-sucks regulatory compliance for biologics (stuff made by living things) is a bitch compared to normal chemicals... maybe the generics companies don't find it worthwhile.

on the other hand, making insulin with transgenic bacteria is practically kitchen chemistry, if you're not scared of injecting yourself with your own product.

<comment><USER8> You can't make insulin from bacteria that easily. It's a two chain protein, and stitching together the two chains kinetically competes with precipitation of one of the chains. One chain insulins are typically ineffective (well someone did once engineer a working single chain insulin - Michael Weiss at Cass Western) because signalling requires insulin to unfold, which down not happen when the chains are attached to each other.

If you try to design an insulin analog yourself be careful. Insulin cross reacts with the igf-i pathway; igf, like most growth factors, is oncogenic, so you'll have to be vigilant about getting cancer down the line.

<comment><USER8> I'd like to add that it might not be impossible to spin up production of a generic low cost insulin... Or to develop direct to generic IP free insulins, but the newer insulins are preferred because of very nice pharmacodynamic properties. That said, the bestiary of insulins we have now is quite comprehensive and as they fall off the patent cliff I think the future looks nice for generics

</comment></comment></comment><comment><USER21> Wosulin and Zinulin are just two of the generic insulins that are available. They are "regular" zinc protophane insulins.

</comment><comment><USER22> First off, insulin is HARD TO MAKE. Its synthesized rDNA, this isn't the same as making pills out of powder from china and selling it at a 40% discount with plenty of margin still. This has to be grown and made in a lab with a very high precision.

Second off a bottle of insulin is like 25 bucks..... Boo freaking hoo. Most people cant wrap their head around how insane that is. You are buying f __*ing DNA.. that someone made.. that 's saving your life.. for 25 bucks.

</comment><comment><USER23> How does evergreening works? After all the patent for the original molecule has expired ... so it is free to be copied.

</comment><comment><USER16> Here's a thought: Just make society pay for the better, more expensive insulin for everyonen.

Oh wait, that would be the European / communist solution. Can't have that.

</comment><comment><USER24> health kit linked glucose monitor seems like a win win.</comment>


Ask HN: Do you care about sustainability (and how does it show at work)? - <AUTHOR>

I'm a computer science student in University and I've developed a passion for sustainability over the past few years. Bottom line is that I want to make positive social, environmental, and economic contributions to the world in my professional life. Do any other HNers share similar goals? Is anyone achieving this now and, if so, how specifically does it show at work?
I know the term "sustainability" is super broad but, for the purposes if this discussion, I think that's okay.
Right now, my particular interests are in collaborative consumption and education. It would be nice to hear what specific components of sustainability you are interested in as well. <comment><USER2> Yes. I was unhappy with my previous job because the company mission was to just make money providing "business solutions". I'm now working at a Smart Grid company where one of our policies/goals is to reduce the carbon foot print of our customers.

<comment><AUTHOR> This sounds pretty great - would you mind if I ask you a few questions about the kind of work you do? I checked out your personal website and it kind of piqued my interest! My email is in my profile.

</comment></comment><comment><USER3> Yes, it's the reason I'm working for [https://peerby.com/](https://peerby.com/) . When my internship ends I definitely want to do something in the theme of sustainability again.</comment>


"But we have ping pong tables" - <AUTHOR> http://softwareas.com/but-we-have-ping-pong-tables/

<comment><USER2> > Of course, developers are motivated by extrinsic factors such as salary, > health care, vacation time, etc.

Why salary is an extrinsic factor? It is intrinsic factor to productivity (yes even the best one). I am not saying money is everything, but it is one of the factors that makes a developer feel whether he/she is respected enough in the company. In a lot of cases, if not treated in time, salary can become the sole reason for quitting the job.

A good developer should not have to worry about salary to do his/her job. Therefore, should not be cheated either (in terms of the input the developer gives to the company).

</comment><comment><USER3> _" Ping pong, for example, might add to the work environment for some developers."_

It may also detract from the work environment if the ping pong table is close enough to where people are working that the noise distracts them (or stray ping pong balls hit them in the back of the head). If your office is a single open space, you probably shouldn't have a ping pong table in it.

The best developers value being able to focus on their work and staying in a state of flow much more than they value ping pong or other recreational facilities.</comment>


The Earth has just one moon, right? - <AUTHOR> http://www.npr.org/2012/04/03/149712082/earth-has-just-one-moon-right-think-again

<comment><USER2> I think by labeling them "moons" in the headline of the article, NPR is engaging in a little bit of editorializing. A small asteroid orbiting the Earth for a short period of time is, as they say in the text, a mini-moon at best. If we're calling these moons, Saturn has thousands of them. There's a difference between a natural satellite and a moon.</comment>


What kind of information do you need to invent a new programming language? - <AUTHOR> http://stackoverflow.com/questions/2575801/what-kind-of-knowledge-do-you-need-to-invent-a-new-programming-language

<comment><USER2> If you want to just knock about, just start doing it.

If you're serious about getting people to use it, my personal minimum guideline is ten years experience of serious software development where you are continually pushing yourself, fluency in at least one major functional, logic/set, and imperative/OO language, and competence in about ten languages as diverse as possible, and some specific problem that can't be solved well by an existing language. By then you'll know what to do.

The reason I would say this is my usual spiel about not actually encouraging people to do really time-wasting things, even though we have a culture of "encouragement at all costs". Encouraging a novice mountain climber to take on Mount Everest as their third mountain isn't friendly, it's evil. Encouraging someone to write their own new programming language if they don't have the experience to do it of course won't _kill_ them, but they sure can waste a lot of time. Whatever you think they may learn from the experience can be learned faster and more productively by first reaching the standards I wrote out above, and actually taking _advantage_ of the fact that much ground has been mapped out already. We all must re-invent our own wheels if only for learning at some point, but this is a great deal more than a "wheel".

<comment><USER3> I sort of agree. The only snag is that you present gaining a lot of experience before tackling that task as opposed to start building up your own stuff. They are not exclusive by any means. Rather than encouraging a novice to climb Mount Everest directly by either North or South Ridge, have him start building his own low-steep slope path surrounding the mountain, with some books about mountaineering and maybe some friends that created their own roads a while ago. Maybe, in 15 years, he will reach the tip.

</comment></comment><comment><USER4> A purpose other than "my boss wants his name on a language." Once you identify a specific type of problem that is not solved by today's programming langauges, you have the basis to go create a new language. Maybe you find that it's hard to express some AI concept, or complex math, or to make easy web applications---each of those needs led to very good programming langauges.

Otherwise you're just adding language clutter, re-inventing the wheel, and wasting a lot of time.

</comment><comment><USER5> I started to write Sleep when I was an undergraduate around 2002. My goal was to develop a Perl-inspired language for the JVM with an API to embed it into applications. Sleep predates a lot of JVM languages. <http://sleep.dashnine.org/>

It's not mainstream but I used it in After the Deadline, jIRCii, and now Armitage. When jIRCii was more active I had several scripters using it to contribute to the client. Scripts ranged from a few lines to several thousand lines of code. I receive emails occasionally from users but there are not too many Sleep hackers out there. Still, I'm doing better than most languages since my number is greater than 1. :)

So my advice for would-be language hackers: go for it. Writing Sleep was one of the greatest learning experiences for me as a programmer. I now look at languages through an entirely different lense. I don't get too excited about fads or syntactic sugar as I know how I'd implement them.

Also, it's not that hard.

</comment><comment><USER6> This reminds me of the old saying regarding prices on luxury goods: If you have to ask, you can't afford it.

</comment><comment><USER7> Almost nothing. It makes a great deal of sense to make something fun and throw it away. Pick some frameworks to make it easier (parser, and perhaps a compiler or interpreter toolkit) and make a throwaway.

There's no such thing as 'language clutter'. No-one is harmed by you making a pet language for your own edification, and you will almost certainly not build anything that's more useful than an existing language on your first try. Or even first N tries.

It's very educational, it does no-one any harm, and it's really fun when something works. Just don't take yourself too seriously.</comment>


A QUIC update on Google's experimental transport - <AUTHOR> http://blog.chromium.org/2015/04/a-quic-update-on-googles-experimental.html <comment><USER2> Google really gets how standardization works. They innovate and once the innovation has proven its value they offer the technology for standardization.

I previously saw companies, like Sun, completely fail at this. Eg. The many Java specifications that were created by the standards bodies. Sun tried to do it right by having a reference implementation with the spec. But the Reference implementations were rarely used for real work, so it proved only that the spec could be built, not that the spec elegantly solved real problems.

<comment><USER3> > Google really gets how standardization works. They innovate and once the > innovation has proven its value they offer the technology for > standardization.

I wouldn't necessarily say "innovate" or "offer," but they do understand the process. You can make pretty much anything a "standard" with a bit of money and time (isn't Microsoft Office's XML format a "standard"?), but adoption is always an issue. However, Google controls a popular web server (Google search) and client (Google Chrome), so for web-things, they can create "widespread adoption" for whatever they standardize.

<comment><USER2> > However, Google controls a popular web server (Google search) and client > (Google Chrome), so for web-things, they can create "widespread adoption" > for whatever they standardize.

Google's innovation is to make http faster over a slow unreliable network (e.g. a wireless device). They solved a real world problem, proved it using their own users and now are going to standardize. Their innovation is driving their standardization efforts.

If google didn't solve a real world problem then even with their platform they couldn't impact widespread adoption. Their innovations (SPDY and now QUIC) solve real world problems, so adoption will become widespread.

MSFT with Office XML was solving a political problem, not a real world problem. Ie. Office was taking a hit because DOC/XLS were proprietary formats, and governments were concerned about archiving documents in a proprietary format and were therefore threatening to move to open standards (ie. OSS office suites). MSFT fought back by pushing through a standard document format to offer their sales staff with a rebuttal to customers threatening to move to an open standard. Ie. The 'standard' only has traction due to MSFTs monopoly on office and serves no real benefit to anyway except for MSFTs salesforce.

<comment><USER4> I have OOXML on my poorly written wishlist among with a proposal to withdraw it from standardization without breaking compatibility.

</comment></comment></comment></comment><comment><USER5> _Today, roughly half of all requests from Chrome to Google servers are served over QUIC and we're continuing to ramp up QUIC traffic_

Google says they will eventually submit this to IETF and produce a reference implementation, but it is interesting how a company was able to quietly move a large user base from open protocols to a proprietary protocol.

<comment><USER6> The Chromium implementation of QUIC is released as Open Source, so I'm not sure how "proprietary" the protocol actually is.

<comment><USER7> In a competitive multi-vendor ecosystem like the Web, public-facing protocols that are introduced and controlled by a single vendor are proprietary, regardless of whether you can look at the source code. NaCl and Pepper, for example, are proprietary, even though they have open-source implementations.

The distinction between open-source-but-proprietary and open-standard is important for many reasons. One of the most important is that open-source-but- proprietary protocols, if they catch on, end up devolving into bug-for-bug compatibility with a giant pile of C++.

<comment><USER8> I don't understand this negativity towards QUIC/Dart/NaCL/Pepper etc. which are exemplary open-source efforts.

By your definition Mozilla's (your employer's) asm.js and Rust are also proprietary.

Somehow I doubt that you jump on every thread about asm.js or Rust to point out how proprietary they are or how they are implemented as a giant pile of C++. Double standards.

There have been plenty of research and work even in standard bodies like IETF that try to implement a better tcp/ip-like protocol.

They all went nowhere because at this point in time, you can't just have some guys in a room to design a new transmission protocol and have it taken seriously by anyone that matters (Google/Apple/Microsoft/Mozilla).

Google is following the only realistic route: implement something, test it in a scale large enough to conclusively show an improvement and then standardize it.

This is exactly how HTTP/2 happened.

We should be cheering them on instead of spreading FUD because it doesn't live up to your impossible standard of non-proprieterness.

<comment><USER7> > Somehow I doubt that you jump on every thread about asm.js or Rust to point > out how proprietary they are or how they are implemented as a giant pile of > C++. Double standards.

asm.js isn't a new protocol, and so isn't proprietary according to that definition. It's a subset of JavaScript (to be specific, ES6, including such extensions such as Math.imul). You can implement asm.js by simply implementing the open, multi-vendor ES6 standard. In fact, that's exactly what some projects, like JavaScriptCore, are doing.

Rust isn't relevant, as it's not intended to be added to the Web. Adding <script type="text/rust"> to the browser would be a terrible idea for numerous reasons. Nobody has proposed it.

<comment><USER9> Plenty of IETF standardization efforts can be described as "a subset of Javascript" or even just "a bunch of Javascript APIs". WebCrypto, for instance, fits that bill. What makes QUIC so different from WebCrypto?

<comment><USER7> QUIC and Web Crypto are both things that need to be standardized, so I don't know what the implication is or how to respond to that statement.

I do think there is a big difference between "a subset of JavaScript" and "a bunch of JavaScript APIs" from a standardization point of view. All engines have been implementing special optimizations for JavaScript subsets ever since the JS performance wars started. Nobody thinks we need to standardize polymorphic inline caches, for example, even though the set of JS code that is PIC-friendly is different from the set of JS code that is heavily polymorphic (and this distinction would be easy to describe formally if anyone cared to). asm.js is just an optimization writ large: the reason why it's not a protocol is that any conforming JavaScript implementation is also an asm.js implementation.

I think people are reading a lot more into my posts than was intended. I'm not calling out QUIC specifically, since I'm not involved with the details of its standardization anyway. The point is simply that open source doesn't automatically mean non-proprietary.

<comment><USER9> Oh, sure. QUIC is a proprietary protocol. An IETF-standardized QUIC would not be.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> As part of telehash v3, we've separated out most of the crypto/handshake packeting into E3X, which has a lot of similarities to QUIC: [https://github.com/telehash/telehash.org/blob/master/v3/e3x/...](https://github.com/telehash/telehash.org/blob/master/v3/e3x/intro.md)

Personally I have a much broader use case in mind for E3X than QUIC is designed for, incorporating IoT and meta-transport / end-to-end private communication channels. So, I expect they'll diverge more as they both evolve...

<comment><USER11> How is work on Telehash coming? I'm still waiting for an XMPP equivalent for the mobile age that will free us from the medieval [1] state of communication we are experiencing.

[1] [https://www.schneier.com/blog/archives/2012/12/feudal_sec.ht...](https://www.schneier.com/blog/archives/2012/12/feudal_sec.html)

</comment></comment><comment><USER12> MinimaLT [1], developed independently and about the same time as QUIC, also features the minimal latency, but with more (and better IMO) emphasis on security and privacy. (Though both are based on Curve25519). QUIC has an edge with header compression and an available implementation. EDIT: and of course, forward error correction!

[1] cr.yp.to/tcpip/minimalt-20130522.pdf

<comment><USER13> I hate to be harsh because I like a lot about MinimaLT, but until MinimaLT ships code it doesn't feature anything.

I wish we were having a conversation where djb had written an amazing and performant minimaLT implementation that we could prepare against QUIC. But we're not. We're having a conversation where shipping performant code runs a protocol and you're presenting an alternative that pretty much exists only as a PDF document.

Believe me, I looked to figure out if there was a good solution for incorporating MinimaLT into code right now and there's not. I have a project where this is relevant. I'm looking at QUIC now and I may incorporate it as an alternative transport layer. (It duplicates some of my own work though, so I'm not sure whether to strip that stuff out or just make mine flexible enough to work on top.)

(To say nothing that QUIC can be implemented without a kernel module, which is a handy side-effect of doing things over UDP. A shame that's a factor, but of course it is in realistic systems deployment.)

<comment><USER12> Not harsh at all. I agree completely and wish it wasn't so. At this rate, it might be better to focus on improving the security and privacy of QUIC.

Re. kernel module: both QUIC and MinimaLT can be implemented in user space.

</comment></comment></comment><comment><USER14> I wonder if this is why I've been having weird stalls and intermittent failures using GMail the last few weeks. Every time, I try it in Firefox or Safari and it works perfectly.

<comment><USER15> I work on the QUIC team. If you file a bug with a network log, we'll take a look to see what is going on.

</comment></comment><comment><USER16> Possibly silly question: I was under the impression that only TCP allowed for NAT traversal; if I send a UDP packet to Google, how can Google respond without me configuring my router?

<comment><USER17> NAT traversal is easier with UDP than with TCP. Here's a good article on the topic: [https://www.zerotier.com/blog/?p=226](https://www.zerotier.com/blog/?p=226)

<comment><USER18> Thanks for posting, that was a nice article but the intro to ZeroTier was even better, pretty cool software.

</comment></comment></comment><comment><USER19> Interesting, I wonder if this will will end up gaining enough momentum to become a standard, similarly to how SPDY ended up essentially becoming HTTP/2.

</comment><comment><USER20> It will be interesting to see how this works out with NAT being as difficult to work with UDP as it often can be.

It's a shame that SCTP is not more widely adopted, as I suspect it may be just as good (if not better) as a transport layer for building a new web protocol on.

<comment><USER21> It's unlikely that DTLS over SCTP would be faster than QUIC, which has been specifically designed to have TLS with a minimal number of round trips.

</comment></comment><comment><USER22> I wonder how they managed the zero RTT connections? How would that ever work?

<comment><USER23> Crypto? You can know who your peer is with a single packet if you've already exchanged keys, and other cleverness is also possible.

<comment><USER24> At the cost of perfect forward secrecy, since then you're no longer using ephemeral keys?

<comment><USER25> QUIC has a mechanism to upgrade to ephemeral keys once the connection has started.

<comment><USER24> As will TLS 1.3, starting from page 3: [http://www.ietf.org/proceedings/92/slides/slides-92-tls-3.pd...](http://www.ietf.org/proceedings/92/slides/slides-92-tls-3.pdf)

</comment></comment></comment></comment></comment><comment><USER26> I'm not sure if this is related. But sometimes I have a slow home internet (60 kbps after I cross a threshold). At those times, I see websites loading really slow, specially HTTPS connections crawling - But YouTube streaming, Google search and Google webcache works really fast! In fact I've been waiting for a normal website to load for a few minutes on my PC, and the whole time YouTube was streaming in another mobile without any interruptions.

Does UDP mess up other traffic?

</comment><comment><USER27> The first image really confused me with the 'Receiver' looking like a server and the 'Sender' looking like a laptop.

</comment><comment><USER28> 50% and nobody noticed. Can't wait for another marginal latency win that makes the software stack more complex.

<comment><USER9> Isn't this an argument that nothing in TCP/IP should change, and that we should still be pretending that there is a point to the URG pointer?

<comment><USER29> I took it more for an argument on the "and nobody noticed" aspect.

</comment></comment></comment><comment><USER30> I assume they aren't counting the transit time of the first SYN equivalent? Are they saying it traverses the network infinitely fast. Because it doesn't

</comment><comment><USER31> Google should investigate (or perhaps just buy outright) a low level communications technology stack from one of the HFT firms - they've already mastered low-latency networking, they just have no incentive to share this knowledge with the outside world.

<comment><USER31> There are plenty of vendors that provide good UDP-based solutions, for example TIBCO. In my opinion multicast is not used widely enough, partially because everybody thinks that tcpip pub sub is good enough.

Financial incentives made HFT's and alike go farther than the average software companies - just look at the microwave networks.

<comment><USER9> Multicast isn't used widely for a lot of reasons, but the most important of them is that it simply doesn't scale across routing domains.

</comment></comment></comment><comment><USER32> Wasn't the point of QUIC that it's basically encrypted UDP? I'm not seeing that great of a performance improvement here - 1 second shaved off the loading of top 1% slowest sites. Are those sites that load in 1 minute? Then 1 second isn't that great.

However, if the promise is to be an always-encrypted _Transport layer_ (kind of like how CurveCP [1] wanted to be - over TCP though) with small performance gains - or in other words _no performance drawbacks_ \- then I'm all for it.

I'm just getting the feeling Google is promoting it the wrong way. Shouldn't they be saying "hey, we're going to encrypt the Transport layer by default now!" ? Or am I misunderstanding the purpose of QUIC?

[1] - [http://curvecp.org/](http://curvecp.org/)

<comment><USER33> The first diagram, if I'm interpreting it correctly, shows two whole round trip times shaved off compared to TCP + TLS, and one compared to plain TCP (which is basically no longer acceptable). For a newly visited site, that becomes one and zero.

The 100ms ping time in the diagram may be pretty high for connections to Google, with its large number of geographically distributed servers, but for J. Random Site with only one server... it's about right for US coast-to-coast pings, and international pings are of course significantly higher. [1] states that users will subconsciously prefer a website if it loads a mere 250ms faster than its competitors. If two websites are on the other coast, have been visited before, and are using TLS, one of them can get most of the way to that number (200ms) simply by adopting QUIC! Now, I'm a Japanophile and sometimes visit Japanese websites, and my ping time to Japan is about 200ms[2]; double that is 400ms, which is the delay that the same article says causes people to search less; not sure this is a terribly important use case, but I know I'll be happier if my connections load faster.

Latency is more important than people think.

[1] [http://www.nytimes.com/2012/03/01/technology/impatient- web-u...](http://www.nytimes.com/2012/03/01/technology/impatient-web-users- flee-slow-loading-sites.html)

[2] [http://www.cloudping.info](http://www.cloudping.info)

<comment><USER34> > Packet sequence numbers are never reused when retransmitting a packet. This > avoids ambiguity about which packets have been received and avoids dreaded > retransmission timeouts.

How does this work?

As a total guess, I assume the client gets a stream of packets, buffers them all up, waits for some threshold before re-requesting any missing sequence numbers. When that missing packet comes back in (all while the stream continued) with its new number, it puts in in place, and pushes the data up to the application and clears it's buffer. Client probably sends "I'm good up to sequence n" every once and a while so the server can clear it's re-transmit buffer.

That's pretty cool. Treat it as a lossy stream, rather than a "OH CRAP EVERYBODY STOP EVERYTHING, FRED FELL DOWN!". With this, FRED IS DED!</comment></comment></comment>