Wednesday, June 26, 2013

Keep Calm and Carry On...Where did it come from?...Keep calm and find out:

Original Poster: Keep Calm and Carry On
obtained from Wikipedia 

You've seen it all over, seen variations and more than enough parodies of it. But, have you wondered how it all started?.... Keep calm and read on:

1939, World War 2 has started, the British government seeking to reassure its people in the dark days that lay ahead created 3 posters:

Your Courage,
Your Cheerfulness,
Your Resolution,
Will bring us Victory.

Freedom is in peril,
Defend it,
With all your might.

Keep Calm being the 3rd never got into circulation. Looks like the situation didn't get that much dire to require it's release after the first 2:

Rediscovered years later in 2000 by a couple who own a used book store among some books they acquired in an auction, the wife liked it so much she had it framed and hanged up in store. It attracted lots of customers' attention and interest that a year later the couple started selling copies, from whence it has spread to all the memes and parodies and variations we have to day...

A timeless phrase to those deep in the quagmire of life,  to inspire confidence in times of difficulty, to assure hope when in peril, to encourage when in distress..... to Keep Calm and Carry on.

Keep calm and check the 3mins video below for an extended summary ;)

source: Wikipedia

Example parody of Keep Calm and Carry On.

Thursday, January 10, 2013

Friday, December 7, 2012

King makers unite! #iVoted Did You?

#iVoted (c) Ghanyobi
On December 7th every four years, millions of Ghanaians since Ghana's fourth republic of 1992 have decided who to sit upon the highest throne of the land.

This year's prime objective rests with the thumbs of some 12million(2008 figure) 14 million registered Ghanaian voters, many of who sad to say will not be voting. What ever reason they may have had to stay away, religious or otherwise, is their prerogative, needless to say, I hope is such fellows will not bicker and whine when decisions made by which ever government that comes into power is not in their favor.

#iVoted today, I hope you will do same next time if you didn't today.

Long Live Ghana. God bless us all.

Friday, October 26, 2012

Holding Govts Accountable With Sexy Pretty Data

Team Open Budget's demo of Govt Procurements

Its been an incredible 3 days attending the first Data Journalism Boot Camp at the Council for Scientific and Industrial Research in Accra and man was I blown I way! We got introduced to tools and techniques for analyzing and representing data.  The workshop intended for techies and journalist took participants though a couple of tools for scrapping and analyzing.

  • Advanced excel data manipulation.
  • Google Refine for refining messy data
  • Google Fusion Tables for Analyzing the data and creating immersive visualizations.
  • And for us techies and the brave journals: D3 a javascript framework for creating and embedding into a website.
Telling meaningful stories with data is a skill our journalist can use to enhance their reportage. Raw data can be clinical and boring, data visualization is the way to go to make this data digestible. Sampling from the projects that the various groups worked on with the skills they acquired showed how traditional media can be transformed and made relevant in this internet age.

The team that came out tops at the workshop harvested data from online and offline sources to create an outstanding visualization the movement money in the mining districts. From the map we were quickly able to infer that though most of the mining companies were paying out royalties a lot of them were getting lost "in transit", which begs the question "Where did the money go?". Create a time series out of this and some communities will be having questions fot their council men.

Ghana is still far behing in opening up its data like the Kenya have but soon the Government of Ghana will be launching the Ghana Open Data Initiative, a platform to make available data such as procurement, budget, data on health and education, do keep an eye out for that and learn a thing or two about data journalism to make those data meaningful in your own way. Projects such as Africa Open Data and Open Data for Africa are aggregating datasets across countries into one giant repository for easy accessibility. The World Bank as well has one of the largest datasets freely available.

So my dear developers, journalist and citizens, I hope to see a Ghanaian Everyday is Tax Day (how many hours of your working day goes to finance the Ministry of Finance) and Little Sister projects soon. 

Update: Team Open-Budget won joint runners up with the Manifesto tracker team, the prize money will be going into enhancing and hosting the applications.

I'm now a certified Data Journalist of

Monday, February 13, 2012

Introducing TelcoCodes... the shortcode directory!

Hi, my name is Kwamena and I am a magician...well sort off, I believe software developers are kindda like magicians....we say (write) all sorts of cryptic incantations (to everyone else that is), a shaking here, a stirring there, compile, build, deploy and voila! an app is born allowing you to connect with your friends all over your the world...Google+, Facebook, Twitter...don't worry about payment all we need is your data...thats all :-D

Anyway, if you are like me, your mobile phone is your battler, fetching your mail, booking appointments, chatting with friends etc... but before all that happens sometimes there are a few configs you have to put in by hands if you have ever called a colleague to enquire the access point name (aka internet settings) of a telecom operator... or asked about how to activate some service (voice mail? color ringtone? etc), or how to load internet bundle...well then make TelcoCodes your reference point for thats what it's here for.

TelcoCodes is a project I hope will serve as a reference point for anyone looking for any mobile operator service number, from USSDs to SMS to voice. With a simple search(still working on it), you should be able to find which ever information you looking for for any operator (in Ghana)... well thats if they make the information available.

And please please please use the feedback page to contribute if you know of a service that has not been listed. Your effort is deeply appreciated.

I hope you find the service useful. And do tell your friends about it ;-)

TelcoCodes... go check it out now!

Friday, September 9, 2011

SMS Tweetbox: a simple SMS to Twitter gateway

Convert your phone into a simple SMS-to-Twitter gateway. You can use it in private mode to allow only SMS from predefined phone numbers to be tweeted or set it to global to tweet all incoming SMS or filter by keyword. 

SMS Tweetbox is a project I worked on for the Google Android Developer Challenge - Sub-Saharan Africa Edition. The idea stuck me when at the Coders4Africa  launch in Accra my Nokia N95 phone I was using to tweet run out of battery juice. Stuck with just my Vodafone VF225. All it could do was send SMS and  make phone calls. As I sat there all I wondered was why Twitter's SMS to Twitter hadn't reached Ghana yet...Then I figured the I could write an Android app to do just need for a expensive shot code, just the app running on an android phone and voila my Twitter gateway will be live and active!! I could as well get a dedicated phone number and allow others to send in twitter bound SMS :-)

I was a fun and interesting project to work on. Got an android phone? why don't you try it out and give me your comments. Grab it at this link.

Sunday, July 31, 2011

on coding and optimization-itis, and readable code

When code is your friend you always want to make its life better :)
One of the biggest annoyances I face when programming is what I call optimization-itis, i.e. trying to optimize while I code along aka pre-mature optimization, which isn't the best, well more or less. But I want my code to work, with great performance, I want to write as few lines as I can that gets the work done... ie why write counter = counter + 1 when counter++ will do the trick nice.
or I'll write:

int counter = array.length;
for(int i = 0; i < counter; i++){
  // some programming magic

instead of:
for(int i = 0; i < array.size; i++){
  // some other programming magic

what is the big difference you ask, the second one will always have to call the array object and retrieve its size, now that's one step I can limit to just one call instead of for as many times as the loop will run.

That's a simple example just to explain the point, and you are encouraged to use this kinds of simple enhancements (though the performance benefits is so minute its negligible), my brain is whirling with SmsTweetbox code I'm hacking at an app I entered for the Android Developer Challenge-SSA (more on that later :) ) I'll update this post later when I come across more complex situations which can be dangerous is not handled correctly :)

Is there a fix, well yeah, the keyword here is correctness first! optimization later (even though you may never get back to it in a long while), better to have a longer source file I can read and understand and pass along for evaluation than go straight ahead tokenizing a string and pulling the 3rd index and passing that whole line as an argument to a method, because I'm assuming at that by the time the string gets here its not empty nor null (did I mention that Java will be getting has a new sweet null safe method invocation, darn it took them a while)
If you suffer from optimization-itis, repeat to yourself, "correctness now, optimization later", that outta help.