Create your own sound effects using spider synth, click here

Robust Systems

Here’s an essay by Sussman talking about borrowing ideas from AI and biology to build robust systems. I don’t pretend to understand all of what he is getting at but he does present some nice and different ideas how the future of engineering robust software could evolve.

It is full of little gems to make you think. I am no aware of the state of the art of robust software design for instance software made for the medical and aviation industry but I suspect his views may not necessarily be held by those industries. I doubt that worries him as he is an academic looking to the future, he probably thought of the essay as a shot at raising awareness that ideas are around to be tried out.

Here is the essay

Enclojure

I have a love hate relationship with emacs, for the past few months working with clojure and emacs has been fun. As my programs start to grow in size I feel the need for a more integrated IDE.

My eye turned to enclojure, it is certainly in early stages and it seems the selection of keyboard shortcuts seems a little bit wrong to say the least. They map to the ubuntu change screen shortcut and some even map to keyboard shortcut already defined in netbeans.

It is also quite buggy.

Having said that is does work and has potential. After one night use if seems, err, usable. I look forward to some updates to it. Over the next couple of weeks I shall use it as my default editor and see how it goes.

I did actually try to download and compile the code for the plugin, with perhaps an eye to seeing if I could fix some of the bugs. They don’t seem to have placed all the dependencies into their subversion repository and tonight I was not in the mood for manually downloading jar files. Come on guys make it easy for others to build your code.

Applets

I have in the past written a few game applets in Java. Nothing major, often I am just scratching an itch so to speak. One element that perhaps slightly surprised me was how badly applets have been supported in the web gaming world.

Everywhere you look there are web gaming websites that use flash but very little in the way of support for Java applets. It is understandable as applets have had some real issue in terms of compatibility/stability with different browsers.

Programmers that make games in Java and publish via the applet route have traditionally have had to set up their own site and then attempt to get on various link sites in the hope of driving some traffic.

There have been a few small portal like sites, for example www.javagametome.com,

Things are gradually starting to change. In part because Sun has put a bit of effort into applets and made them less broken. And in part because while flash is still very much number one it is starting to face competition from Silverlight, Java and heck even JavaScript is getting more capable. Gamejolt.com seems to have been pushing itself as a place that does not mind what language you use. Games4J are also doing the same thing although I think their publicity has been slightly lower key, They started out as a applet only site but now accept flash. With luck these will be successful enough that at least some other websites with start to accept Java applets.

Note: When I say Java I actually mean any language on the JVM.

A Few Things I Would Like To See In WordPress

With the release of Wordpress 2.8 I am briefly thinking about what additional features I would like. So in order of preference.

  1. A vector graphics editing package built in. This would greatly improve my workflow. I often want to include some vector based diagram in a Blog post but the barrier to creating one, exporting it as a png, uploading it and finally having to import it into the post is just to much hassle. A simple built in vector graphics editing tool would really help add some clarity to my posts and help with he work flow.
  2. Math symbol rendering. Yes plugins exist, but I am never quite sure which one to use and how long it will be supported for. Will it work with new versions of WordPress? I don’t know the answers so by default I would prefer too not rely on a plugin for things essential to my blog.
  3. Code highlighting built in. Pretty much for the same reason as the math symbol rendering really.

It is 1986 all over again.

It occurred to me in the past week or so I did not have a feel for what lisp is capable of. I have been learning all the components of Clojure and trying to figuring out how they hang together. But I really want to “stand on the shoulders of giants” and gain this insight as rapidly as possible rather than gradually absorbing it over the years.

Clojure is a dialect of lisp and there is a set of classic videos from1986 to help out. These videos are basically the old MIT course that introduced programming to undergrads at MIT, it was replaced only a few years ago. The lectures where videoed when they were given it to a bunch of people at HP in 1986.

I particularly liked the symbolic differentiation lecture. This used to be an example program I would code when learning a new language. At the end of one lecture they had reached a point where I had often reached. The following lecture they explained that they could go further and create a pattern matching interpreter for trees and then just supply the rules for symbolic differentiation. This same interpreter could then be re-used for equation simplification and
other things. Great stuff.

I am just over halfway through and to be honest some parts are a little slow and this really due to the fact some of the ideas they are arguing for are now common place and they are really aimed as an introduction to programming.

I suppose because of this the focus is not on lisp in itself but to use lisp to express the ideas they are trying to convey as precisely as possible, I often find myself considering how the same ideas could be expressed in C++/Java and it seem in terms of code size and ease of implementation lisp is a winner. I don’t feel qualified to comment on how other high level languages compare with lisp.

In all there are well over 20 hours of lectures and assuming you know a little bit of a lisp like language there is plenty of insight to be gained from watching them.  You can also find them on YouTube and Google Video.