Feynman Lectures

I was browsing around for interesting podcasts when I stumbled upon some videos of four lectures on physics given by Richard Feynman in 1979. Brilliant stuff!

Shell Wiki

Somebody set us up the wiki! I’ve set up a wiki for jotting down ideas for the next generation of shells and terminals.

Update: The wiki has been taken down because of [expletive deleted] spam bots filling it with [expletive deleted] spam. [Expletive Deleted]!

Checked exceptions

For a long time, I have been really annoyed with checked exceptions in Java. They break encapsulation and seem to pop up all over the place especially when I’m really busy and irritable. And because I have to handle these exceptions right there in the middle of my code where I don’t want to, my exception handlers are often accompanied by angry all-caps comments about how much I hate checked exceptions.

I’m not the only one though; they decided to not have them in C# (see this interview with Anders Hejlsberg) and mr. Thinking in Java, Bruce Eckel, has an essay about why they’re bad.

I decided to suggets that we change the severity of uncaught checked exceptions in eclipse from ‘error’ to ‘ignore’ at work. Unfortunately, it turned out that there was no such option in eclipse, I don’t know why I thought that. Instead, I made a feature request for it in the eclipse bug system (#119230). It only took them a few hours for them to reply: it shouldn’t be possible to configure the eclipse Java compiler so that it accepts code that is illegal by the java language specification. Dammit, that sounds pretty reasonable.

Well, now I’ve filed a feature request at sun’s developer network () but I’m not very optimistic. We’ll see what happens.

Shell wars

There is a bit of a buzz these days about Microsoft’s new Monad shell. From what I’ve seen it looks like the basic model of Monad has some cool features: it is object oriented, can pipe objects between processes, and apparently has a neat model for displaying data. Most importantly, windows developers will now have a decent command shell — honestly, it’s a bit of a mystery to me how people have been able to live without one for so long. In this regard, Monad is very important; but it is important outside of the Microsoft world as well.

As soon as windows has a better tool, there will be pressure to get one on Linux too. People who have gotten used to Monad and have to go back to Linux will think “Bleh! Bash stinks!”, the same way that I think “Bleh! The DOS prompt stinks!” whenever I use windows. Some of those people will start writing their own new unix shells and then, I’m sure, the shell wars will begin: which shell will be the next big thing, the one to eventually replace bash as the default Linux shell. My prediction is that main battle of the shell war will be the war between the languages used for scripting the shells. It’s simple logic really: 1) a new shell needs a decent scripting language 2) many people will think that their favorite language is an obvious choice 3) the language communities will tend to support shells with their language 4) there we go.

Personally, I don’t care much about which language wins. What I do care about is the fact that the basic model for command line interfaces is still basically that you’re punching commands into a video terminal, a technology from the 70’s, using a teletypewriter (TTY), a technology from the 1870’s. Here’s one example of what I mean: even in the new hi-tech snappy terminal I have on my Mac, I can’t set the cursor by clicking on the line I’m editing! I have to use the arrow keys and move one character at a time! Another example: on all terminals I know, the only graphics interface is ASCII characters (with a few colors if you’re lucky). Come on, even emacs could do bitmapped graphics ten years ago! Why do everyone, including user interface gurus like Apple, feel that it is neccesary to replicate all the inconveniences of a teleterminal from the 70’s?

I hope the people who design the next big linux shell will give this some thought, because we can clearly do a lot better.

Tedir semi-release

The first official tedir-related release is a reality: the current version of hadrian can now be downloaded from sourceforge. Also, javadoc has been released for all sub-projects of tedir:

I am currently working on a demo applet that lets you try hadrian without installing anything, and possibly a java web start application if I can finish it before I lose interest. Also, a tutorial is under ways. And by “under ways” I mean that all I have done so far is spend 5 minutes on jotting down a tentative outline.

My New Blog

Amazing… one second you’re at work staring blankly at your computer and then, just a quick impulse and five minutes later, you’re at work staring blankly at your new blog.

More later; I need to get back to work.