I had a pretty good week last week in terms of doing some open source work. I had the opportunity to do some consulting regarding Hecl, which was pretty cool. Some of the work was fed back into Hecl itself, including the beginnings of a “media” API (video streams, taking pictures with the camera), and some other fixes and updates. I’ve also been working on it a bit on my own time, adding a Canvas demo to the MIDP2.0 demo application (works in the emulator, haven’t tried it on a phone yet), and today I’m going to look at updating some of the documentation that’s been lagging the code. In the course of my work, I also happened on a cool idea to speed up the launch of Hecl applications: by creating the widgets as regular widgets in Java, right away, in the
startApp MIDlet method, it’s possible to get them on the screen quickly. At that point, you can start loading Hecl, and create some Hecl objects to hold the already created Java widgets. It goes something like this:
Form mainform = new Form("Initial Form"); TextField search = new TextField("search:", "", 30, 0); ... load script ... interp.setVar("mainform", ObjectThing.create(mainform)); interp.setVar("searchwidget", ObjectThing.create(search)); ... evaluate script ...
This is a good tradeoff, because it gets something in front of the user right away, and it’s not a throwaway like a splash screen.
On another front, I’ve updated some of the code in DedaWiki, to enable email notifications in the comment system, which has percolated into the Linux Incompatibility List, and, with a bit of tweaking, into Squeezed Books. I don’t think the code is quite ready for a real release, but by running the incompatibility list on it, it’s a great way to give it a thorough shakedown, and I’ll attempt to release it sooner or later. Of course, in the meantime, interested parties can get the code out of subversion on rubyforge.