Xournal improvements
I am a strong believer in open source, in digital ink, and in good software. Accordingly, I spent some time integrating patches and implementing new functionality to make Xournal, the excellent open-source PDF annotating and inking application, close to feature-compatible with Windows Journal. This was the most C code I've written since CS107, and it was tons of fun, newly-discovered GTK bugs notwithstanding. My branch includes image support, lasso selection, and autosave, and it is up on github.
Mathematica context handling
Mathematica has been my main tool throughout graduate school. I wrote lots of convenience code to improve my workflow, both for batch simulations and for exploratory analysis. By far, the most useful of these code snippets turned out to be a set of wrappers around context handling functions. By default, every symbol defined in every Mathematica notebook is in the global scope. This leads to innumerable bugs and mistakes. One can control and manipulate scopes by hand, but it is cumbersome to do with Mathematica built-ins. My wrappers (github link) allow to quickly set and access private contexts. For example, just type setPrivate[] when starting a new notebook, and spawnScratch[] to duplicate the existing notebook's context in a new one.
The anatomy of Facemash rankings / adventures in literate programming
Back in his Harvard days, Mark Zuckerberg made something that was mathematically interesting (but then he punted on it to start that Facebook thing). I am talking, of course, about the infamous Facemash, designed to prove Zuckerberg's drunken notion that his peers looked kind of like farm animals. The way to test this thesis was via a set of pairwise comparisons between randomly chosen photos. From this, an absolute ranking can be established. But what is the algorithm? How well does it perform? How reliable is the result? Last September, I took a weekend to find out, and here are the results.
This project not only appealed to my interest in machine learning and empirical analysis in R, but it also gave me an opportunity to flaunt the literate programming powers of org-mode. The fancy write-up linked above is all contained in this plaintext file which anyone can take to interactively reproduce or extend the analysis. Now that's open-source science!
Hyperbolic metamaterials and dynamic nanophotonic superresolution systems
What is the nature of the diffraction limit? How can we control radiative properties of emitters? Can a superlens ever be realized? How can we use phonons to recover subwavelength information? Why can't there be more conferences in San Diego in the wintertime?
These questions and many others occupied my mind during the years of my Ph.D. I was lucky enough to work on long-standing problems of fundamental importance while breaking new ground in the exciting field of metamaterials, being advised by and collaborating with top researchers in the field. For more information on this, check out my research page, my 5-minute explanation of hyperbolic metamaterials, a couple of my blog posts, and, of course, my thesis.