The semester has ended; time to prepare the next semester. Two weeks ago I conducted a lot of job interviews with students applying as TAs for the introduction course “Informatik I” starting in October. There was a gap of about 5 to 10 minutes after each interview—too few time to something reasonable. So I spent the time on a low-priority project: an implementation of the MySQL protocol for Scheme. Well, even though I normally enjoy hacking low-level stuff, I wish I had more tool support. For example, I wish I had an ASN.1 compiler for Scheme. I really would like to be able to write a ASN.1 notation of the packet and turn this description into a Scheme function which parses the packet. This would be even cooler than better binary parsing functions. An ASN.1 compiler for Scheme would open a wide range of uses. For example, the LDAP protocol is specified in terms of ASN.1. It would be so cool to have a portable pure Scheme implementation of LDAP! Writing bindings for the LDAP client library is an option, but that’s not portable nor lightweight. (I’ve written such bindings for scsh, but that was just another waste of time: Lots of boring C code, annoying GC problems, and so on.) Other famous uses of ASN.1: digital certificates a la X.509 and PKCS7, Kerberos V messages, SNMP, and I bet one could specify lots of binary file formats in terms of ASN.1.

Note to myself: Once you have more time, spend it on hacking a ASN.1 compiler.

(BTW, once I managed to assemble correct “client authentication” packets for the MySQL protocol, I’ll post a link to the darcs repository.)

Technorati Tags: , , ,