balpha.dehttp://balpha.debalpha's musingsPyRSS2Gen-1.0.0http://blogs.law.harvard.edu/tech/rssHello (Virtual) World: Your first Daydream apphttp://balpha.de/2016/11/hello-virtual-world-your-first-daydream-appI recently bought Google's new phone, the Pixel – and alongside with it, the Daydream View virtual reality headset. It took me a while to figure out how to create programs for it myself (using the JMini3d library); this write-up is meant to help the next person with the same problem. And my future self. http://balpha.de/2016/11/hello-virtual-world-your-first-daydream-appSun, 27 Nov 2016 00:00:00 GMTThe making of StackEgghttp://balpha.de/2015/04/the-making-of-stackeggEver since I joined Stack Exchange in 2010, I've been the developer tasked with implementing the April 1st happenings on Stack Overflow and the other Stack Exchange sites. This is the story of the 2015 April 1st feature, StackEgg. http://balpha.de/2015/04/the-making-of-stackeggMon, 06 Apr 2015 00:00:00 GMTCatastrophic backtracking: When regular expressions explodehttp://balpha.de/2015/01/catastrophic-backtracking-when-regular-expressions-explodeI gave a short talk about catastrophic backtracking in regular expressions at our company meetup, and made a recording of it for anyone else interested in regex performance. http://balpha.de/2015/01/catastrophic-backtracking-when-regular-expressions-explodeWed, 21 Jan 2015 00:00:00 GMTAndroid development: What I wish I had known earlierhttp://balpha.de/2013/07/android-development-what-i-wish-i-had-known-earlierAt the beginning of the year, I jumped from web development to Android development. Both Java in general and programming for Android in particular were totally new for me. Half a year later I've learned a lot, and while I'm obviously still lightyears away from being able to call myself an Android pro, here are a few tips that would have been great back then, when I knew even less. http://balpha.de/2013/07/android-development-what-i-wish-i-had-known-earlierTue, 30 Jul 2013 00:00:00 GMTPlain text considered harmful: A cross-domain exploithttp://balpha.de/2013/02/plain-text-considered-harmful-a-cross-domain-exploitI recently found an exploit that can allow malicious sites to get access to certain kinds of cross-origin data that is not wrapped in any container format. This post is a description of that vulnerability, together with some general talk about cross-domain communication. http://balpha.de/2013/02/plain-text-considered-harmful-a-cross-domain-exploitWed, 20 Feb 2013 00:00:00 GMTJohn Resig: Secrets of the JavaScript Ninjahttp://balpha.de/2013/02/secrets-of-the-javascript-ninjajQuery inventor and JavaScript guru John Resig's book *Secrets of the JavaScript Ninja* was released at the end of 2012 after several years in the making. I've read it, and in this post I'm jotting down some thoughts about it. http://balpha.de/2013/02/secrets-of-the-javascript-ninjaMon, 11 Feb 2013 00:00:00 GMTAn unexcited look at browser sniffinghttp://balpha.de/2012/07/an-unexcited-look-at-browser-sniffingDo you use browser sniffing? Oh, you evil person! Your poor soul will rot and burn forever, you're summoning the wrath of the heavens! Do you use feature detection exclusively? Aah, a pure spirit! Enlightenment has come to you; you shall forever be applauded by the angels above! Do you live in the real world? Then this post may be for you. http://balpha.de/2012/07/an-unexcited-look-at-browser-sniffingSun, 08 Jul 2012 00:00:00 GMTJavaScript concurrency and locking the HTML5 localStoragehttp://balpha.de/2012/03/javascript-concurrency-and-locking-the-html5-localstorageA discourse on why concurrency usually is not an issue in JavaScript, and a little pet project of mine that tries to help in a case where it is an issue after all. http://balpha.de/2012/03/javascript-concurrency-and-locking-the-html5-localstorageMon, 05 Mar 2012 00:00:00 GMTjQuery script insertion and its consequences for debugginghttp://balpha.de/2011/10/jquery-script-insertion-and-its-consequences-for-debuggingA while ago, we moved much of the JavaScript functionality on the Stack Exchange sites over to using lazy loading. Unfortunately, this caused an annoying issue that made debugging the JavaScript harder, due to how jQuery implements script loading. http://balpha.de/2011/10/jquery-script-insertion-and-its-consequences-for-debuggingSun, 09 Oct 2011 00:00:00 GMTLook, honey! I injected a dependency!http://balpha.de/2011/07/look-honey-i-injected-a-dependencyI recently spent some time refactoring the JavaScript version of the Markdown converter and editor used on the Stack Exchange sites. Some of this work included using a very simple technique with a big-sounding name. http://balpha.de/2011/07/look-honey-i-injected-a-dependencySat, 23 Jul 2011 00:00:00 GMTIntroducing Lyfe: Yield in JavaScripthttp://balpha.de/2011/06/introducing-lyfe-yield-in-javascriptI've been a fan of using `yield` to create generators in Python for a long time, and when I was dragged into the world of C#, I was thrilled to see that it supports this pattern as well. Unfortunately, JavaScript doesn't offer this, so I came up with a little project that tries to emulate `yield` in JavaScript. http://balpha.de/2011/06/introducing-lyfe-yield-in-javascriptThu, 23 Jun 2011 00:00:00 GMTA shout-out to the people of Meta Stack Overflowhttp://balpha.de/2011/06/a-shout-out-to-the-people-of-metaJeff Atwood calls it *human unit tests* and *cheating*. Alex Miller calls it *User Based Monitoring*. Namely, relying on user feedback and bug reports to let us know when we break something. This works remarkably well – **when something is wrong, we'll know about it pretty quickly.** You can be sure that Meta Stack Overflow will have a new post, complaining about the bug we just introduced. In no time. This system has been working great so far. But why? Why do people help us, for free, even though we prove bug after bug after bug that after one thing is fixed, another issue is right around the corner? http://balpha.de/2011/06/a-shout-out-to-the-people-of-metaMon, 13 Jun 2011 00:00:00 GMT