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.
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:
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 Tungle.me profile to see when I can have a meeting with them.
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);“:
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!
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:
While I completely sympathize with the people who have lost large contracts, work, or even their jobs because of some company moving to another platform I honestly do not understand some of the comments about Notes not being a good platform for application development. I do think IBM AND the Community need to do a much better job marketing things like the Eclipse and Lotus Expeditor Platforms because that is what its primary installed Lotus offerings are based on. More and more companies are getting it, each week I hear of a new plugin, extension, or Eclipse view being created for some use case – so its not only the few business partners that have given Eclipse programming a chance, IT shops are starting to get it. What I would like to see are more business partners expanding the organic marketing campaign of Eclipse and Expeditor. XPages has gotten a lot of attention but I think once again the client has gone to the back burner; but I also see a lot of stir in the client space with plugins coming from partners like GIST, LinkedIn, SAP, customers, etc. I was just at customer site yesterday and they have built an amazing plugin that integrates Notes with EMC’s Documentum – it was very cool – and guess what – that was an IT shop that did it because they have Eclipse developers.
In short, you have XPages for Web and the Expeditor platform for rich client. Mix Expeditor plus NSF, Web, Portal, SWT, and native applications and you get composite applications. You can do things in the Notes client today you could not imagine doing in version 7 and below. Some stuff is easier, some just different but now you can do most of it in Java and it works on all platforms. I have personally been pushing Eclipse and Expeditor for well over four years and I am sure my readers are aware of that – we as a community need to create compelling applications that make the platform stand out!
Now, in Notes 8.5.1 you can even create XPage based components that run locally in the client – meaning write your components once and they run in both Domino and Notes applications. Many may not be aware, but you could also do this with pre-compiled JSP’s and Portlets for over 5 years in Lotus Expeditor – and yes, that means in Lotus Notes also. So the Notes community has had the ability since Notes 8.0 to completely enhance their skill set to industry standards like Java, Eclipse, and many web technologies. With technologies like XULRunner in the platform the web technologies that can be deployed to the Lotus Notes client are essentially limitless and are only held back by your imagination.
I am not sure how to close this rant but in short I would like to see the community better selling “the platform” versus posting long rants in the opposite direction. I do not speak for IBM or the marketing behind our products, I can only “sell” what the platforms can do technically and from a technical point of view the Lotus Platform is an amazing piece of software that can present amazing applications.