Wednesday, June 27, 2012

Cedet Interferes with Slime

Just in case this has bitten others: Cedet (at least the current 1.1 version) does not play well with Slime. It clobbers some Slime facilities, like arg-list documentation in the mode line, and it seems to map capital letter key bindings to lower case key bindings (like C-c C-d A seems to run C-c C-d a which is slime-apropos). There are probably other annoying "step on other libraries' toes" sorts of bugs as well. My advice is that if you are seeing odd Slime behavior, or odd anything behavior, pull the Cedet stuff out of your .emacs file and try without it.

This almost certainly has to do with the way many Cedet setup guides direct you to enable a bunch of global-xxx-mode settings. However, I don't have any lines like this in my .emacs file and still see odd behavior, so I wouldn't be surprised if this is the default.

I found this that briefly sketches how you might only locally enable Cedet. This seems a bit involved and there is no guarantee of it resolving the problem. So, I guess I am back to using by memory to figure out structure members like some kind of animal.

Sunday, June 24, 2012

ICFP Contest Call for Teammates

Update: I have posted an overview of the tools that were used as well as a post mortem for the team's attempt this year.

I have been competing in the ICFP Contest for the last 5 years or so and will do so again this year. The contest begins in 3 weeks, it starts on July 13 at 12:00 UTC and will continue until July 16 at 12:00 UTC.

For those that don't know, the ICFP Contest is a long running competition that poses a single hard, and sometimes mathematically deep, question for the participants to solve in a 3-day time period. The task is a secret which is revealed at the beginning of the contest. The problems are hard to solve, but (usually) easy to understand.

To give some idea of what kinds of problems you might expect, previous years have some awesome tasks like:

  1. Designing control systems for a Mars rover
  2. Designing a flight system for orbiting satellites
  3. Writing an AI for a complex card game

And also some interesting, but esoteric problems like:

  1. Reverse engineering an alien machine code from a compiled executable and data mining that executable
  2. Writing code in various, odd computational models (typically involving writing an interpreter and an optimizing compiler)

In the past I have worked either by myself or in a group of people where each used their language of choice. I have found that when you work by yourself it is easy to lose motivation, particularly when you get stuck and you have no one to bounce ideas off of. When you work with others it is easy to stay with it, but when you are each using your own language, a great deal of effort is spent in porting solutions between various languages or in designing flexible interfaces and protocols between the various code pieces. What I would like to do this year is work with a team of people using Common Lisp for the main development.

The idea would be to get together a group of Lisp programmers that will communicate over IRC, Google+ hangouts (group video chat), or even a Mumble VoIP server and share files using Dropbox and/or GitHub. We can even try some more cutting edge collaborative setups such as shared VNC and/or screen sessions, collaborative editing using Rudel with Emacs, or just connecting to a single Lisp image with multiple swank connections if we are able to try it out prior to the contest start. Last year, my team used a setup with some of these elements to facilitate development with people from Boulder, Colorado to southern Georgia to Seoul, South Korea. It worked pretty well.

The contest is sponsored by Facebook this year, which means that there will be some monetary prizes, which is unusual. The real reward, however, is working for a few days on an interesting problem that you might never have thought about before. I am hoping to have a team that aims to have fun with this competition. We might have a few late nights if you are up for it, but the main goal is to enjoy the competition and not work anybody to the bone that doesn't want to do that.

Anyway, if you are interested spending a weekend participating and would like to work with me, using Common Lisp, please contact me by leaving a comment or sending mail directly to

Update: I have written a post about the collaborative tools that I hope to use this year.