Sunday, April 13, 2014

Rush and Senna

This is going to seem like a strange entry but I wanted to record it if only for myself. When I was growing up I was a serious Formula One fan and two events remain in my mind as defining moments of enjoying the sport. The first was James Hunt winning the F1 Championship (and Niki Lauda’s accident), and the second was the death of Ayrton Senna. I wasn’t watching the former live, but saw it on repeats (TV was much more limited in those days, so live feeds were few and far between). The latter I was watching with friends as it happened and can still remember where I was to this day - in the dorms at university, having just eaten lunch! There was excitement, risk and sadness in equal measure for each event and yet over the years they dwindled in my mind as other things, such as real life, took hold and dragged me through the present and into the future.

That was until I watched the movies Senna and Rush over the course of the last couple of years. Both of these movies are very different beasts and yet both of them excel in brining to the watcher that sense of what is was like being there at the time. As someone who was there at the time and someone who watches F1 today when I have time, they also illustrate what I think the sport misses these days: excitement and challenges (ok, the risk is a big element here). If you’re at all interested in Formula One then check out either or both of these films!

Wednesday, April 09, 2014

Speaking at Dynamo14

I'm going to be speaking at the Dynamo14 conference in a few weeks time. I'll be hot off a plane from Boston to be interviewed by the BBCs Rory Cellan-Jones! Looking forward to it, though I hope I'm not too jet lagged!

Wednesday, April 02, 2014

Another "I told you so" moment

I mentioned earlier about how most cloud providers had agreed that there is such a thing as Private Cloud. It's nice to hear that it's a "tectonic shift" now ;-)

Saturday, January 25, 2014

Hybrid Cloud

I've read a few articles from analysts or media recently where they talk about 2014 as the year of Hybrid Cloud. I think this is good to hear, but I also wonder why it's taken so long for some in the industry to accept the inevitable? OK that's more of a rhetorical question, since I do know the answer and I'm sure many of you will too.

In reality I find it amusing, with more of an "I told you so" approach! Several people, as well as myself, have been talking about the need for private cloud. Whether it's issues with security, reliability or simply getting data into and from public clouds, public cloud has limitations and is definitely not right for everyone or every application/service. That's not to say that private clouds are problem free but it's not necessarily the same problems and neither should it be.

The combination of private and public clouds, coupled with cloud bursting when needed, is what we should all be aiming for, with pure private or pure public use simply a degenerate case. I find it interesting that Amazon now has a position on private and hybrid clouds, which is very different from what they were saying 4 years ago.

I also still believe, as I stated back then, that the whole definition of cloud needs to change. Whether it's ubiquitous computing or the Internet of Things, the explosion of devices around us and their capabilities (processor speed, memory, network access, etc.) has to become part of the cloud, and probably its biggest part. It makes no sense to ignore the powerful options that this gives us, let alone the fact we'll have no choice due to Shannon's Limit.

So although 2014 may be the year of hybrid cloud, it's the true cloud of devices that I'm still more excited about. Most of the options it creates still lie unexplored before us and I think that's where we should be adding a little more focus.

Tuesday, December 31, 2013

CapeDwarf, GAE and the Raspberry Pi

This Christmas I decided to take a look at turning my collection of Raspberry Pi's into a private Cloud. I had two options: OpenShift Origins or CapeDwarf. I decided to go with CapeDwarf since it runs on OpenShift as well.

I started with the latest v1 of CapeDwarf which requires JBossAS 7.2, with the intention to build everything from scratch. However, there were some issues due to the migration of AS7 to WildFly as well as with that version of CapeDwarf, so after talking with the team I decided to wait until they released the 2.0.0.Beta1 version just after Christmas.

I may still try and build everything from scratch at some point, but to save time I decided to go with the pre-build binary distribution and verify that it worked on the Pi. Before we start, make sure you have the right version of maven installed (3 onwards):


This isn't right, so let's update maven (sudo apt-get install maven git). And obviously ensure you've got a version of JDK 7 installed (this is the page I refer to when updating). Next download the pre-built Beta 6. Try running that (don't forget to set JBOSS_HOME):

And eventually 


It's always nice to see WildFly start, unmodified, on a Raspberry Pi :-) You can test this WildFly deployment by going to the management console (port 9990). I installed the Lynx browser on my Pi so I could test locally (it's a headless instance). Lynx takes a bit of getting used to, but:



Validating your CapeDwarf installation isn't as simple as it could be at the moment, but I know the team are going to look into this along with a worked example. So for now we'll follow the instructions on the github repo and check out capedwarf-shared and capedwarf-blue. Build -shared first. Initially ...

mvn clean install -Dmaven.repo.local=~/mavenrepo

However, it turns out that using ~ causes problems, so let's redo using an absolute path this time:

mvn clean install -Dmaven.repo.local=/home/pi/mavenrepo


Next, we build -blue using the same local maven repo:

mvn -U clean install -Dmaven.repo.local=/home/pi/mavenrepo

Now initially this kept failing after 30 minutes or so …


After some investigation it turns out this is due to name resolution within the Pi itself. Either ensure your Pi is registered in a DNS somewhere or edit /etc/hosts to set 127.0.0.1 to the name of the Pi. Then rebuild.

And after an hour or so (the Pi isn't fast!):


And that's about it for now. We've got GAE (via CapeDwarf) up and running on a Pi, as well as verifying the installation. Next steps would be to build and deploy some applications, but that'll have to wait for now.

Tuesday, October 01, 2013

HPTS 2013

Just back from a JCP-EC meeting, JavaOne and HPTS. Whilst I enjoyed them all, HPTS has to be my favourite. Unfortunately this year its schedule conflicted with JavaOne so I wasn't able to attend either event fully. But even just the 3 days that I was at HPTS were well worth the trip: it's a great workshop where you get the chance to meet people from all areas of our industry and talk without fear of confidentiality. "What's said at HPTS stays at HPTS".

I had the privilege of presenting again this year, on the topic of transactions, NoSQL and Big Data. I was also chairing a session immediately afterwards on a range of topics including hardware transactional memory. Overall the sessions are great, but it's the dinner and drink discussions that are the real value around the workshop. And it's a great chance to catch up with friends I tend to only see once every two years!

Saturday, August 17, 2013

Your smartphone evolving?


I've been using a combination of smartphones over the past few years from a range of vendors and a range of operating systems. Problems I've had with all of them as well as the recent move by Ubuntu, have got me thinking: What do people want to do with their pads? Playing games is fine, but even then wouldn't it be better if you didn't have to code for each platform (iOS, Android, XBox, PS3 ...)? We've spent a lot of years working on productivity software, such as Word, Powerpoint, Eclipse etc. and today the equivalents for pads are woefully inadequate. Of course we are unlikely to have to wait as long for them to improve on pads as they did on PCs, but it's still a waste of time and energy! And running services off the device is not only a waste of compute power/bandwidth, it assumes the network is always present, which it often isn't.

I hate to admit this, but maybe Microsoft have it right in a way with the Surface running almost a stock version of Windows so that the same applications that run on the laptop/desktop can run on their pad, and vice versa. Now maybe Apple will eventually do the same thing with iOS, but Android doesn't provide a migration path from or to the desktop. In the end this may well be a significant limiting factor for Android and one which Google will find very hard to get around, without perhaps adopting standard Java.

Of course applications need to be aware of the environment on which they run so they can take advantage of the form factor, network connectivity etc. There may well be applications that simply do not, or should not, be expected to work on the complete range of deployment environments (phone, pad, laptop, desktop etc.) But are they the exception or the norm? I believe they are the exception: most of the applications that run on my laptop are ones I'd like to run on the pad; most of the things I do on my pad I'd like the option of doing on my laptop or phone, particularly now it has a 5" screen.

What does this mean for the "open source" pad and phone market? I believe that unless Android actually allows for a wider variety of un-modified Linux-based applications to run on it, then it risks becoming marginalised. OK, this may be a strange thing to discuss when all we hear on an almost weekly basis is that Android market share is growing, but look at Apple in the 1980's before Windows came along. In fact Android's biggest threat could well come from the pure Linux pads/phones that we are beginning to see enter the market: the pads and phones can run stock Java and if Android is a requirement then there's always virtualisation. I think that the platform that has the best chance of winning (adoption/relevancy) is the one which most closely matches the OS that we use on our desktops.