Chink in the Armor

Armor android

Hello tech.geniuses and the world at large. Thank God it’s Easter, more significantly as a reminder of the purpose of the season as it relates to the destiny of mankind, but also the respite the holidays provide from the rigors of everyday Lagos commuting. Providing quality time to sit and put together thoughts which I’ve had swirling in my head for many many weeks now, transformed by numerous events which have occurred in my daily routines and the world at large. Finally, I present to you a mash-up of gimcrackery and airheaded cerebrations coming forth from yours truly in the form of – Chink in the armor.

Continue reading


Android: Installing a Custom ROM

If you have an Android phone and you’re wondering how to unlock, root and install a custom firmware, right out of the box, then this is tutorial for you

What’s a Custom ROM?

A ROM in the context of the Android Ecosystem refers to the Android Operating System (OS). It is usually located on a locked Read-Only (kinda) section of the phone so that Applications won’t accidentally alter its content thereby crashing the Device. ROMs that were created by the manufacturer of the device are called Official ROMs while those created by third party developers are called Custom ROMS Continue reading

Hey Manufacturers, Please stop copying Apple.

Hey Everyone, It’s been a while since my Epic Rant and I have been quite busy doing research on my secret project. Mocking up designs, scrapping them, doing it again and so on. And after a very successful demo of a prototype with a prospective client, I decided to give myself a short break hence this post. 😉

The Apple Era

It’s clear that this is Apple’s time to shine. Their products are now market forces which makes people “need to have them”. I think this is due to the fact that Apple puts a lot of thought into their products and they design them to impress. Seeing Apple’s success, other companies no longer want to innovate. They just look at Apple products for ideas. Which is simply a shame! What they don’t realize is that..

Apple is not always right

Let’s take a few quick examples, shall we? Continue reading

The real ‘G’

Hello tech.geniuses and the rest of the unprivileged world (Sheldon Cooper-like derogation, and thankfully it ends here. You should see ‘the big bang theory’ if you haven’t). I’d like to mention a thing or two about the ‘G’s (geniuses? You ask).

Recently, I was discussing with a friend about how useless our Multilinks Blue® 3G modems which we acquired over a year ago had become, comparing them with those from the GSM operators, he asked ‘aren’t they all 3G?’ (Yes, that G).Well, that depends on how you look at the situation and I hope to explain later. The GSM operators brand their HSPA modems as 3.5G with Etisalat even calling theirs 3.75G, though I haven’t checked out the latest products from the CDMA counterparts (Multilinks, Starcomms, Visafone etc.) Whenever these companies brand their products in such a way, I tend to see it as a marketing strategy, customers would naturally say things like, ‘My 3G modem was pretty fast, 3.5G should be a blast’ or ‘Swift is now providing 4G, awesome!’.

There’s actually a lot more behind the Gs beyond speed (well, speed appears to be the major catch). First of all G stands for Generation, so each G is describing a particular generation of mobile telecommunications technologies and networks with the recommended services they should offer for them to be classified as that G. For example, 3G stands for 3rdgeneration, though I wouldn’t know what to call 3.75G. On a more serious note, the decimalized Gs are actually technologies which are a transition from a former generation to the next, with the features of the next generation not fully realized but well advanced than the former. So I’ll go right ahead and mention a thing or two about the different generations of mobile telecoms networks and technologies.

First Generation: Did you know that there was 1G ?(logically yes, but really?) Ok then, I’ll start with the first generation though there isn’t much to say here. 1G as it is now known emerged in the early 80’s. These cellular networks were designed to basically handle voice traffic only and they transmitted voice traffic in analogue form (talk about inefficient). Capacity was low as they used frequency division multiple access (FDMA) as the multiple access scheme, so once a user was on a frequency channel, no other user could access that channel and we all know how scarce frequency resources are (try using your Wi-Fi or Bluetooth device near a microwave oven). That’s not the even bad news, networks belonging to different companies or countries were not interoperable and coverage area was usually small compared to what we have today so products had limited markets. Examples of 1stgeneration technologies were Advanced Mobile Phone System (AMPS), Total Access Telecommunications System (TACS) and Nordic Mobile Telephone (NMT). I bet you’ve probably never heard of these technologies and neither had I. 1G wasn’t totally useless as it paved the way for the newer generations to come in and people generally became aware of the potentials in mobile communications.

Second Generation:I’m usually disgusted whenever I think of how long it took Nigeria to catch on with 2G considering the fact that it actually started off in the late 80’s/early 90’s (we all remember GSM started here just 10 years ago, the good thing is that we aren’t too far behind now…well, somewhat). With the second generation, the basic problems with 1G were identified and tackled head on. Initially, it was proposed to handle voice traffic, SMS and fax, but with the need for data services becoming apparent enhancements were made. One great thing about 2G is that it transmits information in digital form and this allowed for better voice transmission, greater security through encryption and easy integration with other digital systems like ISDN and the internet. GSM turned out to be the most successful 2G standard with its support for international roaming. GSM increases capacity by combining FDMA with TDMA (time division multiple access) where each frequency channel is divided into timeslots and each user allotted a timeslot which periodically repeats itself in a very short time (about 577µs). A maximum of 8 users per frequency channel can be supported (for full rate, though two users can be made to share a timeslot under half rate) and the number of channels would depend on the number of transceiver modules installed. We know the GSM operators – MTN, Glo, Airtel, Etisalat in Nigeria and others like Vodafone, T-Mobile and AT&T abroad.

Another popular 2G standard is CDMA (code division multiple access), commonly known as cdmaOne or IS-95 which is much more popular in North America. It turns out CDMA was originally developed by the military (its invention I think was credited to a female spy who doubled as an actress). CDMA carries out channelization by using different codes to differentiate users who are all on the same frequency. The CDMA operators in Nigeria include Starcomms, Visafone, O-net, Zoom etc.

In order to understand how the multiple access schemes work in 2G technologies, think several people in the same room speaking different languages with each pair at a low tone so as not to interfere with each others in CDMA, while in GSM users are compartmentalized into smaller sound-proof rooms so they don’t interfere.

Second Generation Evolution: Typically known as 2.5G, the need for support for data services was realized and traditional GSM could only support data rates of 9.6 kbps (full rate) or 14.4 kbps (half rate). Three technologies emanated during this era as far as GSM is concerned, two of which we know well. The earliest was High Speed Circuit-Switched Data (HSCSD). In HSCSD, more timeslots were combined (maximum of four per user) to give data rates up to 28.8 kbps uplink and downlink (2 timeslots each) or asymmetrically 43.2 kbps downlink and 14.4 kbps uplink (3 to 1).

The next was General Packet Radio Service (GPRS). GPRS is packet switched so users will always get an ‘always on’ service characteristic of the internet. A lot more was changed to implement GPRS, new logical channels were defined along with new coding schemes. Also new elements that connect the existing GSM core network to the IP-Internet network were introduced. The coding scheme used and multiple timeslot allocation can allow data rates up to 171.2 kbps (theoretically).

The last 2.5G technology (which is referred to as part of 3G in some texts) is Enhanced Data rates for GSM Evolution (EDGE). EDGE further improves data rates by using a more advanced modulation scheme known as 8 phase-shift keying (8-PSK) to a maximum of 48 kbps per timeslot (i.e. 384 kbps per channel -8 timeslots). It involved some upgrade between interfaces connecting the Base station to the Base Station controller as well as installation of new EDGE transceiver.

We’ve all seen GPRS/EDGE capable phones and frankly they are the most common technologies used to access the mobile internet in Nigeria with 3G coverage still limited.

So with 2.5G in place, the stage was set for 3G to come on board.

Third Generation: the third generation technologies were designed to support multimedia communications – pictures, sound, and video. Hence large data rates that would sufficiently support these services would be required. Different standards would be developed but in order for them to be called 3G, the International telecommunications Union (ITU) created the IMT-2000 standard which would define characteristics of any 3G standard some of which are:

· Data rates up to 2 Mbps (depending on mobility)

· Worldwide usability.

· Support for Packed switched and Circuit switched services (typically data and voice)

· High spectrum efficiency, security, quality of service and reliability.

The three most recognised standards are UMTS (Universal Mobile Telecommunications System, which uses Wideband-CDMA and evolved to the HSPA we know today) which is an evolution of GSM (2G) to GPRS/EDGE (2.5G) to WCDMA (3G), CDMA2000 which is an evolution of the original CDMA (IS-95) which is where our Multilinks Blue 3G modem lies and Time Division Synchronous CDMA (TD-SCDMA) which was developed by the Chinese and frankly I know pretty much nothing about at the time of this write up.

I’ll focus more on UMTS/WCDMA from here on which is what is used by the GSM operators in Nigeria for their 3G upwards networks. WCDMA which is the radio access scheme used under UMTS is similar to the original CDMA except the frequency band is much wider hence WCDMA (A carrier band is 5MHz in WCDMA and 1.25MHz in CDMA2000). This allows for higher data rates with WCDMA due to a higher chip rate (3.84 Mcps for WCDMA and 1.288Mcps for CDMA, never mind that for now).

UMTS/WCMA has gone through different evolutionary stages, the original known as 3GPP Rel99 (3GPP stands for Third Generation Partnership Project, a group of standardizations organisation from different countries working on UMTS as the 3G technology, while Rel99 is the December 1999 release for UMTS) involved a change in the radio access method of existing GSM networks (from TDMA/FDMA to WCDMA) and the introduction of elements necessary to support the change like new antennas, base stations (now known as Node Bs), new radio network controller (RNC) with very little changes to the existing GSM core network.]

Remember the earlier 3G phones like the Sony Ericsson k800i or z750a? Connecting these to your PC would give a typical Rel99 connection.

sony ericsson z750a

Third Generation Evolution: Further enhancements where made to the earlier release of UMTS. In 3GPP Rel4, time division duplex was introduced to WCDMA and more changes were made to the core network to further improve data rates. 3.5G is typically release 5 which introduced High Speed Packet Access (HSPA, from which we have HSDPA – downlink and HSUPA – uplink). In HSDPA, data rate is increased to as much as 14 Mbps with increased capacity and reduced delay, particularly for file downloads. This was achieved by introducing a new channel known as HS-DSCH (high speed downlink shared channel) with a more efficient modulation scheme known as 16-Quadrature amplitude modulation (16-QAM, earlier WCDMA used quadrature phase-shift keying – QPSK). Also a mechanism known as ‘fast scheduling’ is used to give preference to users with better radio conditions (better signal strength, less interference etc.) so those users will have better experiences than others under poor radio conditions rather than a round-robin mechanism where every user is given equal priority irrespective of the quality of their radio environment. The point is that users under good radio conditions can use network resources more efficiently, unlike WCDMA where power control is used to increase transmission power to users under poor radio conditions. Think of HSDPA as the real ‘downloads monster’ (well, for now and for cellular networks).

The modems being offered by GSM operators in Nigeria today (MTN Fast link, Etisalat Easyblaze, Glo NetPro etc.) are typically HSPA capable and are backwards compatible with WCDMA and EDGE depending on coverage and radio conditions.

3gmodem mtn fastlink huawei modem

Now, I’ll cautiously say 4G really isn’t being implemented here in Nigeria yet though other countries are just beginning to roll out commercial networks tagged as 4G and typically Nigeria may follow suit like 2-3 years after (better than the 10+ years it took to deploy 2G, though I think CDMA might have been in Nigeria slightly before then). You might ask, how about Swift’s or Mobitel’s 4G? I’ll get to that soon. Ok, on to pre-4G and 4G then.

Fourth Generation:ITU came around with their specifications for the fourth generation of mobile networks, this time tagged IMT-Advanced and some of the features were:

· These networks would be fully IP based (voice communications would no longer be on circuit switched networks)

· High quality of service for multimedia applications

· Data rate up to 1Gbps (mad or what?) or 100Mbps for fast moving nodes

· Dynamically shared network resources between users.

Two candidates emerged as the 4G technologies namely of choice, Long Term Evolution (LTE) Advanced from the 3GPP (yes, the GSM to GPRS/EDGE to UMTS to HSPA people again) and IEEE 802.16m or WirelessMAN-Advanced from IEEE.

Prior to these two, there were the original LTE and Mobile-WiMAX (IEEE802.16e) both from the same guys as above. They are often described as 3.9G technologies as they do not fully meet all the IMT-Advanced requirements but were branded as 4G by those who rolled them out commercially.

Now, to the Swift and Mobitel 4G which I must say is not really 4G (definitely not at all!!!). Firstly, the ‘G’s as I mentioned earlier describe mobile cellular networks, Swift’s isn’t by any means mobile (and don’t say the modems are portable) and secondly, I believe they offer WiMAX (not even mobile-WiMAX, though I stand to be corrected) and WiMAX is certainly not a 4G technology. It’s almost like saying WiFi or 802.11n is 4G. As I mentioned earlier these are just marketing strategies. Anyway, 4G is supposed to be badass and all; I hope it comes around soon enough and I came across a document about 5G a while back but didn’t bother to read through. To summarize, I’ll use a diagram which I obtained from the book “UMTS Networks Architecture Mobility and Services, Wiley 2005”.

Evolution of Mobile Telecoms Networks

I hope this write up was a little enlightening and hopefully will help not to mix up terms though I barely scratched the surface on the individual technologies (not that my fingers are deep enough, I’m just learning myself). I’ll be glad to receive any corrections and pointers and I’m sorry for not citing my references within the article, it’s a really bad writing habit.

Nokia Developer Training

Nokia Qt and Java Training (Lagos)

The past three days have been wonderful thanks the awesome training we received from Nokia West Africa. The three day workshop was jam-packed with intense training on the J2ME platform for the Series 40 Handsets which is the most popular phone line in Nigeria and of course the Symbian Platform.

Originally I wanted to cover the event live using twitter with the hash tag #tgenius. But I had to stop as there was simply no time to tweet. What could easily be a month’s training was summarised into three days and as a result, It was information overload.

Day One – Java Mobile Edition (J2ME)

The first day, we were introduced to the J2ME Platform. This is the platform for mobile java applications especially the Nokia Series 40 handsets. So we used the Nokia series 40 as a case study. The series 40 phones includes the very popular Nokia 5130 Express Music phone. These set of devices aren’t really smart phones even though they can do many of the things that smart phones do like email, surf the web, Play music, Video and Now with Nokia’s latest iteration, They added Push Notifications, Location and Touch Gestures. Nokia’s drive to push smart phone features to the mass market is certainly commendable.


  1. Introducing the J2ME Platform
  2. Designing a simple J2ME Application using the built in UI
  3. Designing Games and  Custom UI using the Canvas APIs
  4. Getting Started with S40 APIs using (SMS  and Location APIs as case studies)


  1. Main Presentation Slides
  2. Sample Code
  3. Examples and Resources

Required Software

  1. Java JDK 7
  2. Netbeans IDE
  3. Nokia Java SDK
  4. S40 On Device Debugger

During the program the instructor designed a simple text messaging application using aforementioned APIs with the Netbeans IDE.

Personally, I’m not new to the J2ME platform so I wasn’t really attentive (Ma Bad). However, I learnt a few new tricks like using the flow editor in Netbeans rather than coding everything. And about Nokia’s New Series 40 v6 Phones that will soon hit the market with really innovative features like Location services using the Cell-ID Technology (Even though the phone doesn’t have GPS which to me is a touch of genius).

Day Two –  Ovi Browser and Nokia Web Tools

Nokia Web ToolsThe second day started with a wrap-up of Day One and then we went on to the Nokia Web Application for s40 devices. These are similar to the Web RunTime (WRT) Applications present in their big brothers i.e. the Symbian S60 and Symbian^3 devices. However unlike the Symbian Smartphones, The web application resides on Nokia’s Proxy server and served on-demand to the phone. There by optimizing the Web Application for its smaller screen and lower memory. So when the user downloads your app, He/She would typically download a small Java Application that simply points to your web application on the Nokia Proxy Server and Using the Ovi browser to launch it. Also note that the WRT Tools and SDK is not restricted to developing for s40 Devices, You can create Web Applications for Symbian devices as well. However with the S60 Devices, The Nokia proxy is not necessary as all the HTML,CSS and JavaScript files are on saved locally on the device.


  1. About Web Applications
  2. The Ovi Browser and How it Works
  3. How s40 web apps work with the Nokia Proxy and Ovi Browser


  1. Lecture Slides
  2. Getting Started Guides

Required Software

  1. Nokia Web Tools

Day Three – Qt and QML for Symbian Development

The third day of the event didn’t start with Qt Training. However, I separated it for a reason. I had high hopes about learning about Qt and what it had to offer. But I was completely blown away by this framework. I haven’t been this excited about a framework or library since I learnt about JQuery. In fact, If you think of Qt as the “JQuery” of C++, you wouldn’t miss the mark by much.

Permit me to give you some history: Being a C++ programmer, I was interested in the Symbian platform especially the s60. However, I was seriously turned off with how disorganized and complicated the framework was. Even to setup your development environment was unnecessarily cumbersome. And so after sweating to run a “Hello World” Application. I vowed never to come anywhere close to Symbian OS Development. Qt (pronounced ‘Cute’) is the complete opposite.

Qt on the other hand transcends Nokia and Mobile Development. Its an awesome framework that companies like Autodesk (Maya), Google (Google Earth), Linux (KDE), Adobe (Photoshop) e.t.c have been using to develop multi-platform applications. Unlike Java which is “write once and (hope) it runs everywhere”, with Qt you write once and build everywhere. If you design a Calculator application, you can immediately build it for your Windows 7, Mac, Linux, Symbian and now Android Phone or Tablet without touching a single line of code.

That alone was mind blowing enough but it doesn’t end there. We were introduced to QML which is essentially a framework wrapped around the C++ libraries. The craziest thing about QML is that its incredibly simple and easy to learn. It looks similar to JSON, you write your logic with JavaScript and with a “Cute” IDE, you don’t have to be a programmer to pick it up and use. During the lecture, the instructor told us how he taught some graphic artists about how to use Qt and QML. After that, they went for an application contest and won against several programmers. Its that incredible.

  1. Introduction to Qt
  2. Coding and Testing a simple Qt application
  3. Qt Quick (QML)
  4. Designing and Custom UI using QML and JavaScript
  5. Using Mobility APIs like Maps, Location
Other Documents
  1. Publishing Guide for Ovi Store
  2. Publishing Checklist

On a final note, Nokia is organizing a competition called Create 4 Millions where the winner takes home a whooping $1,000,000. So this training couldn’t have come at a better time. Like I said earlier, We moved at lightning speeds to try and cover up. So most of it still requires personal experimentation and self learning.

And so a BIG thank you to Teemu Kiijarvi (EDX Lead Nokia West Africa), Jarmo Rintamaki (Training Manager) and most of all to Tony Torp (Instructor)  for the training. It was simply Awesome.