Saturday, March 20, 2010

Java Posse Roundup 2010 - Day 4

The 4th and final day of the Java Posse Roundup 2010 went off very well. Sessions included several business oriented ones (which I skipped), tips for IDEs, Functional/OO hybrid languages and increasing adoption, happy programmers, version control options (git, mercurial, svn, etc.), code reviews and a lot more.

Afternoon I mixed and published episode 300 of the podcast (which we recorded on Thursday night). We had a lot of snow during the day and it was still snowing pretty hard in the afternoon, so after getting the podcast out, I went and joined the group watching Hitchcock's Vertigo in front of a warming fire and hacked with Tor on the ZenWriterFX application a bit more (as well as transitioning to Mercurial on Bitbucket in the hopes that it would be a bit more user-friendly than git with Github).

Last night we headed out for a pretty spectacular meal at Django's up at the resort. Lots of small taster dishes, and some amazing food (and wine too). Had fun riding back down on the town shuttle as well, where we had pretty much the entire bus singing 99 bottles of beer on the wall :-).

Thursday, March 18, 2010

Java Posse Roundup 2010 - Day 3

Wow - that was a hoot. So the three sessions this morning were fun, and a small departure for me (even one on business matters for session 2). We covered higher level concerns - definitely back to a bunch of nuts and bolts tomorrow (including a git/svn/mercurial etc. comparison and a session on increasing acceptance of functional languages).

In the afternoon I headed out with Jackie for some more cross country skiing - one of the intermediate trails (I fell down a couple of times, but I also got down some hills pretty well and even figured out how to turn the direction I wanted - I don't think I will be competing in the winter Olympics any time soon. We did find a mostly snow covered disc golf course on our travels though, so if I come out in the summer I will be bringing my discs.

We just got back from the recording of Java Posse episode 300 which was a ton of fun (I was worried it was too long, but people say that the time flew by). That episode will be up in the next day or so, in fact tomorrow afternoon I am planning on demonstrating the full process of mixing, editing and publishing a podcast for anyone interested.

Wednesday, March 17, 2010

Java Posse Roundup 2010 - Day 2

Day 2 update from the Java Posse Roundup 2010.

Three sessions this morning, there were some good choices but in the end I settled on my own proposal (about clouds, Amazon EC2, Google App Engine, etc.), then one about standardizing development across different application teams within a company, and finished up with what programming will look like in 25 years. All good, but I am looking for some more technical stuff tomorrow.

This afternoon, a bunch of us skipped the usual snow sports in favor of some extra technical discussions and demos. In the picture you can see the rigged up projection screen (a sheet over the fireplace in the house we are staying at. It worked pretty well. I led a study group on Scala, and I think picked up a few converts (people who had thought it was too complicated before now), and Fred Simon of JFrog led a discussion of build tools that improve on maven - the upshot is take a look at Gradle, and possible the Scala simple build tool (SBT).

More lightning talks tonight - last night's ones were a hoot, culminating in a fire eating demonstration (outside) by Bill Pugh - how many conferences can you say that you see a fire eating demonstration.

Tuesday, March 16, 2010

Day 1 of the Java Posse Roundup 2010

Today was the start of the conference proper - the traditional intro/meet and greet, and the first two sessions (I took non-SQL databases and a session on Scala, but all the sessions looked good and it was hard to pick (well, OK - not *that* hard :-) ).

Non-SQL databases was a lively discussion about key/value, document oriented, column oriented and connected graph databases, and where it makes sense to use them. Of course, there are not usually "right answers" at the end of these sessions any more than there are in real life, but the theme was that it makes sense to use not only SQL in some cases, but that relational DBs still bring a ton of value, and if anything the new kids on the block have a lot left to learn from the old guard too - in particular when it comes to reliability, maturity and APIs.

The Scala session was more of a "what's it all about" kind of thing - with some discussion about whether the Scala learning curve is too high (it's definitely manageable), how to get into it (scalatest and soon hopefully scala-koans), whether it's enterprise ready (we think so) and the importance of a language visionary to give a language direction, as well as the trade-off between always maintaining backwards compatibility versus the freedom of being able to make breaking changes to improve a language.

After that we christened the snow with some cross country skiing, man that's fun but hard work. Tonight we have lightning talks, where I will be doing 5 minutes on genetic calculation 101 (based on some of my work at Navigenics).

So far, as always, people seem to be loving the conference - at approximately 60 people it's our largest ever (and certainly feels like it - if we get much large we will need to change venue). People are also engaging with each other really well this year - about half the attendees are alumni, and half are new, which is a great mix for keeping the flow of the conference going but still getting an injection of new ideas - an essential part of a healthy conference and community.

Monday, March 15, 2010

Day 0 of the Java Posse Roundup 2010

The day finally arrived, and we had our (now traditional) day 0 of the Java Posse Roundup. This is the day before the conference officially starts, and is comprised of all day coding dojos and other fun events.

This year, Bruce Eckel organized an alternative business day as well - discussions around the issues of developing a business and moving it from a small startup to a larger concern without losing the spark of what makes it unique and fun among other things.

Another group went off to do a functional coding dojo covering multiple languages including Scala, Clojure, Fantom and others - including working on Koans (something close to my own heart and the subject of a future blog post).

The remaining two groups attempted to create the same application in two different environments. The application in question was based on ommwriter - a distraction free writing tool with a very nice user interface. One group got as far as they could with GWT to create an ommwriter-like tool, and hit some problems with interactions between HTML 5, database storage and the hosted mode in GWT - after working through those issues they came up with a pretty good result.

The group I was in did the same thing, but using JavaFX. You can see the results so far in the screenshot below (although there are background sounds and key clicks which don't come out in the screenshots of course :-) ). There is also a fade in panel of controls which doesn't have any icons in yet (soon).

We faced many of our own problems - some with JavaFX (Linux sound support is flaky at best, and crashes the JVM at work) and many more with github in a very active multi-developer environment, but all in all it was a pretty good day and it's always fun to do some buddy programming with Tor Norbye.

Thursday, March 11, 2010

More bike map resources

Yesterday I blogged about the new bicycle layer and routing feature in Google maps, which is excellent and very welcome. It's not the only option though, so I thought I would share a couple more options for finding bicycle routes.

The first is which is a fantastic resource for cyclists. Here is an example showing the coyote creek trail (part of the same trail I showed on Google maps yesterday):

Pretty isn't it - yes, and useful too. For those who don't know, and the site it is based on ( are the source of some amazing map data, more detailed than anything else I have seen in the US, and the data has some advantages over that available from Google maps right now, namely:

  • Available in other countries - someone responded to my blog post yesterday that they didn't have data in the EU yet, but openstreetmap (and consequently opencyclemap) data is pretty complete in many countries.
  • It has height contour data, very useful for planning your ride to see what kind of workout you are in for.
  • It is user-supported. OpenStreetMap and OpenCycleMap data is a bit like geospatial wiki data. If you know of a cycle (or other) path or road that is not on the map, you can add it. I have added a couple of paths I know of already, and it's pretty easy.
  • Off road (mountain bike) trails are on there as well, take a look at the following shot of part of Henry Coe park (near Morgan Hill) which has a lot of fire roads and single track:

Wonderfully detailed.

There are a few things Google maps does better though:
  • It's not always clear from whether what you are looking at is a paved (road bike friendly) trail or a mountain bike track. If you want to do a road ride, the new cycle layer in Google maps is probably better. If you want to go mountain biking, OpenCycleMap has a lot more detail for that.
  • The OpenCycleMap servers are slower - naturally the Google maps server has a lot more performance and responsiveness.
  • At least on the OpenCycleMap site itself, there is no automatic routing option like there is on Google maps. You will have to figure out your own route from the data.
On the go, if you have an iPhone, I recommend checking out the OpenMaps application, which has both OpenStreetMap and OpenCycleMap data available. It is well worth the few bucks it costs on the app store. It has some really useful features on it like:
  • Download the street or cycle map data for offline usage (if you are going out into the wilds, this is probably a good idea). You can choose the detail and size of data to download when you ask for the tiles.
  • It has routing! You have to set a start and end pin, and maybe some route pins, but it will then find a nice route using bike paths and tracks - very useful in the wilderness.
  • You can carry it on your bike - on the handlebars even if you get the right kind of adapter.

If/when I move to Android, this is one of the must-have apps I am going to need to find an alternative for.

Wednesday, March 10, 2010

Bicycle routing now in Google Maps

I am rather excited about this feature, although it seems like it has been a long time coming. Google maps now has bicycle paths and bicycle routing, including estimated times.

Under the More… menu you can see the new bicycle layer. Turn that on and you can see recommended bike routes and bike paths. Better yet, maps will now route along these paths if you choose the bicycle routing option when you get directions, in fact it will favor them. Here is a snippet taken from my bike ride home:


Notice the coyote creek trail is highlighted and selected for the route. This is a longer ride than just following Monterey road, but is vastly preferable in terms of the quality of the ride and I was delighted that maps now knows it can route along those bike paths and does so.

The estimated time is a little higher than I know it to be (I can do the ride in about 55 minutes, Google estimates 1 hour 17), but that’s no worse than the driving estimates tend to be. This is fantastic news for cyclists.