Keep Working, Worker Bee!

1.24.2006

PLaneT improvements

I've been working a lot on PLaneT, and I'll be doing more in the coming days and weeks. A summary of what I've been up to in that regard:
  • The PLaneT client now support "development" links between PLaneT require specs and arbitrary directories on your file system, intended to make PLaneT package development easier
  • The PLaneT server now allows packages to specify a minimum mzscheme version that they should be installed on
  • Several improved error messages
  • A couple bugfixes that would have caused the client to crash the wrong way on certain errors
  • MIME-type tweaks on the server
  • The server is now running the latest SVN version of PLT Scheme. The primary reason for that was to get the client code synched up with the server code, but it may also have the effect of improving server stability

There's more coming up, by the way. I'm glad to see that people are using PLaneT for stuff.

What They Don't Teach You In Graduate School

I recently heard about a series of articles from Inside Higher Ed called "What They Don't Teach You in Graduate School" that look pretty interesting:
  • Part 1 — finishing your dissertation and finding a first job
  • Part 2 — your academic responsibilities
  • Part 3 — the tenure track
  • Part 4 — your life as an academic

1.19.2006

The most useful thing I've done with TeX so far

is this:

Greek letters

I've come to face the fact that (a) I really never learned more than the "greatest hits" of the Greek alphabet, and (b) not knowing my phis from my zetas will actually hinder my academic progress at this stage of the game. So, a cheat sheet.

1.17.2006

POPL and PLaneT and type theory

Hi all, and apologies for the lack of updates; unfortunately I've been busy and haven't really had much time to tell you all what I've been up to. Anyway, over last week I was in sunny Charleston, South Carolina for POPL 2006. It was pretty great; I've got some notes, but unfortunately I don't have time right now to type them all up so I'll save that for another day. I will point you to "Environment Analysis via ΔCFA", a pretty crazy and interesting extension of Olin Shivers' CFA technique by Matthew Might and Shivers himself. I award it high marks even though it does use "via" in the title (yes, I'm aware I've done the same thing, but now I'm embarassed about it).

While I was there, though, I did manage to pick up a copy of The Reasoned Schemer, and I even got it signed by Will Byrd. (Sadly, Dan Friedman left before I got the book, and Oleg wasn't there at all as far as I could tell.) I haven't worked through very much of it yet, but what I've read so far has been fantastic. Very much in keeping with the other Schemer books, it's whimsical but fathoms deep at the same time. Great stuff, I can't wait to work through the whole thing.

Also while I was there I managed to advertise PLaneT around to all the Schemers there who hadn't heard of it. Self-promotion is pretty awkward for me, but it really surprised me to see how many people who were knowledgable about Scheme and even PLT Scheme who didn't know what it was. I think I need to figure out a better way to get people to know it exists; particularly for a tool like PLaneT it's really important that everyone know about it.

Speaking of PLaneT, I've been working on it recently; I just put out some improvements and I expect there'll be more before too long. Right now the user story is pretty good, but the developer story is lacking; there are lots of tiny little gotchas that aren't a big deal if you know what's going on but are pretty unfriendly to people who don't. Some particular examples that have happened in practice: developers not realizing that planet requires aren't like lib requires; developers writing code whose compiled form cannot be written to file; developers not realizing that planet package version numbers are different from their own provided version numbers; developers making packaging errors because they develop things as a collection and release it as a planet package; and so on. I'd rather have these problems never arise than to be able to smugly point out to the authors of broken packages that they should've read the documentation more carefully.




One more thing, a really surprisingly fun and frustrating puzzle from a type theory class I'm taking: assume you've got the simply-typed λ-calculus with base type T, but no constants that have that type. Prove that there are no terms at all of type T. Once you've done that, for more fun, add the special expression Omega with type T -> T and evaluation rule Omega --> Omega and prove the same thing again. It seems completely obvious, but I found proving it frustratingly difficult.