Thursday, 17 October 2013

New book: Performance of Open Source Applications, with a chapter on Infinispan

From the good folks who brought you the excellent Architecture of Open Source Applications (AOSA), available for free online, as a PDF, for e-book readers or as a good old-fashioned dead tree, we're now treated to a new tome - the Performance of Open Source Applications (POSA).

POSA follows the same concept as AOSA - a different authoritative figure in the open source community is responsible for each chapter, providing you with excellent insight on how some of the most popular open source applications have been designed and built.  POSA focuses specifically on performance rather than general software architecture, and I've contributed a chapter on the performance related work conducted for Infinispan (see Chapter 7).

Have a read, I'd love to know what you think.


Tuesday, 8 May 2012

NoSQL for Java Developers

The mighty London Java Community will be hosting an expert panel discussion titled "NoSQL for Java Developers" on the 16th of May.  This should be an awesome opportunity to bring along all of your NoSQL questions, concerns and ideas, and hobnob with who's who in NoSQL in London.  The panel will include representatives from 10Gen (MongoDB), Neo4J, and general big data expert Robert Rees, and moderated by myself and Martijn Verburg.

For more details, and to sign up to this free event, visit the meetup page but in the meanwhile, do reply to this article with any questions you'd be interested in directing towards the panel - or tweet in your questions using #NoSQLJavaLJC


Wednesday, 25 April 2012

On Ubiquitous Computing - now online

Finally, the talk I recently gave at the Institute of Physics' Physics in Perspective 2012 series of talks geared to sixth formers and college students has been made available online.  Check it out:

EDIT: Here's a second video with the Q&A after my talk.  Some pretty insightful kids out there!

Wednesday, 14 March 2012

A presentation from hell: when nothing else could possibly go wrong

NOTE: Cross-posted from the Infinispan blog where I originally posted the article, since, well, it doesn't have anything to do with Infinispan specifically.  :)

As a seasoned public speaker, I don't easily get flustered by minor glitches that inevitably occur when presenting or doing live code demos.  I expected a recent JUG and JBUG tour of the American mid-west to be no different. I was prepared to speak about JSR 107 and JSR 347Infinispan, and a wee bit on Hibernate OGM and NoSQL. All subjects I'm pretty familiar with, totalling to about an hour of yacking. Followed by a live coding demo to walk people through Infinispan's core API. Simple.

So where does one start when talking about what went embarrassingly wrong at the Madison Java User Group on the 29th of Feb? Well, I suppose mistaking my iPad VGA connector for the mini displayport to VGA connector for my MacBook when leaving London was a start. Mix in the fact that this realisation only happened in a room full of people, with a few minutes to go before the start of the talk. Nice. Unable to connect my laptop to the projector, I had no choice but to present off my iPad instead. Which was fine, except that ten minutes into my talk, my iPad spuriously decided to shut down. Epic fail. But who needs slides, right?  Not me, for sure - I'm way too cool for that.  So I continued on, unfazed. Now try explaining Eric Brewer's CAP theorem without any visual aids. Fun, right? I tried to use the whiteboard. No pens! The organiser rushed out to find some. And none of them worked! Even old-school technology was failing on me that day.

Then come demo time, I was able to borrow a Linux laptop from Red Hatter Jey Paulraj who was in the audience, and transfer my demo to it. Given that the laptop didn't have the tools needed to actually run the demo, the entire demo consisted of me just walking people through an Infinispan configuration XML file. For half an hour. Suspenseful and thrilling! Well, peppered with anecdotes about the life of an open source developer and several tangents on the architecture of various parts of Infinispan, the time did actually fly by (and the audience did seem at least somewhat engaged!)

The clincher, though - I had a PDF containing URLs where people could download the demo, and learn more about the JSRs and Infinispan. Bringing this PDF up on Jey's laptop, still projecting for the benefit of the room, resulted in his PDF viewer crashing. That's when I threw in the towel - any more information from me would require tequila, preferably delivered intravenously!

Now for the moral of the story, don't trust technology. Always be prepared to get your message across with no visual aids whatsoever. Oh, and don't forget your Macbook's VGA adapter. :)

Addendum: I repeated the talk a few times in Milwaukee and Chicago, and everything ran really well - after a quick trip to the local Apple store to replace my VGA adapter!

Addendum 2: I now am on a short break climbing ice in the Canadian Rockies, but will soon be presenting the same in Washington DC - drop by if you're in the neighbourhood!


Thursday, 29 December 2011

Ubiquitous Computing at the Institute of Physics

I feel privileged - and very excited - that I have been invited to lecture at the Institute of Physics in London, who are running a series of talks titled Physics in Perspective,  2012.  I will speak on ubiquitous computing - a meld of cloud computing, social media and networked mobile devices that are poised to change the way human beings interact, do business, even discover the world around them.

My talk is on the 14th of February, at the Royal Institution of Great Britain, in the famous Faraday Lecture Theatre.  Details of all talks in the series is available on the Institute of Physics' website.  If you are interested in attending, the deadline for registering and getting your ticket is the 27th of January.

The lecture is open to the public and tickets are still available, so if you are interested in ubiquitous computing, please do come along!


UPDATE: This talk has now been recorded, and is available online.

Tuesday, 13 April 2010

CreditCardNanny for Firefox

As a follow-up to my previous post on SSL and a false sense of security, I've revisited the Firefox plugin I originally wrote.  For ease of writing the plugin, I originally made use of Firefox's Jetpack framework.  It was easy to build and made my life as an extension author simple.  But that was not to last - Firefox has discontinued the Jetpack extension and is in the process of repackaging Jetpack as a fully fledged SDK which would then spit out a more traditional Firefox XPI add-on.  A grand vision indeed, complete with support on to be able to take Jetpack extensions and generate the XPI for you.  But alas, this is still a ways away, with the new Jetpack SDK still being in version 0.2, missing a lot of features, and still not having support for XPI generation from a Jetpack extension.

So this has left me with just one choice: write a traditional, Firefox XPI add-on.  This did take a while - XPI add-ons can be very powerful, but is complete and utter overkill for what I need.  But anyway, the plugin is now complete, and Firefox users can now make use of this add-on.

At the time of this writing, Mozilla editors have yet to review the add-on, and hence the "experimental" status on  Rest assured the plugin is on their queue and will be reviewed and promoted to full, public status in due course.  Click here to install this plugin.


Monday, 29 March 2010

SSL and a false sense of security

I was speaking to a colleague recently about an issue he had, booking a hotel online using his credit card.  The website seemed secure enough, with a properly formed SSL certificate, which would lead you to believe that your credit card details are safe enough, the booking form being submitted through an encrypted channel.

To his horror, a day later my colleague received an email from the hotel confirming his reservation - and this email contained all of the details on his booking form, including his credit card details, security codes, etc., in perfectly clear text.  In his own words, after he calmed down, he called his bank and cancelled his credit cards.

I took a look at the website in question (which shall remain anonymous).  The fault was very simple: the site was secure and encrypted, but instead of actually processing the credit card, the site simply bunged the form contents into a plain-text email and emailed it to the hotel administrators to process offline!  This completely defeats the purpose of a secure site - the site may receive this data from your browser in a secure and encrypted fashion, but what the site does next - emailing this stuff in plain text - renders your sensitive data vulnerable to theft.

This had me thinking that this really can't be all that special a case.  Lots of mom-and-pop sites that take credit cards, whether to process a payment or maybe just hold a reservation, probably do just this.  Grab a free form mailer script (there are a great many of these around) and you are on your way.  I would guess that hundreds, if not thousands of websites out there, not intending to be fraudulent in any way, end up leaking credit card details in this manner.

To cut a long story short, I decided to do something about it.  I've written a browser plugin that detects such forms and warns users of the fact that their sensitive data may be publicly visible.  Currently, this plugin is only available for Google Chrome and Firefox browsers.  If you happen to use one of these, you're in luck.  If not, the plugin is open source, I recommend you try your hand at writing a plugin for your favourite browser based on what I have done.

Want to get the plugin?  Browse to the plugin's project page and try it out.

Want to see what it looks like?  Here is a screenshot of a test site I created, being "caught out" by the plugin.

Want to try it for yourself?  Browse to


Wednesday, 23 September 2009


We had three days in Marrakech, up from the original plan of two days and to be honest it was one day too many. There is only so much of souks, souvenirs and kasbahs one can take in. The riad which housed us was excellent - a blissful retreat from the chaos outside; quiet, cool, comfortable; the hostess friendly and helpful. Hot showers and tea were the first things on our minds after the long overnight bus ride from Merzouga.

After getting recharged such, we hit the streets. The riad was in the old, walled city - the medina - a 16 sq. km collection of filthy alleyways coated in fresh horse dung, mostly unmarked with plenty of dead-ends and unintuitive twists. Yes, you got it, the world's smelliest maze. Then you throw in the crowds. The streets were barely four persons wide if you stood shoulder to shoulder, and there must have been at least a bazillion people walking down any given street at any moment, pushing and shoving. Then you throw in the frequent bicycle, moped or scooter travelling at a fair pelt (expecting people to jump out of the way), the occasional horse carriage or donkey cart, and even the occasional car (wing mirrors scraping either side of the street) and you get the idea of the brand of chaos I'm talking about.

The picture above does it no justice - this was taken early in the day in the main square, before the real crowds kicked in. And again, with insane and aggressive touting, you can see how this quickly became tiresome. The place really felt medieval, not just for the small streets and chaos, but also for the peoples' attitudes and the 'wild west' feel. I can understand now why many folks choose to spend a large part of their time in Marrakech in the safe confines of their riad - or in the new, modern and rather anonymous and dull New Town (think large boulevards and malls).

Anyway, we were adventurous, rubbed shoulders (literally) with the locals, got in (and out of) some scrapes, tried to out-tout the touts, saw the sights and usual tourist attractions of the city, etc. (the museum, menara Islamic college, palaces, main mosque, are all breathtakingly beautiful pieces of architecture). All in though, by the last day, we were pretty happy to be leaving. :)

Friday, 18 September 2009

Camels across the Sahara

Given that we had made a decision not to trek back through Todra, we found ourselves with two extra days going spare. We were always going to do a camel trek across the Sahara an spend a night in the desert, we decided to make it two nights.

The Sahara was fun. The dunes are spectacularly other-worldly. And the camels really sucked! The smelly beasts stank to high heaven and the worst part is, we could have easily done all of it on foot. Keep in mind that we are seasoned hikers, perfectly comfortable with travelling on foot over difficult terrain for many hours, even when hauling luggage. We just climbed Toubkal, for example! Walking through the Sahara would have been easy in comparison, and much faster than the camels. To prove this, I chose to walk on day two, granted I left my luggage on the camel.

Anyway, the dunes we were on - Erg Chebbi, alongside the tiny village of Merzouga - is on the western edge of the Sahara and the eastern edge of Morocco, the Algerian border not far off.

My recommendation for future hikers - don't waste your time with camels. Don't even waste your time with an organised trek or guides. As long as you have a compass and know how to use it, you can make your way into the desert on your own easily enough from Merzouga. Heading due east in a straight line from Merzouga, you will cross the entire width of Erg Chebbi in about 3 hours. 1 ~ 2 hours in would be a great place to set up camp, ideally in a trough between the dunes to be shielded from the winds. Take a warm sleeping bag, a tent if there is risk of rain, and lots of water. About 3 litres per person per day. And enjoy the beautiful and starry night! And remember that the best time for walking in the desert is between 5am and 10am, when there is plenty of light and the temperatures not too high. Sunrises and sunsets are both spectacular when viewed from a high dune.

Anyway, back to our story - we spent one night in the dunes and the second night in the wastelands just east of Erg Chebbi with a bunch of nomadic Touareg. Yeah quaint, but ultimately very boring. We had many hours to kill since we crossed the dunes in record time.

Eventually we crossed Erg Chebbi again to Merzouga, and got the long overnight bus to Marrakech. Stay tuned for the next - and possibly final - leg!

Thursday, 17 September 2009

The Sahara

Getting out of Todra was tough, particularly after the floods. Or maybe that was just an excuse. Either way, we couldn't leave the evening of the floods, as I would have liked, so we stayed another
night. No taxi would go for any reasonable sum of money and we had missed the only bus of the day. We even missed the bus the next morning due to delays getting out of the gorge and to the bus terminal
in Tinerhir, but managed to find an alternate, indirect bus that involved changing buses halfway. The main thing is that we were on our way!
The bus journey was visually spectacular. All sorts of changing terrain, from high mountain passes to lonely desert landscapes. Shame about the smells - these local buses stank! - and the touting. More about the touting in another post, as I promised before. But yes, horrible smells, crowded and sweaty, a bus driver that drove part of the way with the door open to ventilate the bus, and a kid that threw up on Ted. And the kid's mom who stole Ted's water to wash the kid.

The bus got us to the desert village of Rissani, where we had to haggle our way through a small gang of taxi drivers to get a ride to Merzouga, where we had booked accomodation. This much fabled Chez Isabelle was what we had to look forward to - our oasis of normalcy in this desert of crazy heat, aggressive touting and bad odours. Perhaps it didn't live up to it's reputation, but in relation to all else, it was just what we needed.

We spent a night in Merzouga, a little village alongside bright orange sand dunes. We decided to head to the dunes soon after we put our bags down and got some lunch in us. Amazing stuff! Sand so fine that you
can clearly see the tracks of even the smallest insects. And then the storm hit. Probably a continuation of the same storm that brought on the flash floods the day before; this storm whipped up sand and blasted us with hot, heavy rain and high winds. Great fun!

We walked back an hour or so later, soaked to the bone. As darkness fell the storm worsened and lightning lit up the sky above the dunes.  After getting dry, we whiled the evening away over good dates, a tagine and a drumming session with our hosts. A combination of a djembe, a tom tom and a small Moroccan goatskin drum, called something I can not remember.