June 2009

Brain dump and Consumption and Mobile computing and Unix17 Jun 2009 at 22:23 by Jean-Marc Liotier

I acquired an HTC “G2” Magic less than two days ago. It runs the Android operating system. The feeling of being confronted with something very alien pushed me to record my first impressions with it to give an account of how a foreigner perceives the Android world with his naïve eyes, in his own words. For other systems where I’m a power user, I find the experience of newcomers interesting when they candidly point out problems we ignore because we have simply grown used to them.

This entry relates my feelings from friday night to sunday night. It may seem ridiculous in the future, but it is an instantaneous snapshot – for what it is worth.

First contact with the Android is a severe case of culture shock. More than ten years of Palm OS have shaped my expectations, and the disappointing past year with S60 on the Nokia E71 has not changed them much. But plunging into Android is unlike anything I have used so far – many of the UI conventions feel utterly strange. The home screen has a familiar status bar – but beyond that, Android is a class of its own. For example, instead of grabbing the scroll bar and sliding it, one has to slide the list itself – not illogical, but the contrary of any familiar widget kit I have come accross anywhere else. And many other things are just as alien.

After poking around a little, my first reaction is disorientation from the lack of keyboard. I could write tolerably fast with Palm’s Graffiti, but I was in love with the Treo-style keyboards – on the the Treos as well as on the E71 they let me write considerable volumes fluidly and without excessive strain. But my first attempts at text entry on the G2 are stumbling hit and miss torture with each word containing at least two typing errors. And why does the automatic correction insist on changing my “jm@liotier.org” address to “kn@liotier.org” every single time I enter it in a web form ? Text entry on the G2 is tedious enough without this sort of annoyance…

To be fair, I knew I had to expect text entry woes – I had anticipated that risk when choosing the G2 over the G1. Learning a new tool takes times, especially when low level reflexes are involved, so I have budgeted a few weeks for climbing up the learning curve. Then I’ll decide if I like onscreen keyboards or not. But whatever the learning, it seems that text entry on a virtual keyboard requires to keep one’s eyes on the keyboard – whereas with a physical keyboard, after a while muscle memory sets in and you can forget the keyboard to concentrate on what you are writing. So I’m not optimistic so far – but I’ll keep my mind open. Meanwhile, tactile feedback screens are on the way – I’ll keep an eye on them.

I miss the four-ways arrows button, but the obscene pointing device works rather well although like the rest it will take time to get used to. A “page down” button would be even better than having to swipe the whole screen every time I want to scroll down one step – one page at the time would be more precise than scrolling a random number of lines according to how much inertia the widget takes from the swipe. Screen swipe and inertia are sexy gimmicks, but I don’t understand how heavy users tolerate them for more than five minutes. I’m the sort of user who disables smooth scrolling and any on-screen animation that introduces the slightest lag in my interaction with the system – and I know I’m not the only one who wants responsiveness above everything else.

A combination of importing in Evolution a CSV file generated with Outlook, synchronization from the Nokia E71 to Google and copying native Evolution contacts to Google did not manage to capture at once all of the information I wanted transferred – so I had to munge some of the data and re-enter quite a few of the notes and adresses manually… Hopefully that is the last time I do that. Those contacts had often been through various synchronizations between Palm OS devices, Outlook and Evolution – but getting them to Google seemed lossier than usual. I have read about many other contorted data migration paths, and this one looked straightforward enough – but if I have to do it again I’ll spend time setting up better automation. I’ll concede that it does not have much to do with Android – anywhere you look the synchronization ecosystem seems quite wet behind the ears.

I won’t complain too much about how tightly tied the system is with Google’s applications – after all that is a major feature of Google’s Android business model. With the defaults applications, Android is a seamless extension of the Google universe. Synchronization of calendar and contacts is excellent – although it only happens eventually and you have no way to know when or to trigger it (this is the first time I ever see this implemented with no control by the user). In addition, I am very uncomfortable with the idea of using a third party as my synchronization hub and I’ll look for another way.

But every functionnality seems available through an API – so with the user in control and free to act there is no reason to complain. I’ll ignore the Gmail and Google Talk clients, and replace them with a decent XMPP client and an IMAP client better than the default one – and maybe I’ll even find a decent contacts manager. Meanwhile the native Google Maps client is such a pleasure to use that I could forget everything else (though I wonder why the relief layer has been omitted – I find it very useful for planning human powered movement).

The scarcity of exposed configuration options, output logs and exposed information in general leaves me wanting. For example the Jabiru Jabber client tells me “connexion error” but won’t explain anything, resulting in frustration. Of course, Jabiru is not part of the basic system, but this rarefied atmosphere seems to be the norm in the Android world. And why is there no option to sort the contacts by “family name, first name” instead of the default “first name, family name” ? Would that clutter the interface too much ? Even the simplicity-worshipping Palm OS gave that choice…

I guess that a compromise has been struck in favor of simplicity by default over configurability, and that developper tools are available to provide advanced access to deeply buried parameters – but for example not being able to set the language to english with the french keyboard upsets me a lot. I’m used the english as a device language, and I’m used to the french “AZERTY” keyboard – reading french or typing on a QWERTY keyboard with no accents feels awkward. On any other system I know, keyboard and language are two separate options – but not on Android. I hope I find an application that provides finer grained options. I was also frutrated not to find any configuration option that would solve my above-mentioned problem with the scrolling style.

The Android Market feels sluggish. I have been spoilt by APT caching all packages descriptions locally – and now I have to suffer Android Market loading package descriptions and icons slower than I scroll accross the list that only shows six items per page with no way of getting the device to display smaller characters in order to cram more lines per page. I can understand that the icons must be stored online for storage space’s sake, and maybe the user comments in order to keep them current – but why not load the whole package list at once ? And why does every list on this device use a standard widget that seems sized large enough for legibility by half blind users ? Where is the configuration option ?

Many of my gripes are probably related with the default applications, and after exploring the Android Market for a while I’m sure I’ll feel better. I’m commenting an operating system in its default form, and this is obviously not how I’m going to use it – In a few weeks, after the normal process of appropriation, my Android will hopefully not look and feel like its current state at all.

So see you in a couple of months for a look back at these first impressions – we’ll see which were real problems and which were merely artefacts of the clash of cultures ! For now I have the eery feeling of having stumbled in a sort of Apple-esque Disneyland with my hands tied…

Africa and Cycling and Ghana and Travels17 Jun 2009 at 21:01 by Jean-Marc Liotier

Busua, Dixcove… Axim, 26 February 2009.

Roosters calling from three in the morning onwards are not something I’m used to. But who does not enjoy some background music when nature calls repeatedly ? Nana’s food was obviously not the freshest thing and my lower digestive tract is paying the price – for the immense benefit of the local flora !

Nana had a rough night too, but not for the same reasons. He comes to confide in me about his problems with his wife : he is investing whatever he can into adding a couple of rooms and toilets next to his house for his tourism business, but she wants the money right now. In the morning I notice him on the doorstep pouring a libation of schnapps and murmuring prayers – looks like the spectrum of religions in Ghana is even wider than what I saw so far. Let’s hope that the spirit will do something about his wife – if they do I might buy some schnapps too !

Pauline adapts well to the lack of amenities – the presence of kittens soon makes her forget those logistical matters completely. We share our breakfast biscuits with Nana’s children. My packs are made, I put the bike outside, it is quarter past seven and we are ready to roll. I think I am, going to try to make it to Prince’s Town today in spite of the warnings about the road. But I’ll try to gather more intelligence on the way out of Busua before I take any decision.

Many locals do not know of any direct road to Prince’s Town : their mental map is the tro-tro line all the way to the main road. But we are in luck : Nana says he once rode the stretch with a couple of Germans. He says it is a bad earthen road, but with none of the sand or corrugations that I have learnt to loathe. So I’m going for it.


At small shop at the entrance of Busua, we load six litres of water : enough for the day with a security margin. Nana guides us to the west end of the village, where a metal bridge marks the beginning of our track. With encouragements from the ubiquitous pack of kids, we set out on our way. The track is packed lateritic earth, and it rolls reasonably well. The sun is fast dissipating the morning mist and we are heating up.


We pass Dixcove, a big fishing village with a cute white fort. It is less touristy than Busua so the people are nicer and we salute everyone in sight. The whole place is very colourful – with the yellow clad schoolchildren adding to the decorated boats moored in the harbour. The small fort, the excellent natural harbour and the buildings suggest a colonial past, but any hint of historical turmoil has long since yielded to the quiet life of rural Ghana.


The climbs on the piste are taking me to the limit – the weight of the extra water is clearly felt. The lack of speed robs me of the advantage of relative wind for cooling by evaporation. And to top it all, yesterday’s beers, pepper and the food whose hygiene I did not trust are combining to produce effects that surpass what I experienced during the night. I could feel better…


The track is very quiet – two taxis passed in the first couple of hours. There is the odd peasant and a few tiny villages. But we don’t get the full story : the track is a corridor in the bush and our view is bounded by the roadsides. Among all the bird cries, we sometimes hear faint voices or hacking sounds : we are not really alone. Flight of hornbills pass us – hornbills are among my favorite birds. We see plenty of other tiny birds I can’t identify, butterflies and colorful insects.


Some peasants are slashing and burning fields for planting cassava – primitive agriculture at it finest whose result can be seen on a few hills where the soil is gone entirely. Primitive as an agricultural practice it may be, but as a full-body workout it is a different matter entirely : tight sculptured muscles to make any body builder jealous – maybe there is a nascent fitness fad being born there… But don’t be too jealous : their working conditions in the sun are probably not worth the ribbed abs.


After the hills the track plunges down to the sea and runs along the magnificent beach. After one hour and a half and 13 kilometres, I am beginning to feel slightly exhausted and decide to stop more often.

At 15 kilometres the road ends in a small fishing village on the mouth of a mangrove estuary.


That village is near Achenim. Villagers tell us about a foot bridge on the other side of the village, so we cross it through a maze of tiny alleys among pisé houses, surprising the villagers who mill about to their daily occupations. After the foot bridge we follow the river upstream for a couple hundred meter and push the bike up the very steep path up the other side. Out of breath we finished the mercifully short climb in the middle of a school yard with a hundred kids swarming us instantly – yeah, we are minor celebrities !

On the road out of the village, I finally understand the purpose of all the torii on the side of the road, under which bunches of palm nuts are laid. They are support for the scales used for weighting the fruits before loading them. One more mystery solved !

We don’t see the ocean anymore, but I will never notice that seemingly obvious problem. The damn Selle Italia seat is savaging my ass and Nana’s food is not helping either – the two combine to compound the fatigue of the ride. At that point of the journey, my judgement was probably already seriously affected.


We cross the huge hevea plantation of Ghana Rubber. Is seems that some of the plots are rotated with leguminous plants. In that area, we gain the company of Gillian, a 14 years old boy on a BMX. He keeps up with us, but that is not saying much considering our sorry physical state. As you may notice, there are no photo of this part of the journey – a clue that we are not quite comfortable with our going.

Gillian lost both his parents and works for food at the plantation. Gillian and passing villagers insist that we passed Cape Three Points long ago. I’m amazed that we saw nothing – having passed Cape Three Point would mean that it lies between the, 20th and the 25th kilometre of the ride – which makes no sense on the map. The explanations are confused, but the only thing I understand plainly is that we are on the road to Axim. This sounds crazy and makes the map look grossly out of scale, but I decide to take the local’s opinion for granted. So I begin to believe I may even end up in Axim at the end of a very long day.

Clouds gather increasingly thick, shielding us from the sun and promising a nice shower before the evening. On top of that the road improves progressively, sand has long disappeared and corrugations are less frequent. Morale improves accordingly. And then reality strikes, in the form of a tarred road – there is not supposed to be any tarred road anywhere between Dixcove and Axim. Worse, there is a partially legible road sign indicating Dixcove. A couple of people waiting for a tro-tro explain to us that this is the road between Dixcove and Agona Junction. I’m dumbstruck. I flip open my compass and immediately realize that we have been going east for at least fifteen kilometres out of thirty two. How can I have been so daft ?

Listen to the locals, but then trust your compass. From what I understood from our conversations, I was somewhere between Cape Three Points and Axim. But that was not the case. We came back straight where we came from, finishing a nice 32 kilometers loop. I had been driving back east for a while – the peasants telling me I passed Cape Three Point which I did not see should have been a hint. But meanwhile, the clouds had blocked the sun, robbing me of that obvious reference. I had the compass in the handlebar pouch, but the pains broke my concentration and I stupidly went with the flow. The direct consequence of that story is that I’ll soon mount a handlebar compass so that it is always under my eyes to keep me from doing such gross mistakes. For now you can see our GPS track log graphically depicting my mistake – see how I headed north from Achenim instead of following along the coast.

With morale low, fatigue and more digestive problems forcing me to contribute generously to more roadside fertility improvement projects, the road to Agona was not particularly enjoyable. I was especially disappointed as I realized that I had already visited that place the day before – which explains the twenty kilometres difference between my actual distance and the Lonely Planet’s estimate. So that is two grievous navigation errors in two days – I have room for improvement.

Pauline had enough, and going anywhere would have meant at least 35 extra km, which would be extreme for both of us. So we negociated the transportation of our tandem, disassembled the trailer and the luggage, and jumped in the waiting bus to Axim, just in time while the big thunderstorm to broke out – perfect timing !

The bus dropped us in Axim. As I was rigging the panniers on the debused bike, I realized that to reach my chosen dwelling for the night I still had a sizeable ride ahead of me. Five kilometres back to the fork between the Axim and the Elubo road, and then five more on the Elubo road. Five kilometres before arriving, a new thunderstorm broke out, drenching us in a shower so intense that I had to switch on my lights in fear of not being visible to the cars. I was not sure if I was on the right track, but at that stage I was on so sick and tired that I was not going to stop for anything. I was relieved to spot a big signpost marking the entrance of the dirt road to Ankrobra Beach and I found the entrance checkpoint is a few hundred meters down. That is the end of a day of only 53 kilometres – but the number does not tell the whole story…


After checking in quickly, I started by having the shower I had dreamt about since yesterday morning. We then went playing in the waves, but salt on my private parts irritated by the bad saddle spoiled my fun.

At the hotel as in any self respecting African restaurant, there is what is written on the menu, and then there is what is actually available – the best method is to forget that the menu ever existed and start directly by asking what is available. I discovered red-red, a dish of fried plantain served with a tomatoes, beans and chicken sauce. Everything about it was perfect. I’ll make some in Paris !

We met the German lady who recently took over the management of the Ankrobra. She seems to have things firmly in hand, and this marvellous place will probably get even better.

On the way to our room we meet the camp’s security guard, a cheerfully middle-aged chap in khakis who sneaked up on us among the palm trees to have a chat, claiming to be a former Ghanaian UN peacekeeper with experience in Liberia, Cambodia, and the DRC. It is good to see a motivated guy like him patrolling the area – but to be frank I’m so tired that I would sleep with or without it !

Code and Mobile computing and Social networking and The Web17 Jun 2009 at 11:11 by Jean-Marc Liotier

I just released a new update of latitude2brightkite.sh – a script that checks-in your Google Latitude position to Brightkite using the Brightkite REST API and the Google Public Location Badge.

The changes are :

20090607 – 0.3 – The working directory is now a parameter
20090612 – 0.4 – Only post updates if the _name_ of the location changes, not if only the _internal BK id_ of the place does (contribution by Yves Le Jan <inliner@grabeuh.com>).
20090615 – 0.5 – Perl 5.8.8 compatibility of the JSON coordinate parsing (contribution by Jay Rishel <jay@rishel.org>).

Yves’ idea smooths location sampling noise and makes check-ins much more meaningful.

Thanks to Yves and Jay for their contributions ! Maybe it is time for revision control…

Africa and Cycling and Ghana and Travels17 Jun 2009 at 2:47 by Jean-Marc Liotier

Takoradi and Busua, 25 February 2009.

First mission of the day is to ride downtown to replenish my provisions of cash. The withdrawal limits displayed on the screen are grossly inferior to what I can actually withdraw – 200 GHC seems to be the limit. While taking back my card from the ATM, I fumbled with two thick 200 Cedis worth wad of notes freshly spat out and I broke the card in two pieces. Ooops – not good. Mission creep hits us – we have barely started our day, and now on top of our program we have to find a way to withdraw cash for the rest of the trip. I already have enough for a week so I’m not overly stressed, and in an emergency you can always count on the expensive money transfer operators.

My first thought is to get in touch with my credit card company through a local bank. Staff at various banks bounce us from branch to branch and it increasingly looks like this is not the way to get in touch with my credit card company – the normal way seems to be to call them directly or go though the issuer bank. We ride eight kilometres around Takoradi and through the harbour until I find the main Barclays branch there. Barclays employees reassure me that cash can be issued given just my credit card number and my personal identification. That informative and efficient branch was just one kilometre away from the hotel, but of course it was probably the very last one in the whole town that we visited. At least I had a nice tour of Takoradi and its harbour, with highly exotic moments of being stuck in the trading chaos of Market Circle. We also caught a glimpse of a school marching band with a couple hundred pupils in uniform following suit – but I was too focused on my cash problem to take a picture. Next time I’ll redund my credit card – extra cash would be nice too, but I don’t want to risk carrying too much.

I was planning to start at seven thirty, but with the slight logistical complications it is ten thirty when we actually head out of town. Telling the story of such boring matters may appear mundane, but this sort of situation is what travelling is mostly made of, especially outside of the most developped countries. After paying the hotel bill and loading the pedal mule, we head due east to Busua and Dixcove. I miss my Takoradi friends already, but travelling is always like that too : meeting wonderful people in wonderful places, and then having to move on to discover the rest of the world. This is a story that I keep repeating, and the urge to move on always win over enjoying where I am. Anyway, the smiles and compliments of Lauricia at the Standard hotel nicely helped us get underway.


It is getting hot and a succession of small hills is sapping my energy. I can pedal fast forever on level ground, but the hills are considerably more tiring, especially with the sort of load I’m pulling. I have to make a good figure though because some people along the road have an even harder job : they are sitting in the sun next to heaps of rocks, using rudimentary hammers to break the rocks into coarse gravel. Is a rock breaking machine that expensive or are these people that cheap ? This is the sort of occasion when I want to take a picture, but then decide to leave the camera idle in the handlebard bag : I am not (yet ?) shameless enough to photograph distressed people so easily.

With the sun hitting us hard, I have to constantly remind Pauline to drink – she does no yet have the drinking reflex. Ten kilometres out, on top of Dixcove hill road we stop to pick drinks and biscuits. Because it is on a main road, the petrol station has a nice assortment of quality products. What passes for an orange juice in the dinky village shops would make the lyophilized drink in mountain rations taste like luxurious fresh nectar, and the nutritional value of the biscuits is usually close to zero, except as a source of glucose. At the petrol station, we turn left to take the road to Dixcove.

Along with stone breakers, the roadside has its usual assortment of biscuit and drinks micro shops, mechanical workshops, schools, brick makers and and incredible number of churches of all denominations : it seems that 20% of the GNP of Ghana is generated by religious activities. We also spot a yard with a line of large pots full of roasting unidentified beans with mounds of those beans all around the yard. I’ll later understand that these are palm nuts.

At a large crossroads with lights, we ask locals for directions and then turn right past the barracks of the 2nd infantry bataillon – we had inadvertantly taken quite a detour out of town. The road runs straight on undulating terrain for at least ten kilometres. What we did not know at the time is that it led us to Agona Junction – which is probably not the shortest way. Another road seems to exist, but Agona Junction is the tro-tro hub of the region, so as we’ll learn later, all roads lead there – or at least all driving directions ! Asking the locals for directions may sometimes help, but checking the compass is always necessary as a reality check. Sadly, it is only after forgetting that a second time the following day and suffering worse consequences that we understood the wisdom of that reflex.

I’m drinking like a crazed camel and I’m still pissing yellow and not often… Need I mention that it is hot and that I’m drenched in sweat ? Luckily, a rainstorm soon provides us with welcome refreshment – a mild one tough because the water is lukewarm.


On the way down to Busua, we ride along big lush palm plantations. But ever since we started, roadside plastic littering is just as prosperous as the vegetation. We keep gathering our own trash for disposal in trashcans. But from what I see, the collected trash is at best burned, and most of the time dumped in an apparently quite unregulated way.

The lush vegetation is everything but wild. There are plantations for bananas, plantain, cassava, palm, bamboo – the whole leafy landscape is in fact cultivated, leaving very few wild areas. But all these agricultural riches do not seem to lift the area economically – the high proportion of pisé mud houses does not indicate well distributed wealth. But whatever the economic success of the villages we cross, our minor celebrity status is intact – the superstar is Pauline on her trailer and I’m in a mere supportive role as Pauline’s father.


A fork in the road gives us a choice between Busua and Dixcove – we choose Busua based on the opinion of our friends in Takoradi. By the time we reach Busia, all semblance of humidity is a long forgotten memory and we are getting parched again, but the day’s pedalling comes to an end. The Lonely Planet gave Busua at 30 kilometers from Takoradi, but the distance measured by my bike’s computer today is 50 kilometers. That is more than a slight difference – I wonder which turn I missed. We rode the distance in 2H45 thanks to the excellent (if hilly) roads.


Busua is a small fishing village backed by a long beach. The touts that immediately chase us are proof that Busua is a tourist destination. We meet Nana, the manager of Zweite Heimat and drink fresh smoothies in front of the restaurant. The fruits are fresh pineapple and banana, but as usual in Ghana, the milk is the canned concentrated stuff which I’m not yet used to. But after such a ride I can swallow anything liquid that contains a source of glucose.


Nana offers us a room for six GHC. That sounds more like my prices. It is a bare room with a mattress, in his own two rooms house. Squat toilets are outside and there is no water nor electricity. But after days of splurging, this is a welcome change. We spent the evening and night for twenty GHC, food included ! The house lies on the flank of the small hill behind Busua. Pushing the loaded tandem uphill across the steep tilled fields was mercifully not too long, but the view from the top is worth it.


We then head towards the beach for a dip in the ocean. Pauline attempts to get local boys to play in the waves with her, not understanding that being unable to swim they won’t get far from the shore. She gets her sinuses whashed clean while being tossed about by the rip curls. Meanwhile I catch the big waves for body surfing runs. The beach is huge and very sparsely populated, sand and water are clean (not a given in Africa near a village), temperature is ideal, and the surrounding vegetation completes the picture. After the effort of the day, fun and refreshment in the waves feel great.


I walk around with the camera, but fishermen loudly refuse to be photographed unless money is paid – I pass. Later I manage to sneakily take a couple pictures – bad quality, but I enjoyed the transgression !


Nana’s restaurant is covered in graffiti from satisfied travellers – in several languages so it is difficult to fake and that is what finally convinced me of using his services. Nana cooked fufu and groudnut soup for us – not bad. While we eat, a guy walks by with a loudspeaker, broadcasting political propaganda in the streets. We meet Anne, a French woman quite experienced with Africa. We chat away the evening while downing beers, the way it ought to be in a real maquis. By the way, the local name for a maquis is a “spot”.


As in many small villages, toilets are a series of closets laid over a large septic tank were the users relieve themselves through a hole in the ground – with no lighting at night and paper only available if you bring your own. Pauline has a slight case of culture shock, but a few laughs with the local children makes help her see the place in a better light.


A few street lamps light some corners, but the village is mostly unlit. While we walk away from the village to Nana’s home, Nana hears one guy saying “this is the one who came with a bike” – and this somehow worries Nana who wont let us be alone at his home. I get the capsaïcine can out of the backpack I carry – if only to reassure Nana. Locked inside his house we should do fine come what may. Against an ambush or a sudden attack, reaction time make the spray wholly useless especially if the spray is in the bag – but out of the bag, with the edge of readiness, and in a locked house we have a credible defence against the most willy opportunistic thieve.

We climb back on the hill under the stars with my headlamp. The insects and frogs sing all around us. This sort of environment is a first for Pauline. The bed is unequivocally dirty – the only unknown is the number of generations who have slept on it with no washing; so we use the linen sacks we brought along for such gruby occasions. We still have salt and sand on our bodies, the room is stuffy, the linen sack is too short for me… I’ve slept in more comfortable places. I’ll put that on account of the cultural experience !

Africa10 Jun 2009 at 18:47 by Jean-Marc Liotier

For quite a few years, Lagos has intrigued me even though I have not set foot there yet. I probably share some of Rem Koolhaas‘ fascination with the apparently unplanned nature of this growth, and the ability of the city to cope with the influx of people without visible mechanisms to deal with the outcomes of growth.

Matthew Gandy’s paper says it all in its title : “Planning, Anti-planning and the Infrastructure Crisis Facing Metropolitan Lagos“. This paper is especially interesting in the way it provides a counterpoint to Rem Koolhaas’ somewhat condescending views by linking the challenges in urbanism with the city’s political, economical and social dimensions, thereby disproving an African exceptionalist perspective.

For a traveler’s first impression of the city, you can begin with “Lagos: city of more” – a correspondent diary by The Economist. Then you can take a step back and read James Meek’s “Everyone’s sleeping with one eye open, an article that try to understand what it is like to live in the middle of a population explosion, in a megalopolis bursting at the seams that will soon overtake Cairo as Africa’s biggest. The Wikipedia article about Lagos provides some background too.

But the complacent clichés and the epic challenges do not seem to deter some people from thinking big. I stumbled upon West Africa’s biggest development project, named Eko Atlantic :

The project is located in Lagos, Nigeria and will be built on land currently being reclaimed from the sea. [..] The development area will cover over nine million square metres and will be sectioned into seven districts which will be home to over 3000 buildings many of which particularly in the financial district will be skyscrapers. [..]

The development is planned to have a population of 400,000 upon completion with a further 250,000 commuters. To help them get about there will be an eight-lane coastal highway running along the northern boundary of the project while an internal network of roads will connect all districts, along with a tramway system which will also circulate through the city allowing access to all areas including public transport on Victoria Island. [..]

The artist’s views of the Eko Atlantic suggest something almost Singaporean and the sheer scale of the project will give anyone pause. I wonder how this new quasi-autonomous district will integrate with the rest of the city without widening the socio-economic fault lines – but even given this risk, you have to give credit to ambition on such a scale in such an environment.

If you have any experience of the developing world’s politicians, you will be quick to dismiss this sort of bombast as utter vaporware. But think again : this CNN about the vision of Governor Fashola for Lagos hints that this is a serious project of its way to implementation – and the videos show that some dredging and backfill works have already begun.

The project may be late, or even fall victim to the chaos altogether. But then again it may become a symbol of the return of planning and ambition in urban development in Lagos. Such feat would have significance far beyond Edo State, for all the sprawling megalopolis of the developing world.

Code and Mobile computing and Social networking and The Web05 Jun 2009 at 21:43 by Jean-Marc Liotier

Tired of waiting for Google to release a proper Latitude API, I went ahead and scribbled latitude2brightkite.sh – a script that checks-in your Google Latitude position to Brightkite using the Brightkite REST API and the Google Public Location Badge. See my seminal post from yesterday for more information about how I cobbled it together.

Since yesterday I cleaned it up a little, but most of all, as promised, I made it more intelligent by having it compare the current position with the last one, in order to check-in with Brightkite only if the Google Latitude position has changed. Not checking-in at each invocation will certainly reduce the number of check-ins by 99% – and I’m sure that Brightkite will be thankful for the lesser load on their HTTP servers…

So grab the code for latitude2brightkite.sh, put it in your crontab and have more fun with Brightkite and Google Latitude !

There is quite a bit of interest for this script – it seems that I have filled a widely felt need.

Africa and Ghana and Travels05 Jun 2009 at 21:25 by Jean-Marc Liotier

Takoradi, 24 February 2009.

While we wait for Arama who is one hour late to our meeting, I set our plans for the rest of the trip : considering the large distances involved and the constraints of human powered mobility, we’ll give the national parks a miss after all and focus on the coastal region between Takoradi and Axim. Back in Takoradi, we’ll then ride to Elmina and Cape Coast, before taking a bus back to Accra. I’ll definitely have to come back to Ghana !


In the morning from the hotel room’s windows I see hordes of school children in uniform walk up the street while packs of military-looking men run by, chanting and stepping at the exact same cadence. About a thousand children gather around a soccer field nearby, cheering their comrades on the field. So far, soccer seems to be the undisputedly dominant sport in Ghana – wherever you go there is always a game going on somewhere, either kids on the streets, adults in a courtyard, a big team in the stadium or Manchester United on TV. It is school holidays in Ghana, and Arama tells me that the kids on the soccer field are part of a week-long sporting event. All the little girls have their hair cut short – if a girl has her hair cut very short, it most likely is because she is still attending school.

As usual in Ghana, it never takes long before religion emerges in the conversation. Arama and her family are Mormon, a minority religion in Ghana – but with a power quite beyond its size. I ask Arama if she has completed her mission, but she says that it will have to wait until she has completed her studies and civil service in Ghana. By the way, Ghanean missionaries only travel to Africa as too many of them have taken advantage of missions in Europe and North America to never return – and some even joined the church for precisely that purpose.


We walk to Arama’s home in central Accra – her family owns a four level building and occupies one of the apartments on the lower level, on a little courtyard away from the street. Doors are open during the day and there is a Mediterranean feel about that quiet place. Arama comments her family pictures, and we soon meet her father – a former banker who has also been the voluntary manager of the Mormon employment resources centre in Takoradi for three years.

I chat about the local economy with Arama’s father. Takoradi used to be a major timber export harbour, but there are no trees left outside of the national parks – so the timber exportation infrastructure has long been idle. Nowadays the local resources are essentially manganese and bauxite, with a few factories for the transformation of agricultural products such as cocoa. Manufactured goods are mostly imported from Dubai and China – that explain the Chinese furniture and bathroom equipment at the Akroma Plaza hotel. Takoradi is about as close to Abidjan as it is to Accra. According to Arama, people go to Accra for foodstuffs, but Abidjan is a popular destination for consumer goods.

The major change in Takoradi for the coming years is the discovery of oil near Axim and Cape Three Points. Takoradi’s harbour is going to be the logistical base for the offshore operations. Extraction has not yet begun, but significant reserves have been confirmed. The locals expect a small oil boom and everybody wonders if the Government will ensure equitable allocation of the new resources.

Tithes are still a practical reality of the Mormon church. Funds are sent back to Salt Lake City where they are centrally managed and allocated to local churches who make their demands at the beginning of every year for specific projects and operating expenses. This concentration of financial resources under central command makes the church quite powerful.

While I was chatting with her father, Arama disappeared with Pauline, and later came back with a takeaway dish of chicken and rice. But as everyday in Ghana, spices are a problem for Pauline who is not yet pepper hardened. It seems that every sauce here contains some… I really like this place !


We head down to the beach with Arama. She warns me not to go swimming. Because of the waves and strong currents ? No, because it is Tuesday, and swimming on Tuesday is bad luck. Even the fishermen don’t go out to sea on Tuesday.

While Arama goes in town for an errand, I walk with Pauline along the beaches and observe marine life. Among the small animals in the tidal ponds we even find coral. The wind is no match for the scorching sun and we are close to overheating. Tomorrow we’ll start at dawn to avoid that heat.


Arama rejoined us, and on the way back we enjoyed a stroll among the quiet and leafy villas in the most expensive parts of Takoradi – mostly inhabited by foreigners. Ghanaians who build nice villas seldom live in them : they prefer to rent them and stay in a more modest dwelling.

We switched hotels and found the Standard hotel, an almost as nice and secure hotel as the Akroma for 50 GHC instead of 70 GHC. While Arama goes in town with Pauline, I displace the bikes and bags from one hotel to the other and the join them at Arama’s family home. I come across Arama’s father on the way, instantly recognizable in his Mormon attire. At my destination I am introduced to Arama’s mother, her elder sisters Akua and Yaa Serwaah, and their young brother. Like innumerable Ghanaians, Akua spent a few years in London – but she is tired of it and says she is back home for good and hopeful of landing a decent education job in Takoradi to avoid busy Accra.


On top of english, the girls speak both fanti and twi. Twi is their mother’s language, and fanti is the regional language. And they can utter a few words in French. As often in Africa, impressive multilingualism is considered normal.

A South African channel is playing on TV and we chat cheerfully while their one and a hald years old nephew violently defends his territory against the nonplussed five years old Pauline. While Pauline has a plate of fried plantains just for her, I am served boiled yam with palava sauce. Palava is a leave sauce with white beans taking the place of the ndolé’s fresh groundnut. I am very fond of leave sauces and I feel in heaven while I enjoy such great cooking with such a great family around. To top it we then have pineapple – picked ripe, not artificially matured like what passes for fresh fruit in Europe.


I have confirmation from the girls that the Ghanaian chocolate sold on the streets does not melt, even under the Ghanaian sun. Looking at the package it contains milk, sugar, cocoa butter, cocoa butter, lecithin, vanilin – with 35% cocoa minimum and 15% milk minimum. Does that leave almost 50% sugar ? Anyway it tastes better than many industrial chocolate I know, and the texture is very nice compared to anything other chocolate-like material in the African heat.

After we salute everyone and leave the poor nephew crying for Pauline who is now his best friend, Arama and Yaa Serwaah walk us back to our hotel under a canopy of stars to the beat of birds and insects in the ideal temperature of a slightly breezy African night. I am really really going to miss Takoradi.

Code and Mobile computing and Social networking and The Web05 Jun 2009 at 0:51 by Jean-Marc Liotier

Tired of waiting for Google to release a proper Latitude API, I went ahead and scribbled latitude2brightkite.sh – a script that checks-in your Google Latitude position to Brightkite using the Brightkite REST API and the Google Public Location Badge.

This script is an ugly mongrel hack, but that is what you get when an aged script kiddie writes something in a hurry. The right way to do it would be to parse Latitude’s JSON output cleanly using the Perl library. But that dirty prototype took me all of ten minutes to set up while unwinding between meetings, and it now works fine in my crontab.

Apart from Bash, the requirements to run this script are the Perl JSON library (available in Debian as libjson-perl) and Curl.

The main limitation of this script is that your Google Public Location Badge has to be enabled and it has to show the best available location. This means that for this script to work, your location has to be public. The privacy conscious among my readers will surely love it !

This script proves that automatic Google Latitude position check-in in Brightkite can be done, it works for me, and the official Google Latitude API will hopefully soon make it obsolete !

Meanwhile, grab the code for latitude2brightkite.sh, put it in your crontab and have more fun with Brightkite and Google Latitude… To me, this is what both services were missing to become truly usable.

Of course, doing it with “XEP-0080 – User Location” via publish-subscribe (“XEP-0080 – PubSub” would make much more sense than polling an HTTP server all the time, but we are not there yet. Meanwhile this script could be made more intelligent by only checking in with Brightkite if the Google Latitude position has changed. I’ll think about it for the next version…

Africa and Networking & telecommunications04 Jun 2009 at 23:44 by Jean-Marc Liotier

Accra, 23 February 2009.

Mobile telephony prices varying with network load – yield management made transparent

The mobile telephony marketing idea of the day is the MTN price zoning concept I witnessed in Ghana. According to which cell you are attached to, a message on the handset displays a discount rate. On lightly loaded cells the discount can go up to 100% (although I never saw it at more than 50%) and on the heavily loaded ones there is none. Making network loads transparent to the users through a price signal a great way to both shape traffic, take advantage of available infrastructure to provide cheap traffic and charge premium prices to the most demanding users. I have never before seen yield management made so transparent – so refreshing compared to the elaborate pricing schemes designed to play that role in more subtle and more annoying ways.

Here is an extract of the press release from MTN Ghana on MTN Zone service launch in June 2008 :

MTN Ghana has announced the launch of a new Innovative service named MTN Zone. The service gives its Pay As You Go subscribers the opportunity to enjoy up to 100% discount day and night on calls they make to other MTN Ghana subscribers and runs on the per second billing plan. MTN Zone subscribers have a flat tariff on all MTN to MTN calls when they register and subsequently receive messages that display dynamic discounts they will enjoy at any point in time.

In order to enjoy the benefits of MTN Zone, existing and new MTN prepaid customers simply need to register for the service by entering *135*1# and pressing the send or ok button on their handset. Alternatively, they could send 1 to SMS short code 135. Registration onto MTN Zone service is currently free of charge. To activate the cell broadcast functionality on their handsets, customers must enter enter * 135*4# and follow the instructions, this process is unique for each handset module. The cell broadcast feature when enabled, gives MTN customers the opportunity to see the dynamic percentage discount they will enjoy when they initiate a call at that time and the discount will be applicable throughout the duration of the call.

“We are excited at what the team here at MTN Ghana has been able to provide after thorough research and development. Discerning Ghanaians want the most cost effective and exciting means of communicating with their family and friends and we are proud that as a team we have been able to crack this motivation and demonstrate our leadership in innovation and superior customer understanding. This new service empowers our customers with more, choice and control over their cost of making calls. The excitement this service has generated within one week is unparalleled in the industry in Ghana. As usual we will lead the market in innovation and others can follow”, says George Kojo Andah, Chief Marketing Officer.

I believe that they have good reason to be proud of this innovative service. It probably requires some custom billing system but I believe it is a great idea – maybe I should write a proposal for our marketing department. The billing people might be horrified though…

Africa and Cycling and Ghana04 Jun 2009 at 23:28 by Jean-Marc Liotier

Accra, 23 February 2009.

While I had breakfast, the manager was struggling to set up 802.11 Internet access, but I carefully omitted to mention I could probably fix that. Sometimes I manage to suppress my benevolent urges for voluntary technical support.

For me, the first order of the day is to go fetch a seat seat post for the bike. The trip starts at the auspicious 777 km mark on the odometer, but I take no account of that : superstition is bad luck.

The hotel boys believe that I might find spare parts in the Madina market, but having them explain how to get there is another matter. If you ask someone how far a place is, the first answer you’ll get is not a distance but the price of the tro-tro ride. So with the barest instructions I head out of East Legon toward the Madina market on my seatless bike while Pauline remains at the hotel using the staff as her playthings. The suburban roads are a mix of tarred and partially corrugated surfaces leading to a minaret dominating a market town on top of a small hill. With such a name, the place is of course Muslim. Interviewing locals about that, I learn that it is the largest coranic school in Ghana – quite a surprise considering that the south is mostly Christian.


Making my way haphazardly across the market, I find a car mechanic which, as I suspected, knows where his pedal tightening colleague is hiding. I cross the town in the other direction, turn near the post office and find Moses’ Cheap Shop. Moses has quite literally a heap of bikes and parts, and it does not take him long to unearth a properly sized seat post for me. And I even get to chose among dozen of seats to top it. And it cost me a grand total of ten Cedis ! I’m ecstatic to find my bike in complete working order again. I thank everyone, take a picture and head back toward East Legon at full blast, maybe a bit too fast considering how I slid ten meters a the bottom of a corrugated downhill, narrowly missing a turning tro-tro.

After that sobering moment I stop at a store for water and a tube of super glue to fix the on-board calculator’s support that got smashed during the flight in. The two girls sold that to me with smiles and giggles, plus while I was living one of then was singing a song about love descending unexpectedly. Along with smiles while underway, this is not the first time I get that sort of response – but the experienced traveller knows not to take the flattery too seriously. But more important, my bike is now is 100 % operational ! With the calculator now online, I can tell after riding home that Madina is 8 kilometers north-west of East Legon.

Back at the hotel I paid 150 Euros for two nights, drinks, dinners, breakfasts and airport pick-up for Pauline and me. I have never paid that much for two nights in my entire life, but the place was so nice that I would have done it again, if only because Pauline enjoyed herself so much there and I got excellent advice for what I had to get done.

It is one PM and we are now invited for lunch by the owner so it is two PM when we hit the road. On the way we ride past the presidential palace again. Snatching a few bad pictures under pressure from the guards who seemed slightly unhappy enough about it that we did not overstay our welcome.


On the way to the STC bus station downtown Accra, Pauline attracted huge interest from tro-tro drivers and street peddlers sometimes barely a few years older than her, who sell plantain chips to sunglasses, water, sweets and even chocolate tablets that miraculously resist the sweltering heat.

14 kilometers later we buy tickets at the STC state owned long distance bus station. This company is very well organized, with fixed price, booths with well kept books, uniformed personnel and due process for everything in sight – a relaxing experience compared to many means of transportation around the continent. 6.5 Cedis for me, 3 Cedis for the bikes, 2 Cedis tip for the bike handlers and Pauline travels for free. What a great deal ! That, the bike parts and today’s food make the the hotel price ludicrous in comparison. But in Africa, anything remotely related with tourism has nothing to do with local purchasing power.

On the bus ride out of Accra we went past the huge Kanechie market. Heavy traffic jams follow all the way after Dansoman, hinting the overgrown village that Accra is often said to be might outgrowing the local infrastructure. While I’m stuck in traffic dreaming about how fast I would overtake it all on my bike, here is how I write my travel diary. I take notes whenever I can, mostly on the E71. In the evening, I transfer my notes by Bluetooth to the NC10 where I rewrite them in a text editor. It is also in the evening that I usually perform the first elimination of unacceptable pictures on the 50D to lessen the burden of sorting when I get home.

Keyboard input lag on the E71 is mightily annoying. This problem has been solved twenty years ago in PC word processors that ran on CPU less powerful than this mighty PDA. Nokia may build fine phones, but the general purpose computing aspects of their products is a big disappointment.

With 7k Euros worth of equipment and a budget of 60 Euros a day for two, this is not shoestring travel. But most of the equipment is photography and IT, with the bikes being a distant third. And the budget is that high because with a kid around I have to ensure a level of comfort that I would certainly would not care for had I been alone or with weathered adults.

The STC bus is impressive : only four people in a row and it even features air conditioning that works – although it is used with way too much enthusiasm. The bus was scheduled for 4:40 and started ten minutes later, on time and not when it is full. This is nothing like the stereotypical African bus stuffed with sweaty people, assorted bags and bundles including smoked fish and live poultry with goats and extra people on the roof. I’m surprised that people travel with few luggage, but maybe those upmarket lines are too expensive for the small traders who are often encountered with heavy bundles. The STC matches any long distance coach service in Europe – this is a great surprise that I had never had in Africa before.

But what still African about this bus are the encounters. When I’m riding my bike, meeting people in buses is something I often miss, even though the bike is a great conversation starter for when I stop in villages. Today we met Arama, a 20 years old first year banking student in Accra who goes visiting her family in Takoradi for the holidays. She offered to help us find a quiet hotel, advising against the ones near the market whose idle boys might be hassling.

Arama took a taxi with Pauline and I pedaled like a madman behind to follow them to our destination. We ended up at Akroma Plaza, a clean and secure big anonymous hotel with Chinese furniture and Chinese toilet paper – Chinese ownership would not surprise me. The rooms look like they could be anywhere in the world, and they are quite comfortable. At 50 Cedis a night I’m still grossly over-budget, but arriving at ten PM in an unknown African city, I won’t complain too much about not finding the optimum. After we entered our room, Arama left to join her family. Tomorrow she’ll be our guide around Takoradi. And for tonight, Pauline and I still have our clothes to wash !