My publications list is here.
My professional interests include:
- OS design and implementation
- Embedded and wearable computing
I do most of my programming in C. I also like Go and Lisp, although I do not get many reasons to code in Lisp. Recent projects include:
- Minimega, a tool for rapidly launching hundreds or thousands of virtual machines. Run it on your desktop or across hundreds of cluster nodes. Set up arbitrary networks.
- NxM, a 64-bit Plan 9 kernel descended from Nix. It can run Go and some Linux programs. We're looking for people who want to do kernel development, or who are interested in the idea of creating an entirely Go-based userspace ecosystem. Visit the site for more information, or send me an email!
- Gosim, a program which simulates people walking around a city. Bitbucket.
- Goblog, which utilizes Go's http and template packages to both serve static files and dynamically generate pages for a blog. I'm using it to host this site entirely. Source at the bitbucket repo.
- gproc, a program for managing clusters—my development fork is located at http://bitbucket.org/floren/gproc.
- Hellaphone: the Inferno OS running on Android phones. More info here.
- Anduin: I've been playing with wearable computing; the Anduin window manager from MIT is a good start, but missing some features I want. I've started adding them in my own fork.
I've found it useful to bring my own editor with me sometimes, if the local vi is insufficient. That's why I keep this version of the Sam editor around, with makefiles adjusted to compile on Linux: sam.tgz. You may need to tweak the samterm Makefile to point to the correct lib directories depending on your distribution (the XLIBS variable), but otherwise it seems to build fine on Ubuntu, Debian, and Arch. It also built on Solaris at one point, but I haven't tried it lately. Just run "make" and "make install-local" to install it to your ~/bin.
I put some recipes I particularly enjoy here.