Live from TSSJS – Closing Keynote

Currently sitting listening to Cameron McKenzie, the MC this event, who is presenting the final keynote for TheServerSide Java Symposium.  Jeanne and I both missed out blogging during the previous session as she was giving her talk on process management and I was taking part in a client-side web panel discussion.

1.  Pervasive Java

Cameron says, “The Learner Will Eclipse the Teacher”, and he’s referring to the fact that Java is being used in new and unique manners.  New frameworks and languages are being built on top of Java and gaining support from active communities every day.

Cameron also quotes James Gosling, who gave the opening key note for the symposium and said, “You can create whatever you want”.

2. Job Security
Cameron talks about the most desired Java-based skill sets on monster, such as WebSphere, EJB, Spring, etc.

3. A Year of Revolutions
Cameron reminds us that in the past year, the technology of today helped to spawn the types of revolutions that haven’t been seen since the printing press.  In this manner, the revolutions may not have succeeded with the technology.

Cameron compares today’s developers to the first printing press, or in more nerd-like terms, Star Trek’s Zefram Cochrane, who brought a new age of human civilization based on fundamental changes in technology.

4.  We’re driving the revolution
Developers have become very democratic and community oriented and have helped grow technology in very unique and often unexpected ways.

Even though we might not be the developers who wrote the social media applications Egypt and Libya used, we have contributed in our own ways that have driven the ‘moment’, such as posting, bug fixing, flaming posts, helping, as well as drinking and socializing.  He joking points out, the Greek meaning of the word Symposium is a social event of drinking and celebration.

Cameron points out that there are certain things we should and should not judge.  For example, if Facebook changes its privacy settings, we should be judging it to know if we’re all effected by the actions of that company.

5.  Life as a Java Developer
Cameron tells a story about Hennig Brand who discovered phosphorus while searching for gold, by boiling urine and experimenting on the residue.  The result was one of the first elements in history to be isolated, that doesn’t occur free in nature.   Cameron then says that for a Java Developer, “Every day is like boiling massive vats of urine”, which received much laughter from the audience.

6.  We are the Revolution
Cameron tells the story about how companies trade, use, and track user information, often without their knowledge.  Companies then make decisions about this data that effect customers but never openly admit how they arrive at these decisions.

Cameron was working in Canada and discovered personal data was being transmitted and despite promises of protection, none of the data was secure.  He wrote letters and spoke up and was able to get the company to slow down and reconsider its plan.

Conclusion
Cameron concluded the talk by thanking the sponsors, vendors, speakers, and participants for taking part in the symposium and helping to build a better, stronger develop community.

Live from TSS-JS – Mobile Development with Mark

Currently attending “Comparing, Contrasting, and Differentiating Between Mobile Platforms” by Mark Spritzler, a fellow CodeRanch moderator.  The presentation is in part an open discussion with the audience of what people have tried and works well in the Mobile environment.

1.  What is out there?

  • Android OS (Java)
  • Apple iOS for iPhone/iPod/iPad
  • Web applications with custom UI for mobile applications.  CodeRanch currently offers a mobile web version of the website
  • J2ME (not common)
  • BlackBerry (custom Java)
  • SymbianOS (C)

2.  Android OS Review
Built by Google and uses Java and can run Flash.  UI built with declarative UIs using XML primarily and supports visual tools such as Droid Draw and/or Interface Builder.  MVC-like architecture with view as XML, and control/model as Java classes.  The API is quite open so there’s a lot of ability to customize for developers.

There is currently a large variety of Android devices so splintering of the code base could be in the future.  Some devices cannot upgrade the Android OS, leading to permanent branching of code base.

Also, Android requires a lot of manual work to integrate with a database, such as SQL Lite, whereas Apple iOS has this built in.

3.  Apple iOS Review
Built by Apple and uses Objective-C, and cannot run Flash.  Developers must manage memory manually.  The API is completely proprietary and there are limit tools for developers.  For example, the developer must have a Mac and use an xCode.  Closed APIs but Apple promises stability (although it did change in iPad with split/view feature).

Dicussion on Apple’s strigent application approval process followed.  One participant commented that they waited 1-2 months for Apple to approve it.  Apple has also stopped approving ‘pointless’ apps.  I asked Mark if he thinks the delays are worth the improvement in quality, to which he replied that it does lead to better applications.  He also informed the audience that Apple wants you to use certain visual controls in particular manners to help build a consistent UI, and may reject applications based on improper usage.  Apple sometimes comments on why applications are rejected but not always.

4.  J2ME Failure Review
Idea was to develop using Java and runs on a variety of devices.  One of the major problems is Sun certified J2ME mobile phones that didn’t properly or fully implement the spec.  Also, lead to splintering of code base and very inconsistent results across devices.

5.  Native vs Web applications
Web applications have greater reach since they can run on many devices, but have weaker performance and require the developer to self-promote them.

6.  App Generating Frameworks
Build mobile applications from predefined templates using a CMS system often entered in a web browser, such as MobileRoadie, but it is a paid service.  Builder frameworks (often open source) that generate mobile applications based on existing code including Appcelector, Rhomobile, PhoneGap.

Write once and run on many devices through generation.  They may have limited functionality since they use a subset of features available in the language.  Multi-touch is also very limited in Android over iOS.  HTML5 does support location-aware so it can help in application generation.

Conclusion
Mark ended the presentation with an open discussion asking people to share their own mobile development experience.  He pointed out that there a lot of pros and cons to using different mobile platforms and mobile devices, and you should consider the resources on hand when deciding how to proceed in development.

TSS Symposium Preview – GWT Roundup

I'm Speaking at TheServerSide Java Symposium Google Web Toolkit As previously mentioned, Jeanne and I will both be presenting talks at TheServerSide Java Symposium exactly one month from now. Here is a preview of two of the topics I will be discussing at my talk “GWT Roundup: An Overview of Google’s Web Toolkit and Hybrid Integration” : GWT Image Bundles and Speed Tracer.

1. GWT Image Bundles

One of the more interesting features that GWT offers, beyond what most developers using indirect Ajax frameworks could build on their own, is the concept of Image Bundles. Even GWT developers who use Image Bundles may not have any notion of what is going on under the covers because the implementation details are so well abstracted. The idea is to take a large group of images and combine them into a single image with an interface for accessing each image. This may sound like a strange notion, but the performance advantages of doing so are manyfold:

  • More responsive UI since all images are downloaded together
  • Faster than downloading them individually since they are not downloaded in serial (HTTP 1.1 limits number of outgoing connections to 2 per domain)
  • Bundles use less bandwidth than separate images since multiple image headers are reduced to a single header

2. Speed Tracer

New to GWT 2.0 is the ability to validate such non-functional requirements as user interface performance, using the Speed Tracer tool, a Google Chrome extension. For example, if a particular asynchronous RPC call is causing delays in the user experience, Speed Tracer will help you identify it. Speed Tracer provides two graphs that show user response information and offers “hints” of spikes in response time that could be causing problems in your application.

  • Sluggishness Graph: Shows UI responsiveness
    GWT Speed Tracer - Sluggishness Graph
  • Network Graph: Network activity and latency
    GWT Speed Tracer - Network Graph

See you in Las Vegas!

I hope you enjoyed this preview of the talk I will giving next month. I will also be taking part in a panel hosted by Cameron McKenzie called “Client Side Development Smackdown” . Oh, and it’s not too late to register for TheServerSide Java Symposium 2011. We hope to see you there!