ezyang’s blog

the arc of software bends towards understanding

October, 2012

Ubuntu Quantal upgrade (Thinkpad/Xmonad)

October has come, and with it, another Ubuntu release (12.10). I finally gave in and reinstalled my system as 64-bit land (so long 32-bit), mostly because graphics were broken on my upgraded system. As far as I could tell, lightdm was dying immediately after starting up, and I couldn't tell where in my copious configuration […]

  • October 24, 2012

ACM XRDS: Jeff Dean profile

I was wandering through the Gates building when the latest issue of the ACM XRDS, a student written magazine, caught my eye. “Oh, didn’t I write an article for this issue?” Yes, I had! The online version is here, though I hear it’s behind a paywall, so I’ve copypasted a draft version of the article […]

  • October 22, 2012

Duality for Haskellers

This post is the spiritual predecessor to Flipping Burgers in coBurger King. What does it mean for something to be dual? A category theorist would say, “It’s the same thing, but with all the arrows flipped around.” This answer seems frustratingly vague, but actually it’s quite precise. The only thing missing is knowing what arrows […]

  • October 19, 2012

Hails: Protecting Data Privacy in Untrusted Web Applications

This post is adapted from the talk which Deian Stefan gave for Hails at OSDI 2012. It is a truth universally acknowledged that any website (e.g. Facebook) is in want of a web platform (e.g. the Facebook API). Web platforms are awesome, because they allow third-party developers to build apps which operate on our personal […]

  • October 16, 2012

Visualizing satisfiability, validity & entailment

So you’re half bored to death working on your propositional logic problem set (after all, you know what AND and OR are, being a computer scientist), and suddenly the problem set gives you a real stinker of a question: Is it true that Γ ⊢ A implies that Γ ⊢ ¬A is false? and you […]

  • October 15, 2012

GET /browser.exe

Jon Howell dreams of a new Internet. In this new Internet, cross-browser compatibility checking is a distant memory and new features can be unilaterally be added to browsers without having to convince the world to upgrade first. The idea which makes this Internet possible is so crazy, it just might work. What if a web […]

  • October 12, 2012

Generalizing the programmable semicolon

Caveat emptor: half-baked research ideas ahead. What is a monad? One answer is that it is a way of sequencing actions in a non-strict language, a way of saying “this should be executed before that.” But another answer is that it is programmable semicolon, a way of implementing custom side-effects when doing computation. These include […]

  • October 3, 2012