RSS 2.0 New Entries Syndication Feed Atom 0.3 New Entries Syndication Feed

Show blog menu v



Use it



Sibling projects

RIFE powered

Valid XHTML 1.0 Transitional

Valid CSS!

Blogs : Latest entries

< Previous page 
Drone IRC Bot v1.3 released

Drone is a Java IRC bot written with the RIFE framework. It has a modular API that makes it possible to easily extend and customize the active feature set.

It sports a modern web administration interface to handle all common tasks and a public logging section with an advanced web search. It also provides a remote IRC messaging REST API to allow easy integration with notification services. Installation is done by simply dropping a war in your servlet container or by running it straight from the standalone distribution.

The highlights of this release are:

  • cleaner URLs in the public logging section
  • bugfixes related to correct handling of unknown encoding characters

Visit the homepage at for more details:

You can see it running at:

Download it from:

Have fun!

posted by Geert Bevin in RIFE on Mar 26, 2005 11:17 PM : 1 comment [permalink]
Resizable Bla-bla List interface thanks to Laszlo 3.0b1

After the initial launch of Bla-bla List, I received many interesting comments and remarks (and a whole shitload of pointless messages too, but I'll just let those be for what they are). One of the features that some people seemed to be criticizing, was that the small and compact Laszlo interface always stayed fixed and never could be resized. Supposedly, Laszlo was to blame for this, which is not true.

I developed most of Bla-bla List's current UI with Laszlo 2.2.1 and ported it over to 3.0b2 in two days, just before announcing it. I did this since I wanted Bla-bla to be able to support international characters through unicode. However, in the haste I overlooked a feature of the previous 3.0 beta release (v3.0b1), which allows your canvas to be specified as percentages and be dynamically resized.

This morning, I thus spent an hour changing all dimensions to correctly adapt to a resizing canvas. The result is a fully resizable Flash application written in Laszlo. Even though I'm still not fully sold on a Flash UI, this brings it one step closer to being a worthy contender to plain HTML interfaces.

posted by Geert Bevin in Laszlo on Mar 21, 2005 12:53 PM : 3 comments [permalink]
Bla-bla: Ta-da in Java (and Laszlo and RIFE)

Almost two months ago, I wrote a blog post about Ta-da List. I wondered why it even took 600 lines to write if Ruby on Rails was as revolutionary as the authors claimed. Some people said that I had to back up my statements by implementing it myself in another technology, and that's what I did. The result can be seen at

The implementation has been done in RIFE, Laszlo and Java. If you're interested, you can peruse the sources by going to the Subversion repository. I will be releasing packaged binary versions soon.

The application has 752 lines of Java code (empty lines, comments and imports removed) and 155 lines of XML code. This is only 300 lines more, while Java and XML are a lot more verbose than the Ruby language. It's certainly a lot less than the triple size that some people predicted. Now, let's leave the LoC wanking behind us.

Bla-bla List does a number of things differently and has some additional features:

  • continue what you were doing when your session times out

    update: Ta-da has been fixed to check the user's session for these operations. Of course when your sessions now times-out, your data is just lost. You don't get any warning message (which I hope they will at least fix in a later version).

    Tada has solved this by removing the feature.

    Ta-da list tricks you into thinking that this behavior is done securely. Most edit operations are actually performed without authentication. For instance, look at this URL If you look at the HTML source code, you'll see the IDs of the entries.

    Now, toggle the status on one of them (you can replace the 0 by a 1 at the end):

    However, maybe you think that some things are missing, so why don't you add an entry:

    You can mess up any Ta-da list like that! Just pick one out of the collection that you see here. I could make very nasty comments about this, but I'll keep this post civilized.

    Bla-bla List ensures that all this is done securely and that you never lose data when your session times out. This is done thanks to an unique feature of RIFE that we call behavioural inheritance.

  • secure private sharing

    When sharing a list 'privately', Ta-da sends the invitees a non-protected URL. While they list this behavior as one of the features, I think that private lists should be secure at all times. I thus implemented a ticket system that adds shared lists to the invitees account through unique invitation URLs that can only be used once.

  • customizable short names for public sharing

    Ta-da generates non-intuitive public URLs that are beyond the user's control.

  • fully functional REST API

    As far as I know, Ta-da uses XmlHttpRequest and returns snippets of HTML and JavaScript. I think that an independent REST API has a lot of potential and implemented that instead.

  • lists can be reordered

    Ta-da simply doesn't allow you to do this.

  • drag & drop to reorder entries and lists

    Ta-da requires you to click awkward arrow buttons.

  • automatic installation at first startup

    Ta-da is not packaged nor distributed, but I doubt that the installation is part of its line count or even included in the source.

  • the UI is designed to be small

    Ta-da uses large fonts and takes up the whole browser window. I think it's important that the window can remain open without cluttering the desktop.

  • only public RSS feeds

    Ta-da has RSS feeds for all lists (private and public). Currently I only implemented the public version since I want to make the private one secure and I'm still doubting about what would be an acceptable way for users to do this.

  • open-source

    Ta-da never showed their code nor released it under an open-source license.

Since I think that a number of people might prefer my implementation, I decided to host Bla-bla List myself in a similar fashion as Ta-da.

I'm quite interested in rich internet technologies and I'm planning on building a number of other client-side tools that communicate directly with the REST back-end. For instance: an Ajax and a Xul version of the current GUI, a MacOSX Tiger Dashboard widget, IDE plugins (IDEA, Eclipse, Netbeans), a Gnome applet, a mobile phone version, ...

This will make the application much more useful and provide an open-source comparison base for these technologies.

Have fun with Bla-bla!

posted by Geert Bevin in Java on Mar 18, 2005 5:39 PM : 0 comments [permalink]
RIFE 1.0rc1 released

This has mainly been a release with bug-fixes and minor convenience changes.

Thanks to the great feedback we've received from users on the previous release, we're confident that the 1.0 mark has almost been reached. Since there were still a couple of new features added, we're first releasing this interim release candidate.

Below are the highlights of this release.

  • full declaration of elements in the site structure [ more ]
  • new asynchronous mail queue [ more ]

You can also read the full changelog for more details.

Full declaration of elements in the site structure

In prior versions you were forced to declare each element in a separate file if you chose to use XML for the definition of your site structure.

The XML site structure now supports all the element declaration statements in-line. So if it doesn't make sense for you to have re-usable declarations, you can just centralize everything in one file.

For example, this is the new Hello World site structure:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE site SYSTEM "/dtd/site.dtd">
    <element id="HELLOWORLD" implementation="tutorial.helloworld.HelloWorld" url="/home"/>

[ top ]

New asynchronous mail queue

We've extracted the mail queue from our Bamboo forums project and ported it to all the databases that RIFE supports.

This allows you to create mails with simple POJOs and just put them into the queue. At regular intervals, the queue will process them and send them. To be able to use the mail queue, you need to have the javamail and activation jars in your classpath.

The queue is stored in a database and you install the structure as follows:


To make the queue run at regular intervals, you have to activate the RIFE's scheduler. It's the easiest to use the in-memory scheduler. You do this by adding the following line to your participants.xml file:

<participant param="rep/scheduler.xml">ParticipantMemoryScheduler</participant>

The rep/scheduler.xml configuration file looks like this if you only have the mail queue task registered:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE scheduler SYSTEM "/dtd/scheduler.dtd">
    <task classname="com.uwyn.rife.mail.executors.DatabaseMailQueueExecutor" frequency="*/3 * * * *">
        <option name="datasource">postgresql</option>
        <option name="smtp_server">localhost</option>

The format of the frequency attribute is the same as the cron format. The datasource and smtp_server options allow you to configure the mail queue task. If you omit smtp_server, mail will not be sent for real but written to the logging output instead.

To send a mail all you have to do is this, for example:

DatabaseMailQueueFactory.getInstance(datasource).queue(new Email()
    .subject("this is the subject")
    .body("and the body of the mail"));

[ top ]

posted by Geert Bevin in RIFE on Mar 16, 2005 7:28 PM : 0 comments [permalink]
PhotoBlox: the typical application where Laszlo excels
I just stumbled into PhotoBlox.

It is an image viewing application that can be embedded into a personal blog template or Web page. It totally relies on Flash's multi-media capabilities and Laszlo's ease to dynamically fetch external data and display it. The application loads fast, works in almost every browser and looks great in multiple sizes. For applications like this, none of the other RIA solutions that I know would fit the bill. Well, maybe Flex would, but I doubt that anyone would pay at least 14400 € in licensing to be able to run a photo blogging tool ;)
posted by Geert Bevin in Laszlo on Mar 16, 2005 9:14 AM : 1 comment [permalink]

< Previous page 
Google web