Google Web Toolkit

by Zef Hemel

Gosh, I should really stop writing about Google… I’m sorry, but it’s just the company that seems to do the most interesting kind of things lately. Ok, one more time then.

Google has released something new!

Shocker.

It’s the Google Web Toolkit. It’s a Java API to easily create AJAX web applications like Gmail, Google Reader etc. without having to dive into stuff like Javascript, DHTML, AJAX etc. Just write all your code in Java, quite similar to how you would create Java GUIs and the GWT will do the hard work for you. It’s a bit like ASP.NET, but more AJAXified, maybe like Atlas, haven’t really looked at that yet. Anyway it’s free for commercial and non-commercial use and it looks really neat. It does quite nice things like compiling Java code into JavaScript code as necessary.
There’s a number of example applications you can download and try out online. Nicest one probably is one that shows all the different UI widgets the GWT offers: KitchenSink. But this Desktop E-Mail Application clone is also quite impressive.

GWT E-Mail application example
(Click to enlarge)

Using a tool like this I can really start to understand how Google knocks-up nice new applications at the incredible pace they do.

Have a look at Google Web Toolkit and its blog.

How to get on BBC

by Zef Hemel

As you may know there recently was a trial between Apple and Apple. Apple the record company of the Beatles and Apple Computers, the company that makes Macs and has the iTunes Music store. What this trial is about is not really relevent right now.

What I wanted to show you is a nice TV appearance that an English/French taxi cab driver in England made, when he was pulled into the BBC studio because people thought he was the expert that would talk about this trial. In reality this guy was probably just picking somebody up from the studio.

After looking very surprised for a bit he continues answering the questions the BBC interviewer asks him. And here he is, London cab drivers’ new hero:

Cab driver on BBC
You can see the video fragment here.

Google Notebook

by Zef Hemel

TechCrunch is telling us Google is probably going to release yet another new product, probably next week. It is called Google Notebook and it looks like it will be something similar to del.icio.us, but from Google and integrated with it.

More screenshots can be found at flickr.

Also Google is currently deploying some new features in Gmail. Gmail chat now plays a sound when somebody sends you a message (very useful) and there will be also the possibility to add pictures to your contacts.

Gmail Photos Gmail Photos

More details here.

Dissertation Time

by Zef Hemel

My exams are over, they went pretty well I think, generally. Quickly after I finished I was in Holland for two weeks to rest. I came back with a cold, but by now I’m back on my feet and ready for the second half of my studies here at Trinity College in Dublin: my dissertation.

I have about 5-6 months to write it. The working title is “Middleware for advertising, discovery and invocation of semantic services on ad-hoc networks”, a title that made quite some jaws drop.

Let me quickly dissect it for you. First, ad-hoc networks. The 802.11 standard for wireless networks has two modes: infrastructure mode and ad-hoc mode. Infrastructure mode is what most people use, you buy an access point and let your computer(s) connect to that, all the traffic is routed through the access point. Ad-hoc allows you to set-up a wireless network without any infrastructure in place, no AP is needed, you just directly connect one or more laptops wirelessly. This already works and if you have wireless on your laptop you too can set up such an ad-hoc network.

Ad-hoc networks have some interesting properties:

  • They change rapidly, as people walk in and out of the range of an ad-hoc network they either join or leave it. This means that nodes may sometimes be only in the network for minutes.
  • No centralisation, because of this, you cannot centrally store information; it’s very much like a peer-to-peer network.
  • Resources are scarse, ad-hoc network are built from wireless devices generally running on battery power. They may be laptops, they may be PDA, they may be mobile phones. It’s therefore important that its limited power is used efficiently.

Then the semantic service part. By now you must have heard about web services. They are an easy way to make remote calls to to other servers, for example to Google Calendar to add an event, flickr to retrieve pictures with a certain tag, or to do credit payments for example. However sometimes you don’t really know where to find a certain service (you don’t know the URL) but just needs a service that can do picture retrieval, whether that’s flickr, Yahoo albums or BubbleShare. For this UDDI exists, which is a directory of web services that you can query. However UDDI works with keywords and doesn’t contain a computer-understandable description of what a service does and expects as inputs and gives as outputs. That’s where semantic web services come in.

I’m not going to explain all about semantic web services. If you’re interested you can read up on RDF, OWL and OWL-S. The basic idea is that you find services based on what they mean, their interface or name doesn’t matter, just what they do. Basically what it comes down to is that you want ask for, say, “services that you can give a price and will return a list of cars you can buy from them for that price or less”.

What my middleware (middleware is basically like a framework that a developer uses to more quickly develop applications in some way, they abstract away from details that a develop shouldn’t care about) will do is allow developers to easily define semantic services and advertise them on an ad-hoc network. Advertising means making them findable for other network nodes. I will also develop means to find such services and when you found some, to actually use (invoke) them.

It’s going to be a long journey (until begin september), but so far I’m quite happy with how it goes. Today I’ve started doing some simple prototype implementation and it’s going quite well. I’m implementing it in Python.