It is said that the Net is vast and limitless. It is to be wondered, then, O traveler from distant lands, that of all the myriad places you could have gone, you have chosen this, my little corner of the Web. But, now that you are here, I will endeavor to make your stay enjoyable, illuminating, and perhaps even useful. Feel free to read about what I have been up to below, or just browse.
The technical report version of my thesis is up
Three days of work that took two months to do, but it's done. The full thesis, with the full tarball of source code for running the program described therein, has become MIT CSAIL Technical Report 2009-053, for your downloading pleasure.
I submitted my thesis
It is done. Years of work, months of writing, and weeks of polishing and presentation are done. I'm proud to say I'm proud of the result — the final proofread surprised me by how much I liked what I was reading. If you have any interest in programming languages or in my doings, I encourage you to read the submitted document; I have worked very hard to make the ideas accessible. If you are really interested, the next thing I will do is put up a Technical Report with complete accompanying materials so you will be able to play with the ideas in the dissertation live.
I defended my thesis!
The defense was August 4th, a week ago yesterday. It was rather painful to prepare for, but ended up working out pretty well. In case you might be interested, you can read the slides. Full disclosure: they were not designed to be very comprehensible stand-alone. That being done, all I have to do now is produce the actual final version of the actual document.
The big day was April 25th, a week ago tomorrow. Life hasn't changed that dramatically in six days, but it is kind of a new feeling. I imagine that such a momentous event deserves a longer description, but nothing non-platitudinous is coming to mind.
I talked about propagators at ILC2009
a week ago today. It was a fun talk to give, and people seem to have liked it. I doubt the slides will be very informative if you haven't heard the talk itself, but putting them up doesn't cost anything...
The Art of the Propagator Tech Report is online
This paper contains the stuff I've been thinking about for the past several months. I'm rather pleased with what got figured out during that time, and with how the writeup came out. Now I can put a period on capturing the technical content generated in those months: the permanent Tech Report has been submitted and published.
The Scheme Implementation Choices are up!
It took longer than I expected, but my spare-time project to catalog differences between implementations of Scheme has yielded some (preliminary!) results that I can publish on the web for all to see. If you're into Scheme, perhaps you will find this useful, or at least interesting.
I spoke at the Boston Lisp Meeting on Monday
It was a presentation of about twenty minutes about my spare-time project to catalog the differences between Scheme implementations. I had not yet thought it was ready for the public's eye, but my talk seemed well received, and that encourages me to post the preliminary results on the Web. I will touch them up some more, and write down the disclaimers I said aloud at the meeting, and hang them somewhere suitable when time permits.
I released Test Manager version 1.1
Having gotten positive feedback about Test Manager 1.0, I implemented a few of the features people asked for. This release marks the stable point of "no more low-hanging fruit."
I released Test Manager version 1.0
Test Manager is a unit testing framework for Scheme that I wrote because I didn't find any others that I liked. It runs on MIT Scheme and Guile. I am releasing it because I think it is sufficiently mature for general review, and because I know about a score of people who might like to use it. I'll be hosting it right here on this home page for now, and maybe do something more elaborate later.
I put The Report on the Probabilistic Language Scheme on DSpace
That Report is the first conference paper for which I was primarily responsible. It is the compression into publishable form of the research on embedding probabilistic reasoning into programming languages that I did in the spring. I presented it at the Dynamic Languages Symposium 2007 in October in Montreal, and now finally got unlame and posted it on DSpace, to make it more generally accessible.
My vote on R6RS is online
R6RS stands for the Revised6 Report on the Algorithmic Language Scheme. The Revised Reports are the defining documents of Scheme, and the last one was published nine years ago, which is rather too long for a langauge to languish without an update. The community seems divided on the proposed sixth one — it is far larger than previous Scheme standards, and leans more toward compromise and away from perfection than its predecessors did. I, however, voted in favor of ratifying the current proposed draft, essentially on a compromise over perfection consideration. We shall see whether the mighty wizards who maintain serious Scheme implementations will accept the putative standard.
Published Programming Habits
About two months ago, I found myself giving someone advice on how to run a small software project of theirs. The experience was rather disconcerting, in that I had far more advice than breath, and I delivered it in a broken and disorganized manner. This inspired me to actually think that collection of advice through, and write it down in as coherent an essay as I could manage. Two weeks of drafting and six weeks of editing, interspersed among working on my research, later, I now produce the result.
Released Nuggeteer v0.8
After twelve rather intense days of training, bugfixing, and release engineering, and 64 revisions in the subversion repository, we have finally released version 0.8 of Nuggeteer. Grem and I have been developing it on-and-off for about a year, but now it's finally out. One noteworthy aspect of this execrise was that we found ourselves turning our group's dozen or so computers (and another dozen borrowed from CSAIL) into a surprisingly well-behaved cluster in order to do the training.
Revamped build system
The more I deal with Ruby the better I like it. Today I rewrote my build for this website from m4 templates pushed around by a makefile to erb templates pushed around by a rakefile. ERB stands for "Embedded RuBy", and allows one to, surprise, embed Ruby code into a text file. In contrast, m4 is a macro processor with its own macro language. Similarly, rake is a build program much akin to make, but using Ruby (and suitable libraries) as the build definition language instead of the make language that make understands. I find Ruby to be the better language of the three, and there is also a nontrivial gain to be gained from using the same language across the board.
Finally launched Number Gossip
After nearly a year of intermittent dabbling, I finally launched a shiny new Ruby on Rails revision of the Number Gossip section of my mother's web site. This was originally part of a larger effort to rewrite the entire site in Ruby on Rails, but we decided it would be better to give Number Gossip a web site and identity of its own.
The months passed, the site, long languishing unmaintained, is now updated.
My first Rails app!
Today I declare that The 1000 Sudoku Challenge is good enough for the public eye. The challenge is the first application I have built with Ruby on Rails. It was originally concieved as a joke for my family's amusement, but it proved an excellent opportunity to learn RoR in particular and modern web design and publication in general. So now, in thanks for the gift of knowledge it has given me, I give it the gift of life.
Posted a bunch of Symmetriad pictures.
I had made them a while ago, but I kept thinking that I'd upgrade the rendering engine before posting, and redo the pictures with better shading and less jagged lines, and make more, and organize them, and explain them better, etc, etc, etc, but today I realized that it's better to just post them as they are for now and then keep the postings up with the technology, instead of waiting for perfection.
Retroactively started this news section.
I think that a stream of dated, time-sensitive material such as this is what differentiates the living, modern website from the dinosaurs of the last millenium. Too many times have I stumbled upon pages simply talking about something and wondered "How old is this? Where's the date on this thing?" Now, perhaps, it will a least be clear whether this page is dead.