Wednesday, November 30, 2005

Siemens Success!

My colleague, Andy Piper, hinted in the comments to a previous post that merely getting my contacts file to display in an emulated Siemens SX1 was unimpressive and that a real techie would have written some code to transfer them from the emulator to my new phone.

It was a ridiculous challenge - automating a task you will perform once is madness - but any suggestion that my consulting and travel has dumbed down my technical abilities must be countered. And countered AT ONCE!

Accordingly, I wasted invested my evening yesterday in solving this problem. You could argue that there are better ways to spend a Tuesday evening. And I would agree with you. However, the time is gone forever so let's press on....

The lazy reader can quit reading here if they like: the bottom line is that I have managed to take my unreadable contacts.cdb file and import it into my new Nokia 6021 without having to do any manual retyping of contact information. Hurrah! Yay for me. &c.

For the more inquiring reader, here is how I did it.

Firstly, I would like to pretend that I analysed the problem, planned an approach, sized the work involved and methodically reached a successful conclusion. However, that would be a lie. Rather, I made egregious use of google, grep, sample code, hacking, guesswork and luck. Nevertheless, the problem can be broken down into several areas:

1) Writing a program to run on the phone emulator to interrogate the contacts database programmatically

2) Using the program from step 1) to write the data into a form that could be extracted from the emulator

3) Some technique to take the output of step 2 and turn it into something that the Nokia sync software understood (e.g. a Windows Adress Book file)

4) Sync of the data onto my phone.

These problems each presented their own challenges. I don't pretend to be proud of the solution I came up with. But it worked. Which is important. Of course, if I'd done this for a client, I should have been sacked.

So, firstly, how did I interrogate the contacts database? My language of choice (Java) was quickly ruled out as I couldn't get any of the sample java applications to run on the emulator - I simply couldn't get them to install :-( The SX1 emulator seemed incapable of loading .jar or .jad files. When I was seriously considering hosting them on a web server and configuring the emulated phone to download them over a simulated WAP connection I knew I should change approach.

So, instead, I dusted off my trusty copy of Microsoft Visual Studio 6.0 and followed the instructions in the Symbian 6.1 SDK on how to get the "HelloWorldPlus" application to run inside Visual Studio. Very neat - and it actually worked!

I now had a sample C++ Symbian Application that I could modify.

I found another PDF (shipped with the SDK - or perhaps the SMTK) that gave some sample snippets on how to drive the CContactsDatabase. Apart from one mis-step (you have to regenerate the Visual Studio workspace if you add any dependencies on other libraries to the .mmp file), I quite quickly had an app that would iterate over my contacts and display them in a pop up window on the device. Excellent!

Not so fast..... this was, it turned out, the easy part. The hardest part was that I couldn't find any nice way at all to write to a file in any useful way. Conversions between 8-bit and 16-bit string representations, my lack of knowledge of the Symbian primitives and more meant that I got bogged down here. (Not having written any C++ for five years also didn't help).

Eventually, I discovered how to create a useful character array on the heap and, after more digging, how to copy individual strings into it. I used this knowledge to write my contacts into a contiguous chunk of memory (with various tags and delimiters to separate contacts, field names and values)

Hurrah! You see: I am a hacker at heart so once I had everything in a contiguous chunk of memory I was done. I simply placed a breakpoint at the end of my program, checked where my buffer was located on the heap, viewed that piece of memory and used copy/paste to get the data into Notepad. (Yes: it's horrible... but it worked....).

So now my problem was one of search/replace and some nifty perl to generate a useful CSV file.

A bit of tweaking in Excel and I had a CSV. I used Outlook express to turn it into a .wab file. I could then sync it to the phone.

SUCCESS!!!

The question, of course, is: why did this need to be so difficult? I return to my original statement on this whole saga: open standards are a beautiful thing. Siemens/Nokia/Symbian should be thoroughly ashamed of themselves.

Tuesday, November 29, 2005

Why can I only think of business ideas in the FMCG space?

I was reading last week (may have been on New Scientist - I don't recall) that a new theory for the high incidence of MRSA in British hospitals is excessive hygiene - rather than poor hygiene.

The suggestion was that doctors shouldn't use alcohol gels before visiting patients. Rather, they should immerse their hands in live yoghurt. This would have the effect of coating their hands with lots of "good" bacteria and so provide far less opportunity for other opportunistic bacteria to take hold... they would have to compete with the existing ones for resource, space, etc.

My idea is that there probably exists an opportunity for somebody to start selling "pro-biotic" handwashes and kitchen cleaners for households.

Remember, folks, you saw it here first...

How to learn things without really trying

Regular readers of my blog may be familiar with the Siemens SX1 phone I so ill-advisedly bought some time ago. It finally died last week and I thought I had been very clever in backing up my contacts database just in time. For readers familiar with Symbian/Siemens/Nokia Series 60 phones, contacts appear to be stored in a proprietary format as a "contacts.cdb" file.

I never could have imagined quite how difficult it would have been to gain access to the contents without a running phone. Here are just some of the things I tried:

I first tried to find any software (free or otherwise) that could read the file format on Windows - and got nowhere (there were lots of code samples for Symbian but that didn't really help given that my phone was dead....). There is a business opportunity here.

I then started looking at the Siemens (now Ben-Q) website for more details and spotted that you can download phone emulators.... A HA! I thought..... I can get a Siemens phone running in emulation, find where it stores its contacts file, replace it with my backed up one and then view all my contacts on the emulator!

Sadly, if things were that simple, I wouldn't have still been working on this at midnight last night.

The problem is that different Siemens phones store their contacts in different formats and - worse - the emulator for the SL65 and CX70 emulates everything except the file systems --- which is "different" between real and emulated phones, apparently. (The reason I was using SL65 and CX70 emulators was because the site I found didn't offer an SX1 emulator.)

Undaunted, I had another brainwave..... I realised that I could use the Siemens phone manager software to "back up" the SL65. I would then have a back-up representation of the phone..... and that was precisely the format my rescued contacts file was in (since I had obtained it by backing up my SX1). I could swap the file on the backup and then sync back to the phone.

So all I had to do was install the Siemens Mobile Phone Manager software. Except... the backup format for the SL65 turned out to be different to the SX1. Arghhhh.

I was ready to give up..... unless..... perhaps...... maybe there really was an SX1 emulator. For reasons that are still not clear to me, I hadn't explicitly searched google for one of these until now. As soon as I did it, one popped up. It wasn't as full-featured as the SL65 emulator (it couldn't sync to the siemens data suite) but it DID run and it DOES use the contacts.cdb format.

So, at midnight last night, I booted an emulated Siemens SX1 with my backed-up contacts database running. HURRAH!!!

I will now have to copy the entries one-by-one by hand onto my new phone but at least I have them.... which is more than I had this time yesterday.

The lesson here, of course, is that it's insufficient to perform backups: one must also test them.

Ironically, I was discussing this with a colleague last week where I gravely nodded when he told me tales of those who had forgotten this advice. The shame.


Saturday, November 26, 2005

Investment Update

It's time for an update of how my foray into equities investing has been going.

The news is currently quite good.

Morrisons (MRW.L) are still trading below the price I paid. Which is, of course, inconvenient.

However, my FTSE 100 tracker is slightly up and my Japan MSCI tracker is up a stonking 14.5% since I bought it a few months ago.

So, it's about three months since I started moving cash into equities and I am currently sitting on a modest 2.9% gain. I think this is pretty good for three months. News stories of four-year highs (such as we have had recently with the FTSE) worry me - in retrospect those kinds of stories are always the ones that mean you should have sold by now... but in the absence of anywhere better to put the cash, I'm going to leave it exactly where it is but keep an eye open...

Hear me speak!

I found Irving Wladawsky-Berger's recent post very interesting. He talks about (and links to discussions of) various schools of thought around the value of process in business.

It was interesting on several levels. Firstly, this is the area in which I work (I spend a lot of time consulting on how to effectively model and automate business processes with software) - and I regularly worry about how to best advise my clients on getting the right balance between automating / optimising their current processes and ensuring they build in enough flexibilty to innovate (or simply to react to the innovations of others).

I think the key point - that we can all agree on - is that it would be madness to automate the execution of a business process in a manner that inhibited future changes. One of the very promises of the technology would have been cruelly broken.

Coincidentally, I specialise in worrying about this problem of "dynamicity" on projects that use WebSphere Process Server. If we're going to deploy a solution that helps us manage a business process (e.g. a mortgage application process), how do we make sure it can be changed easily if regulation changes? What if a competitor changes the game and we need to respond? What if we change our offering? What if a third-party we depend on (credit scoring?) goes out of business?

These problems and more are ones a business should be considering anyway - but it gets pressing if you start to formally document - and enforce - the process.

I recorded a brief PodCast about this last month and it is now on IBM developerWorks. This was my first PodCast and I've learned a few lessons from it (namely, say less, say it more slowly and don't jump around!). However, I think it gives a good overview of some of the problems we need to think about when working on these sorts of business process management projects.

The download page is here: http://www-128.ibm.com/developerworks/podcast/websphere/ws-soa5progmod.html
The MP3 is here: ftp://www6.software.ibm.com/software/developer/podcast/websphere/ws-soa5progmod.mp3

Friday, November 25, 2005

Heathrow Twilight Zone

I arrived back at Heathrow today from Madrid on Iberia. The plane was scheduled to land at terminal 2 and the little yellow number at the gate did, indeed, start with 2.

However, we seemed to be in a bizarre Monument/Bank terminal-duality situation. As soon as I left the plane, there were loads of signs saying terminal one. I followed the most obvious route and ended up at a sign telling me to turn left for Terminal 2 passport control and right for terminal 1. Weird! I never knew there was a secret little passage between them.

I took a gamble and stuck with T2. It paid off as there were no queues at passport control. However, now that I know that you can move between T2 and T1 on arrival I'll have to devise some new "getting from the aircraft to the Heathrow Express in minimal time" strategies.... after all, T1 is closer to the heathrow express than T2. And every second counts :-p

Thursday, November 24, 2005

Time flies...

During a break this week I wrote the following line on the whiteboard and invited the audience members to interpret it in such a way that it is both correct English and is not nonsensical.

"Time flies. I can't. They move too fast."

I first discovered this line when I was about 10 in a puzzle book and thought it was fantastic. It is great to see people's reactions (including native English speakers) as they try to devise an interpretation that makes sense.



Oh... and before I forget... to my IBM readers: I had the privilege of sharing several dinners and breakfasts with Richard Whyte on this trip. He is an utter genius..... his enthusiasm, knowledge and experience makes him an astonishing asset for the company. He's one of the few people I've met recently who is both technically brilliant and proud of it. More of this please!

Reflections on teaching in Madrid

Tomorrow is the last day of my two one-week trips to Spain. I've been teaching a class of colleagues about WebSphere Process Server version 6.0.

I have a tendency to talk very fast so it is always a challenge for me (and my audience!) when I present to non-English speakers. I do my best to slow down, enunciate clearly and use simple language but I still find myself speeding up if I get to a particularly interesting section or deviate from the slides to make an alternative argument for a particular decision or claim.

The audience were excellent - highly skilled, alert and keen to participate. I'm slightly concerned that they seemed more interested in learning all the English wods I used that they hadn't previously heard ("Peculiarity" was a favourite) but I'll let it pass...

It has been a valuable fortnight - but I can't wait to get home.

Nokia Shortage

I ordered a new phone on Monday (to replace my broken Siemens SX1) and rang to check on the status today. According to the person I spoke to at BT Mobile, there is a national shortage - across all networks - of Nokia handsets at present in the UK. She may have meant just my model but she certainly gave the impression of the problem being more widespread.

I don't have any inside knowledge of course so I really wish I had the ability to make use of little tidbits like this. If I could verify it - and assuming it wasn't widely known - I could presumably use it to my advantage if I thought it would affect their next quarterly results.

Sadly, I have no such ability. It'd be nice though...

Tuesday, November 22, 2005

Open standards are a beautiful thing

We preach open standards so loudly and so often in the IT industry that it's arresting when your life is impacted by the failure of a vendor to join the party.

I am very suspicious of premature standardisation - it is in nobody's interest to agree a dangerous or broken standard (imagine if we'd standardised home power outlets at 20V or something...). However, open standards do perform the enormously valuable role of limiting opportunities for vendor lock-in and maximising opportunities for users to be free to choose implementations.

I made the mistake of purchasing a phone from Siemens a year or so ago. They have subsequently admitted (by selling the business) that they were not very good at this enterprise and the SX1 I so naively purchased was a perfect demonstration of this.

The phone began spontaneously rebooting even more frequently than normal yesterday morning so I figured I had better back it up. The only data I was desperate to save was my contact database. I managed to rescue this before the phone completely expired.

So far, so bad..... I am now in Madrid without a cellphone. Not the end of the world but it feels like I have lost a limb.

However, this is where things become unpleasant. The Siemens "Data Suite" can only synchronise with Microsoft Outlook. I work for IBM. We don't have very many Outlook licenses deployed here, you may not be surprised to learn.

So.... how do I get hold of my contacts? Well.... surely the file format is documented? Sadly, it genuinely does appear to be the case that the Siemens/Nokia/Symbian "cdb" file format is not officially documented. Worse, try as I might, I cannot find anybody on the internet who writes or sells PC software to parse these files and turn them into something useful (e.g. csv).

The closest I have managed to get so far is somebody explaining how to get a Symbian development environment running on my laptop. Wow.... That is one option I suppose.

So, with my optimistic hat on, I am happy that I have a backup of my contacts database. But I can't help being slightly perturbed that I can't read it :-(

I will investigate a little more when I get home at the weekend. Hopefully by then, my new phone will have arrived.

Thursday, November 17, 2005

Tres Cantos

I am in Spain this week teaching a group of IBMers and Business Partners from the south west of Europe about WebSphere Process Server. The course has a lot of content so we have to go at a quick pace but people are keeping up - which is good.

I flew out from Gatwick North Terminal. It was a surprisingly pleasant place. It turns out that I've never flown from there before. Whenever I've used Gatwick in the past, I've flown from the horrific south terminal. If I'd seen the north terminal earlier I may have been far less scathing of the airport than I've been in the past.

I'm staying in the Foxa Tres Cantos. It's a pretty nice hotel.... very, very new and has free wireless and high-speed ethernet in every room, large rooms, stunning bathroom and more. The room rate was, however, very low. My colleague Richard Whyte observed that rooms have a red light illuminated outside when the occupant is inside. Judging by the small number of lights on my corridor, I think it is safe to assume they currently have a very low occupancy rate - hence the price. (Of course, the illuminations are useful for staff and fire safety but provide a useful piece of information for burglars)

Friday, November 11, 2005

SOA != SOAP over HTTP

I was surprised to read this article by Steve Hoffman, linked to by Joe McKendrick.

He seems to be conflating the problems solved by service orientation with the problems solved by constructs such as ESBs.

He is correct to imply that you cannot easily consume services if they're all exposed using different protocols and transports. However, that doesn't mean having multiple invocation technologies in an enterprise is a bad thing. Sometimes you have no choice but to let pragmatism trump purity. Rather, it's an argument for a separation between the logical description of the services offered and the physical details of how to invoke them. The enterprise service bus is the construct to which you delegate the problem of doing the switching.

Go West

Joe McKendrick has picked up on James Governor's musings on our San Francisco project.

I'm still trying to find out more about the project - it was before my time (and its own, it would seem) but it's not hard to see why it attracted interest.

Thursday, November 10, 2005

Newspaper circulation figures

People were handing out "copies" of the Telegraph at Waterloo station this evening.

Interestingly, the "newspaper" consisted of just the sport and business sections - no main section.

Now, I imagine their stated argument for this is that they want to show non-readers what their new sport and business sections look like.

However, I can't help thinking that someone in Telegraph-land has discovered a loophole in the rules surrounding circulation figures.

One down, one to go

Hurrah! BAA want to demolish Heathrow Terminal Two. Good riddance to it I say. It's a horrible, tiny, smelly nasty place. Now if they could just get rid of terminal 4 as well, it would make my decade.

Can any of my readers confirm that terminal 4 wasn't originally designed as a passenger terminal? It would explain a lot of things but I don't know if it's just an urban myth.

Time to value with SOA projects

IBM's Kareem Yusuf linked to an interesting document on his blog today.

He was commenting on a question he was asked by a customer in Europe earlier this week - how do I get started?!

This ties in with what I was saying earlier this week about quick wins. I was arguing that building an SOA for SOA's sake was unlikely to meet with success: you have to be solving real business problems.

Kareem's link is a great example of this in reality: five IBM customers who found that a service-oriented approach to solving a real business problem delivered value - and quickly.

Wednesday, November 09, 2005

Richard Turner at Microsoft caught my eye yesterday. He had spotted a post from July by Martin Fowler on SOA. Martin's title (Service Oriented Ambiguity) probably tells you all you need to know about his opinions in this area :-)

It is also worth reading David Ing's response - some excellent points are being made.

David is certainly correct that there is too much "cleverness" flying around. I take the view that, as an intelligent, educated person that I should be able to understand any entry-level or intermediate-level presentation in this space. If I can't, then it's the material that's at fault, not me. The interesting thing about this is that a couple of years ago I started seeing SOA pitches and they were completely incomprehensible. However, the ones I'm seeing now are far, far better. This is good.

David also totally nailed (to steal his phrase) the component- and integration- approaches to talking about SOA. Are we selling a component container or are we helping to add integration points to existing (and new applications)?

I think the reason why previous attempts to explain SOA (and even implement them) have been less than successful is for precisely the reason that these two approaches aren't different, they're complementary.

Yes: you need to be able to integrate with existing systems (and any new ones you build) if you're bought into the idea of composing new applications from existing services so building what he calls "integration gateways" into systems is essential. But - and this is the key point - you need somewhere to build your new applications that provides appropriate qualities of service and which can abstract away all the hard work of having to worry about the fact that these services live somewhere else. In short, advocating the use of a container that understands composition of components to build solutions and which can seamlessly invoke services exposed elsewhere - and expose services to others is not a bad thing.

However, Martin's original point stands - the industry needs to get far sharper over our terminology and our definitions.

23% inflation...

I'm working from home today both because I get more done here and because all my suits were being dry cleaned (that's planning for you...).

I've just picked them up from the local dry cleaner and was amazed to discover that their prices have increased by 23%.

I guess dry cleaning services are fairly dependent on oil (both for the cleaning chemicals and for the delivery vans - my local provider doesn't do the cleaning in-house) but 23% does seem excessive.

This is probably an isolated incident but I'll certainly be keeping my eyes open from now on.

Tuesday, November 08, 2005

Perception and Reality

Henry Blodget is back. His blog has some fascinating content. I can see why people listened to him in the bubble: I have no idea if he is correct but he writes with confidence and clarity. Perception is, as always, reality.

Monday, November 07, 2005

James Governor has more insight than is sporting.

The ever-fascinating James Governor of RedMonk suggests today that IBM revive the San Francisco Project.

He sees it as a way to reduce what he perceives as our exposure in the business applications space in the face of increasing consolidation. Consolidation in the business applications space certainly makes my job in enterprise middleware interesting. I use the word "interesting" deliberately... competing and cooperating with the same people is good for the intellect :-) In my practice, however, whether an application vendor is independent or owned by Oracle doesn't really matter. The value I deliver comes from providing an integration layer independent of any one application. Customers don't like lock-in.

Nevertheless, I do know a couple of people who used to work on "San Francisco"; I'll have to ask them to tell me all about it and what happened to it.

Independently of this, of course, the concept of business applications is evolving. Markets such as Customer Data Integration and Product Information Management are changing the game; meeting our new colleagues from DWL last week was an invigorating experience.

In praise of quick wins

Ronan Bradley of Polar Lake makes a good point: Why should customers experience pain today on the promise of an easier life tomorrow?


I should admit that I have some sympathy with the knee-jerk "no-pain, no-gain" expectation that many proponents of SOA often set - it's certainly true that it's always easier to solve a point problem with a point solution. But this has always been true.

Let's consider why organisations are looking at SOA.

On the one hand, the IT department is being relentlessly pressured to deliver value to the business. The business is feeling constant pain because of IT inadequacies: they want to see all details of a customer on one screen, they want address changes to flow across systems without rekeying, they want to introduce new products in a month rather than a year, they want to know where the mortgage application is, they want to bill for broadband access and phone calls on the same piece of paper... and the "useless" IT systems won't let them do it!

On the other hand, the organisation's IT landscape is a mess. A big, unholy, horrid mess. Systems have been implemented over the years on different platforms, different architectures, to serve different (usually overlapping) areas of the business and all have differing qualities of service and individual peculiarities.

Solving a problem for the business isn't difficult: it's almost impossible.

Now, unless you are incredibly fortunate, you simply don't get the chance to start again. But, as Ronan hints, you don't even get the chance to take a hit and put an SOA in place. Yes... you know it will have untold benefits in the future (and it will). Just imagine having all the key services in your IT landscape available as reusable well-defined components. Bliss!

But... in the meantime, all that the business will see is a massive IT project that has no visible external results. The call centre staff still have to rekey data and customers still complain when their accounts are updated incorrectly. Not many of my clients will get the chance to build this vision in one go.

So what's the answer?

The answer is to remember where we're trying to get to (This guy describes it well). The point is: it is acceptable to build out your SOA as you go.

If you choose to follow this approach, the problem now becomes one of selecting a tool that allows you to expose your applications' services to the enterprise as a side-effect of the main development process. That is: tools that let you - in one step - build your new solution and expose relevant services at the same time. Conflating the two steps has the valuable property that there is nothing to cut out of the project plan when the pressure mounts: the creation of services is core to the current development project. The long-term interests of the IT department and the sponsoring business are now aligned.

I don't want to turn this into a product plug but it would be a dereliction of duty if I were to fail to mention WebSphere Process Server. It is designed from the ground up to be our SOA development platform and supports precisely the vision I have outlined above.

Usual disclaimers apply: this is my personal opinion, these are not necessarily IBM's views, etc, etc

Your business model is being eviscerated.... So what do you do?

If you're Sony, the answer seems to be to "kill" your paying customers' computers. Nice move, guys.

This can go one of two ways. Sony haven't handled the situation particularly well yet but they still have a chance to recover and turn the situation to their advantage. This will be an MBA case study in a few years.

This started me thinking. Schools of all sort like to trumpet their alumni. I'd love to see somebody compile an "anti-alumni" list. We could assign ratings to various infamous personalities (crooks, liars, cheats, incompetents,... could all be assigned an arbitrary value) and we could then rank schools based on how bad their alumni are. We could then avoid schools that produce executives who think crippling their customers' computers is a good idea.

I wish I was this articulate

I think it would be hard to write a more concise, yet readable argument against those who would punish "price gougers".

Friday, November 04, 2005

I'm going to be on iTunes!

One of my areas of expertise is versioning and dynamicity. These terms are often abused and overloaded but I use them to refer to the general problems around managing change, protecting yourself against changes you don't control and being able to dynamically change the behaviour of a solution without having to rewrite or redploy it.

These issues have always been around but they're particularly important in business process management solutions (where individual business processes can run for a long time) and in the service-oriented world (where you are, by design, very dependent on services provided by others).

I was interviewed about this last night for an IBM developerWorks podcast. It should come out in a couple of weeks. The really neat thing is that our podcasts are available on the iTunes Music Store (search the podcasts section for IBM).

So.... I now have a blog worth many millions (it's just a matter of time...) and will soon begin my lucrative recording career. Who says IT is dull :-p

I'd better not retire just yet

My hyperactive colleague Andy Piper showed me how to value my blog today. The value is more than $2 per page impression ever served. Whilst manifestly absurd, it'll be fun to check back there every so often.