Monthly Archives: March 2007

Practice of Java in Atlanta: An Open Spaces Event

My friend and fellow Open Spaces advocate, Barry Hawkins, is helping to organize an Open Spaces event for Java in Atlanta. Barry has been at several of the Open Spaces events that I’ve attended, including the most recent Java Posse Roundup. Barry and I met at an Open Spaces event facilitated and hosted by Bruce Eckel, and have been repeat offenders ever since. Bruce has set the bar really high, providing amazing learning and community building opportunities. I know that Barry will do an extraordinary job with this event as well. If you’re in the area (or feel like going there), definitely check it out. It’s your event to make what you want it to be.

In April, the Atlanta Java User Group will hold "The Practice of Java in Atlanta", the first Open Space meeting for the Java programming language in the Atlanta area. This is a meeting for passionate Java practitioners to discuss the state and direction of Java development in the Atlanta area.

What: The Practice of Java in Atlanta

When: Thursday, April 19, 2007 – Friday, April 20, 2007

Where: Holiday Inn Select (where AJUG regularly meets)

Who: The first 200 registrants

Why: See below

What is Open Space Technology?

Open Space meetings allow a group of persons passionate about a topic or issue to organize their own agenda in a way that is efficient and effective, yielding exceptional results. The following excerpt from the Open Space World wiki briefly describes Open Space Technology:

"Open Space Technology is one way to enable all kinds of people, in any kind of organization, to create inspired meetings and events. Over the last 20+ years, it has also become clear that opening space, as an intentional leadership practice, can create inspired organizations, where ordinary people work together to create extraordinary results with regularity.

In Open Space meetings, events and organizations, participants create and manage their own agenda of parallel working sessions around a central theme of strategic importance, such as: What is the strategy, group, organization or community that all stakeholders can support and work together to create?

With groups of 5 to 2000+ people — working in one-day workshops, three-day conferences, or the regular weekly staff meeting – the common result is a powerful, effective connecting and strengthening of what's already happening in the organization: planning and action, learning and doing, passion and responsibility, participation and performance." [0]

Why Open Space?

Open Space meetings have been around for 20+ years, and have begun to make their way into technology circles. In the past year, Bruce Eckel's Programming the New Web [1], Dynamic Web Frameworks Jam, and the Java Posse Roundup 2007 [2] have been a few of the Open Space meetings that have people talking. Members of our AJUG community have attended these meetings, and the consensus has been that these are among the most engaging, beneficial gatherings in which they have taken part.

Our Theme – The Practice of Java in Atlanta

The Java presence in Atlanta is a significant one, and AJUG makes that evident. Our monthly meetings and mailing list include Java champions, authors, committers on key Java projects, and seasoned Java veterans with deep experience and insight. Our desire is to hold a meeting about what we are doing and should be doing with Java. What's working? What is not working? These are the conversations we wish to have, passionate discussions about where things are going. We hope you'll join us.

[0] –

[1] –

[2] –

Please direct questions to Barry Hawkins at

User Interface Smackdown 2007

Explore Google's GWT, Adobe's Flex, and Microsoft's WPF for creating user interfaces

Registration is now open for the User Interface Smackdown 2007, being held April 4, 2007 at the Ann Arbor ITZone (Spark Central). The user interface toolkits that we will discuss and work with include (at least) Google’s GWT, Adobe’s Flex, and Microsoft’s WPF.

I’ve had a lot of fun doing Open Spaces events that Bruce Eckel has hosted in the past year. I exposed Bill Wagner (my business partner and co-founder of SRT) and our consultants to Open Spaces at CodeMash and they all enjoyed the experience as well, so we decided to start doing them locally, and we hope to do about 1 per quarter. Hopefully we will have the next one planned by the time that this one takes place (teaser: we already have some ideas in the works).

We believe that these events benefit the developer community. Not only are they an efficient and interesting way to bring timely knowledge to programmers, but they also bring the community together in a way that fosters continued communication and builds community. This helps everyone.

We believe that innovative user interfaces will be a key differentiator for software offerings in coming years, and learning how to use modern toolkits to build them is essential. We hope that we have a great turnout for this event and that it provides us with the motivation and interest to do more of these in the future, on different topics.

Cost for the event is $75 before March 26, or $90 after March 26 (and at the door, if space is available). Registration also includes continental breakfast and lunch.

This event is sponsored by Adobe, Microsoft, and SRT Solutions.

Hope to see you there!

Swag at the Java Posse Roundup

Cool swag

Is it rude to brag about the swag at a conference? Ah, well, I’m gonna do it anyhow. Next year, I’m convinced that the Java Posse Roundup 2008 will sell out during the early bird registration period, and it won’t be just for the swag.

But it was cool swag.

Cenqua and Google and O’Reilly sent t-shirts. There was a serious lack of shirts in small sizes. Kathy Sierra would NOT be pleased. She’s right … it DOES matter. Even the guys were amused at the number of XL and XXL. Not a small or medium in the bunch of Google or O’Reilly shirts. I didn’t check out the Cenqua shirts (I like their product, though).

O’Reilly sent some books and notepads. But they made the mistake of labeling the box “Dark Chocolate”. OK, the notebooks were great, but the expectation of chocolate kinda set the bar!

Google also sent some really cool flashy pins. Bruce’s company (Mindview) has great floaty pens.

Adobe sent a training video for Flex and a nice travel mug too.

Sun sent developer tools. I hope that I didn’t forget anyone. The swag table was quite laden with goodies. We have some cool notebooks that I could have taken, but the thought didn’t occur to me.

But next year, someone better send chocolate. I definitely know what SRT will take to its next event. Hmm, we’re sponsors of the Michigan Celebration of Women in Computing in a few weeks. Maybe I should see if we still have time to get chocolate!

My Reading List

My Reading List

I thought I would share what I’m reading now, and what I’ve been reading recently. And I added some podcasts, for good measure, and even a link to a cool development tool that I learned about at the Java Posse Roundup.


Read today: article on JavaScript libraries


Blogs that I read regularly:

Bruce Eckel:

Kathy Sierra:

Joel Spolsky:

Bill Wagner:

And, of course my own:

Here are some blogs from the Java Posse Roundup, which are sure to become regulars for me:

Josh Marinacci’s blog:

Michael Levin: Swampcast and also Michael Levin's Weblog

James Ward:

Others that I used to read have become somewhat inactive. You know who you are …


In progress:

Implementing Lean Software Development, Mary and Tom Poppendieck, 2007.

Comments: good source for lean software, but also draws a lot from lean manufacturing. Recommending to people in other disciplines as well. I’ll post a more complete review when I finish the book.

On my desk, in hopes of reading soon:

Software Estimation: Demystifying the Black Art, by Steve McConnell, 2006.


Most recent podcasts:

  • DotNetRocks, from 2/19.  Guest: Steve McConnell
  • Java Posse #107, Special from Crested Butte
  • Java Posse #106, News from 3/7
  • Ruby on Rails: Camping, Episode II
  • Several episodes of “60 Second Science”, from Scientific American


Podcasts I follow regularly:

  • JavaPosse – great podcast for keeping current on Java
  • DotNetNukes – entertaining podcast for .NET world


Podcasts in my queue:

  • TedTalks podcasts

Development tool that I’m going to try next

Java Posse Roundup: Day 4

Friday, March 9

Friday was the final day for the Java Posse Roundup. We had 2 regularly scheduled sessions followed by a final session which included everyone.

For the first session of the day, I attended a session on JNI, convened by Josh Marinacci of Sun. A major part of the discussion centered around the idea that perhaps JNI is overly complex for what people often use it for these days, and that maybe some assumptions CAN be made about the atomicity of calls made in the JNI (if the programmer says it’s so). Maybe we should have JNI, as it currently exists, and also JNILite.

JNA is also a good replacement for many of the common usages of JNI. Instead of the programmer writing JNI code, annotations are used to access native libraries, all without writing a single line of native code. Interesting perspective arose that there aren’t many Java programmers who actually WRITE C code anymore, and so the availability of something like the JNA is a good thing.

Many comparisons were made to Microsoft’s CLR and unmanaged code.

And, a lot of us remember the old recommendations to AVOID doing things using JNI because it wasn’t “pure Java”. Well, it sounds like we need to get past that, and use the right tools for the job. If it needs to be in native code, write it. Josh did a really cool demo during one of the lightning talks where he wrote a small amount of JNI code (I think he said one line!) to communicate with the motion sensor on his Mac, using that motion to change a display shelf of pictures to move to the next page. VERY cool! And totally impossible if you wanted to avoid JNI code, since the PCs don’t generally have motion sensors. We really need to be able to use the native interface for things like this, and for creating innovative user experiences. Maybe instead of scaring people away from the JNI, we should come up with some recommendations and (dare I say?) best practices for its use.

Next, I went to a discussion of applets, positioned as “Applets: Does Java need an answer to Flex?”. Very quickly, it became apparent that there was agreement that applets have a certain “suck factor”. When the audio of this session becomes available on the Java Posse, this is something that I think both Java programmers and Microsoft programmers will find interesting.

With applets, there’s simply not enough attention paid to detail. Flash, on the other hand, provides a user experience where you can’t really even tell that it’s a Flash app because the plug in was done so well.

The recommendation was made that we change the applet architecture. Perhaps a 2 phase load would make sense. Everyone agreed that a spinning Sun logo, reminding the user that s/he’s waiting on a Sun applet is bad marketing! The slow loading is not in the JVM, but rather in the plugin.

A competitive requirement is that desktop apps can directly connect with web apps. And pretty much all agreed that Flash is winning on web for user interface from a Java perspective. A great amount of stress was generated in the group, centered around how to move forward. Waiting for Java 7, even as Java 5 is still being rolled out into corporate environments, probably means death for Java. The question was ultimately raised, “Is it worth solving this problem?”. I agreed with the group of people in the room who don’t believe in playing catch-up, not with Microsoft, not with Adobe. Pick the sweet spot that Java has and work in interoperating with Flash using Flex. Forge an alliance with Adobe.

IMO, Microsoft would take both paths. They would fix the plugin AND they would forge an alliance with Adobe. I don’t know if Java will take that direction, and that’s OK as long as they don’t continue trying to play catch-up.

This session was ultimately attended by everyone who was still in the building. Little by little, the crowd grew. The energy was amazing. The audio for this session will be incredible, and I would urge anyone to listen to it, both for the ideas and for feeling the energy of an open spaces event.

The last session of the day was the closing session for the conference. We all met together, and went around the room to suggest what improvements could be made. The appreciation for the Open Spaces format was evident the night before, when the Java Posse did a live podcast recording at the house that they were renting. And Camp4Coffee got a big plug too (“second best consistent coffee in the US, according to Pete from Australia).

Anyhow, so instead of asking how people felt about the event, format, etc., the question was asked about what could be improved. This was all recorded, and will be made available through the Java Posse at some point. My suggestions included involving the people at home more. Since the Java Posse podcast has a large audience, of which only a tiny percentage actually attended, I feel like somehow keeping the people who couldn’t come involved would be a great way to build the community and keep events like this populated in the future. As it was, I think that when registration opens for Java Posse 2008, the event will sell out quickly.

For those of us who have attended several of these events, we’re cautious about changing much about the format. It works. Tread lightly so as not to break it. But one thing that a lot of people suggested was ancillary to the conference itself, and more personal in nature. It would be nice to be able to include the spouses and families in a more formal way. Bruce and I have talked extensively about arranging childcare in Crested Butte so that my family could come (without my husband being in a hotel room with 2 kids, staring off at the snowy mountains that he can’t ski). Others echoed this. Even for those who wouldn’t be bringing kids, it would be nice for the spouses to have a parallel board, where they could arrange activities among themselves. That really relieves the pressure on people who are feeling guilty about leaving families at home!

As it was, many of the spouses attended the lightning talks in the evenings. If there had been scheduled spousal activities, people felt that their spouses would have wanted to attend. I’m looking forward to that in the future, even if my spouse ends up being the only male in the group!

Java Posse Roundup: Day 3

Thursday, March 8

By Thursday, people were really getting the knack of open spaces conferences. Those who had held back in earlier days were right in the thick of things at this point. People were resisting the urge to lecture, and getting into the collaborative exchange of information that really gives Open Spaces its edge.

The first session of the day, for me, was on UI Design. Joe reminded all of us that it’s a huge mistake to have our data model reflect the UI design, and vice versa. Instead, it’s important to really drill down to what the user needs to do, and solve that problem from a user interface perspective (and to solve the data storage problem in a sound, but separate, way. Nods were given toward OmniSoft’s Graffle product, which sadly I can’t use because it only runs on the Mac.

Next, I attended a session that Tor had convened on nice looking fonts, typography, and pretty user interfaces. This was a bit out of my area of interest, and I had actually thought it was going to be a different session. I hung around for a bit and learned some things about font rendering (like that Java has its own font rendering engine, that Apple uses bitmapped fonts to ensure consistency in scaling, and that fonts look fuller on Macs and PCs than on Linux). I also learned that there’s a different gamma setting on PCs than Macs, by default. At some point, I realized that while this was interesting, I wasn’t really contributing and my interest had waned, so I exercised the Law of Two Feet (a tenet of Open Spaces).

The Law of Two Feet is “uncomfortable” to exercise until you get the hang of it. The idea is that it’s not only your prerogative to leave if you are not interested or participating in a conversation; it’s really your duty. The very presence of a bored or disinterested party brings down the energy of the group. By leaving, the overall energy increases because only those who are REALLY interested are in attendance. I probably would have left sooner, but that this session was in the lower level room and it was pretty comfy down there … complete with couches! Anyhow, I did leave and got some tea and relaxed until the next session. I could have joined another session in progress, but I decided I needed a break instead.

The last session of the day was on the GWT, and I was really interested in that. Robert Cooper has written a book on GWT, GWT in Practice, and he has an refreshing, pragmatic perspective. While he’s clearly a power user, he’s not afraid to say where Flex is stronger, and where GWT and Flex, working together, might offer some advantages.

GWT does play well with other Javascript libraries, like Scriptaculous, Yahoo UI, etc. More GWT wrappers will be available soon as well. Mostly, the toolkit works great for replacing desktop apps with web apps.

I have a friend who writes a lot of server side code and I pinged him when GWT was first released. He jumped on the bandwagon and has been effusive about it ever since. He loves GWT and finds the model very convenient.

Evening Sessions at Java Posse Roundup

Java Posse Roundup After Hours

 In addition to the daytime (morning) sessions, we’ve been getting together in the evenings.  Someone suggested lightning talks in the evenings, and posted a signup sheet.  8-10 talks per night were quickly filled up.

The evening talks were a mix of technical and non-technical.  All talks were limited to 5 minutes.  Well, it quickly became apparent that 5 minutes was a bit too short, so we set the timer for 5 mins and gave the person 1 more minute to wrap things up.

The first night, there was an attempt to record the sessions, but they were highly visual, and since no one was really set up to capture the sessions with Camtasia (or the like), listening might not be all that useful.

So, Wednesday night, we had talks on such diverse topics as:

Thursday night, people got a little bit more creative in terms of talking “outside of the Java box”.  It was a tribute to the format of the lightning talks that several people chose to bring their spouses that evening, and everyone seemed to have a good time.

Those talks included (not complete list):

  • Yahoo Pipes
  • Flex running with Apollo (and communicating between them)
  • Orienteering
  • Java Docs in the year 2020
  • More racing from Joe (book link:
  • Optimal letter spacing from Joel (who does beautiful calligraphy)
  • Right brain vs. left brain

We did the lightning talks at the very large house where the Java Posse was staying.  It was really perfect for this sort of a gathering.

On Thursday night, after the lightning talks, the Java Posse surprised us by telling us their intended format for that evening’s recording of the podcast.  As *** put it, “We provide this show for YOU guys all of the time.  How about this time, we just start it off and then go around the room and ask each of you what you thought about the Roundup?”.  Nice idea, but much stress in the room as we all contemplated actually speaking.  All in all, it was really great (for those present at least) to hear what the others thought about the Roundup, the Open Spaces format, the skiing, etc.

On Friday night, it was even more laid back.  Everyone showed up at the Secret Stash (a unique Crested Butte restaurant, that serves interesting pizza).  The menu is online, so I’m able to share our selections here:

grilled chicken ~ black beans & corn ~ chipotle sauce ~ cheddar cheese ~ fresh cilantro ~ roasted red peppers

Grilled Assorted Veggies ~ Fresh Goat Cheese ~ and our Balsamic Reduction

We also had a blue cheese pizza, but I don’t see it on the online menu.

We sat at a table on the floor, with pillows.  This was a bit uncomfortable for the (inflexible) guys with long legs, but I was OK!  A good time was had by all, and those who drank a local beer called Mojo gave it high ratings.  After that, we all descended upon Bruce’s house and watched amusing stuff on YouTube, Google video, etc. well into the night.



Java Posse Roundup: Day 2

Java Posse Roundup: Day 2

Session 1: Java Development Environments

I convened a session on Java Development Environments (IDEs, tools, etc.). My question was, “Is it a benefit or a detriment that we have choice in our tools?”. For comparison, when programming on the Microsoft platform, developers are given tools that work together out of the box. If they choose to add new tools to their arsenal, they can (especially see Jim Holmes book, “Windows Developer Power Tools”, which includes a lot of open source tools for use on the Windows platform.

In any case, as Java developers, we’re not only free to choose our own tools, but sort of forced into choosing and configuring. Yes, there are packages like MyEclipse and NetBeans which bundle things together, but the IDEs have gone back and forth many times in the past several years. I’ve personally tried at least half a dozen. Currently, I’m using Eclipse, but on the recommendation of the group here, I’m encouraged to give NetBeans another try.

The consensus of the group was generally that we’re glad to have options. I’m still left thinking, however, that we spend a lot of time spinning our wheels, evaluating tools, instead of actually solving problems for our customers (or employers).

Session 2: User Groups

The next session that I attended was on User Groups. Graham, a Crested Butte local, is considering starting a user group here, in Crested Butte. He was looking for ideas and suggestions about how to get started, while others were looking for ideas about how to grow their user groups or to keep people coming back.

I held the position of president of the Ann Arbor Computer Society for 2 years, and I got some great advice from past leaders of that group: DELEGATE. I’m not always good at it, but it’s a good objective. Having a strong leader that can delegate tasks to get done is pretty critical, I think. Several (3) of the guys in the session were from Atlanta, and the AJUG has a dynamic and energetic leader, and it sounds like he does a phenomenal job of keeping their user group going. In addition to an annual DevCon, which is well attended, they offer Job Postings for both potential employers and job seekers (JRecruiter). The Ann Arbor JUG also has this, but I want to look at what they’re doing in Atlanta, because it sounds more effective than the blog-like postings on the AAJUG.

Remote user groups (Taos, Crested Butte) face different challenges. There are few area users, and having a JUG may be too restrictive. It sounds like Dean from Taos and Graham from Crested Butte may create a more encompassing group that serves all software developers, rather than limiting to a JUG.

Chris Adamson was also in attendance. He is an editor for, and he offered to help solicit updates for the JUG list that they maintain. GREAT IDEA, since they really have gotten out of date.

The basic “take-aways” from the session were:

1.Start small. None of the big groups started big. We all started with 2 or 3 people who wanted to get around and talk about cool stuff.
2.Have a compelling reason for people to attend meetings. Good content, opportunities to learn about jobs, etc.
3.Mix in local and national speakers, if you can. National speakers provide visibility to the group, while local speakers get experience talking to a group of people.

Some groups charge dues, while others are free. Some are corporate sponsored, others are not. You just have to find what works in your area.

I would love to create a “meta-group” of JUGs or other user group leaders who might communicate on an eGroup or such to toss ideas back and forth. Maybe we can start with the list on Java.Net?

Java User Groups on

Here’s a view of what Sun coined as the Top 50 JUGS:

Session 3: Convergence of Desktop/Web/Mobile

Joe Nuxoll convened a session on the convergence of desktop, web, and mobile application development. Questions were raised about how to determine which platform to develop for, or if it made sense to sometimes build a web app that could be used on a desktop. Mobile has its own set of challenges, but even so, we’re becoming more demanding about what we expect in mobile apps.

One real key is that a lot of time users don’t even know where they’re running up against web/desktop boundaries. One good example of this is Google Earth and Google Maps. Google Earth is clearly a desktop app but it accesses the web to get data that Google maps also uses. Sketchup is a nice application that also pushes these boundaries, in connection with Google Earth.

Joe’s pretty adamant about good user interface design, regardless of desktop or mobile or web. Everyone pretty much agreed that we have to use the right tool for the job, and that it’s not always clear what people need when looking at what people are CURRENTLY doing. Sometimes we need to mix stuff up and come up with a new way of interacting with the user. There are some really cool demos from that really push this envelope.

Java Posse Roundup Day 1

The conference officially begins!


The Java Posse Roundup officially started today.  About 25-30 people have gathered here in Crested Butte, Colorado.  Bruce Eckel and the Java Posse together organized this open spaces event, and I’m really enjoying myself so far.   I won’t try to transcribe the sessions here, since the Java Posse will be putting them out in podcast format, assuming the audio is all fine.  It’s a great experiment, and I hope that it comes out great.  


The day started out at the event location, with Bruce describing the structure of Open Spaces.  I’ve blogged about that before, and I’m a total convert.  The ability to be able to put up ideas for discussion while at the event, thereby shaping your own experience, has totally ruined me for the eyes-forward (eyelids dropping) conferences.  


It always seems a bit strange to newcomers, but those of us who have done this before eagerly rushed over to the board to grab post-it notes and write down ideas for discussions.  We egged on the others, and soon the boards for all 4 days were pretty full, with 4 concurrent sessions. 


The first session of the day offered many choices, all difficult to choose from.  I went to a talk on Dynamic Languages on the JVM.  It started out with a discussion about dynamic languages, but quickly headed toward Domain Specific Languages (easy to build with dynamic languages).  At one point, we realized we had diverged, but everyone voted to keep going.  We had a great 1 hour talk that included mention of Jython, Groovy, Spring, Scala, CLOS, LISP, Ruby, tuples in Java, Domain Driven Design, performance of exceptions, and many many more topics. 


And, as always a huge number of book references came out of the discussion.  Some were technical, others fun but also offering some perspective to technical things.  I’ll list them here, just for fun (and so that I have a place to look when I want to read a new book):


Poignant Guide to Ruby (online book)

Innovation Games (by Luke Hohmann)

The Design of Everyday Things (by Donald A. Norman)


That was it for the first part of the first day.  We all headed off to ski, and planned to meet up later at Bruce’s house for a BBQ.  While most people downhill ski at these events, I had a hard time ignoring the Nordic trails, so off I went with another attendee and we skied the “Town Loop” (a free, flat loop in town).  It was great, just what I needed while I was adjusting to the altitude.


And yes, after skiing, everyone headed over to Bruce’s, where geek talk went on well into the night.  I finally left around 9:30 pm or so … it had been a long day.



Web Frameworks Comparisons at the Java Posse Roundup

Java Posse Roundup Day 0

 I’m here in Crested Butte for an Open Spaces conference, The Java Posse Roundup.  The conference officially starts this morning, but we had an “extra session” last night at Bruce’s house.  Graham Ullrich presented his experiences with TurboGears and Django, both web application frameworks written in Python. 

Graham’s experience with TurboGears was in the summer of last year, with about the 0.9 release.  Since then it has been released as 1.0, and I think that the documentation has been improving steadily.

The major drawbacks of TurboGears include:

  1. Kid templating errors are hard to decipher
  2. SQLObject is limited in functionality

Both of these can be addressed now, as you can drop Genshi in place of kid (and Genshi has awesome error reporting), and SQLAlchemy is more powerful than SQLObject (and arguably than the ORM built into Django).

The major drawbacks of Django include:

  1. Incomplete documentation
  2. Newforms development incomplete 
  3. Not easy to understand what to do with static content

The Django project was poorly advised to put a note in the documentation that new projects should use newforms, since there are major pieces that are not implemented.

Overall, Graham reported that his experience with Django was more “pythonic” than his experience with TurboGears.  It’s hard to tell whether that’s because he was using an earlier version or whether it just feels more natural to him.  In particular, he likes the admin interface and database mapping.

Here are some more comparisons of the 2 toolkits:

And, if you missed the presentation and want to read through his slides, he's provided them (see below).

Graham's presentation on Django vs. Turbogears