Friday, March 21, 2008

Murphy and OSGi services

On Tuesday we gave our talk on Cloudsmith, Buglabs, Spaces, and AOL Xdrive - titled "Building OSGi services out of the cloud" - We had about a 100 people (my quick count), and everything was going really smoothly until we switched over to the demo part where we showed taking a picture with the BugLabs BUG device (a plug and play hardware device running Linux, and OSGi), storing the picture on an AOL Open Xdrive, and then retrieving and showing the image on an Android device using a Felix OSGi runtime to obtain an Xdrive image viewer from the Cloudsmith OBR repository. We also showed all the steps how to get the SDK's for the BUG, and for Andorid using Cloudsmith "one click materialization". There was one thing we had not tested before we started the demo; what happens if you leave the laptops on for 15-20 minutes while presenting from a third laptop....? And naturally, the one scenario we had not anticipated did bite us bad. The power supply in Ballroom E decided it did not want to deliver any power. At the very moment with took the picture with the BUG, the laptop that served as a router decided to hibernate - so the picture taking app hanged on the BUG - but somewhere in the process something did work because at the end we discovered that Ken had managed to take a picture of Ballroom E's ceiling :) (There was much laughing in the room). The laptop for showing the Android part (where we had everything prepared with preconfigured workspaces, and even a spare cloudsmith site server (in case we we should loose the wifi connection)), was at the end of its battery life, and the 15 minutes without power at the beginning of the presentation caused it to shut down! So audience got to see a boot and startup of a whole bunch of services. At a critical moment, a slight tremble of hand caused two Android emulator instances to be started, and unfortunately, the first one that appeared on the screen did so, because it was really the second instance started, and this instance did not have anything to start up, so hence started much faster. So when the second instance started, we killed it (big mistake). So, big surprise when we tried to run the demo on a completely empty Android... Michal did a great job starting things again and typing long URL's into the android device emulator's user interface (it does not have copy paste) to get it all going again, while, as someone in the audience commented afterwards - looked like a confused C3PO I hope the glitches in the technical parts did not overshadow the main message about how Cloudsmith supports "building OSGi services out of the cloud". Murphy was right - "if it can happen, it will..."

Wednesday, March 12, 2008

Scramling to get your update site ready for EclipseCon?

Creating an update site to share your sample code and tutorials is a good way of distributing your talk material to your audience. In the Eclipse Spaces project we are providing a way to quickly create an update site in an AOL Xdrive. A cool feature (we think) in Spaces is that it also publishes links to source for the bundles you publish. The Spaces "Importer" can import binaries and source and can look up missing bundles without the user having to enter the right remote update sites. The dependencies as they are set up when publishing is saved and used when importing. We think it is pretty neat, and hope this will help you deliver your matieral in a convenient way for your audience. Some speakers have tried this out already. The instructions for how to use spaces are found at http://www.eclipse.org/spaces/ (and you can also see my earlier blog posting on the spaces topic). There is however one problem - AOL has fraud detection turned on that checks the validity of the phone number and zip code which makes it difficult for non US users (and anyone that does not care to reveal their phone number). Instead of going to http://eclipse.xdrive.com, or http://www.xdrive.com to register, you can go to http://www.bluestring.com as it does not require a phone number. As an alternative, here is a phone number that works 310 123 456, and you can use the zip code 90120. Also, if you like to try out spaces and need some help (with xdrive signup or anything else) you find us at irc.mainloop.net, channel "spaces" - we try to be online there as much as possible. See you at EclipseCon...

Tuesday, March 11, 2008

I got some questions about publishing to an update site using Eclipse Spaces and that the produced site seems to be broken as the URL produces a 404 not found. And since others may hit the same snag, I thought it best to explain.  This is caused by the update site URL not being  browseable. To see something in a browser you must append a "/" (or /index.html, depending on our browser) - you should then see an index page. Also, if feeding the URL to the Update Manager, or to "Import > Spaces" - it should work fine. The AOL xdrive HTTP publishing does not allow browsing of folders, you have to know the exact URLs. But this is enough for the update manager and imports to find what it needs. You can also try THEURL/site.xml to see the URLs to the other files. If anyone wants to talk live, you can contact the spaces team on irc.mainloop.net channel #spaces, or skype me at henrik.lindberg.

Monday, March 10, 2008

Eclipse Spaces - one step closer to code blogging

Wouldn't it be nice to be able to "blog your code" directly from inside Eclipse? Envision being able to share what you just implemented with others. Sometimes it is easy to post a few lines of example code in a blog, but a lot of the time a more elaborate configuration is needed to make it valuable for others. You would perhaps have to create an update site, or point the user to several source locations and let the user create a workable environment. Why isn't it as simple as just pressing "publish"? This was the fundamental question when we started the spaces project. The Eclipse Spaces project is now making a 0.1 version available where both "immediate publishing" and convenient consumption is available.

Here is how it works

Eclipse Spaces manages Publishing Areas of different types (such as an Update Site, or a flat list of files) inside a Space. A space is provided by a Space Provider such as AOL's Xdrive, SourceForge, or something generic like a File System Provider. To publish plugins to an Update Site, all that is needed is to select "Spaces > Publish" and then select the Space and Area where the plugin should be published. This will add the plugin to the update site with all update site meta data automatically generated. The update site is a normal Eclipse Update Site, and can be consumed with the normal Update Manager. But, Eclipse Spaces does more - when publishing is done, spaces also produces information in the update site for the Spaces Import Wizard which makes it possible to import not only the binaries bundles, but also the source (if it is publicly available), and to control if bundles should be installed in the target platform, or placed in the workspace. In addition to this, the Spaces Import Wizard can consult a mapping service and resolve and install bundles that are missing in the user's target platform. If you want to try this out here are some simple steps:

Preparation:

  1. Install Eclipse Spaces - you need Eclipse 3.3, and enter this remote site URL: http://dev.cloudsmith.com/updates
  2. Sign up for a free AOL Xdrive account (you get 5GB or free space) - note that AOL gives you an AOL email account when you do this, and this is the 'login' that you will be using later. Go to AOL Xdrive for Eclipse to sign up.

Publishing a plugin for the first time:

  1. Select "Spaces > Publish" in the context menu for a plugin project - this opens the space publishing wizard.
  2. Add the location to a new space by pressing "Add Space Location..." (then enter the address to your Xdrive account (i.e. your AOLemail, and the Xdrive host) + a name you select e.g . 'MyEclipseSpace')
  3. Select 'Update Site Publishing' (currently the only publishing operation available)
  4. Add an Update Site by entering a name (e.g. 'MyUpdateSite') and pressing "Add Update Site"
  5. Press Next and publishing is performed
  6. The URL to the update site is presented (and copied to the clipboard if you want)
  7. Use the URL in the update manager, or Spaces Import Wizard (explained below)

Publishing a plugin again:

  1. Select "Spaces > Publish"
  2. Select "Republish using previously used settings"
  3. Press Finish

Adding a second plugin to 'MyUpdateSite':

  1. Select "Spaces > Publish"
  2. Select the space, then the Update Site Publishing, and then the 'MyUpdateSite' publishing area.
  3. Press Next and publishing is done

Importing the Update Site:

  1. Select "File > Import "
  2. Enter the update site URL and Select where you want bundles to go
  3. Press Finish.

Spaces View

There is also a Spaces View, where it is possible to look at address information, reset password, discard a location, add a space location etc. Here is a screen shot
For more info on spaces visit Spaces at Eclipse.org