ezyang’s blog

the arc of software bends towards understanding

April, 2010

Art. Code. Math. (And mit-scheme)

I was in rehearsal today, doodling away second oboe for Saint Saens' Organ Symphony for the nth time, and it occurred to me: I've listened to and played this piece of music enough times to know the full overall flow as well as a good chunk of the orchestral parts, not just mine. So when […]

  • April 30, 2010

Inessential guide to fclabels

Last time I did an Inessential guide to data-accessor and everyone told me, "You should use fclabels instead!" So here's the partner guide, the inessential guide to fclabels. Like data-accessor the goal is to make record access and editing not suck. However, it gives you some more useful abstractions. It uses Template Haskell on top […]

  • April 28, 2010

The Problem with xUnit

Tagline: Assertions considered not ideal. I think automated tests are great. I used two particular flavors of test, the unit test and the integration test, extensively in HTML Purifier and they're the only reason why I feel comfortable making changes to code that I first wrote in High School. The automated tests let me hack […]

  • April 26, 2010

Creative catamorphisms

The bag of programming tricks that has served us so well for the last 50 years is the wrong way to think going forward and must be thrown out. Last week, Guy Steele came in and did a guest lecture "The Future is Parallel: What's a Programmer to Do?" for my advanced symbolic class (6.945). […]

  • April 23, 2010

Association maps in mit-scheme

I recently some did some benchmarking of persistent data structures in mit-scheme for my UROP. There were a few questions we were interested in: For what association sizes does a fancier data structure beat out your plain old association list? What is the price of persistence? That is, how many times slower are persistent data […]

  • April 21, 2010

Thoughts on discussion

In today's world of social news aggregation websites, ala Reddit, Digg, Slashdot, it is rare for the sole dialog between an author and a reader to take place on a private channel or on one's website. I discovered this rather bluntly when I found that a document I had written had amassed a number of […]

  • April 19, 2010

Dudamel visits MIT

Conductor and violinist Gustavo Dudamel will be visiting MIT today to accept the Eugene McDermott Award in the Arts. Part of the awards ceremony will include a session with Dudamel conducting the MIT Symphony Orchestra; I'll be on stage playing Oboe and English Horn on Rimsky Korsakov and Mozart. Our regular conductor (Adam Boyles) has […]

  • April 16, 2010

Inessential Guide to data-accessor

data-accessor is a package that makes records not suck. Instead of this code: newRecord = record {field = newVal} You can write this: newRecord = field ^= newVal $ record In particular, (field ^= newVal) is now a value, not a bit of extra syntax, that you can treat as a first-class citizen. I came […]

  • April 14, 2010

Later Impressions of the VX-8R

Earlier in January, I blogged some first impressions about the VX-8R. It's now three months later, and I've used my radio on some more extensive field tests. I'm considering selling my VX-8R for a 7R, for the following reasons: I generally need five hours of receive with medium transmission. I only get about 3.5 hours […]

  • April 12, 2010

Diagramming in Xournal and Gimp

Two people have asked me how drew the diagrams for my previous post You Could Have Invented Zippers, and I figured I'd share it with a little more elaboration to the world, since it's certainly been a bit of experimentation before I found a way that worked for me. Diagramming software for Linux sucks. Those […]

  • April 9, 2010