Linux switcher

In my day-to-day role as a software engineer at IBM I spend most of my time working on design docs, code and a variety of other things which don’t particularly require me to use any one platform or operating system. As long as I have Eclipse, Word (or equivalent) and a variety of productivity tools including Lotus Notes and Sametime, I’ll be happy (along with the ability to VPN into work from home) The one thing I am limited to is hardware, which by default is a Lenovo/IBM Thinkpad. As such I can’t obtain my nirvana of doing my day-to-day work on a Mac (or at least I can’t without buying the hardware myself!)

So, the flexibility I have boils down to operating system. For the most part I’ve stuck to Windows XP, mainly through familiarity and laziness. I have a desktop machine which runs Linux, but aside from running a few services which I make use of in development (LDAP, Tivoli Access Manager, DB2 etc.) it remains untouched, happily running the World Community Grid.

Every so often I get the urge to get my hands dirty in the world of Unix, in an attempt not to lose forever the skills I gained long ago at University whilst working on Silicon Graphics workstations. This urge is partially sated by Mac OSX and it’s BSD underpinnings, but I recently came to the conclusion that if I am going to maintain and extend my knowledge of Unix, it would be best to do it on a full-time basis, so the only option was to use it for my day-to-day work. Hence why I am writing this entry on my Thinkpad which is now running Linux.

The decision was easy to make seen as all my primary needs in terms of development and productivity apps are now available in the form of Eclipse, the beta of Notes 8, Open Office and Sametime 7.5. Notes in particular has been a long time coming to the world of Linux. So it was that earlier this week, after backing up the stuff I wanted to keep, I trashed Windows and installed the IBM Linux Open Client.. This is an internal beta of the RHEL5 based client, which comes loaded with Notes, Sametime, IBM productivity tools and lots more. The goal of the open client initiative is to produce a consistent stack of software on top of a variety of operating systems. As such, I could have chosen to install it based on SLED 10 or even Ubuntu. I chose to go with Redhat as it is the distro I’m most familiar with.

So far I’ve been kicking the tyres and getting my development environments configured. Everything has gone pretty smoothly, and I’m happy to say that my knowledge of vi commands and shell scripting is slowly returning to the forefront of my brain. One thing I have done is to configure it to run Xgl/Beryl to get some nifty windowing and OSX-like cube effects. How long it will stay on depends on how much it slows down my aging T42p.

So, I’ve added another category to this blog to cover anything I might write about my new adventures in Linux. So far so good!

SCA 1.0 specifications released

The Open SOA organisation have released Version 1.0 of the Service Component Architecture specifications. OSOA is a collaboration of a number of vendors, including IBM, who are aiming to produce a language neutral programming language for SOA infrastructures. The initial seed for the work was based on work done at IBM to produce the programming model we have today in WebSphere Process Server and WebSphere ESB, and which was then made public in collaboration with BEA and then the now 18 strong OSOA group. The work to produce 1.0 specifications represents a significant evolution of the SCA architecture in a number of areas, not least of which is the introduction of additional language/component implementations for not only Java but Spring, BPEL and C++ as well .

There have been a fair few people at Hursley working on various parts of the specifications, especially around the JMS Bindings, C++ implementation and the policy framework, so congratulations to them especially.

An important and very encouraging aspect of the news today is that the SCA specifications will be contributed to OASIS for future development. Formalising them through such a standards body will help to drive their adoption. If SCA is a programming model for SOA, then SDO is the data model, and that too has been given an (old) new home in the JCP.

More coverage at TSS, eWeek, and Dana Gardner (ZDNet).

Pub/sub for my life

I’ve been using Twitter for a couple of weeks now, and to be honest I’m still not really getting it. This is probably down to the fact that there’s only a handful of work colleagues who I know use it. Most of my social circle would just not get it. I think this might be the first example of where I find a technology which I’m maybe too old for. I find SMS texting useful for quick one-to-one communication, but I don’t see too much value in twitter for this. My fear is that the Myspace/bebo generation probably do. That and the fact it has obviously been jumped on by those into the whole web 2.0 thang, which is great if you are in the places to build a network of connections with like minded people. In a middleware development role those opportunities are few and far between. Funnily enough the business card of the Senior Director of Enterprise Architecture I met at a customer last week didn’t have his blog, twitter, flickr or any other URL on it.

It may also have something to do with personality. I tend to build my network up based on physically meeting people rather than virtual connections. As such I might have some kind of psychological barrier to adding new “friends”, “contacts” and the like in such tools without actually physically knowing them.

Anyway, just to change the topic slightly, thinking about the way my life is now available online, and prompted by the comments on Andy’s Scrapbook post, I decided to create myself a Pipe to pull together my various feeds dotted around the place. So, if you want to know where I am, what I’m listening to, thinking about, blogging and taking photos of, here it is. Feel free to take a clone.

New IBM SOA book, newsletter and conference

Sandy Carter, the VP of SOA and WebSphere Strategy at IBM has a new book available entitled The New Language of Business: SOA and Web 2.0. Details are available via the IBM Press site, along with a 35% discount code. The book covers the IBM roadmap for SOA and Web 2.0, illustrated with over 40 customer case studies and interviews with analysts and industry leaders. My copy is on its way, so I’ll blog more when I’ve read it, but for now you can access a sample chapter.

Additionally, IBM have just launched a new online SOA newsletter, which will be produced on a regular basis, containing articles and case studies. You can subscribe to receive it via email. The current issue contains a link to the Impact 2007 conference, being held in Olando, Florida on May 20-25th. Impact is the conglomeration of the annual WebSphere Technical Exchange and Transaction & Messaging conferences, and also a conference for our Inner Circle customers. Impact will also be held in Europe later in the year.

New site and blog appear in Google and other search engines.

It looks like the work I did investigating the ins-and-outs of Google and SEO has paid off as the home page for my site and this blog have appeared in Google. As of yet it hasn’t done a full index of my sitemap, but hopefully that will come and I’ll start seeing search hits for individual posts.

As of yet the page rank for these pages is low as it hasn’t picked up any links to them. Again, hopefully that will change as people’s blogrolls get indexed. At the moment the old blog still wins out on page rank for the search term Adrian Spender. The home page appears in MSN Search, and Yahoo has got as far as indexing a few posts.

WebSphere related posts Yahoo pipe

I’ve been playing with Yahoo Pipes again, this time for something a bit more useful.

There are a number of blogs from IBMers here in the UK which cover WebSphere related topics at varying degrees of frequency. Some are solely WebSphere related whilst others talk about all sorts of subjects including WebSphere.

The WebSphere related posts from UK IBMer blogs pipe takes the feeds from a number of these blogs and uses the content analysis module to filter only the WebSphere related posts into one convenient feed. It currently takes input from the following blogs:

This is not an exhaustive list of the possible bloggers, but is a start. If you think a blog should be added, let me know. This pipe could easily be cloned to add feeds for other IBM software brands as well.

What would be really nice (if the folks at Yahoo Labs are listening) is if the fetch module could take a URL input that pointed to an OPML file such as the one maintained by Elias Torres. Then you could imagine a configurable pipe with a text input that fed into the filter meaning you could filter on all sorts of topics such as Second Life for example.

Yahoo Pipes UI

Yahoo pipes screenshot

A few years ago I bought my first Apple PowerMac G4 in order to try and get into producing my own music. At the time I was doing a bit of part time DJing and fancied getting into creating bootlegs and remixes. Sadly, a lack of talent let me down. However, one app I did find easy and intuitive to use was Propellerheads Reason. Reason allowed you to link up soft synths, mixers, drum machines and more into a virtual rack. When you spun it around, it displayed the back of the rack panel, complete with patch cables for joining everything together. You could direct an input such as a drum machine into a modulator such as the subtractor and produce all sorts of weird and wonderful sounds.

Propellerheads Reason rack

As you moved cables around and tweaked knobs on the front of the rack, so the output generated changed in real-time. All very impressive and fun.

The Pipes API is very similar and employs a lot of the same concepts. It has the same patch cable type approach to wiring the modules together, and the debugger shows you the results of your actions pretty much immediately. All in all it is one of the most impressive web based UIs I’ve ever seen.

Looking again at Tim O’Reilly’s post about pipes, I notice that Jamie Pitts makes the same connection to Reason in a comment. On his blog, he also references the similarity to Apple Quartz Composer, which I admit I’d not come across before.

My first pipe

Whilst the US are asleep and Yahoo Pipes is up, I’ve been having a quick play.

My initial idea was to utilise the machine tags feature of flickr to create a pipe which would work with photos tagged by members of the Hursley photo club. Members who post to flickr have used machine tags to tag photos taken on our recent trip to Winchester. The following tags are in use:

So the idea was to have a number of inputs which would allow you to then utilise the machine tags to find pictures that matched. To begin with I started with location and member. Not overly exciting, but a start.

Getting the input is easy, just use a couple of text inputs, then a string concatenation to turn them into the machine tags, which in turn was wired to another string concatenation to create the search string e.g. “hurlabphoto:member=aspender hurlabphoto:location=winchester”. I then fed this into the flickr source module. However whilst it appeared to handle a single machine tag ok, it didn’t return results if two were present. Instead, I used the URLBuilder and Fetch modules to create a valid flickr feed request (using the API reference documentation to get it right) which worked.

What this gave me was a feed containing the photos which matched both the location and member. Unfortunately this is where things started to get disappointing. Firstly, it would be nice to be able to use wildcards with the machine tags, but they are only supported when using the full blown flickr APIs. So you have to input both a member and a location. Additionally there are not any facilities for validating/checking inputs so you cannot even check for null/empty and not include that input as a result. What’s more, it would be nice to be able to provide a list/drop down style of input. For example it would be awesome to be able to do a wildcard search on a machine tag such as hurlabphoto:member and then take all the values to populate a drop down to present to the user.

One way I tried to get around this problem was to initially retrieve all photos tagged with hurlabphoto then attempt to successively filter on the tags returned for each photo using the inputs. In the results returned by flickr, the tags are contained as such:


<category term="hurlabphoto" scheme="http://www.flickr.com/photos/tags/" />
<category term="hurlabphoto:location=winchester" scheme="http://www.flickr.com/photos/tags/" />
<category term="hurlabphoto:date=20070127" scheme="http://www.flickr.com/photos/tags/" />
<category term="hurlabphoto:member=aspender" scheme="http://www.flickr.com/photos/tags/" />
<category term="hurlabphoto:subject=candid" scheme="http://www.flickr.com/photos/tags/" />

The filter node recognises the term attribute, but unfortunately doesn’t seem to successfully return results when you filter against it with a machine tag such as hurlabphoto:member=aspender.

So, the net result is that I’ve created a pipe which simply removes the need to insert the full machine tag and which also sorts the results. Not very useful. Most of this is down to the current limitations of machine tag searching by anything other than the full API, something which will hopefully be relaxed over time. When/if it does, then the combination of flickr and pipes will be very powerful indeed.

So, finally, if you want to have a play with the pipe and maybe play around with taking a clone of it, you will find it here. FYI, valid values for the inputs are:

location: winchester
member: aspender, currie, calanais, Fragments of eternity, Liam O’Neill

Yahoo Pipes

As previously mentioned, I have a grand plan to do some funky web2.0 style stuff on this web site. However, with the new Yahoo Pipes service, maybe I don’t need the space after all. The premise behind Pipes is to bring the power of Unix pipes and filters to the world of feeds, allowing the mashup of multiple feeds into one. The service supports some pretty powerful bit of functionality (or modules as they call them) to perform analysis and processing of the feeds. There’s some good posts over on the O’Reilly Radar about how Pipes work, and one from a rather excited Tim O’Reilly on why he thinks Pipes is a “milestone in internet history”.

Migrating from wordpress.com to .org – diversion strategy

Firstly, I’m going to talk about things in this post for which I am no means an expert and very much a beginner, so please don’t take any of this as gospel.

One of the biggest problems with the move from my wordpress.com hosted blog to hosting on my own site is managing to redirect people to the new blog, and generating new traffic to the hosted site.

Redirecting traffic

The old blog was obviously picked up by Google, other search engines, blog directories like Technorati, and other people’s blogrolls. Thus, any redirection strategy would have to:

  • Attract new visitors to the new blog location
  • Get people searching for popular post topics to go to the new site
  • Try and get people to comment on the new site rather than the old

These aims can be achieved by:

  • Making it obvious that the old blog is dead
  • Getting the new blog to appear in Search Engine Results Pages (SERPS)
  • Getting the old blog to disappear from SERPS!
  • Getting blog directories and blogrolls updated

The most obvious thing to do first was to add a post to the old blog which pointed people to the new one, making it clear that they needed to update bookmarks and feeds. I also pared down the template to remove categories, archives, calendar etc. In fact, all that is left is the blogroll. I also:

  • Added a text widget to the sidebar with a link to the new blog which would appear on every page of the blog
  • Changed the title of the blog to make it a bit more obvious what was going on

I considered disabling comments on each post and perhaps even adding a redirect comment to each post, but this appeared too much work to be worthwhile. So far I’ve only had one new comment on any of the old posts (but also no new comments on their equivalents on the new blog)

I’ll cover adding the new blog to search engines later on. However, getting the old one removed is a difficult thing for a wordpress.com hosted blog as you have little control over it. On a normal web site you could add an .htaccess file to the root directory with a 301 redirect. Not so when you don’t have sufficient access to do so! There is an option in the dashboard under Options -> Privacy to restrict access to the site to search engines and remove it from WordPress’ own listings. I suspect this does a similar job to a robots.txt. A robots.txt is the traditional way to restrict search engine spiders from indexing your site. Google also have a tool for removing specific URLs, but this is not meant for removing an entire blog for instance.

I then updated any links I have to my blog on other site profiles, created a new Technorati blog profile and fired off emails to a couple of specific IBMer blog rolls.

The final step was of course to get people’s blogrolls updated. One or two picked up on the change by themselves, but a quick email around the rest sorted out the majority of the rest. What you can’t help are links from comments you’ve made on other people’s blogs.

Up until today I’ve not seen traffic to the old site decrease at all. However it looks like my most popular post on the BT Homehub which normally attracted 60 or so views/day has disappeared from Google, and as such it has not received a single hit so far today. Thus it looks like things are beginning to disappear.

Eventually once the new blog is indexed and appearing in SERPS and I’m happy traffic to the old one has reduced to a trickle, it will be time to hit the delete button.

Attracting traffic

This is a whole different kettle of fish in the self-hosting world compared to wordpress.com. When I created the original blog it appeared on Google and co. in a couple of days. Not so now! As hinted at above, I am a complete beginner in the world of Search Engine Optimization (SEO) so use these comments as hints about what to go and research more thoroughly!

To begin with I set up an index.html (more on that in a separate post) linking to the blog, then went to Google and added the URL. This then led me to find the Google webmaster tools. This led me to research the whole area of robots.txt, sitemaps and the pro’s and cons of www versus non-www, and all sorts of issues around how search engines look out for duplicate content and the effect it can have on your results. The last item is especially relevant to blogs as the same content often appears on different distinct URLs (archives, categories, posts)

Along the way, I found and installed a couple of useful WordPress plugins:

  • DupPrevent – Allows you to configure areas of your blog which won’t be visible to spiders to avoid a duplicate entry penalty.
  • Google sitemaps plugin – Generates a sitemap from your blog content. Highly customizable and can include non-blog URLs.

The most disappointing aspect of my research however is the fact that it can take four weeks or so for new sites to appear in search engine results.