Strange Loops

No Matter Where You Go, There You Are

Vacation Ideas

| Comments

In March, I intend to take a vacation. Not because I really want but because I have to use my vacation time before they expire April 1st. For budgetary reasons, I need to do something cheap (I’ll blame the economics on the new powerbook). I was thinking of treating it like a sabbatical. University professors get every seventh year off to do whatever catches their fancy. I want to do something like that. Everyday I spend in the office, I work on designs and code for somebody elses project. I just want to spend those 9 days off doing something I want to build. I want to focus on writing code. With the languages and tools I want to use. With design ideas I want to pursue. And little to no  documentation. And no project schedule! It gets done when I say it’s done and not a moment sooner.

The question: What should I build?
The secondary question: What should I build it in?

I’ll answer the secondary question first: With one of the new impractical languages I’ve been studying. Objective C, Groovy, Lisp, Io, Ruby, Python are the ones I’m most comfortable with currently. I’m leaning towards  doing it with Io. The language has some  nice properties that just appeal to my sensiblities. Why I find Io attractive shall be the subject of another blog entry I suspect. Here are some possible project ideas:

- Embed Io into X, where X = {VIM, Frontier Kernel}
As a proof of concept, embed Io into X. I’ve been meaning to spend more time exploring VIM. Same story with Frontier. Doing either of these is going to be the hardest task on my list. I’ll need to look at the X source code before my vacation to decide whether to do this. I suspect the tricky bit will be integrating Io garbage collection and the legacy C code.

- Write a RSS/WebServices Cocoa application
Seems doable. A number of examples supplied with the Io tarball are Objective C related. Plus RSS/Webservice kinda stuff is what I’ve been wanting to play with for awhile. Maybe I’ll write an Amazon Web Services client. Or a RSS reader. Or both if they turn out easy enough.

- Write a webserver
HTTP 1.0 is a simple enough spec to implement. I’ve done it in the past. Maybe add persistent connections and pipelining if I have the time. It’ll be interesting to write a webserver with a language that has support for coroutines. The event driven model for a webserver intrigues me to say the least.

- Write a blog
Doesn’t need to be anything fancy. Blosxom is a small blog software that does really fancy stuff with very little code. That should be my goal but initially I just want to display text files in reverse chronological order of their creation date.

I’ll probably do the blog and improve it. With any time left I’ll try and write a Cocoa application. This seems like an entirely sensible plan.