Archive for May, 2008
May 28, 2008 at 2:19 pm · Filed under oldbrew
Soon after bumping into haXe and Doomed Online, they got me thinking. “Would it be possible to run SCUMM games in flash?”. The answer to that of course is yes, as was demonstrated by my SCUMM Interpreter written in haXe. Though as with anything, you really need to spend the time to implement everything, and justify it somewhat.
(Not to mention that Flash 10 is supposedly going to be able to compile C code, thus making my complete port more or less redundant)
Now i would have stopped there, if i hadn’t noticed that haXe targets multiple platforms, including every web developer’s best friend, JavaScript. Thus i thought, “Would it be possible to run SCUMM games in Javascript?”. For the answer… well, take a look!

Yes, that is an image of OpenQuest running in a web browser, specifically Firefox. It can run in other browsers too, though to date i have only tested Firefox and Safari, the latter of which mysteriously crashes.
And if you want, you can try it yourself by clicking here. A word of warning though, it is highly recommended that you use Firefox to run it. Otherwise you might get a nasty crash, or a big disappointment.
As previously, just about enough is implemented to get the first room of OpenQuest loaded. Actors, verbs, objects, and sounds are not implemented, though it would certainly be possible. However the engine runs much slower than in Flash, so i doubt anything that could be considered to be “playable” could be implemented with it.
Still, i feel I’ve now accomplished what i set out to do when writing this interpreter – that is to push haXe, Flash, and JavaScript to the limit and see what i can get out of them. And of course, learn a bit more about SCUMM too.
Again, i would like to congratulate the ScummVM team for their SCUMM interpreter and Alban Bedel for his scummc compiler. Without their efforts, i wouldn’t have had any code or references from which to base my haXe-based SCUMM interpreter.
Edit: Source code available from github.
Edit: No longer crashes in Safari provided you are using Safari 3.1.2 or later.
ShareThis
May 23, 2008 at 7:09 pm · Filed under oldbrew
Recently i have had another go at tweaking RailsCollab, the pet project of mine (which i have mentioned previously).
After moving the source repository from Subversion to Git, i decided to add in a long standing missing feature – the web-based configuration editor.

Originally i pretty much stayed away from implementing this as Ruby on Rails was a real pain in the ass when it came to deployment, so i couldn’t implement a configuration loader that i knew would work in 90% of deployment cases.
That was, until recently when Phusion Passenger was released.

For those of you that don’t know, Passenger is an Apache module which allows you to simply drop in your Rails application and run it with practically zero configuration. It pretty much falls under the “it just works” category. I have no doubt that anyone using RailsCollab will prefer using Passenger to deploy. Consequently, i have been able to implement a rather nice configuration loader based on this assumption.
Which brings me to the demo. A short while back, my web host, DreamHost added Phusion Passenger support to their web servers. Factor everything together, and you have… the RailsCollab demo!
Link to the demo
“But wait!” you ask, “how do i login?”. Well, using OpenID of course. As with my previous demo, you should be able to select the “Use OpenID” checkbox and type in your OpenID to login.

This will automagically register you with the system, adding you to the “OpenID” company and the “RailsCollab” project. Afterwards if you want, you can reset your password so you can login using a regular username & password, though personally i think typing in your OpenID is a better idea.
Note that your OpenID provider needs to support handing over identity fields in order for RailsCollab to correctly register you. MyOpenID is an example of a provider that supports this. Also note that if there is a user with a duplicate username or email in the system, registration will fail.
One more thing
The RailsCollab demo also supports the Basecamp API. This means that you can take any existing widget, program, or service that integrates with Basecamp and use it with RailsCollab. e.g. Avalanche, Freshbooks, or Cashboard
So what are you waiting for? Try the demo already!: :)
ShareThis
May 14, 2008 at 6:13 pm · Filed under oldbrew
Many months ago, i was invited to join the social networking site cre8Buzz. I accepted mainly out of interest, as i have always tended to stray away from these sort of services.

Now i’m buzzing off.
Why you ask? Well, after looking objectively at what i was getting out of the site, i concluded that there was simply nothing. Actually, that’s not quite fair so i shall elaborate.
In fact, i’m not quite sure what i’m meant to be getting out of it. Perhaps i’m looking at it the wrong way; instead should i be thinking “what are other people meant to be getting out of it?”.
So if we look at the “Top 8 Communities” list for example, we find:
- Moms
- Women
- Photography
- Real Estate
- Entrepreneurs
- Dads
- Fiction
- Social
The first two, Moms and Women. Yikes! Not exactly my forte. Looking further, here’s the “Top Ranked Blogs” list:
- Bliss in Bloom Women
- Oh, The Joys Moms
- Looking Beyond the Cracked Window Fiction
- Twas Brillig Women
- Momo Fall’s Moms
- Joeprah – My Life as a Stay at Home Dad Dads
- The Busy Dad Blog Dads
- Mimz-photography Photography
Which pretty much sums up what cre8Buzz is about. Moms & Dads! I’ve inadvertently been fooled into joining a parenting community!
Now this in itself wouldn’t have been a bad thing… if i was a parent. But considering i’m not, i just don’t see what i can possibly get out of networking on cre8Buzz.
I should also factor into this the rather obvious lack of activity on my profile. When i joined, i chose to participate in the “Entrepreneurs” community, which sounded like a great idea at the time. In total i managed to get 5 people to join my friends list. I even posted on the forum.
But then… nothing.
It seemed that there was negligible activity within the “community”. Updates were sporadic, if there were any at all. It wasn’t really worth my time bothering to try and participate.
Which pretty much sums up my view on cre8Buzz. I’m sure it probably is a great social networking site, but it just doesn’t work for me. but My mouse is now hovering over the “Destroy Account” button…
Going… Going… Gone!
ShareThis
May 4, 2008 at 10:00 pm · Filed under oldbrew
A while ago, i was contacted by Ted Haeger of Bungee Labs in response to my blog entry on Heroku. He invited me to check out Bungee Connect, their fully featured web-based IDE. So i did.
Keep in mind that the following overview is of the Beta version, which is still under development and so is still subject to change. Also remember that this is in no way an in-depth review.
For those who don’t know, Bungee Connect is an all-inclusive web development environment. It covers development, testing, and publishing of web applications. In addition, a collaborative element is introduced with support for multiple users.
Development

So here’s the development environment, which has a striking resemblance to a certain Intergrated Development Environment from another company.
Naturally, the first thing anyone would want to do is make a simple “Hello World” application, which sounds very simple at first – right? Wrong!
Sadly there is quite a big learning curve getting to grips with Bungee’s terminology and workflow.
As you’ll note by looking at the screen shot, the hierarchy for my “Hello World” application looks like this:
Which to me, seems a bit overcomplicated.
Bungee Connect is not the sort of development environment where you can just pick it up and churn out a working application without first reading the documentation.
Still, with a lot of head bashing you could probably think of the above as an example of MVC (Model, View, Controller). i.e. “MyAppProject” is where the views go, and “MyTypeLib” is where all of the controllers go.
For the actual code, it seems primarily based on Java or CSharp. Though i couldn’t find this explicitly stated anywhere, so i am not sure.
One of the key features which sets this solution apart from other web-based development environments is the GUI designer. It can be very much likened to Visual Studio – there’s a control palette on the left, object inspector on the bottom, and you can move about controls in a WYSIWG-style canvas.
Another thing of note is that you can bind values of controls to counterparts in control objects. This means that you can easily build up complex interfaces without writing tonnes of glue code, which can save a lot of time. If you have ever used Interface Builder on a mac, you’ll probably know what i mean.

Staging & Deployment
Assuming you made it through the development process, it’s likely you’ll want to subject your application to rigourous testing and eventually publish it to Bungee Connect’s servers for public consumption.

That is, after you accept no more than 3 long and wordy license agreements, which to say the least was a big legal commitment for such a service. I might not have been bothered if there were only 2, but 3? Also factor in the additional Terms of Use and Privacy Policy. That makes 5. Crazy!
It should also be noted that you are locked into deploying your application on Bungee Connect’s servers.
Conclusion
Enough rambling. So is Bungee Connect any good? Well at the moment, not really. I say this because it just seems like an overly complicated solution for a rather simple problem. While I want to “Build the app, not the crap”, it would be nice if i could “Not deal with the crap”.
The “Crap” i refer to includes:
- Complicated licensing
- Steep learning curve (terminology, process, quirks)
- Buggy interface (e.g. drag & drop didn’t work at all in Safari!)
Bungee’s statement, “Build the app, not the crap” got me thinking. When was the last time i really thought i was building the app, not the crap?

Yes, Delphi. Hello World? Just stick a label on the default project’s form, type “Hello World”, and press run. It couldn’t be any simpler.
Compare and contrast with Bungee Connect: I have to make a “TypeLib”, a controller, then a form. Then if i am lucky i might figure out which item in which list is the form, drag over a label, type “Hello World”, and then stick it all on the page in my other project.
I really do wonder, why can’t modern web-based web application development be simple and fun?
ShareThis