JAX India 2007- Bangalore – day 2

Let me first convey that i deeply regret for not attending the day-1 of the conference. I think the sessions there were more techy and geeky. It doesn’t automatically mean the day-2 sessions were not good. It felt better to hear the subject from their creators themselves. The time alloted to each subject(50 min) is not enough to go deep and thus satisfy the geekier crowd around but you get to hear on so many things in small time in bargain, so no repents. 🙂 Add to it the fact that you usually don’t get such high profile speakers in conferences around India. Anyways, here are my take aways from the sessions i attended today. The slides for all presentations are available here.

Mylar: The tool and the framework (by Mik Kersten, CTO Tasktop)

  • Demonstrated the task ui from within Eclipse covering basic concepts of the tool and the idea behind its existence.
  • Connectors for OSS products like Bugzilla, Trac, Ant, Spring, SVN, CVS etc apart from quite a few for commercial tools from vendors like Telelogic, BEA, Atlassian etc.
  • Getting ready for 2.0 release with lots of emphasis on performance, search etc.

Best practices for inter-operable Web Services (by Thilo Frotscher)

  • Discusses two approaches to WS development – “Code-First” and “Contract-First”.
  • Code First : Start with java code and generate Schema, WSDL and other artifacts using tools. It leads to interoperability issues because the tools tend to use platform specific data types like Vector, DataSet etc which may not have a mapping data type in XML Schema.
  • Contract First : Create the schema first using the data types defined in xml schema (and creating complex types out of it). Generate WSDL using schema which sets the interface contract. Now use the interface and proceed to the code. Recommends usage of visual tools like Eclipse WTP 1.5 WSDL Editor.
  • Strongly discourages first approach and recommends use of contract first.
  • Newer tools and frameworks are moving towards POJO based WS development which essentially is a “code first” approach. However one can still bit little cautious and use them as they are lot mature and provide a relatively clean WSDL these days.
  • Use literal instead of encoded.
  • Dont rely on HTTP for transport. Do not use HTTP specific features like Cookies, SSL, HTTP Header etc.
  • Use SOAP header to store meta info.
  • Recomended reading on Web Services – Web Services Platform Architecture (by Sanjeeva W)

Tasktop, the task focused desktop (by Mik Kersten, CTO Tasktop)

  • Just a couple of weeks back i was thinking about task based contexts for my desktop and here it is, though not OSS or free. 😦 Take Google (or Yahoo) desktop search and add task based contexts (and related features) to it. thats your Tasktop. 😉
  • Natural extension of Mylar to Windows and Mac desktops for now. No plans for Linux as of now.
  • Comes both as Eclipse plugin and Eclipse RCP app.
  • Showcases its usage for a project manager who uses Google Cal, Outlook Mail, M$ Office, Bugzilla and Xplanner for his tasks and how Tasktop helps her reduce the clicks required to perform her daily tasks.
  • All others were mostly marketing stuff. However, just a thought from my side – Since it can store the action history including the browsing history, can this be potentially used to spy on young children’s adventures on internet?

Polyglot Programming (by Neal Ford, Thoughtworks)

  • catchy word – Yes i had not heard of it before as well. Well it simply means writing applications using multiple programming languages, each targeted towards specific problems which are best solved by that language.
  • We have been doing it anyways – Java + SQL + XML + JS? So whats new? Ruby 🙂
  • Pretty smart hand picked instances of java code which look problematic – using static initializer to display Hello World without even writing a main() method in java code, need to write class type multiple times in generics, recursive definition of Enum in javadoc, presence of Zero length arrays etc. Basically bashing static typing and advocating dynamic typing (a la Ruby).
  • Message was to view java as a combination of language and platform. The language is retarding / dieing but the platform is as beautiful as ever.
  • All in all the talk was very humorous and interesting. One statement that liked very much was – OR mapping is Vietnam of Computer Science. 😉

Shale framework : Taking JSF to next level (by Craig McClanahan, SUN Microsystems)

  • I must mention this – i was thoroughly impressed by his simplicity. His geeky looks reflected deep knowledge and responses to queries only floored people further. Sometimes i wonder if simplicity leads to greatness or greatness inspires simplicity.
  • An extension to JSF for a cleaner design, convention over configuration principle with annotation support, hollywood principle using callback methods for better encapsulation
  • Talked about features – dialog manager for conversation management, clay (similar to Facelets), view controller, ajax support using remoting etc.
  • Built-in unit testing framework, JNDI and Spring integration.
  • He was impressed with the approach of extending the components to business layer leveraging the EJB3 features by Seam framework.
  • Thinks that GWT puts too many restrictions on a developer for her to choose it for enterprise development.

Testing with Selenium (by Neal Ford, Thoughtworks)

  • Tool focused on acceptance testing of web application. Works by pushing a JavaScript based BrowserBot.
  • Either add it to your web app WEB-INF folder or use in remote mode. It needs test cases in html tables which can be either hand coded or recorded using SeleniumIDE FireFox plugin.
  • Explained few cool features like ajax testing, dynamic data in recorded scripts, standard red/green coloring of test runs etc.
  • Can not deal with non-JS accessible parts in page like applets, activex, flash content etc.

Over all, it was a tiring day. Sessions were mostly at an overview level than the depth. There was no time for QnA and it was a difficult choice between missing the next session or catching the speaker outside for questions.



  1. Thanks for the detailed lowdown mate !

    Looks like the WS Inter-op session was very basic (Also looks like you ran into Axis2 crowd !) Was hoping the session would involve discuusion of more concrete real-world interop problem cases and perhaps some dope on WS-* interop as well (a la Project Tango) 😦

    Unfortunate you couldn’t attend the Java Persistance session – that description had looked interesting.

    Again, Polygot programming – was hoping there was more dough on practical cases when/how to go for multiple languages, how to manage interactions between the pieces, how to manage the code-base itself etc.

    Overall looks like you had an interesting day…. Looking forward to tomorrow’s lowdown already 🙂

    * Ref Tasktop can be used to “spy on young children’s adventures on internet” — Now there’s a worried parent speaking. Mate, your kid is going to know how to disable that even before you get around setting it up 😉

  2. > Ref Tasktop can be used to “spy on young
    > children’s adventures on internet” — Now
    > there’s a worried parent speaking. Mate, your
    > kid is going to know how to disable that even
    > before you get around setting it up

    Exactly. Never underestimate the tech savvy of the next generation 🙂 But please understand that with Tasktop one of our driving design goals is making it easier to ensure your privacy better than the current browser do. For example, by default Firefox and IE save all of your browsing history and if you want to ensure there is no data in there that’s sensitive you end up deleting all of it. Tasktop instead only captures history per-task, making it easy to browse without concern of what’s being captured when no task is active. Instead of going through preference pages you can also inspect your task context and clear the history for a task with a single click. We have a deep appreciation for such privacy issues because we’ve had to solve them for Mylar, which supports sharing of task context.

    > All others were mostly marketing stuff.

    Ouch, I can’t stand talks that gravitate to marketing stuff! I tried to keep the content centered on the Task-Focused UI ideas and technology that underlie both Mylar and Tasktop. But I also wanted to show concrete examples of how Tasktop integrates with proprietary desktop and web technologies the way that Mylar integrates with Eclipse-based technology and perhaps ran long on demo portion? If you could let me know here or over email (mik /at\ tasktop.com) what pushed the marketing buttons that would be great.

  3. Regarding the section on the Mylar talk:

    > Connectors for OSS products like Bugzilla, Trac,
    > Ant, Spring, SVN, CVS etc apart from quite a few
    > for commercial tools from vendors like Telelogic, BEA,
    > Atlassian etc.

    Correction: please note that connectors for Spring, Telelogic and BEA have not been released. I think that there was some confusion with a slide that listed vendors of relevant technologies and I will add text to the slide to disambiguate that.

    The current list of connectors can be found at:


    To see other requested connectors or vote for yours see:


  4. >If you could let me know here or over email (mik /at\
    > tasktop.com) what pushed the marketing buttons that would > be great.

    I dont remember the slides now so i downloaded from JAXIndia site (i have the link in my post too) but they are just representative slides not the ones used in the presentations. If you could send me the slides at angraze/at\gmail.com i can tell you about parts of content which looked like marketing stuff to me.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s