Tuesday, February 2, 2010

Talks at EclipseCon 2010

I'm involved in two talks at EclipseCon this year.

The first one is a 3-hour tutorial on Monday morning called Working with OSGi: The stuff you need to know. It's based on my upcoming book entitled OSGi and Equinox: Creating Highly Modular Java Systems. I'll be presenting with my co-authors Jeff McAffer (EclipseSource) and Simon Archer (IBM) as well as Chris Aniszczyk (EclipseSource). Should be loads of work. And loads of fun.

I'm also doing a talk on Tuesday afternoon called OSGi Best and Worst Practices. Again, I'll be presenting with Jeff McAffer and Chris Aniszczyk, plus Martin Lippert from it-agile in Germany. Martin really knows how to put the proverbial umlaut in OSGi! Personally, I'm hoping to focus more on the worst practices, since that's more fun. Got any ideas or pet peeves? I've already got one up my sleeve that will involve a shameless rip-off of my favorite Toothpaste for Dinner comic. Well, second favorite, behind this one. And, yes, I can recite the first 50.

Addison-Wesley will also be selling our book at the conference, and Jeff, Simon and I will have copies available to peruse. We'll probably give away a copy or two to some lucky winners.

The conference runs from March 22 - 25. See you there!

Sunday, November 29, 2009

New Standing Desk

I've stopped using a chair in my office for over three months now. I've been standing to work instead. The first week was hell, but after that I got used to it. I started the experiment by placing a piece of old countertop on top of a cardboard box on top of my desk. Once I found a height I was comfortable with, I decided to invest in new furniture. Last weekend we drove to Ikea near Detroit and I bought the pieces to put together my new setup.

Friday, November 27, 2009

OSGi Book Update on Safari

The manuscript for our OSGi and Equinox book has been updated on Safari. The manuscript is now in the hands of the publisher and is due to be on shelves at the start of 2010. Too late for Christmas, but not for EclipseCon.

Wednesday, March 25, 2009

Thoughts from EclipseCon: LogService is an Anti-Example

I'm in Santa Clara, CA, this week attending EclipseCon. It's always great to reconnect with old friends and to catch up on what's new in the world of Eclipse.

OSGi has been gaining lots of traction in recent years, which is a great trend to see. (Finally!) Many people who have been steeped in Eclipse for years are just now getting around to investigating OSGi.

Given that there are still many minds yet to be converted to thinking more in terms of OSGi services and less in terms of Eclipse extension points, I have a modest pedagogical proposal:

Never use OSGi's LogService as an example ever again!

Over and over I hear the OSGi cognoscenti rattle off an example to OSGi beginners with LogServices as the example service. I can't tell you how many times I have heard examples that begin with "Suppose you want to use the LogService."

This is bad for at least three reasons:
  1. Logging is arguably something you might not actually want to do as a service. For example, your application might need to log about the fact that it is unable to acquire a service in the first place. Or it may need to log in a static initializer. At this point, it's too early to have acquired the LogService. We don't want our examples to lead OSGi beginners into thinking that logging is something best achieved via services.
  2. The behavior of OSGi's LogService is almost guaranteed not to match an OSGi beginner's expectations of how a logging service should work. I'm not saying OSGi's log service is wrong necessarily - I'll leave that argument for others to make. I'm saying that we should prefer examples whose semantics are shared between expert and novice. Without that, it's likely the concept we're tying to convey by way of the example is corrupted by the semantic impedance mismatch. An audience member in a session this morning asked a question using the LogService as the example (that was the dominant example in the talk so far, so why not?) and the answer he received from the OSGi expert was specific to the quirks of OSGi's LogService and missed the point of the question entirely. Sigh. Sadly, the questioner left the room even more confused than when he'd entered. Score one for the evil forces conspiring against OSGi adoption in the Eclipse community.
  3. Using only examples that are part of the OSGi framework mistakenly implies that services are something to be used only within the framework, not in your application. Certainly, no OSGi expert would ever argue this to be the case, but they seem unaware that this is unintentionally implied in their example. This misses what I think is the best part of OSGi - architecting your application as services.
I know that no OSGi expert intends to tell beginners that logging is best achieved by services, that the LogService is easy to understand, or that services are something only the framework should provide. So I'm suggesting that we use some concocted application service rather than any service provided by the OSGi framework. Almost anything would be better - StockQuoteService, TemperatureService, etc.

The only thing that could possibly be a worse example than the LogService would be the FooService. (Evil Forces of Foo, you know who you are.)


Wednesday, November 26, 2008

Talk Like a Duck

Last night, my former colleague Rick DeNatale spoke at XP West Michigan. I had invited him to come and give the talk he recently gave at RubyConf.

Rick's talk was titled "The Fall and Rise of Dynamic Languages." It was a fascinating retrospective of language development. Interestingly, dynamic languages like Smalltalk and Ruby have been around for a long time, though you might not know it from their lack of attention until recently. Many people in the audience were Ruby enthusiasts, and I think they really appreciated learning some of the history. Rick has met, known and worked with a lot of the key players in dynamic languages over the years, so he had lots of interesting stories to share with us, too.

In particular, I enjoyed the audio clip he played of an interview with Ward Cunningham. Asked if he thought dynamic languages were inherently less safe than static-typed languages like Java, Ward replied that the problems that static typing helped solve were few in comparison to the problems that dynamic languages could solve just by their improved expressiveness. I'm paraphrasing from memory, of course. It made me eager to start coding in some languages besides Java.

Let me put in a plug for XP West Michigan, since I'm a board member. Our little group has enough funding to fly in speakers and cover their expenses just to come and speak to us for two hours. So if any of you "Eclipse Mafia" types would be interested in speaking to our little group, we can cover your expenses. We even take the speaker out for dinner after the meeting. Last night we took Rick to Tre Cugini. Compilers, virtual machines, Eclipse, whatever your expertise, we'd be interested. So email me if you're willing to consider a trip to Grand Rapids.

Sunday, November 23, 2008

Eclipse Summit Europe

I just got back from Eclipse Summit Europe. It was my first time at this conference. It is quite different from EclipseCon, most notably because of the smaller size. There were just over 400 attendees this year.

Some highlights for me:
  • Patrick and I spent 12 hours on Monday working in the Sud Haus (which he refers to as the "Suds Haus.") Pair programming is quite invigorating.
  • I got to see lots of folks from OTI, whom Dave Thomas refers to as "The Eclipse Mafia." Mike, Bjorn, Ralph, Susan, Jeff, Dave and others. I also got to meet a number of people that I'd heard of but had never had the chance to meet or had not seen in a long time: Chris Aniszczyk, Heiko Seeberger, Hendrick Hoefer, Scott Lewis and others.
  • The Runtime Symposium on Tuesday was interesting. It's an informal setting intended to spark conversation. It was interesting to hear others who are biased toward OSGi services like me.
  • Dave Thomas' keynote the first day. Java is the new Cobol, etc. Provocative as always.
  • Jeff McAffer and I gave a talk on Best Practices for Equinox and OSGi, based our upcoming book (more on that in another post).
  • This year's hackathon was based on Toast, the OSGi reference implementation from the book.
  • Andechser.
Because my wife had to leave for a conference in San Antonio by Thursday evening, I had to be home by Thursday afternoon. We had time for dinner with the boys before I drove her back to the airport. So I had to miss the final day. But it was definitely worth going.

You can see a few photos I took over on my personal website here.

From the Slate?

It's a literal translation from Dutch "van der lei". Oddly enough, the name "Vanderlei" is a very common first name in Brazil. Just have a look at all the people with that name who are famous enough to be on Wikipedia. And that does not include yours truly. So some random Brazilan dude snatched up vanderlei.blogspot.com way back in 2005. Apparently, my Dutch ancestors made quite a name for themselves while plundering Brazil way back in the 1600s. That might explain why my great grandfather was nicknamed "Xingu."