Managed Browser, Landmarks, and XPath

In a recent article posted by Chuck, article here, he writes about how the DataChange events happen in the Managed Browser container.  The event is very powerful and allows for actions to be called when a DOM node changes.  I described similar use cases in an article where we constructed a web browser component using XPath.  In that article we show how the managed browser component can use XPath’s to DOM elements so we can extract data out of the current web page at a given URL (the landmark).  In the end, we took the information from one web page and inserted (wired) it into another web page that hosts a basic form.  This uses the dynamic wiring and the property broker message queue to transport the data from one browser to another.  With the combination of XPath’s and Landmarks (regular expression based URL’s), you can create some pretty complex components for large web applications.  Also remember, you can define landmarks that can overlap.  So in short, if your landmark expression (regular expression) is viable for the current page the events and actions will execute – so having many landmark expressions that overlap is actually common.

All of the containers that ship with the product support these landmark concepts and you can even create your own containers based on the public API’s.  Mike Cooper outlines the steps for creating your own container in a wiki article – Creating a Composite Application Container.  He focuses on using Eclipse/SWT for the UI but as you can see from the other container types you can pretty much use any kind of UI technology with this generic framework.

A distributed EventAdmin service, connecting LotusScript with Eclipse Java, again…

I have written about inter component communication often on this blog – as the Property Broker is the key message queue for composite applications.  One article I wrote about; where you can use an EventAdmin bridge to get OSGI services communicating with regular visual components.  I then wrote about getting Lotus Script to speak to Java using an EventAdmin abstraction but I never really discussed how it could be done.  You will most likely have to use an LSX but how do you get the stuff over to Java?  You could figure out the inter-process communication (IPC) stuff and role your own.  Or, you could use the Eclipse Communication Framework (ECF) and connect the processes through a pipe.  This article shows how something like this could be pieced together.  The only issue would be you would have to figure out the protocol of ECF which is well documented and open source.  This diagram shows how the pieces fit together: The social calendar that does it all!

I installed Tungle a couple of days ago and my first impressions of the site, WordPress plugin, the Notes plugin, and even the iPhone application (essentially all of the places I use calendar) is the stuff just works!  Ok, so saying it “does it all” may be a bit misleading but in my mind with the depth of function, calendars and devices supported its pretty impressive for a young product.

The application is so easy to use on all of the devices that I have to give the Tungle team kudos for making what I consider “brilliant software”. The site allows you to sync with many different calendars, check out the screen shot with all of the various options available:

Lastly, here is a cool widget you can use on your site to have your readers schedule meetings with you. So now, business partners and customers can use my profile to see when I can have a meeting with them.

POLL: Mobile development, native or HTML 5 based?

A timely post on InfoWorld made me think of a poll that would be interesting to see how the general community feels on the subject.  I do have my own opinions however; after playing with the Android SDK and creating some basic applications for the device.  In short, until we get JavaScript libraries like jQTouch for all major frameworks like Dojo and JQuery or HTML supports such API’s it will be hard to completely develop with HTML 5 and JavaScript alone.  However, I do think HTML 5 + JavaScript should be the right answer in the long run but today I would have to go with option 3 – both Native and HTML 5 for the development choice. The good news is most of the development for platforms like Android use Eclipse for both web and native so you can essentially learn and develop everything for free!

What do you think?

[poll id=”12″]

REST services are a snap with Dojo

As I sit here late at night thinking about what to write about I figured I would share some insight into a night time project I have been playing around with.  The project uses a basic Java servlet on Tomcat that serves up JSON to clients.  I have constructed the servlet to handle many different kinds of requests based on what parameters are passed into it.  The reason I wanted to blog about this was because my first client is being implemented in JavaScript, Dojo and HTML 5.  I am using Eclipse, WTP, and Aptana as the development environment – which I must say is amazingly simple to code, launch, and debug.  The great thing is I can write the Servlet code (in Java), the client wrapper (HTML), and the client-server interaction (JavaScript) all from the same IDE and debugger.  I do however find myself launching in FireFox to use Firebug for some debugging but outside of that its pretty self contained.

I chose the REST service to emit JSON because it makes it very easy to process on the client.  Check out the Dojo code below that creates a session with the “Base” servlet and then processes the response as a regular JS object, in this case “session = dojo.fromJson(response);“:

var session = null;

function createSession(){
     url : "Base?c=cs",

     handleAs : "json",

     load : function(responseObj, ioArgs){
         console.log("successful session creation", responseObj ,ioArgs);
         session = responseObj;
         dojo.byId("session-info").innerHTML = "<b>Id = </b>" + + "<br>";
         return responseObj;
     error : function(responseObj, ioArgs){
         console.log("failed session creation", responseObj ,ioArgs);
         dojo.byId("session-info").innerHTML = responseObj;
         return responseObj;

Register now for the Eclipse Helios In Action online conference

On June 24, the Eclipse Foundation is presenting Helios In Action – a virtual conference where you can interact with project leads involved in the release and see demos of the new features. The annual simultaneous release has now grown to 39 projects with over 33 million lines of code, contributed by committers around the world. With such a large global community, Eclipse wants to bring Helios to you!

HTML 5 is ready for Game Time

The games being ported to HTML 5 are quite impressive.  When you watch what is going on in this space you clearly see a new player in the web gaming industry.  While Zynga pretty much rules the web gaming world with all of their popular games on Facebook, with HTML 5 and the Canvas support this will open up the competition to many more game developer shops and indie game developers. If you just search for “html 5 game” you will get a ton of hits dating back to 2008.

Check out this cool video of ID software’s Quake2 GWT Port: