Wednesday, November 26, 2014

This.

This.

"There’s a whole category of native apps that could just as easily be described as “artisanal web browsers” (and if someone wants to write a browser extension that replaces every mention of “native app” with “artisanal web browser” that would be just peachy)."

https://adactio.com/journal/7863

Saturday, November 22, 2014

Amazon really understands e-commerce:

Amazon really understands e-commerce:
Yesterday night, just before going to bed planning to read I typed "William Gibson" into Amazon on my laptop and then bought "The Peripheral" from the result page (not some detail page) using 1-click. I then went to bed and opened by kindle, pressed the home button to select the new book and the kindle realized: Malte, just finished this book, lets sell him the next in the series – so it asked, "Buy the next in the series"; I said Yes and so I bought 2 books with about 3-4 click on 2 devices in under 2 minutes.

Wednesday, November 19, 2014

My comment on Remy Sharp's excellent blog post https://remysharp.com/2014/11/19/my-five-promise-patterns:

My comment on Remy Sharp's excellent blog post https://remysharp.com/2014/11/19/my-five-promise-patterns:

The "Always end with a catch" pattern in probably not good advice. One should only add a catch if and only if one had wrapped the same program in a try-catch-block in a synchronous program.

If a catch is necessary to show the error on the console then that is a bug in the promise implementation; working around that in user code is bad because another party may add a catch block that may actually be handling the error but now it still goes to the console and your example just prints the stack but fails to print the error message – the library just can do a much better job at this.

Some promise libraries ship with this "bug" because in a purist view of promises (probably involving the word monad) it is not a nice that this requires adding catch handlers in the same execution stack as the promise was created – but real world programming has shown that there is absolutely nothing worse for programmer's productivity but an error that was thrown but then just "eaten" by the system instead of notifying the programmer. Basically you sit in front of a machine and it doesn't work, but it doesn't tell you why.

This is why Chrome changed the behavior: Uncaught promise errors will go to the console (works in Canary, apparently not yet in stable). I don't have a good list of promise libraries that do the right thing, but the one I work on does :) https://github.com/google/closure-library/blob/master/closure/goog/promise/promise.js
Another thing that goog.Promise does to help debugging is that it "throws" every explicit call to reject (https://github.com/google/closure-library/blob/master/closure/goog/promise/promise.js#L162). The error is immediately caught and ignored – but if you set your DevTools to "break on caught exceptions" it will also break for rejects – which is what you want since they are semantically equivalent to throws. 
https://remysharp.com/2014/11/19/my-five-promise-patterns

Friday, November 14, 2014

/me is preparing a study comparing various web comics about comparative studies of papers that were rejected for...

/me is preparing a study comparing various web comics about comparative studies of papers that were rejected for being too meta.
http://xkcd.com/1447/

Sunday, November 9, 2014

SPIEGEL ONLINE has a 24 hour live stream of the fall of the Berlin wall edited from various camera people who were...

SPIEGEL ONLINE has a 24 hour live stream of the fall of the Berlin wall edited from various camera people who were at the right spot at the right time. Page is in German but actual stream has no comment.
http://www.spiegel.tv/filme/mauerfall-neu-erlebt-kapitel1-m911/
http://www.spiegel.tv/filme/mauerfall-neu-erlebt-kapitel1-m911

Wednesday, November 5, 2014

Dear lazy+: What is the TL;dr of the election results in California and the bay area?