The Java Posse Roundup (An Open Spaces Conference): An Insiders Perspective

As I have done each winter for the past 5 years, I just spent a week at the Java Posse Roundup, an open spaces conference, in Crested Butte, Colorado. Organized by the Java Posse, a dedicated group of software professionals who generously give their time to produce a weekly podcast for developers on the Java Virtual Machine, the conference is a week of open spaces discussions, software coding sessions, networking and, inevitably, skiing.

As one of the 4 people (in addition to the organizers) who have attended all 5 of the events, I want to offer some perspective for people who have never attended, and for business owners or technical managers who wonder if they should fund their employees to attend.

The conference is designed around the people who attend the conference. It’s not designed for them; it’s designed by them. On the first day of the conference, the attendees choose topics for discussion, coding sessions to conduct, and extracurricular activities to organize. The content varies based on who attends, and if a topic isn’t discussed, that’s either because the attendees didn’t have interest or because folks were too shy to propose the topic. In the latter case, this doesn’t last long. Those who come back a second time usually come with a bunch of ideas.

A diverse group attends the Roundup. While the vast majority of developers are North American Java developers, we always have a number of attendees from the UK, Europe, Scandinavia. This year, we also had an attendee from Brazil and another from Australia.   We also had a .NET developer and some folks who no longer do active development in any language, but rather focus on either design or management of developers.

When Bill Venners attended a few years ago, we had some fun coding sessions on ScalaTest. When Bill Pugh, a professor from the University of Maryland, attended in years prior, we saw sessions around education as well as static analysis, his research focus.

Managers face an empty agenda when considering whether or not to send employees. Rather than looking at this as a concern, folks in the know see this as an opportunity to explore the many questions and concerns in software development. When people wonder about the content of the Roundup, I point them at the Java Posse podcast, where many of recorded sessions are freely available.

The schedule for the conference has evolved over the years. An optional “coding rodeo” day was added to the front of the conference.  Most attendees show up on Sunday so that they can do software coding sessions all day on Monday.  These have been very popular, and have since been added into the conference proper as well, as optional afternoon sessions.  Like the rest of the conference, these sessions are driven and organized by the attendees.  This year, they included (among others):

  • Developing and deploying an application on Amazon’s new Elastic Beanstalk cloud platform
  • Developing and releasing SnapItLive, a Flex application targeted toward desktop, web, and Android mobile devices
  • A Scala implementation of the Game of Life, complete with a Scala-based user interface
  • Converting a document from Microsoft word to docbook format
  • F# development using MonoDevelop on Linux

Code developed during the conference was made available in various code repositories, so that learning could continue beyond the one week of time spent together.

Geek note: We had an open spaces session on distributed version control systems (Distributed Version Control: Risks, Rewards, and the Cool Kids) which discussed the various issues around VCS such as git, mercurial, and bazaar.  Following a particularly bad experience last year of merging with git, many chose to use mercurial this year, while others stuck with git and had better success than last year.

Weeks before the conference, attendees start self-organizing by renting houses for groups of people to share. Upon registration, attendees are added to an online group to communicate with other attendees. The regret most often expressed by new attendees is in not joining a group house in their first year.  The houses provide amazing opportunities for communicating with other attendees, nearly around the clock, but also serve as adjunct locations for coding rodeos throughout the week.

The daily schedule for the 4 days after the coding rodeo day has evolved over the years, and continues to change as we figure out what we want to get out of our time together.  I say “we” quite deliberately, meaning all of the attendees. While the old timers often feel more comfortable suggesting changes, everyone is encouraged to do so.  Currently, we get together in the early morning each day for 3 open spaces sessions, with topics running consecutively in 4 rooms. One of those locations isn’t amenable to recording, so someone suggested having “off the record” sessions there. These are typically not as technical, tending more toward soft skills and managerial in nature.  They have a slightly different feel to them than the recorded sessions, as people are more free to be vocal about things that they’re not comfortable saying publicly.

After a lunch break, people either do something social (skiing and snowshoeing are popular), catch up on what’s going on back at their workplaces, or join in on one of the coding rodeos that have been organized by attendees. People then get together for dinner before returning for a few hours of lightning talks.  These are 5 minute talks, prepared by the attendees, about a variety of topics. They provide insight into who people are, as well as sometimes answer technical questions.

After a week of this, we all go home, energized by the knowledge gained, amazed by the connections we have made, yet both physically and mentally exhausted. I’ve learned to stretch out my trip for a few days (this year, I arrived on Sunday and returned on Sunday) to give myself Saturday to relax and recover and enjoy the town of Crested Butte with no specific schedule.  Of course, I ended up skiing and having dinner with some other stragglers.

I’ve made some great friends at the Roundup. I’m sad when longtime attendees have to skip a year, but I’m thrilled with the spaces that opens up for newcomers. Over the past several years, I’ve gotten to know many of the attendees personally and we continue our interactions throughout the year.  There are others that I don’t regularly communicate with, but if a question arose that they could help with, I wouldn’t hesitate to reach out. When you spend a week with people, the relationship is based on a pretty deep appreciation of who they are, and an understanding of how you might work together.

Unfortunately, there’s one elephant in the room. That is, while the group is diverse geographically, we still suffer from a significantly lower participation by women than expected. In the past 5 years, only 4 women in total have attended. Even by the paltry statistics of women in this industry, that is pathetically low. I’m working on a side project of how to increase that number, by trying to engage directly with women software developers.

The Java Posse Roundup is one of my favorite events, and I would strongly encourage developers to attend and managers to approve this as a conference.  The opportunity to spend a week with such amazing people is not to be squandered.  I stand behind that recommendation.  That .NET developer who attended the Roundup this year?  He works for me.

Cross training in software

Several months ago, the opportunity arose to work on a project in Flex.  Brian Genisio has had a lot of experience with WPF and Silverlight and he expressed interest in the Flex project.   While there are a lot of differences between the Adobe world and the Microsoft world, Brian found similarities as well.  And he learned that there are things about each platform that he appreciates over the other.  By learning Flex, he’s become a better Silverlight developer, and by knowing Silverlight, he had quick and substantial success with Flex.  He’s been blogging about the experience, and it’s quite interesting.

We asked James Ward if he would like to do a Flex Jam in Ann Arbor, as we’ve done in previous years. We were thrilled when he agreed.  If you think that you might want to join James (and Brian) in learning Flex in an interactive coding workshop, you can get more information or register at http://www.srtsolutions.com/flex-training.  It’s not just for Java or Flex developers!  If you’re a Silverlight developer, check out Brian’s blog and see if you think learning Flex would help make you a better developer.

Scala training from Escalate Software coming to Ann Arbor in May

Bill Venners, co-author of Programming in Scala 2nd Edition, and Dick Wall, Scala aficionado and podcaster extraordinare, will be coming to Ann Arbor from May 23-27 to teach their intensive hands-on Scala course.  You can attend the beginner course (3 days) or the advance course (2 days) or both.  You don’t need to be a functional programming guru to attend.  The assumption is that you have had exposure to one or more object-oriented languages.  C# or Java experience might be helpful but is not required.

Bill and Dick have previously taught this class in the Bay Area, but this is the first time that they will offer it outside of that region.   I’m thrilled that they have chosen Ann Arbor for the class!

You can get more information about the workshop on the registration page. The page includes recommendations from previous attendees as well as travel information for the Ann Arbor class.  Registration is now live.  Early bird pricing goes through March 22.

I know that I’m looking forward to the course.  I hope that you will join us!

Ann Arbor: Embrace your inner geek with area events

The next few weeks will bring some interesting technology events to the Ann Arbor area.

CodeRetreat
This Saturday (January 29), there is a CodeRetreat at SRT’s offices.  The concept is that we can all become better programmers by practicing.  CodeRetreat is language-agnostic, so show up with your computer and language of choice.  CodeRetreat is FREE.

To learn more about CodeRetreat, go to:

http://coderetreat.com/how-it-works.html
http://coderetreat.ning.com/events/2nd-anniversary-coderetreat

FLEX Jam

On February 15-17, Ann Arbor SPARK (330 E. Liberty, Lower Level) is hosting James Ward, Adobe Flex evangelist.  James will be leading a Flex Jam, which is designed to bring together developers, from beginning to advanced level, to learn about Flex development.  Attendees work at their own pace, with James as a guide and mentor.  Exercises will be available for those who do not have a project in mind.  You can register for the Flex Jam at http://www.srtsolutions.com/flex-training.  The registration cost includes a continental breakfast and a boxed lunch.

Our friends over at Pure Visibility are offering Google Analytics Drivers Ed Training Course, on Friday, February 18.

And, of course, there will be a plethora of user group meetings coming up.

SRT Solutions is at 206 S. Fifth Ave., Suite 200.

CodeMash Recap: Scala Koans Precompiler

Was it just last year that I attended Joe O’Brien’s Ruby Koans precompiler at CodeMash?  Koans are little exercises, designed to provide tidbits of knowledge that when bundled together provide an in-depth understanding.  What an awesome way to learn a programming language!

Last year at CodeMash (January 2010), Dick Wall and a few other people got together to work on koans for other languages.  This year, there was some interest in a Scala precompiler.  Since Dick wasn’t able to make the precompiler, I started looking for folks to help.  I hosted “Six Weeks of Scala” at the SRT offices in October and November, and many koans were written there, with the help of several attendees (notably Jeff Hoover).  Nilanjan Raychaudhuri and Daniel Hinojosa, both selected as CodeMash speakers, agreed to pitch in as well.

The idea of koans is that the student has to make only a very small, seemingly insignificant change to make each koan work.  By crafting koans around language features, students gain focused knowledge around the individual features.  The Ruby Koans set the bar REALLY high.  The EdgeCase folks have made their koans fun, even amusing.  Those who have done either set will agree with the inside joke that the Scala koans are still on their journey toward the path to enlightenment.

On the other hand, the koans were well-received.  We had a half-day precompiler session and we seemed able to keep 20 or 30 people amused and interested.  Many others tweeted after the fact that they too were doing the Scala Koans.  The best compliment we could have ever gotten was the guy who came up to me afterward and said that our koans had changed his opinion of Scala.  That he had thought he hated the language, but that he know thinks it’s “not that bad”.  He said that was quite a change in his thinking.  I’ll attribute it to his open mind, and the mantra of CodeMash, which is “Free Your Mind”.

If you want to try the koans, they currently live in 2 places.  We’ll ultimately consolidate them with the Functional Koans on GitHub, but for now you can find the “solutions set” at https://bitbucket.org/dickwall/scala-koans and the student exercises at https://bitbucket.org/dmarsh/scalakoansexercises.

The Ruby Koans have a script that generate the exercises from the working solutions set, but we’re not there yet.

To run the koans, you just need a JDK (1.6+).  We provided the precompiler attendees with sbt and a script that packaged everything that they needed to get started.

Just run:

sbt

~test-quick org.functionalkoans.forscala.PathToEnlightenment

From that point on, you will be able to edit the Scala files and make appropriate changes to get the tests to work. sbt will run the tests when you make changes.  Scroll back through the messages to the first error and make the change to fix the error.

The wiki includes a list of changes that we’re working on, as well as instructions of how to run the koans.

Enjoy!

4 More Weeks of Six Weeks of Scala

There are still 4 weeks left of our Six Weeks of Scala series.  There’s still plenty of time to join in, particularly since this has been organized as independent sessions to allow people to come and go, as it fits their schedules.

We will meet at SRT Solutions on Monday evenings (11/1, 11/8, 11/15, and 11/22), sometime after 5 pm (most people seem to be arriving at around 6), and work on Scala for about 2-2.5 hrs.  The first few weeks, we worked on a variety of things, getting used to the language.  We played around with collections in the first week, and pattern matching & functional decomposition of problems last week.

On Monday, November 1, we are going to start working with the Scala Koans, modeled after the Ruby Koans.  We’ll be working with Dick Wall’s fork of the Koans, and hopefully contributing to them.  Please join us.

SRT Solutions is at 206 S. Fifth Ave., Suite 200 in Ann Arbor.  This is at the intersection of Washington and Fifth Avenue.  The entrance is from Fifth Avenue.  Metered parking is free in Ann Arbor after 6 pm, so if you can find a space, feed the meter til 6.   Alternatively, the closest parking structure is at Fourth Avenue and Washington.

Get your Scala on …

Is Scala too hard for the average developer, or just right?  Make your own assessment over the next 6 weeks, at Six Weeks of Scala or attend my talk at 1DevDay on Saturday where this will be the topic of discussion.

Tonight, we’re kicking off the “Six Weeks of Scala” at SRT.  Starting at 5 pm, we’ll be gathering to do some coding on Scala.  Everyone is welcome.  If you’re a newbie (or not yet committed to Scala development), the Scala interpreter is a simple way to get started with the language.  If you want to do some test-driven development, you might prefer to come with an IDE and plugin installed.  We’ll self-organize into groups based on goals for our six weeks.  You don’t need to commit to all six weeks.  Just come when you can (free and open to all).

On Saturday, the organizers of 1DevDay have invited me to talk about Scala.  Here’s the abstract for my talk:

Scala: Too Hard for the Average Developer?

Scala has gotten a lot of press in the past few years.  Some people love it for its support of functional programming.  Others think it’s a completely awesome replacement for Java.  But others think it’s way too complex for the average developer.  Let’s put it all out there.  In this talk, we’ll look at the syntax together and decide what there is to love and what there is to hate.

By the end of this talk, you will have enough exposure to the language to make up your own mind about Scala. We’ll leave it up to you to decide if you’re an average developer or not!

I’m scheduled to speak from 10:15-11:15. Dennis Burton, also from SRT Solutions, is speaking on MongoDB at the same time.  I’m also looking forward to finally meeting Matt Stine, of the Memphis Java User Group and No Fluff Just Stuff, who is speaking on Polyglot OSGi and Grails/YUI.  Nilanjan Raychaudhuri is speaking on Play, a Scala/Java Web Framework, Gordon Dickens is talking about Spring Roo and Joel Hawkins is talking about Hadoop.  If that’s not enough to interest you, Chris Judd of the Cleveland Java User Group is talking about Beginning iOS development, and Nayan Hajratwala is running a full day Code Retreat.  Saturday should be a fun day indeed!

Six Weeks of Scala delayed start until Monday, October 18

Our family has been sick this week, and I’m the latest to come down with a fever.  So, we’ll get started with “Six Weeks of Scala” next Monday, October 18.  I’m sorry for any inconvenience!

We will hold the informal “Six Weeks of Scala” at SRT Solutions, 206 S. Fifth Ave., Suite 200, Ann Arbor. We’ll get started at around 5 pm and go until around 7 pm.  Everyone who wants to learn or share what they’ve learned about Scala is welcome.  Please join us whether you can make it only 1 week or all 6.

Free and open to the public.

The Business Case for Flexible Workplaces

Sunday’s annarbor.com includes a followup-article on workplace flexibility.  This article discusses what businesses have to gain by providing a more open company culture.  Conversations were started about workplace flexibility at TEDxDetroit.  Keep that conversation going here on SRT’s site.  Please offer your suggestions and experiences.  We would love to hear them!

More information on Six Weeks of Scala

I mentioned earlier this week that SRT will be hosting “Six Weeks of Scala”, starting on Monday, October 11, from 5-7 pm.  This will be a loosely structured event, designed so that people who want to write some code in Scala have a supportive, collaborative environment.  Come once or come weekly: we’ll be here, and you are welcome.  This event is free and open to the public.

I’ve been getting a lot of questions about what to install prior to the first session.  My comments about coming with an IDE were targeted toward those who want to write Scala in a test-driven way.  But one of the great things about Scala is that you can learn a lot in a low-friction way, by working in the interactive shell.  So, particularly if you are new to Scala, this is a great way to start.  Simply install Scala 2.8 (sometime BEFORE Monday at SRT so that you don’t take down our internet) and get started.

If you want to use an IDE, you have several choices: NetBeans, IntelliJ’s IDEA, and Eclipse.  Each of these have Scala plugins.  I’ve been using NetBeans lately, but a lot of people who came to the Scala Code Retreat a few weeks ago were happily using Eclipse.  One guy had IDEA.  Choose your favorite, or wait to see what others are using and why they like them.

We haven’t identified a single goal of what we want to build.  Certainly, groups may form who would like to do that.  Others may just want to experiment.  Please don’t feel that you have to commit to the entire 6 weeks in order to participate.  This is not a structured class that makes that necessary.