Tuesday, February 25, 2014

This is insanely amazing: An eye ray traced with WebGL

This is insanely amazing: An eye ray traced with WebGL

http://www.vill.ee/eye/
http://www.vill.ee/eye

How to design a good API?

How to design a good API?

API design is incredibly hard, you'll get it wrong. The only way to make a good API is to take someone else's API, figure out why it sucks and then to try to fix that while copying every single other aspect that does not suck. So whenever you design an API you need to be able to answer the question for every element of it: Where did I "steal" this from and why is it not the same as the original?
And one of the best sources to steal from is yourself. I've been rebuilding the same framework roughly every 2 years since 2005 (possibly before but that becomes more paleontology) and it seems to be getting quite good by now; I'll still make a new one in a couple of years.
Because one will fail to design the perfect API, the only professional thing to do is to anticipate failure and plan accordingly. It is hard to say what that means: To me is currently means that for every API to build a less abstract/declarative/opinionated building block which can be easily assembled to form the API that I want, but which, if the API turns out to suck (which it will) can be reassembled to do something else.

Mr. Steve Jobs (see video) suggests to steal ideas in the general case of design – and APIs aren't even copyrightable (Right? Oracle? Right!), which was a wise decision by the forefathers of our laws to let us iterate on API design. So, does "stealing" an API mean to literally copy it? There is a good argument for that as it decreases entropy in the API universe making them easier to learn for your customers – but, I think, it should be OK to add a little artist touch to some of the things :)
http://www.youtube.com/watch?v=CW0DUg63lqU

Sunday, February 23, 2014

Saturday, February 22, 2014

The chart shows income-percentiles for US cities.


The chart shows income-percentiles for US cities. The difference between SF and Miami is quite staggering. SF has by far the widest range between 20th and 95th percentile. In related news: The percentage of bros on Valencia street has increased drastically over the last few months. Glad I'm moving away.
http://www.washingtonpost.com/blogs/wonkblog/wp/2014/02/21/how-rich-is-too-rich-it-depends-on-where-you-live/

This is gold!

This is gold! The bug that was fixed with the recent iOS release. Apparently OSX is still vulnerable, but the fog of war is strong on this one.

static OSStatus
SSLVerifySignedServerKeyExchange(SSLContext *ctx, bool isRsa, SSLBuffer signedParams,
                                 uint8_t *signature, UInt16 signatureLen)
{
OSStatus        err;
...

if ((err = SSLHashSHA1.update(&hashCtx, &serverRandom)) != 0)
goto fail;
if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0)
goto fail;
goto fail;
if ((err = SSLHashSHA1.final(&hashCtx, &hashOut)) != 0)
goto fail;
...

fail:
SSLFreeBuffer(&signedHashes);
SSLFreeBuffer(&hashCtx);
return err;
}

Source Adam Langley's https://www.imperialviolet.org/2014/02/22/applebug.html

The real problem was this other piece of code I found in their code base
if (0) { goto fail; buyCovertyLicense(); }
#gotofail  
https://www.imperialviolet.org/2014/02/22/applebug.html

Friday, February 21, 2014

"Secure Transport failed to validate the authenticity of the connection.

"Secure Transport failed to validate the authenticity of the connection. This issue was addressed by restoring missing validation steps."

So, basically any connection on iOS that was supposed to be protected by SSL/TLS (aka HTTPS) was not. Upgrade now!

http://support.apple.com/kb/HT6147
http://support.apple.com/kb/HT6147

Tuesday, February 18, 2014

Today was a good day.

Today was a good day.
I wrote a very complicated program and was proud of myself for writing a very complicated program and then I deleted the complicated program and replaced it with a simple program.

This is big news for Chrome on Android, I think. Woot!

This is big news for Chrome on Android, I think. Woot!

Galaxy Note 3, Galaxy Note II, Galaxy S4, Galaxy S4 mini, Galaxy S4 Active, Galaxy S4 zoom, Galaxy S III, Galaxy S III mini, Galaxy Mega, Galaxy Light, Galaxy Note 8.0, Galaxy Tab 3, Galaxy Note 10.1 and Galaxy Note 10.1 2014 Edition.
http://gigaom.com/2014/02/18/samsung-android-kitkat-4-4-2-upgrade-list/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+OmMalik+(GigaOM:+Tech)

Sunday, February 16, 2014

Translating the ES6 yield keyword to ES5.

Translating the ES6 yield keyword to ES5.
By Peter van der Zee
Cc John Lenz
http://qfox.nl/weblog/313

Friday, February 14, 2014

That is some serious nerdiness about typesets.

That is some serious nerdiness about typesets.
Via Karolina Szczur
http://typesetinthefuture.com/moon/

Thursday, February 13, 2014

Why do I need to verify I am a cable subscriber when the same channel runs for free in 1080p over digital radio...


Why do I need to verify I am a cable subscriber when the same channel runs for free in 1080p over digital radio broadcast?

Saturday, February 8, 2014

Regression to the mean #california #weather

Wednesday, February 5, 2014

Via Valerio Veo


Via Valerio Veo

Since everyone seems to be sharing their good-old days data center war stories, here is my favorite: This was 2008...

Since everyone seems to be sharing their good-old days data center war stories, here is my favorite: This was 2008 when the internet was already pretty mature but online video and especially live video was still somewhat newish. A very creative agency came up with an idea to do a 21 day 24/7 live show driving up excitement for their customer's new thing – of course, they had no idea what it actually meant to produce such a thing, so they eventually reached out to us. While also having no idea what we were doing, we at least had just failed to successfully launch a live streaming internet startup, and so we agreed to pull this thing together in like 4 weeks.

Now, this would probably have been not very exciting, had the creative agency not had one actually very good idea: How to market the live stream? Just book every banner slot in Germany (i.e. the homepage of GMX) and show the live stream with no explanation. The banner had the what is likely a record in internet history: A click through rate of over 30% on the first day. This, of course, is mostly because of the novelty of live internet video in those days, but in the end it meant that we had to serve live video to what was a large percentage of people using the internet in Germany.

Actual serving was done by limelight networks (they got large by serving video for early YouTube). I attached a graph I still had around which shows 9 Gbs, which would have been about 20-30k concurrent streams. I don't remember what our actual peaks were.

The rest of the pictures show our on-site infrastructure. Everyone in advertising being cool, this was in a random house in some hip and gentrifying part of Hamburg, not in a TV studio. We had to get actual internet connectivity there. The pictures show our directed radio link and the even more horrible consumer DSL uplink (we used those redundantly).

Actual video production was still analog, thus the pictures show the encoders attached to 13 servers (2 streams, 3 bit rates, 2 x hot redundant (1 streaming via directed radio and one via DSL), 1 spare) which ran the On2 VP6 encoder on Windows (shiver).

The flash players we developed would automatically pick on of the redundant streams and fail over to the other one if there was a failure or move to a different bit rate. Power was not in any way redundant – the servers had a UPS, so they would not die hard upon power failure, but I think the cameras and video editing equipment was just plugged into the wall – but power did not fail :) The on2 encoders sometimes crashed but this wasn't a problem with the redundant streams and I think the direct radio link failed once, but overall this was a very successful project which shows that you can do everything if you are just sufficiently na├»ve.
#whatcouldpossiblygowrong






Saturday, February 1, 2014

I found 12 mega pixels while looking for #tbt pictures.


I found 12 mega pixels while looking for #tbt pictures.

"Twenty years after Hiroshima, elite American troops trained to stop a Soviet invasion -- with nuclear weapons...

"Twenty years after Hiroshima, elite American troops trained to stop a Soviet invasion -- with nuclear weapons strapped to their backs."
http://www.foreignpolicy.com/articles/2014/01/29/the_littlest_boy_cold_war_backpack_nuke