Will Guaraldi Kahn-Greene

[FSF Associate Member]

Hosted by
bluesock.org

Will Guaraldi Kahn-Greene

location: Somerville, MA, USA
email: willg at bluesock dot org

Status (June 2009)

I'm a software engineer at Participatory Culture Foundation. Miro 2.0 is out and we're working on Miro 2.5.

I'm also working on PyBlosxom 1.5.

I'm cursorily involved in autonomo.us and other things.

Links

Content

Projects

This is the list of projects I work on:

  • PyBlosxom (active) - I'm the current maintainer and a core developer for PyBlosxom. It's a file-centric weblog engine in the spirit of Blosxom but written in Python. I'm the primary author of the PyBlosxom manual which was originally written in docbook but has since been converted to restructured text. I released PyBlosxom 1.4 incorporating work I did while helping out on Cheesecake and also pulling in Paste support. I mentored a GSoC 2007 project building a web interface for PyBlosxom called webfront. I'm currently working on PyBlosxom 1.5.
  • PyBlosxom plugins (active) - These are plugins for PyBlosxom I wrote or took over from other people.
  • Trac plugins (active) - These are plugins for Trac that I wrote to make my Trac instance more useful.

Writings

This is a list of things I've written. It's mostly documentation, but S and I are into writing children's books and we finally published one in December 2005 which was very exciting. Thus my list of writings consists of one children's book, a couple of half-written manuals, an article, and some other stuff.

  • Bee Careful, Marvin - This is a children's book that my fiance (now wife) and I wrote in 2004/2005. I'm also in the process of posting the source code online in a bzr repository and a Trac instance and relicensing it under the Creative Commons BY-NC-SA 3.0 license or alternatively the GPL version 2 or later. We encourage you to download it and print it out and/or purchase a professionally bound copy from Lulu. We're in the process of writing a sequel.
  • The PyBlosxom Manual - I originally wrote it in DocBook, but John, Ryan and I rewrote it in reST for PyBlosxom 1.4. The DocBook format is a real pain in the ass, though it's likely that it would be easier to work with if I knew it better. Regardless, it was a big obstacle for other people to help out with the documentation and converting it to reST has made it easier.
  • Cleaning Up PyBlosxom Using Cheesecake - A case study for using Cheesecake to overhaul a pre-existing Python-based project. PyBlosxom 1.4.x includes a lot of fixes from the cleaning up. PyBlosxom 2.0 will include more.
  • CSG260 materials - This is a bunch of stuff I'm mirroring here that I wrote when taking CSG 260: Advanced Software Engineering in Fall of 2006 at Northeastern with Karl Lieberherr. It's probably not very exciting unless you're taking one of his classes or following the constraint satisfaction problem solving research in Project Evergreen.
  • Mapping Demeter to XML Schema and XPath 2.0 (May 2007) - This is a paper I wrote during a research and readings semester with Karl Lieberherr. It maps syntax and semantics between Demeter class dictionaries and traversals and XML Schema and XPath 2.0. It's a one-way mapping, however. This is useful for someone who was going to implement some of the graph-traversal algorithms used in Demeter in a XPath 2.0 component that's XML Schema aware.
  • Summary of research on modularizing Demeter class dictionaries (May 2007) - This is another paper I wrote during a research and readings semester with Karl Lieberherr. It's a summary of the readings and research I did for the semester. I didn't get as far as I wanted to on that project, but I did learn a lot more about modularizing things.
  • LPC Manual - A manual on LPC that covers the language and coding in the language to build areas. It's sort of targeted towards people with little programming language or coding experience. It was something I worked on from time to time as I discovered people had conceptual difficulties with various aspects of LPC the language. It was hosted on the Dark Rifts web-server, but when they disappeared, so did the manual.
  • ANSI codes - A listing of ANSI codes that I found, overhauled, and added to while working on Lyntin. For some reason, it's a very popular page on my site.
  • regexp haiku - A regexp haiku I wrote that the editors liked and had posted on java.net.
  • Lots of documentation and project specifications for the companies I've worked at. Since this is a catch-all for what are essentially internal documents, I can't share them with anyone.

Abandoned Projects

It occurred to me that I should document my abandoned projects, too. I spent a lot of time on them and the only thing that differentiates them from other projects is that I stopped working on them.

  • Lyntin (inactive) - Lyntin is a mud client written in Python which shares many commands with Tintin. It has since diverged from Tintin style in many ways. It's listed as one of the largest Python projects on the Python wiki--though I'm sure there are others out there that are much larger. I stopped actively developing Lyntin in May 2004 when I passed the project off to Eugene.
  • Lyntin plugins (inactive) - These are plugins I wrote for Lyntin. I don't maintain them any more and I think the AIM one no longer works (I think AOL disabled the TOC protocol that it requires), but they're still useful to some people.
  • Dark Rifts (defunct) - I've spent a lot of time writing various mud engines and most of those projects petered out. I had a friend who introduced me to Dark Rifts, I became a coder there and then an admin. Over the course of three years, I wrote a lot of functionality (vector-space search system for in-game documentation, time/weather daemon, functional programming functions, gobs and gobs of documentation including the beginnings of an LPC manual, ...), fixed a lot of bugs, and wrote a bunch of areas as well. Then after a craptastic conversation in January 2007 with one of the other admin, I retired permanently, which was unfortunate and bummed me out. If I do mud development again, I'll look at helping out on Divmod Imaginary.
  • Stringbean - Stringbean was a Python-based mud that I was working on after several other projects had been abandoned. There were some interesting things I wanted to try and then I discovered that Twisted had already done some of them.
  • Bluemud - Bluemud was a project I worked on with a few other people back when I was in California in 2000. It was a Java-based mud which used Jython as the in-game world language. We bumped into a series of problems with Java security and Jython. We were looking into rebuilding what we had done in C with an embedded CPython VM, but due to various life issues (I moved from west coast to east coast among other things) the project kind of fizzled out.

    One of the coolest things we did in Varium and then pulled into Bluemud was in-game screen editors. I wrote a mini version of Pico and we had a mini version of Emacs (called Nomacs), too. Pictures are here. We had the NAWS telnet option working (so you could resize your telnet window and the editor would resize with it) and towards the end I was working on very rudimentary syntax highlighting functionality. To build these editors, we implemented a primitive curses-like windowing toolkit.

    One part of Bluemud was a mini-project I called Bluemud Atlas which took an asciimap and converted it into a tiled image. The purpose of this was to generate a web-based atlas of the world and its areas from a series of ascii-maps. I still use it occasionally for gaming.
  • Varium - Alas, but the Varium web-site is no more. Varium was the first Python-based mud project I worked on in 1998 and 1999. We got a lot of interesting things working, but I think the scope of the project was too huge (engine, mudlib, world, ...) for the small group of us (three at the time) to complete. After Varium wound down, I worked on Bluemud and pulled a bunch of the things we did in Varium into Bluemud.
  • Bluemail - I wrote Bluemail as a Python CGI application back in 2000 or 2001 or thereabouts. The mission was to build a webmail client that used the same folder structure and settings as Pine so that people who used Pine when they were ssh'd into the box could use the webmail client when ssh wasn't available. During one of the server switches, Bluemail stopped working. Since then there have been a lot of advances in Python-based web-application frameworks and Bluemail should be re-written using one of those.

This site

This site was written using Emacs and Vim (yes, both). I use PyBlosxom to power my blog, Gimp for graphics, Trac for projects, and Subversion and Git for version control. It's hosted on Apache 2 on Debian GNU/Linux.