Home

This is my place on the web. Eventually, you’ll find below all manner of publications, blog posts, microblog posts, and essays. Some of this content was previously hosted on my academic website at Columbia and on a Jekyll blog that was hosted on GitHub Pages.

Getting Eulerian Video Magnification set up on Ubuntu 14.10

Download this version (R2012b a.k.a. v80) of the Matlab Compiler Runtime. Follow the instructions carefully and make sure to modify the LD_LIBRARY_PATH and XAPPLRESDIR environment variables appropriately. These changes can be made permanent in your shell startup profiles. Trusty Tahr (14.04) doesn’t usually come with the right codecs in order for the Matlab Compiler Runtime to do its thing. These packages seemed to do the trick for me: ubuntu-restricted-extras, and then add the ppa ppa:mc3man/trusty-media which provides gstreamer0.

This is not what hyperlinks are for

Allow me a little rant. I was reading this FastCo article about a Spotify webapp that seemed interesting to me. Here’s a screencap of the relevant part. See the hyperlinked words “playlist tool”, underlined in yellow? You’d think that this would link to the webapp in question. But no, it resolves to a category/tag-explorer page with the URI http://www.fastcompany.com/explore/playlist-tool. What about “web app”? Nope: http://www.fastcompany.com/explore/web-app. Does the article link to the tool at all?

How I hacked scheduling class meetings

As a preface, I think this merits the label hack not because it’s particularly clever or well-implemented; simply it was the fastest way for me to arrive at an optimal solution for a well-defined problem. Problem statement Splitting a class of $$k$$ students into $$n$$ disjoint meetings (‘sections’) which meet once a week on a pre-determined day of the week, and finding a mutually convenient time for each session based on the availability of each student

GitHub pages subdirectory hassle

This blog is hosted on GitHub pages. It is automatically generated from Markdown source files by Jekyll every time a commit is pushed to the gh-pages branch of the GitHub repo corresponding to the blog. I have a private repo called ‘blog’, and under normal circumstances its ‘project page’ (actually my blog) would appear at, say, http://myusername.github.io/blog. GitHub’s Jekyll process seems to be clever enough to handle this and ensure that html links in the source code are rendered correctly as links relative to this base URL.

Scraping great music taste

I’m a sometime listener of John Schaefer’s New Sounds podcast. He has a particularly eclectic taste of wide reknown. Sometimes a recording of the show is posted online, but this is far from often the case. However, blog posts corresponding to each show include the tracklist for each show as a HTML element. Therefore, it is trivial to write a scraper that iterates through the back-catalog of tracklists. This scraper outputs a CSV file.

Back in New York, again.

You have to go to come back, I suppose. And so I have done both of these things. I spent this summer mostly in and around Ireland, and partly in Dresden, Germany. Trying different combinations of transport from the airport, I took the LIRR to Penn Station and got a cab with my gigantic luggage (wasn’t fancying the subway on a Friday afternoon). After taking the West Side Highway, the taxi driver wisely bailed out at around 79th Street at the sight of congestion there and (comparatively) sailed up West End Avenue, mitigating the Manhattan midday madness somewhat.

Listening to Thunder (as)

A couple of nights ago I had the dubious pleasure of a musical performance at 4 a.m. in the morning, awake when ought to have been sleeping, roused precisely by the auditory phenomenon that captured my attention. A system of several gigantic thunderstorms, larger than any I’d ever experienced my life, trundled over and around Dresden for about a half an hour bringing with them an unignorable musical event. The sheer volume of each thunderclap was such that I felt it not only in my “ears” (whatever that means) but also in my head, my chest, my whole body.

Tools for Thinking

I am shamelessly quoting Daniel Dennett at length here, in his formulation of Rapoport’s Rules. The best antidote I know for [a] tendency to caricature one’s opponent is a list of rules promulgated many years ago by social psychologist and game theorist Anatol Rapoport. How to compose a successful critical commentary: Attempt to re-express your target’s position so clearly, vividly and fairly that your target says: “Thanks, I wish I’d thought of putting it that way.

A Trivial Plain-text Notation for Pivot Chords

A simple way to write about modulations and the pivot chords which can help effect them using nothing but ASCII. Use braces and brackets to distinguish the controlling tonality. Use (tonic, mode) notation where: tonic is in [C, C sharp, D flat …] mode is in [-, +] For example: (C, +):{[VI;II} -> V -> I]:(G, +) reads in plain English: A modulation is effected from C major to G major by the pivot chord VI in C major which is II in G major (which progreses to a tonicisation of G major)

Metric Fakeouts on Spotify

Reading Justin London in class this week. Checking out his website I found a link to a curated Excel sheet of pop songs with what he calls “metric fake-outs”, or metrically ambiguous openings. Using Ivy, I converted the source file (available here) into a public Spotify playlist which is available here. Credit: Justin London (homepage)