Type theory, here I come…

December 26, 2007

For Christmas my parents got me a copy of Types and Programming Languages. w00t! I started reading it today on the subway coming home from work. Unfortunately I’m kind of anal about reading prefaces, introductions and so on, so I haven’t gotten to any actual substance yet. Tomorrow probably. Now I can finally put into a coherent, rigorous framework all the little bits of knowledge about type systems I’ve picked up here and there… =)

Also, last call for submissions to the Carnival of Mathematics! I’ll be posting it at midnight Thursday/Friday (or possibly early Friday morning), so it would be great to get submissions by 2pm tomorrow.


Carnival of Mathematics #23 — call for submissions

December 20, 2007

On December 28 I’ll be hosting the Carnival of Mathematics over at my other blog, The Math Less Traveled. If you have any interesting math-related posts you’d like to submit (CS-related posts are fine—even encouraged—as long as there’s some sort of mathematical content!), that would be sweet.


A word to the wise

December 19, 2007

If you only implement the less than operator in a custom Ord instance (on the theory that “I know I only need to implement one operation to get defaults for the others, and less than makes sense, since you can get anything using less than and equals”), the compiler gives zero warnings (even with -Wall) and trying to compare anything will send your program into nasty infinite recursion. It turns out that you have to implement less than or equal to (or the ‘compare’ function), not less than. Says so in the docs for Ord, of course, but… sigh.

In related news, the new ghci debugger is quite helpful. =)

And in unrelated news, I’m finally done with grad school and fellowship applications!!


an application (haha) for darcs

December 5, 2007

So, I’m currently in the process of applying to grad schools. Since no grad school application would be complete without the venerable personal statement, I have written a generic personal statement template which makes me sound totally awesome (…because, of course, I am. This whole “selling myself” thing still feels rather unnatural. Oh well.) The idea is that once I have a nice template, I can proceed to tailor it for each individual school to which I am applying. Sounds good, right?

But it’s not quite that simple. The template is pretty much all written, but I’m still not quite happy with it. Squeezing the last bits of perfection out of an essay isn’t something you can do in fifteen minutes, or even all in one sitting. And in the meantime I’d really like to get started tailoring it for different schools. And even if I was perfectly happy with it in its current state, that’s no guarantee I won’t decide to change something later. And of course, as soon as I start making tailored copies, any changes I make to the basic essay will have to be merged into the copies. Ugh. So I was thinking to myself, “Hmm, there’s got to be a nice way to keep multiple, slightly divergent copies of a document and still be able to merge subsequent changes easily… oh, wait, duh.”

That’s right, I set up the main template essay in a darcs repository, and then created each of the tailored versions as copies using ‘darcs get’. Now I can tailor the individual versions to my heart’s content, while still being able to easily merge in improvements to the basic essay. So far, it’s worked like a charm. Nothing earth-shattering, of course, and I’m sure I’m not the first person to think of this, but it seemed like a neat, elegant, somewhat non-standard use of darcs, so I thought I would share.