Archive for November, 2007
November 22, 2007 at 6:00 pm · Filed under oldbrew
Last month after bumping into haXe and Doomed Online, i somehow got the strange idea that i could get flash to play SCUMM games, like ScummVM.
While i did get it working as a proof of concept, there was a really off-putting bug in the image decode routines which meant that any displayed room graphics were a jumbled mess.
Recently though i decided to do a bit of intensive debugging to try and solve the problem. To sum it up, after:
I managed to fix the decode routines. Now instead of a jumbled mess like this:

You get something more like this:

Which safe to say is much nicer to look at. It’s also as far as i am willing to go with this SCUMM implementation.
With a lot of work put into it, i’m sure it could run Day of the Tentacle or Sam N Max Hit the Road. But there would not be much sense in doing that, except for that 5 seconds of awe after seeing it running in a web browser.
As previously, you can download the hiscumm code for reference here.
ShareThis
November 18, 2007 at 6:06 pm · Filed under oldbrew
In my quest to learn the Ruby on Rails (a web development framework), i re-writ a PHP-based project management app (ActiveCollab) in it. In fact, i wrote about all of this a few months ago.
Now i’ve had my ups and downs with RailsCollab. The biggest down being that there is little interest in it, especially compared to alternate solutions such as ProjectPier. Which is unfortunate.
In any case, a little problem i noticed recently was that RailsCollab still wasn’t really finished. There were still numerous bugs and missing features which made it feel more of a hack than a real product.
So i set aside some of my spare time to fix it. After a few days, i managed to get it stable enough so that it worked properly in the latest version of Rails. I also got the mail notification working, which i felt was a very important feature of ActiveCollab.
But there was still a lingering problem: Apart from the OpenID support, RailsCollab didn’t really offer anything more than ActiveCollab or ProjectPier offered.
So i thought for a while: What feature could i implement that wasn’t present in either solutions?
And then it hit me: an API! Though not just any API, no. Rather, the BaseCamp API .
For those of you that don’t know, BaseCamp was the inspiration behind ActiveCollab (and thus, RailsCollab). From an API standpoint, it pretty much has the same features, which was great for me as it mapped quite nicely to the BaseCamp API. There were only a few features missing, such as the Message Categories, but those didn’t take too long to implement.
So i pretty much ended up with a nice and shiny implementation of the Basecamp API (minus two minor functions which i have yet to implement). Which meant that i could use all of those fancy third party Basecamp tools widgets with RailsCollab as well.
However there was a snag. While RailsCollab worked fine in development mode, it failed to work properly in production mode due to some problem with controller helpers – which as you can imagine was highly frustrating.
Ruby on Rails might be a great web development framework for getting things up and running quickly, but when you start having such simple problems that cannot easily be debugged, and to top it all off it’s inherently slow, then it starts to look more like the web development framework from hell.
Rants aside, i somewhat hope the lure of the Basecamp API implementation will generate more interest in RailsCollab. Though even if it doesn’t, i will still have the satisfaction of knowing i put some effort into polishing it off and turning it into a real product.
ShareThis
November 10, 2007 at 3:12 pm · Filed under oldbrew
For a while now i have been thinking “Wouldn’t it be cool if someone made an online Internet IDE?” After all, it seems that just about every other app you’d find on your typical desktop PC has an equivalent online version.

Well it seems that someone has actually made an online IDE called Heroku. Specifically, it is a hosted Ruby on Rails development environment.
Basically this means that instead of installing Ruby on Rails and all of its dependancies on your computer to make your next killer Rails app, you can just save all of that hassle and do everything in a web browser.
Features are listed here. In all it looks to be a very interesting web app, perhaps more suited to a mobile worker or maybe a small development team looking for a no-fuss solution for collaboration.
Now if only i had an account so i could try it out….
ShareThis
November 9, 2007 at 3:36 pm · Filed under oldbrew
In my Rotating OpenLaszlo with Webkit post, i showed how it was possible to rotate OpenLaszlo elements using a recent build of Webkit, the HTML engine used in Safari.
Soon after i came across some very interesting documents on MSDN. It seems that Internet Explorer has support for visual filters and transitions.
These “visual filters and transitions” cover anything from simple Photoshop effects (including blur which i used in my Flash only Flex-style dialog blur in OpenLaszlo) to more complex transformations. More interestingly, like WebKit you can rotate elements!
An example which rotates by 270 degrees is as follows. Make sure you are viewing this page in Internet Explorer 5 or later, else this won’t work!
Click here
Unfortunately there are rather strange limitations with Internet Explorer’s rotation support.
You can only rotate in increments of 90 degrees, as opposed to Webkit which allows you to rotate by any angle. I guess they figured back in Web 1.0 that nobody wanted to rotate their elements using arbitrary angles.
Another thing is that elements you want to rotate need to have absolute positioning. Although this isn’t really a problem with OpenLaszlo as all the div’s it produces use absolute positioning.
Another perhaps more worrying problem is that with a 270 degree rotation one would expect an element to appear above the initial position. Although this could be worked around by altering the positioning in the CSS accordingly.
I guess that coupled with the apparent lack of support for changing the center of rotation and bugs with form controls limits the full effectiveness of this rotation support.
<canvas>
<class name="itrotatable" extends="view">
<attribute name="wrot" type="number" value="0"
setter="this.wrot = wrot; this.updateRot(wrot);"/>
<method name="updateRot" args="val">
var real_rot = Math.round(val / 90.0) % 4;
this.sprite.__LZdiv.style['filter'] = 'progid:DXImageTransform.Microsoft.BasicImage(rotation=' + val + ')';
</method>
</class>
<itrotatable name="item" x="20" y="10" width="100" height="25" bgcolor="blue">
<text>Test</text>
<animatorgroup name="move" process="sequential"
duration="1000" start="true" repeat="Infinity">
<animator attribute="wrot" to="4" />
<animator attribute="wrot" to="2" />
<animator attribute="wrot" to="0" />
</animatorgroup>
</itrotatable >
</canvas>
Still, that’s one more Web Browser i can sort-of rotate OpenLaszlo elements in!
ShareThis
November 9, 2007 at 9:34 am · Filed under oldbrew
Yesterday i stumbled upon SmartClient, which is yet another of those AJAX frameworks filled with neat custom controls. SmartClient has recently been Open Source’d, and is now available for licensing under the LGPL.

Like OpenLaszlo, SmartClient allows you to define your interface in XML using a set of tags representing the various controls. Although this seems to be an afterthought as i could only find one example in the Demo’s which actually used this.
Another similarity with OpenLaszlo – and even Dojo now i think of it – is that it implements its own Layout system. I guess normal HTML layout simply is not enough nowadays.
Apart from that, it’s just about like any other modern-day fully-fledged AJAX framework. You can use custom controls, do dynamic requests, use silly animations, and bind data.
However there are a few snags with SmartClient.
In order to download the LGPL version, you must register on SmartClient’s website. In addition to get some of the most useful features such as the “Java server” and the “Visual builder”, you must purchase the “full-featured” version. Which is fair enough, i guess – after all they have to make money somehow!
So to sum it up, while SmartClient may be an interesting AJAX framework, i don’t think i will be using it in the future.
ShareThis