Twitter github

Stuttgart, Gersfeld and Rhön

Last week, I was in Germany for Eclipse Summit Europe 2009.

While, not at the conference, I had time to be a tourist. The first stop was at the Porsche Museum.

porsche1

The only sad thing about the Porsche Museum was that it’s closed on Mondays!

However, the dealership across the street was open and was just as good as a museum in my opinion.

Inside a Porsche

porsche2

Porsche 3

The next stop on the tourism tour was Gersfeld. I hiked the Gersfeld area with friends and enjoyed the peaceful feeling of the trails.

Gersfeld

It was freezing for a Texan, but the trails were enjoyable to hike through (there were even some signs in English).

Gersfeld

What to do after all that hiking? Eat currywurst of course!

Currywurst

The final place I saw was Wasserkuppe, which if you are into gliders is awesome I highly recommend visiting it.

Wasserkuppe

A big thank you to Ralph and Susan for being my courteous hosts.

Slides from Eclipse Summit Europe 2009

Yesterday, Paul Vanderlei and I gave a presentation about OSGi Versioning and Testing at Eclipse Summit Europe 2009.

Some people have asked for the slides, so I put them on slideshare.

Enjoy.

On the Road Again…

I’m off to Germany today from Austin for Eclipse Summit Europe 2009.

The first order of business is to eat the ceremonial last breakfast taco I’ll have for a week.

Austin Torchy's Breakfast Taco

I started using TripIt.com recently to manage my travels. I highly recommend it to anyone who travels quite a bit and needs to share itineraries with family or colleagues. It also allows you to see if you have any friends that will be in the area at the same time you are (hi Boris!).

TripIt

On top of that, it even turns traveling into a game!

TripIT

I’m a bit disappointed that I’m in second place… I think I can fix that with a planned vacation to Fiji.

Finally, TripIt has an iPhone application so you can check your trips on your phone.

TripIt iPhone

So give TripIt a try if you travel quite a bit.

Ok, time to go. I hope to see everyone in Ludwigsburg.

LIVESTRONG Challenge 5K 2009

Today, I participated in the LIVESTRONG Challenge 5K.

It was a beautiful Austin morning with the temperature floating around 60 degrees.

LIVESTRONG Challenge 1

The start line was packed with roughly 3500 supporters and runners.

LIVESTRONG Challenge 5K Start Line

I ran the 5K in 18:02 which seemed like an awesome time but the course shorter than expected. It turned out the course was about 2.8 miles which is a tad short of a full 5K distance. Oh well, PRs for everyone!

In the end, it was great to see the city of Austin come together and support cancer research and cancer survivors. One can only hope that science and humanity’s persistence will prevail in the end.

LIVESTRONG Challenge 5K Survivor

For an obligatory Lance Armstrong quote to go along with the picture above…

If children have the ability to ignore all odds and percentages, then maybe we can all learn from them. When you think about it, what other choice is there but to hope? We have two options, medically and emotionally: give up, or fight like hell.

OSGi, PDE and Where’s Waldo

I was reading over the OSGi survey results and noticed that people found that obtaining valid bundles is still a problem. I agree. I find obtaining bundles or setting up my development target akin to playing a game of Where’s Waldo.

Where's Waldo

As you can tell, I was never a fan of the game, but for some reason my family loved getting those books.

Last week, the PDE team had a little meeting of the minds to help think of ideas to tackle parts of that problem. There’s a lot more we can do to improve the developer experience around managing bundles since p2 is around now.

The PDE team is looking at improving the target definition story again. One aspect of the improvement is making targets managed by a p2 profile. This would make it easier to manage the target in the long run and potentially expose cool things you can do with targets. The aspect I’m mostly interested in is improving the developer experience and workflow with PDE.

I remember when I first started developing bundles, one big problem was just setting up your environment and finding the correct bundles. I remember staring at my Java source files and seeing evil compile errors for missing imports like this commons collections one.

Missing Imports

Wouldn’t it be nice to take advantage of p2 repositories to help solve that problem?

pde2

p2 repositories are rich with metadata and you can query them for many interesting things like packages.

Add Artifact

You can also query for things like bundles.

pde4

Heck, if you’re adventurous, you can also query for features!

pdefeatures

Since the target platform is managed by p2, the necessary artifacts will be downloaded and available for you to use.

pde5

No more compile errors!

pde6

We can see that the commons collections bundle is now part of our dependencies.

pde7

That’s just one example of how to improve the bundle developer workflow using p2. The PDE team is exploring many options so if you have ideas on how to improve developer workflow, please let the PDE team know.

Symbian and the Eclipse Public License

Yesterday, the Symbian Foundation announced the release of the Symbian microkernel and development kit under the Eclipse Public License (EPL).

“The release of the microkernel demonstrates three vital, guiding principles of the foundation: first, the commitment of many community members to the development of the platform – in this case, Accenture, ARM, Nokia and Texas Instruments Incorporated (TI) all made contributions; second, progress in fulfilling our commitment to a complete open source release of Symbian; and third, a tangible example of providing the most advanced mobile platform in the world” said Lee Williams, Executive Director, Symbian Foundation.”

Good stuff. That’s going to be a lot of phones and devices with open source love in it.

Maybe Gartner’s prediction of open source dominance by 2012 will happen sooner?

Gartner believes that 80 percent of all commercial software applications will include open-source components by 2012. Gartner notes that the value and robustness of open-source software offers compelling opportunities for commercial software developers to reduce development costs.

I think open source and open development is in. Will people care though?

Ok, now back to watching those DroidDoes commercials…

droiddoes2

LIVESTRONG Challenge 2009

I’m participating in the LIVESTRONG Challenge this year yet again in Austin, Texas.

lscaus09

The LIVESTRONG Challenge is the main fundraising event for the Lance Armstrong Foundation (LAF). If you don’t know who the LAF is, just check out the quote below and visit their website.

The Lance Armstrong Foundation (LAF) unites people through programs and experiences to empower cancer survivors to live life on their own terms and to raise awareness and funds for the fight against cancer. The LAF focuses on cancer prevention, access to screening and care, research and quality of life for cancer survivors. Founded in 1997 by cancer survivor and champion cyclist Lance Armstrong, the LAF has raised more than $250 million for the fight against cancer. Join 60 million LIVESTRONG wristband wearers and help make cancer a national priority. Unite and fight cancer at LIVESTRONG.org.

If you’re not a fan of cancer and have the means, consider donating.

I promise to post pictures after the event 🙂

Eclipse and Content Type Definitions

I came across a bug in PDE recently regarding content types.

For example, let’s pretend you had a xml file like this:

<?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" 
    name="Command Provider for Dictionary Service">
   <implementation class="org.eclipse.example.ds.ServiceComponent"/>
   <service>
      <provide interface="org.eclipse.osgi.framework.console.CommandProvider"/>
   </service>
   <reference 
      bind="setDictionary" 
      cardinality="1..1" 
      interface="org.eclipse.example.ds.DictionaryService" 
      name="Dictionary" 
      policy="static" 
      unbind="unsetDictionary"/>
</scr:component>

And this content type extension definition:

<extension
         point="org.eclipse.core.contenttype.contentTypes">
      <content-type
            base-type="org.eclipse.core.runtime.xml"
            file-extensions="xml"
            id="org.eclipse.pde.ds.core.content-type"
            name="%content-type.name"
            priority="high">
         <describer
               class="org.eclipse.core.runtime.content.XMLRootElementContentDescriber2">
            <parameter
                  name="element"
                  value="component">
            </parameter>
         </describer>
      </content-type>
</extension>

Looks ok, right? The content type should be associated with files that start with the component tag. Cool! Well, the problem is since Eclipse is open for contribution, someone else can come along and define a “component” format and than you have the problem of your editor associations being messed up. Many bad things can happen.

<?xml version="1.0" encoding="UTF-8"?>
<component name="stuff">
    <...>
</component>

The fix is to have my content type definition scoped by namespace. This is trivial since XMLRootElementContentDescriber2 supports namespaces.

<describer
     class="org.eclipse.core.runtime.content.XMLRootElementContentDescriber2">
     <parameter
             name="element"
             value="{http://www.osgi.org/xmlns/scr/v1.1.0}component">
     </parameter>
 </describer>

You learn something new everyday.

Eclipse Summit Europe 2009

I’m presenting at Eclipse Summit Europe 2009 which happens in about a week from today.

I’ll be speaking about OSGi Versioning and Testing with Jeff McAffer and Paul VanderLei. Please consider coming to the talk, it should be fun and will involve discussion of painting fences with neighbors.

Fences

Here’s the abstract:

The old saying goes, good fences make for good neighbors. Modular systems are all about the fences, otherwise known as contracts. OSGi-based systems are simply compositions of modules and contracts. To express contracts in OSGi, we use version numbers. From our experience in the Eclipse community, we have found that managing API and these contracts a difficult process.

In the first part of this talk, we’ll discuss the problem of version numbering and managing change. We’ll bring forward real world examples that demonstrate the complexities in managing change, including examples from the Eclipse community where change has caused havoc. There will be a demonstration of some the tools we developed at Eclipse to help manage change in your OSGi-based applications.

In the second part of this talk we draw on experiences and examples from the OSGi and Equinox book to identify key elements of modularity and point out best practices for designing and building modular systems using OSGi. Along the way we highlight pitfalls and anti-patterns and talk about ease of testing as barometer for modularity.

On a side note, over 30 people have signed up for the Eclipse Summit Europe 5K run every morning!

Eclipse Summit Europe 5K

Please don’t forget to sign up if you want to run and burn off some Kirsch.

IBM Uptown Classic 2009

I participated in the IBM Uptown Classic this morning.

It was a slow morning but I managed to inhale a Snickers Marathon Energy bar to solve that problem. Race packet food is the breakfast of champions!

Snickers Marathon Energy Bar

The race started on time and I tried to sneak up front to get a better starting position.

IBM Uptown Classic

The race went well, I was chasing a sub 40 but finished in 40:24 :/

IBM Uptown Classic

My splits weren’t too bad either, I was feeling great after the first 5K 🙂

Total: 40:24 – 6:30/M
1st 5K Split: 19:04 – 6:21/M
2nd 5K Split: 21:19 – 6:38/M

To help celebrate, the race organizers even provided a bouncy castle!

IBM Uptown Classic

As a bonus, I got to see my old office at IBM Austin which I left about 16 months ago.

IBM Uptown Classic

Overall, great race, highly recommend it to anyone looking to do a 10K in Austin.