Sunday, March 23, 2008

Back on the saddle again

It's been 10 months since my last blog entry. The problem with my writing style is due to my habit of "packing heavy". If you've ever gone mountaineering (or even hiking) with me, you'd know that I'd have a well stocked 1st aid kit, enough food & drink for a few people, and survival and navigation equipment to make it through a freak storm. So it goes when I write. I've long suffered from BSD (boy scout disorder ;-) ) which means that I won't let myself get into many situations without being adequately prepared. I thought there might be a name for it but couldn't find it here. The way it manifests itself when I blog is that I feel as though something is wrong when I've left something out, which explains why my previous blog entries were not short. It's also an occupational hazard. Some companies use me for architectural/design review so I feel as though I have to make sure I've communicated every probable possibility to them so that they can do what it takes in time to avert disasters. And as we in the IT industry know, there are disasters happening all the time.

Anyway, I have been extremely busy since JavaOne 2007. Learned a lot since then from doing lots of hands-on work. Maybe I'll mention some of it in passing when I do similar things again. Just for the fun of it, I'm going to attempt to blog again this year but in noticeably smaller chunks. Wish me good luck!

Wednesday, May 23, 2007

JavaOne Day 3

I didn't find the Motorola General Session particularly inspiring because I've heard most of it before and am a little jaded waiting for Mobility to take off. Padmasree Warrior is not a bad speaker at all so it had nothing to do with her delivery, and I totally agreed with her Platform Disturbia pitch. I had been working on Mobility-related projects as an IT Architect in Sun since the late 90's, and my primary focus in the last 6 months has been on mobility-related products and services. So why wasn't I moved to action (or at least to making new resolutions)? Although I'm already thoroughly familiar with all the issues she mentioned, I don't think the toughest issues in mobile development: (1) device diversity (which she mentioned) and (2) standards nonconformance (which she hinted at indirectly) have been adequately resolved. I believe these are out of the hands of ISVs, and they therefore can't be blamed for taking a wait-and-see approach.

When I was a Sun employee, I always thought there was great disparity between the tough enforcement of the Java EE TCK for appservers and what I perceived to be turning a blind eye to conformance of Java ME implementations to specs. Here's my conspiracy theory: The appserver market has long been hotly contested, and the enterprise software market must not be fragmented unless we don't mind Redmond owning a much bigger chunk, therefore we got our act together long ago and Java EE portability is a reality (if one sticks to standard APIs). On the mobile front, many handset manufacturers were deploying VMs on their phones that were either homegrown or engineered from cores supplied by Sun, IBM or other platform software providers. Besides the greater diversity of processors, OSes and peripherals complicating the landscape, I believe Sun and all the other major industry players didn't want to stifle the market by being strict on standards conformance. OK guys, I think we are coupla years past the tipping point already. ISVs want to produce more consumer and enterprise apps, and others have killer service ideas ready to go. What we really need now is the same rigor applied to Java ME implementations so that people can only claim to support Java on their phones if they pass TCKs.

I don't want to sound all negative so, now that my primary message has been delivered, let me share what I think has been getting better year after year. Let me start with an observation: 5 to 7 years ago, mobile Java games had a different version for every different phone model but in the last few years, mobile Java games have versions with relatively long lists of phone models that are supported. With JTWI introduced 2 years ago, and similar standards clustering initiatives already underway, I think stricter standards enforcement will help the mobile Java ecosystem tremendously. NetBeans Mobility capability gets 2 thumbs up from me. IMHO, it is the best IDE for Java ME development out there by some distance. OOTB, it helps ISVs to manage platform diversity by organizing all different releases. But I sincerely hope they don't rest on their laurels. I believe it is possible for the NetBeans team to bring some of the smarts behind the Matisse GUI builder to Java ME. In particular, I would like to see SFF (small form factor) UI resizing with specified limits. For example, I would like to be able to configure the Java ME GUI builder to handle resolutions ranges (eg. from 176x208 to 352x416) after which it would warn me when I try to squeeze too many widgets into a screen. For everything in the specified range, it should dynamically work just right and look just right. The capability to manage multiple releases should only be applied to major device differences, eg. like whether there is a Bluetooth antenna or not.

Padmasree had a nice slide showing 4 people being born every second and 32 mobile phones being sold every second. Assuming her data is accurate, and half the phones sold are to folks upgrading their handsets, and ignoring how many people could be dying every second ;-), that's still about 12 people more joining the SFF (and thus truly mobile) Internet every second. Assuming half of those buying PCs (~250M per year) are also upgrading, that would mean about 4 people joining the Internet on laptop to desktop form factor devices. So the growth of SFF Internet devices is outpacing its larger brethren by 3X. Now that's motivation enough for me to keep investing time learning how to build better SFF apps.

I attended a session on being productive with Swing by Ben Galbraith and learnt a few new tricks (like using CSS for Swing!). After that, I sat in on a talk on "Who's doing What in JMX?" by Eamonn McManus, the technical lead of the JMX team at Sun, and his teammate, Jean-Fran├žois Denise. On the subject of JMX, if you run any decent volume of transactions that is pushing the limits of your software and/or hardware and don't use JMX yet ... what the heck are you thinking?! I've used it in some experiments and one production system and it is truly one of the underutilized gems in Java. And now, there are some REALLY nice things coming for JMX 2.0 which will be bundled in Java SE 7. To name some goodies:
  1. Hierarchical namespaces
  2. Cascading
  3. Event services
  4. Support for locales
  5. Annontations to define MBeans
  6. Custom type mapping for MXBeans
  7. Web Service connectors for management
After the JMX talk, I attended the Blu-Ray/Cable press lunch session and sat up front next to execs from Sony Entertainment, Turner Cable, CableLabs etc. After letting the 'other journalist' warm them up a little, I posed the question of what they are going to do against their FOS-equivalent competitors like Joost which are banking on HTPCs (Home Theatre PCs) giving set-top boxes a real run for their money. My midrange (5 to 10 years) prediction is that the cable companies will shrink to being connectivity and basic station (news and sports) providers while content owners will use the Internet more and more for delivery. I believe QoS is a red herring as there are not that many scenarios when we really care whether we are getting the content real-time, or 5 minutes later. I didn't tape myself but in essence I shared my opinion with the panel that the ubiquitous PC (soon to be HTPC) on average outmuscles set-top boxes by 5 to 10X in horsepower so why would I, as a Java developer, want to do OCAP? They were somewhat stumped and didn't provide any convincing arguments why we should invest in learning to program their set-top boxes. We can all fully understand why they want all their set-top boxes to be developed in Java but the real challenge for them is attracting ISVs to their 'platform'. Xbox and PS3 further confuse the landscape but I'll resist discussing them for now.

I spent the afternoon attending sessions on "JSR 248 Mobile Services Architecture", "Optimizing MIDlets" and "Blu-Ray for Hollywood" but I was a bit burnt out so when I bumped into my old friend Calvin Cheng (mates in Berkeley & Sun) of Yahoo with another Singaporean, Chien Yang of the Sun Java3D group, I skipped my "Developing reliable products" session and went for coffee instead. Good thing we can get all JavaOne presos and audio tracks on the web.

The "After Dark Party" this year was as good as any other in JavaOne history. That's saying a lot since attendees really got into the "Game Room" nights when we literally took over the hotel formerly known as Argent many years ago, and lapped up the ROTFLMAO performances by headliners such as Dennis Miller and Wayne Bailey in recent years. I was having too much fun to whip out my camera (especially tough with beer in one hand and finger food in the other). Friends who know how trigger-happy I am would be surprised I didn't snap any shots of the party. Truth be told, I was too lazy to bring my DSLR and giant flash this year and I didn't think our Canon IXUS 850IS (that's SD800 in the U.S.) would do the low-lighting conditions justice. There are pictures here and here if you really want to know how the party went.

Sneaking a beer into the very handy water bottle-sized side pocket of this year's excellent JavaOne backpack, I went to the DTrace hands-on-lab that I had signed up for. Yes, yes, I have used DTrace before so why the heck was I attending this lab (LAB-9520) during the After Dark Party? The session description mentioned Web 2.0 apps so I was genuinely curious to see how DTrace can help in tuning those sort of apps. Kudos to Angelo Rajadurai and Raghavan Srinivas authoring it in such a way that intermediate users of the D language can jump straight to more advanced exercises. After I got my fill of lab exercises (and ran out of beer), I vacated my seat for people who were still coming in after 9:30pm!

Again, those of you who missed the labs or didn't attend JavaOne need not fret, the labs are all available online!

Anyway, my night didn't end here. I caught the tail end of the party, saw that there were only short lines for the 3 jumbo soft toy crane machines, so I got in line ;-) and picked up a penguin for my toddler in lieu of paying for the Happy Feet DVD before the price drops. It's really quite a sight to behold ... software engineers lining up to operate a joystick-controlled crane to win soft toys. After that, I caught the 10:45pm showing of 300 at the Metreon theatre, simply awesome!

Tuesday, May 22, 2007

JavaOne Day 2

Yes, it was too good to believe. We had been walking around San Francisco for the last 2 days in T-shirts, and even feeling a little warm around lunchtime. On Wednesday morning, I was greeted by this familiar sight of fog from my hotel room window. Good thing I brought my orange Java fleece jacket, did't want to be caught without the right clothes even though the hotel is so close by. There is always a chance of meeting an old friend and ending up somewhere much further late in the evening. The nippy weather is a nice change (for me) anyway, any remaining jet lag would be offset by a good cold jolt to the senses. Its funny how different things trigger off certain memories for people. When I see fog, the first thing I think of is all those races I've done in the city. From my first Bay To Breakers in 1986, to the Alcatraz tris I did from '90 to '94 (minus '92 when I ripped my knee playing soccer for Sun's men's team). I retired from racing so long ago, yet fog always brings back vivid memories of swimming in the SF bay (which I've probably swum some 80 miles in ... but that's another story). Brrrr! Sandeep (my army buddy) & I have painful memories of being too poor (or cheapskate) to buy wetsuits so we used to swim around the Berkeley Marina in speedos. With those memories in mind, I walked off briskly to meet Chuk & Joey downstairs.

If this were my first or second JavaOne conference ever, I would probably be excited about attending the General Session from the largest software company in the world that is not a monopoly (yet ;-) ). But seeing how I had been quite disappointed from attending the Oracle 'keynotes' in previous years, I decided to save my energy and skip it. ADDENDUM: I spent time after the conference to watch this session just to make sure I'm not missing anything interesting. Oracle has JSR277 (data binding) capability contributed to the Eclipse Link project and rich client components for AJAX will all be donated to Apache. They seem to be totally behind JSF and EJB3 as underlying technologies for Web 2.0 Enterprise Mashups. The future looks bright for future Oracle apps, too bad for those customers who are still implementing legacy Oracle 11i apps and pegging themselves into obsolescence.

After attending a session on next generation JavaCard, I'm really looking forward to the proliferation of next-gen JavaCard "Connected" edition. It will raise JavaCard development to basic Java EE levels (well, sort of). In any case, it sure beats the APDU gymnastics we have to do today. Here's we can look forward to:
  1. Embedded web server with java Servlet API support (service static & dynamic content via HTTP(S) )
  2. Multithreaded environment
  3. Concurrent communication over USB, ISO 7816, contactless
  4. Full backward compatibility
  5. Client and server communication
  6. Leverage technology from Java SE and Java EE platforms
I am involved with a SmartCard partner (got my own card reader/writer last week) and will be developing JavaCard apps in the coming months. It's really nice to know that we will be writing Servlets instead of card Applets in the future!

Before my obligation to sit on a roundtable of Java developers from 'emerging' countries, I had 45 minutes available so I attended a session on use of open source in Java projects. No surprises there, the presenters shared that use of open source Java components is squarely mainstream in the largest enterprises.

Matt Thompson, Sun's Director of Technology Outreach, and the 9 amigos, most of whom are Java Champions in their home countries, getting ready for our press conference. There were at least 7 digital cameras between us, so a belated thanks to the Sun employee who took the trouble to capture this assembly for each one of us.

As the press asked questions, Matt made spot decisions as to whether one or two of us would like to respond, or if the question warranted a roundtable of comments. Here is some salary data I vaguely remember: Fresh grads with good Computer Science degrees can command starting salaries of US$4K to $5K per month in Norway and Holland, US$2K in Singapore, US$1,500 in Brazil and US$600 in Philippines. JP (John Paul Ruiz Petines of the JEDI project) commented that the salary delta explained why he saw some movement of Filipino Java developers to Singapore which is less than a 4 hour flight away. While I was (perhaps naively) disappointed how we didn't go into any technical details on what it was like to be a Java developer in our home countries (perhaps there is little difference), it was very interesting to learn that some common phenomena prevailed. For example, demand for Java programmers across all the represented countries has clearly been picking up in recent years. There is apparently an acute shortage of senior Java developers/architects (7 to 10 years experience and beyond). Some tried to explain how the dot com bust had dwindled our numbers, and how some senior folks just moved to other jobs that could pay them for their experience, even if the work was no longer technical. I have a different take on this ... there was also an acute shortage during the dot com boom, so my explanation is simply that (good) software engineering is not easy, and human nature is such that you won't get masses of people going for something difficult when there are many easier ways of making more money. 10+ year veterans are still doing technical work because they must really like it. I have much more to say on this topic in case you're interested. In summary, things are looking up for Java developers all around the world, and the grassroots Java User Groups are certainly doing their part to enlarge the ecosystem.

After the 90 minute press conference, I Chris Teo of Sun Marketing introduced me to Grace Chng, editor of Straits Times Digital Life from Singapore Press Holdings. I sacrificed 2 sessions on the JSR 293 Location API 2.0 and Extreme GUI Makeover to chat with her about everything from open source Java to grid computing, the state of the IT workforce in Singapore, and how enjoyable my 18-1/2 years in Sun were. We ended early enough for me to attend Brian Goetz's session on "Effective Concurrency" which I thoroughly enjoyed. I've long been into Multithreaded programming and am getting up to speed with the new (SE 5 & 6) ways of doing things. Even if that session didn't offer anything totally new for me, sometimes the choir enjoys being preached to ;-). And on the topic of missed sessions. Attendees will undoubtedly miss something they are interested in, and less fortunate Java programmers who could not attend the conference can get the slideware and eventually the audio tracks of all JavaOne sessions on Sun Developer Network.

In the evening, I attended the Intel General Session and was frankly bored stiff. This was perhaps beneficial only to those who have not been watching the processor wars of the last 2 years, or not upgraded their hardware in the same period either. OK, who can blame Intel for tooting their own horn since Core 2 Duo does kick ass. I have a 6600 (2.4GHz dual core) in my development machine and NetBeans absolutely screams on it. For that matter, the NASA World Wind and DiSTI demo flight simulator also run smoothly though that may have more to do with my Nvidia GeForce 8800 graphics card. Sorry AMD (and acquired ATI), I don't mind supporting you but you really have to do better. They also showcased JRockit and some new compute cluster management software from BEA (Liquid?) but I was getting too tired to stay for all the details.

I ventured away from the Moscone area and ended up dining in Japan town with Chris (left) and my cousin Stephen, who is the proud father of 6 month old Brandon. Now if only he would use Java for his environmental control software and his life would be complete ;-).

Monday, May 21, 2007

JavaOne Day 1 (afternoon & evening)

The afternoon keynote was a very nice technical deep dive into the various technologies announced, as well as some demos showcasing other impressive stuff. I'll highlight a few here but I really encourage those who weren't at the conference to spend time on the webcasts. Bob Brewen invited Danny Coward to walk us through developments of Java SE. Apparently, it is being downloaded to the tune of 50M per month! What is particularly encouraging is that 30M are upgrades to SE 6. I remember working with 3 clients recently that were stuck at SE 5 for the simple reasons that they had no time to qualify their app/product for SE 6, or that SE 5 was the latest rev allowed by their corporate standards. That's life in the IT world but its kinda sad especially in the cases when no real porting effort is required and coupla hours or at most days of testing will yield noticeable performance gains. Heck, as a consultant my role is to give customers what they want so if they still want to pay me to tune their old JDK 1.3.X or 1.4.X software, so be it!

Back to the main announcements: OpenJDK is good for expediting the absorption of innovation into mainstream Java, Java SE 7 is looking to include superpackages (not exactly the same as a JBI service assembly but has similar goals), extension of Java bytecode for dynamic languages, and possibly extension of Java with new language features (type inferencing, closures maybe?).

Danny called Charlie Nutter and Tor Norbye up on stage to demo using NetBeans to develop a JRuby on Rails app (music DB with speech recognition & synthesis) and deploy it on Glassfish. There was even code completion in Ruby, very impressive! Can't remember exactly when during all the hoopla I heard it, but Ericsson was invited up on stage to share that they are basing all their open source IMS switch software on Glassfish. With telco infrastructure going towards standard IP, network operator switching software goes FOS, cool!

Bob also spoke of the evolution of the typical application client from web-based (thin) through AJAX to being Integrated, i.e. being web-launched yet having richer interaction like desktop apps of old (again). We were shown how Jmaki & Phobos on Glassfish v3 (which btw started up in 463ms!) could leverage existing AJAX widgets for extreme productivity. So let me get this straight ... NetBeans can now be used for developing in JavaScript, PHP and Ruby as well.

But what really blew us all away was what NASA had done on top of JOGL with their World Wind project. I have since installed it on my PC and can tell you that it is truly breathtaking to spin the earth around and zoom in on your favourite places (esp. on a 27" LCD, snigger). As though it wasn't enough that we now have a FOS geospatial browser SDK. Ken Russell, project lead of JOGL, then came up and did some showboating ;-). He used NetBeans' Matisse GUI builder to create a mashup (in about 3 minutes) that used World Wind to fly us in to all our favourite places on the globe. He clicked on Moscone Center and we flew in from this view until we were hovering several hundred feet over Moscone.

Ken then he shared how he came across some folks at OOPSLA last year who were using JOGL to build on-screen instrumentation panels. So after some collaboration between those folks from DiSTI, NASA and Sun. DiSTI used their GL Studio to build an F-16 flight simulator over NASA World Wind, using a FOS flight dynamics toolkit that Ken had apparently ported from FORTRAN to Java at Caltech. Did I hear right? Anyhow, the flying was very smooth and the audience was oohing and aahing all the way. The snapshot I have on the left is from their website. The shot I took midflight is quite blur, otherwise you'd also enjoy the soft toy Duke on the instrument panel.

I also attended the Mobility and Device General Session hosted by Laurie Tolson but was not too impressed with the apps on display. OK, so they have myspace on Java ME now, good for them. Maybe its taken so long for many services to debut on Java ME that the only thing that will impress me now is a new killer app that saves us loads of time in our daily activities, or connects people in ways people hadn't thought about yet. Oh well, maybe next year ...

The dot bust years (2002 to 2004) were tough on most people trying to start new companies, or move their company's growth on to better trajectories. But for those of us on regular paychecks, it brought a reprieve in both traffic conditions on the highways and crowds at tech conferences. Well guess what? The bad times are truly over and the crowds seem to be coming back. Guess I shouldn't complain. One thing nice about crowds at tech conferences like JavaOne is that programmers are generally compliant people who know how to play their part in order for the larger system to work. Though not cheerful unless they are with friends or free coffee is being dispensed, they know how to queue up without fuss. At first I thought the 20 minutes between sessions was overly generous as it does not take that long to get across Moscone. But the ushers were rather militant in not letting attendees enter session venues more than 5 minutes before commencement, so the queues outside snaked all the over. Everyone soon got the hang of looking for the orange sign with white numbers to locate the end of the queues for their next session. I rather dislike queuing so I spent most of the breaks at the Pavilion, terminals or bookstore, often getting into the sessions coupla minutes late. Always missing the queue, and occasionally some introductions. To each their own ...

Speaking of Pavilion, I thought it was very nice of Sun to give tours of Project Blackbox at the Pavilion. It is innovation like this that gives me hope that mankind can think ourselves out of our planetary energy crisis. Here's to all the engineers out there who habitually think out of the box (pun appropriate) to change the rules of the game (and I say this with my arm stretched out holding a tall glass of OJ). Btw, of all the toys I brought back home this trip, my toddler really likes the rubber Blackbox on container truck toy they gave for taking the tour. Only Jay Jay the Jet Plane and his pal Snuffy get more of his attention.

You gotta check out Project SONIA (youtube vodcast), the Java-powered Autonomous Underwater Vehicle (AUV). OK, it looks more like a bobsled but this sub is quite impressive. Even more so when you find out that it was done by students who are not getting paid or even receiving any academic credit for their work! I remember getting 2 or 3 semester CS199 credits at Cal for my 6-month internship with Sun's factory automation group, and that's on top of the US$12.50 per hour I was making as a Junior. C'mon profs, have a heart, these guys definitely deserve some college credits. Or is there some Tom Sawyer wall-painting gig going on over there?

One of the best kept secrets of JavaOne is the Pavilion party on the evening of the first day. OK, so hundreds of JavaOne alumni remember it from previous years but it is a good thing that newbies may not know about it, and the alumni that know about it may not remember to be at there around 7pm. Even though the other food was good, I have no recollection of it. All I remember is putting lots of horseradish on the succulent roast beef and washing it down with red wine. Scott Lea and I basically ate our dinner while lining up for other items. One thing hasn't changed over the last 20 years ... Sun sure knows how to throw a good party!

JavaOne Day 1 (morning)

After attending 11 JavaOne conferences, I am quite used to the 'traditions' that differentiate this tech conference from most others. As usual, John Gage urged us all to be Brazilian this week. For those who may not be aware (you can watch the webcast videos), this means being much more sociable than you usually are, and introducing yourselves to others and finding out what we all do in the Java ecosystem. All year round, I attempt to be Brazilian on the soccer pitch but never quite succeed. And in past JavaOne's, I didn't bother to be so sociable because I had always been on a mission to learn as much as I could that was even remotely related to my work. But this year is going to be different, I am now a freelance developer and it makes all the sense in the world to meet potential partners and customers.

So what else was big news at the keynote? That Java is FOS (free and open source) under GPL v2 is old news (Nov '06), Rich Green simply announced that the implementation of that announcement has been completed. What took the audience by surprise was the announcement of JavaFX Script on plain old Java SE. JavaFX Script is, according to James Gosling, "... Buttons & Sliders Gone Wild ..." ;-). Chris Oliver was apparently the sole developer of this powerful presentation-oriented scripting language! As though this weren't enough, JavaFX Mobile was demonstrated on both the Jasper S20 and Nokia N800. James and Chris showed how easy it is to modify GUIs on the fly. James promised that they will be IDE support for JavaFX Script very soon. Chris was formerly a SeeBeyond employee. This is one of the occasional good side effects of acquisitions. When talented engineers join acquiring companies and are happy (my assumption), they can contribute strongly to the technology base there. JavaFX was known internally (at Sun) as Project F3 (Form follows Function). Having seen Ruby as a first class citizen in NetBeans, I'm looking forward to this too. Personally, I'm willing to totally skip the LCD UI era and go straight to JavaFX Mobile-based UIs on CDC devices.

The morning keynote also contained significant touchy-feelie, humanitarian, pro-education, digital divide-bridging announcements, but I'll leave you to read about it yourselves.

After the keynote, Chuk & I bumped into Peter Karlsson, a Solaris Evangelist, who happened to be thinking of doing the same thing as me ... i.e. waiting for the WowWee booth to open so we could procure the JavaOne show gadget. The RS Media robot (Developer Edition) runs Java MIDlets, has a camera, LCD display, SD card slot, USB link, IR and contact sensors, 2 hand-mounted speakers and a subwoofer in the back etc. Not too shabby for US$291 (incl. tax). Chuk (a Java Evangelist) and Peter will be using theirs for Sun Tech Days demos. 2 other teammates of theirs are already working on mounting a SunSPOT on its back so that acclerometer data can be fed to the Java ME runtime via a serial connection. I am looking forward to what comes out of that effort. Anyway Peter was 2nd in line and hauled his off to the hands-on labs room to find someone to babysit (robotsit?) it while he roamed the pavilion. I was right behind him and scurried back to my hotel room with mine so as to get back to the sessions I was targeting, and avoid being a walking show gadget FAQ, though that would've certainly helped in my quest to be more Brazilian. My purpose for the robot are less ambitious, just a few routines to amuse my 3 kids would satisfy me. And maybe a Celebrity Deathmatch bout with any of my friend's Lego NXT's ;-). Maybe I had a long unfulfilled need for something physical since I thoroughly enjoyed programming Robot Wars on my Apple ][. It's the same reason why I'm going to get myself a Playstation 3 at or before Christmas, certainly not to play all those FPS games ... heck, I had enough of firearms after 2-1/2 years of full-time national service and 11 years of army reserve. All the subwoofer power you can buy isn't the same thing as pulling the lanyard of a 155mm howitzer. Yes, the PS3 is a BD-J environment, something you can write code for ;-).

One nice difference about attending JavaOne with a Press badge this year was that I had access to all the specially arranged press conferences. On of them was the open source panel hosted by Simon Phipps, Sun's open source magnate. I didn't catch the names of all the attendees but amongst them were initiators, developers and lawyers from Apace, FSF, coupla open source projects and the founder of SouJava, the largest Java Users group in the world. While nothing discussed was really new to me and many of the passionate developers I know, what was enlightening was how much misconception there was amongst the tech press present. I can get into how some of them don't even realize that the typical profile of a prolific open source contributor is a highly-paid corporate developer who has their company's blessings, and many other related topics, but I am not really interested in sharing those kind of things. The only thing I heard that I will emphasize is that all the participants made it clear that their communities were more important than the code. Some of them went so far as it say that the partnerships formed could easily be transplanted over to a new project and eventually reproduce better software from scratch, but the code handed over to folks who had not gelled, would not fare as well.

Wednesday, May 9, 2007

Ah yes, NetBeans Day

Man, after using the default web-based editor for for a few posts, I think I am going to spend a little time at the end of next week searching for a tool that automatically lays out more than 1 image in a somewhat decent-looking way. Anyway, substance over style so I'll just live with this for the time being.

Gosling's South Park-style character is really cool. It's been around for coupla years but now I really want them done for my family and friends. Does anyone have software (or service) that can generate it from photos? ;-)

The technical sessions detailing new features of NetBeans were a little dry. That probably has to do with the fact that I've been using the tool for about 3 years now, and had attended all the previous NetBeans Days, so the steep ramp up from mediocrity to delight is beginning to taper off. OK, so NetBeans 6 has a new, improved editor, and Mobility support is better, and Matisse (the GUI builder) has been upgraded too. Maybe I am easy to please but the editor was good enough for me from 5.0 to 5.5, so I'll try to see if I can notice the improvement next week when I get back (and have some time). Mobility support was already best in class, so I will also have to deep-dive into it to understand how much it is going to help me in future projects. I did a Swing frontend 6 months ago requiring a widget count of 200+, with dynamic (color & text changing) buttons etc. and Matisse really ROCKS! So am eager to find about this out more as well. I was in the Mobility track so I missed that preso.

Soon it was time for our father (lowercase 'f') James Gosling to take the stage. As you can see, my buddy Scott Lea was very pleased with himself as he out-jumped people around him and one-handedly caught a rubber thingamybob thrown by the man himself.

As far as NetBeans 6 is concerned, I think the biggest new feature is scripting support. I know JRuby and JavaScript come out of the box but am curious to see if there are other plug-ins for others like Groovy (which is beginning to interest me). For some time, I've deliberately stayed away from developing Web apps (sounds crazy huh?) and focused on Java ME (CDC, CLDC and JavaCard) Swing, JMX and other non-web Java EE technologies because I wanted more efficient means of building relatively simple web apps. Scripting is clearly the answer, and now that the tools support it ... time to revisit.

It's nice that the event formerly known as NetBeans Day has migrated away from the hotel formerly known as Argent to Moscone Center. Queueing up in cramped spaces should be reserved for families in Disneyland. The beer (in my right hand) was really good, tasted like Fat Tire Ale but I'm not an expert. I like Stout and smooth dark ales, and this one was good. The food looked decent but Scott, Chuk & I were saving our appetites for a forthcoming Chirashi.

After Scott went off on his 2-1/2 hour commute back to San Jose (Muni, then Caltrain, then light rail, then girlfriend pick-up), Chuk & I went to the Metreon to walk off the dinner bulge.

2-1/2 hours to commute from Moscone to central San Jose! I lived in the bay area for 10 years so I am positive I can drive down in 1-1/2 hours even in bad traffic. Until public transport is improved (or gas prices raised again), we are in for a much warmer future.

Anyway, gotta go for JavaOne Day 2 in coupla minutes. Took lots of notes from Day 1 but haven't had time or energy to share the experience yet. Blogging is supposed to be spontaneous and timely but I'm already a day behind. Oh well ...

I've leave you with my T-shirt count of 3:
  1. OpenSolaris
  2. Community One
  3. NetBeans 6

Tuesday, May 8, 2007

NetBeans Day redux

As any JavaOne alumni will tell you, it's always a good idea to get registration over with a day before the conference proper begins. And this year, the organizers made things easier by combining NetBeans Day (Community One) and JavaOne registration. Thumbs up guys! We will have our fill of queuing up this week, and the efficiency is appreciated. After registration, Chuk and I grabbed a 'Country Egg breakfast' at a nearby diner (not worth mentioning) and headed to the labs where he did some final testing to ensure that all will go well for his LAB-1610 "Dive into Script Programming on the Java Platform" on Thursday.

CommunityOne turned out to be much more than the NetBeans Days of the past. For one thing, I was quite stumped on which of the 8 tracks (pun unintended) to attend as they all seemed to offer something for me. But rather than dilute my attention, I decided to stick with the 2 NetBeans Day tracks 'cos there's where I spend more of my time.

Lunch with the Java Posse was entertaining (check out their podcast) but most of the technical details came in the afternoon. More about these later ...