Monthly Archives: January 2008

Installing Scala plugin for Eclipse 3.3

I don't recall having a problem installing the Scala plugin on my old (Windows) laptop, but I got a new one and started migrating things over this week.  In order to get the Scala plugin to install, I had to install the Eclipse plugin development environment. I was happy to have found this blog post, which explained what to do to get around the error ("org.eclipse.pde.runtime is missing").  So I guess I must have either had 3.2 installed on that machine (it's been upgraded to 3.3 now), or I had a more complete install. All's well now, whew!

Lightning Talks tomorrow 2/1/08 … weather permitting

The weather forecast is for lots of snow, but if the forecast is wrong, then we'll have lightning talks.

Nate (our intern) is planning to talk about what he's learned about Google checkout.  I had him doing a research project for event registration.  He coded up a PHP script to manage it, and checked in the code.  I can't wait to hear his talk.

Chris is planning to talk about a project he did using XNA.

I don't know who else will be there, but I'll continue with another segment on Scala.  Bill will certainly do something.

Lightning talks are free and open to the public.  So if the weather is decent, we'll go from 3-5 pm.  See you there.


C# Jam early bird deadline is tomorrow …

Bruce Eckel has put together another Jam event for the Ann Arbor area.  This one is on C#, and will feature authors Jamie King (who is co-authoring a book with Bruce on C#) and Bill Wagner (who is working on "More Effective C#" as a follow-on to his previous 2 C# books). 

Here's "What is a Jam" from Bruce's registration page:


A software jam is a lab-based workshop experience, where you can:

  • Decide if you want to work on your own projects or work on the supplied programming exercises.

  • Work alone or in a group.

  • Set your own pace, so that you can "go deep" in areas that are important to you.

  • Get guidance from an instructor, as needed.

Although the format is different than what you may be used to, we've found that people seem to learn a lot more than they do in traditional seminars.

I have to agree.  I've attended several Jam events and found them to be great learning experiences.  Bruce is going to come if attendance warrants an assistant.  Jamie and Bill are the experts (but, of course, Bruce is no slouch either).

If you're planning to attend, sign up by tomorrow or miss the early bird deadline.


Bruce Eckel blogs about CodeMash …

Bruce Eckel blogged about CodeMash and the reward of community-based conferences.   I'm glad that he and many others have reported a positive experience at CodeMash.  It really does make all of the work in organizing such an event seem more worthwhile.  I have to admit that about a month before the event, it's easy to sit back and think, "Sheesh! Maybe we should have some professionals do this instead!".  But, when it comes down to it, I think that developers know what other developers want to see in a conference and if we strive for that, the conference will continue to be successful.  As Bruce pointed out, for CodeMash, it's not about making a profit.  In fact, having the added stress of HAVING to make a profit would be unthinkable.  Heck, we're stressed just trying to make sure that we don't lose our shirts and we're thrilled that the community has embraced the conference!  And, it's a conference that *I* want to attend, and the people that I know want to attend. So yeah, it's worth it.

Coincidentally, just today I ran across a post on the Java Posse google group from a Posse listener who missed CodeMash and was hoping that there was another event coming up with the same talks and same speakers.  I'm sorry (and pleased, at the same time!) to say, "Nope!  It's a one of a kind event."  He promises that we'll see him at CodeMash in '09.  Cool.

PyCon registration is open

PyCon will be held in Chicago from March 14-16 (with tutorials on the 13th and sprints afterward).  Registration is now open at

The tutorials and sessions both look great, and there are also lightning talks and open spaces.   I'm even hoping to lure my scientist husband into attendance.  He has looked at Python about a year ago and liked it.  He's not a programmer, but he did some programming in Pascal in college and briefly looked at C++ a few years ago.  He said that Python was the most understandable of the languages he has seen.  This seems to be a common reaction from scientists, and so I'm hoping that he will go and learn more.  He may even end up using it at work someday!

It's great having a conference like this in the Midwest, and I have already signed up.   I seem to recall that the conference filled up last year (in Dallas).  I didn't want to miss out.

So what IS Scala?

The question a lot of people have been asking lately is "What is Scala and why do I care?".  The short and sweet answer is that Scala is an object-oriented/functional hybrid that runs on the Java Virtual Machine (JVM).  This is interesting because it can harness the full power of the JVM, including bringing in Java libraries.

And you care because concurrency is hard to get right.  It's hard in Java and it's hard in C# (I hope you got to see Brian Goetz's talk at CodeMash).  It's hard because writing multithreaded programs with our current programming model is hard.  Deadlock is hard to detect and hard to protect against.  Until now, we've been shielded a bit from the dangers that lurk by single processor machines.  We were writing multithreaded programs that might be interrupted, but often weren't.  But now, you can't really even buy a single processor machine.  It's compelling to take full advantage of the hardware that you have just bought, and all of those little mistakes that you made previously in multithreaded programs may bite you as well.

So we had better figure this thing out.  Erlang's good for concurrency but most people aren't really adept at programming in a purely functional language.  And we have reaped benefits from object-oriented programming, so it's interesting to combine the two in such a way that we can use the functional programming aspects to gain better concurrency without walking away from the productivity gains that we have made with object-oriented programming.

If you still care, check back in.  I'll pump out some Scala blog posts in the upcoming weeks, conveying what I have learned about the language and how I feel about it.  I like it but I'm not jumping to Scala for anything other than personal interest right now.  This is a stage of investigation.  It may well turn out to be a language that I want to use for development, but I'm not committing to it yet.  Even Brian Goetz agrees that Scala and F# may not be "the" answer but may be a stepping stone along the path to more multiparadigm languages [CodeMash quote].  If you are anxious to get started, read the Artima article, "First Steps to Scala" and listen to podcasts with Scala creator Martin Odersky on Software Engineering Radio and on The Java Posse. If you're still hanging on, then definitely buy and read the "Scala Programming Language" book. 


Brian Goetz Captures the Essence of CodeMash

The whole idea behind CodeMash is to get people to learn something about languages, platforms, etc. that they don't typically use for programming, to "free their minds".  I was thrilled to hear Brian Goetz express that sentiment in such a positive manner, in his interview with Chris Woodruff on the CodeMash podcast.  Here's the quote:

"If you're able to program effectively in multiple languages, the space of designs that you can imagine is correspondingly greater, and knowing something about another language makes you a better programmer in the language that you are programming with because there are concepts and idioms that you may be able to borrow from.  And so, I think it's a really exciting time because languages are interesting again and it's not a completely dead end activity to learn a new language that may not be popular yet."   He also said that he came to CodeMash because "this conference embraces the diversity in programming languages, unlike other conferences that are focused on Java or focused on .NET".

Earlier in the interview, they had been discussing the interest in new languages such as F# and Scala, and Brian mentioned how thrilled he is that we have exited from the "dark age" where people programmed in only one language and didn't really delve into others.  Brian explained that he doesn't necessarily believe that either F# or Scala is the "solution" to the concurrency problem, but that they may lead to other developments in hybrid languages that ultimately make their way into mainstream programming.  That is definitely a reasonable consideration.

Rod Johnson/Spring at the Central Ohio Java User Group on January 24

Our friends in Columbus, OH will host Rod Johnson on Thursday, January 24, from 6-8 pm. Rod is the creator of Spring and a hero to many in the J2EE community for giving them an alternative to EJBs.  Rod will discuss new features in Spring 2.5.  If you're ANYWHERE near Columbus, I think it's worth stopping by.  I'm disappointed that I won't be able to make it!  I would definitely venture deep into Buckeye territory for that talk.

Rich Internet Application Jam: Silverlight and Flex

Last week, James Ward (Adobe), Josh Holmes (Microsoft), and Bruce Eckel (well, Bruce Eckel!) conducted a Rich Internet Application Jam at our office. This was NOT a competitive event.  Rather, in the spirit of CodeMash, people came together to learn about competing technologies in a cooperative manner.  Each attendee decided which technologies to explore, and how much time to spend on them.  Most of the attendees were interested in Flex, but Silverlight was represented as well.  And of course, the Jam included discussions of the strengths of each.  It appears that Flex has strong support for controls, yet to be provided in Silverlight.  Silverlight shines in its support of vector graphics, which Flex doesn't currently provide.

I spent some time looking at the AdvancedDataGrid in Flex 3.  One of the attendees had a customer requirement for a lot of grid data, including summaries and rollups.  The advanced data grid supported what he needed to do, using a combination of summary rows and groupings.  On the summary rows, he was able to choose one of five functions that are baked into the advanced data grid: min, max, average, count, and sum.  Nice!  If you're interested in this, note that the documentation is apparently not available in the Flex 3 docs that are downloaded, but is available online.  Sreenivas Ramaswamy's blog has a nice writeup about this control (and others!).

Andy Beaulieu's site has a cool Silverlight demo.  If you enter an address for which there is Virtual Earth data, you can play a game that allows you to destroy UFO's while flying over that address.  Impressive!

Once again, I was impressed by the Jam format.  With Bruce, James, and Josh to help people over any rough spots, attendees were able to work on exercises that interested them, and spend as much time as they needed on any particular task.  I like this better than the typical situation where a class is in lock step for exercises, and individual attendees are either sitting around waiting for someone to finish, or frantically trying to rush through so that everyone else can move on.  And these people were able to focus on using the technology in a way that is meaningful for their purposes, but have the support of an expert right there.

The attendees seemed to enjoy themselves and learn a lot.  I can't wait til our next Jam: it's a C# Jam with Bill Wagner, Jamie King, and Bruce Eckel.  It will be held at our office April 8-11.  Bruce and Jamie are working on a C# book, and Bill's working on his 3rd C# book.  This Jam will focus on C# 3.0 and its new language features.   The early bird deadline for that event is January 31.


Day 1 of the RIA Jam … and RIA at Special User Group meeting tomorrow

Today was the first day for the Rich Internet Application Jam, being held at SRT Solutions' offices.  James Ward (Adobe)  and Bruce Eckel are here, working side-by-side with people who are in various stages of learning Flex and Josh Holmes (Microsoft) is here representing Silverlight and working with people interested in that.  The Jam goes through Wednesday.

Tomorrow night (Tuesday January 15), James and Bruce will present a talk, "Connecting Java with Flex using Open Source Blaze".  The discussion will include how Blaze differs from LiveCycle Data Services and perhaps even a little bit of Scala.  You see, James spent some time this past weekend connecting Flex to Scala.  Interesting.

This is a special joint meeting of the Ann Arbor Computer Society and Ann Arbor Java User Group, and will be held at 206 S. Fifth Ave, Suite 200, Ann Arbor, MI 48104.  The meeting starts at 6 pm, and is free and open to the public.  AACS is providing pizza.