Sunday, March 23, 2008

EclipseCon 2008 BOFs

So, I attended two BOFs last Wednesday night at EclipseCon:
  • Eclipse 4 BOF: Just imagine yourself going to a gym like X-Sport Fitness, which offers free access to Internet machines (like the one I'm now using,) and while you're doing your regular blogging after exercise, you suddenly get a flash of insight and discover the solution to a problem that have been nagging you for a while in a software project! Wouldn't it be great if you could use one of those Internet machines to log into your code repository, open some source code in a cool flashy Ajax color-coded editor, and start cranking away at the solution? That is exactly what the Eclipse 4 prototype demo we saw was all about: a web version of Eclipse that you can setup on a web server so that you can edit your source files remotely from wherever you are without needing to use a VPN connection or a pre-setup laptop. Genius!

  • User-interface and Usability BOF: It started with complaints about RCP not offering enough freedom in customizing user-interfaces. After some discussion, the conclusion was that while you can customize the RCP look if you really work hard at it, it would be nicer if there were easier ways to customize the RCP look and more documentation on the Presentation API. Next, someone mentioned an issue with bringing attention to data changes when there is so much data that not all of it fits on the screen. Several solutions were proposed, which I won't go over here. The issue with Eclipse being overwhelmingly difficult to use for beginners was raised, with a mention of the Guild project for students (simpler Eclipse) and the possiblity of reviving its ideas for Eclipse 3.3. Finally, the BOF was concluded with a contrast of Views and Editors, with some people wanting to eliminate the difference, and Kevin McGuire emphasizing the reasons for the differences, such as ensuring that contributions yield a consistent UI, and not a mish-mash of different UI paradigms.
EclipseCon 2008 was certainly very entertaining and informational. I'm looking forward to the future of the Eclipse platform.

Saturday, March 22, 2008

Highlights of EclipseCon 2008

EclipseCon 2008 was a blast! The event was very well organized and full of interesting people who are passionate about technology. I particularly liked the idea of giving everyone poker cards to encourage attendees to mingle by exchanging poker cards to get a winning poker hand by the end of each night.

Here are highlights of some of the events that occured at EclipseCon 2008:
  • Scala mini-BOF: Bill Venners (author of a Scala book) and Dave (author of Scala's LiftWeb framework) came from Silicon Valley to attend at the Hyatt bar. We saw a cool demo of LiftWeb, discussed merits and demerits in comparison to Ruby on Rails, and then concluded with interesting discussions of Functional Programming languages (e.g. Haskell) and multi-paradigm languages.

  • EclipseCon Jeopardy: the game was played in a theater by members (or founders) of Eclipse such as Ed Merks and Jeff McAffer. It was fun to see the hot competition get squashed by Jeff twice. In the future, I would like to see a similar game where the topics are less oriented at committer rules and more oriented at Eclipse technologies such as RCP and EMF. That way, people from the theater can participate and feel more engaged.

  • JRuby on RCP (Glimmer): Need I say more? ;)

  • The future of SWT: Silenio and Steve (father of SWT) gave a talk on "a" future of SWT in which they went over where SWT is today, what it is missing, and where it might go in the future. The most noteworthy missing features are a declarative syntax (*ahem*Glimmer*ahem*,) animation, and immediate finalization of widgets. The most impressive part of the talk was demonstrating where SWT might go in the future by showing SWT apps (like Minesweeper and a Flickr photo viewer) rendered as a Flex flash web app, a Dojo Ajax web app, and a Windows WPF app. Does that mean Glimmer ruby apps will suddenly start running online??? ;)

I can go on and on about EclipseCon 2008, but I prefer to leave the rest to other bloggers as there definitely were a lot of them over there :)

Tomorrow though, I will blog about the last two BOFs I attended: E4 BOF and UI and Usability Guidelines BOF.

Wednesday, March 19, 2008

Glimmer at EclipseCon 2008

I gave the short talk on Glimmer today (JRuby on RCP), showing samples of code in both Java and Ruby, and demonstrating how much productivity and readability you get out of the Glimmer Ruby DSL syntax.

The PowerPoint slides are up! Click here to get them!

The highlight of the talk was the Tic Tac Toe game built with Glimmer that I demoed at the end. Thanks to all of you who participated in playing the game during the talk. And, sorry to those of you who had to withstand me throwing toys to participants around the room. :)

Saturday, March 15, 2008

Set sailing to EclipseCon 2008

I'm flying at 8AM to San Francisco to get ready to attend EclipseCon 2008 on Monday.

Stay tuned for more about the conference!

Saturday, March 08, 2008

Table Data-Binding and MVP in Glimmer

Glimmer now supports data-binding for table content (actually has been for two months, but I didn't get time to report it till now.) So, I test-drove a sample Contact Management search application to demonstrate table data-binding following the Model View Presenter architectural pattern.



Click here to see the tests.
Click here to see the source code.

Here is the process I followed:
  1. Design user-interface
  2. Write user-interface Glimmer code (without data-binding and event listeners)
  3. Write presenter API without any logic or behavior. The presenter is simply an abstraction of the user-interface where every field is represented by an attribute and every button is represented by an action method. In a way, the presenter is the Controller of the traditional Model View Controller pattern. Using a presenter enables us to strip all logic out of the view.
  4. Write tests for presenter to test-drive behavior into it gradually. This step will also drive creation of domain models gradually, such as Contact and ContactRepository.
  5. Revise user-interface Glimmer code to add data-binding and event listener hooks to presenter

At this point, you will have a fully-functional data-bound Glimmer application following the Model View Presenter pattern.

Please post a comment if you have any questions.