Tool Selection

Tools

Hello Everyone! I am happy to be back this week. Last week was really crazy so I missed a post. However, today is my 34th post on this blog and I am glad to be here! Next week will be Game Developer’s Conference and the West African gaming elder Eyram Tawia will be making a presentation. Now let no man ask him if they can enter his traveling bag because that place is already booked by me.

This week I will be looking at the tool selection criteria that I use when deciding on a tool. As a product developer, good tools should enable you get the job done and not overwhelm you. Before choosing a tool, I am honest with myself. The first question I ask myself is my level of skill. If a tool is higher than my level of skill, I will not use it. An example of this is CakePHP. While I feel is it a great PHP framework, I also feel that it is not for an intermediate developer working without a mentor to guide the learning process. So, at the end of my search for a PHP framework, I chose CodeIgniter. Now in 2 years time, my level of skill will improve. Will I then switch to CakePHP, only time will tell. So without much ado, here is my tool selection criteria.

Popularity and Community
How much buy-in a tool has from people is important. No matter how good a tool is, it does not have a future if no one hears about it. Ask Lotus Note what happened! In its day it was a vastly superior tool to Microsoft Excel. Compare that to Java in its glory days. I learnt Java because of its popularity. Back in the day, there was almost a super-cool status to being a Java programmer. In fact the hype around it made it seem like the cure for everything from world peace to HIV/AIDS and Cancer. Now did it live up to the hype? You be the judge but even to this day when I tell people that I am a programmer, the first language they mention is Java. It also had a vibrant community around it. I say had because nowadays I am no longer sure. There is a law in the corporate realm that whenever a technology giant touches an open source project, the community tends to be slaughtered at the altar of profits. When Oracle took over Sun Microsystems, this law came into effect. But it isn’t all doom and gloom. The Netbeans IDE now has support for HTML5 and for all my hatred for Oracle and what they did with the Java language, Netbeans 7.3 is a great IDE for HTML5 and PHP. What is really cool about it even if you have sworn off Java (Like I did last year) is that you can download just the modules that will enable you work with HTML5 and PHP.

Documentation and Examples
No matter how great a tool is, if the documentation reads like greek, no developer will touch it. Good tools have great documentation! A classic example of this is XCode by Apple. Now I had to do research on developing for iDevices once upon a life time and I was suprised at the level of details of the documentation. Examples also matter! I was trying to create a chart for a particular project. Using Raphael was becoming cubersome so I decided to go in search of another JavaScript Library. In the course of searching, I found Highcharts. Not only did it meet the documentation criteria, the examples on pie chart creation are in my opinion the best among all the charting libraries I researched.

Licensing and Pricing
Yes legal and accounting issues do matter. I personally love FOSS (Free and Open Source Software) but even when deciding to use a product, you must read the license! Highcharts for example is free for non-profit purposes. Now a typical developer will say this is Africa and I will agree. But scaling has a way of catching up with a developer. Once a team gets big enough, it could have a lawsuit on its hands! You can ask Samsung about what Apple did to them. For years the issues where always there but Apple did nothing. Only when they where sure that Samsung was a big enough target did they go after them. Even Microsoft is not exempt from this. In the early days of tech adoption in Nigeria, banks got their software from Computer Village (A place where you can get everything tech in Nigeria). Now this was fake software but there was no stopping the binge that had started! One day when Microsoft was sure that they had found a home on most of the banks servers, they struck! Until that time, most banks did not know that Nigeria had an anti-piracy law. In the end, a lot of money was coughed out and Microsoft‘s dominion was assured in the banking halls of Nigeria.

Easy to Setup
No matter how great a tool is if it isn’t easy to setup, I am not interested! For years, this was my argument with Android. It was always a pain to setup. Now being a spoiled Windows user did not help matters! To illustrate how much of a problem it was, when the Android team finally decided to package Android into a single setup, guess which OS users got the package?

Easy to Use
Here all discussions end! If a tool is not easy to use based on the subjective experience of the user, then nothing else I have written in this post matters. Microsoft is the definitive standard for user accessibility in Africa! I wonder if I would be a programmer by now if I had to learn to from command prompt at the start. Even among all my programming friends this trend emerges. It seems like the guys who learnt Visual Basic (A drag and drop programming environment) first are still programming while those who where introduced into programming with C++ (A command line programming environment) are no longer programmers. Don’t get me wrong, in order to really push the limits of a machine, you must use the command line. The only problem is when you are being introduced to this at the beginning when you are trying to find your feet. In truth all tools have prerequisites for usage and jumping head first into using a tool without knowing its prerequisites is sometimes a recipe for failure. That noted, good programmers also know that the fastest way to learn is via experimentation. If we are too afraid to learn how to use a tool because we are afraid that we might break something, we might as well become project managers.

That’s my piece on tool selection. If you have anything to add do drop a comment in the comments section below. With this post, I hope you also understand why I use WordPress.

Tribute to Neil Armstrong

Neil Armstrong

Happy weekend everyone! By the time you read this, it would be a new month! Its been a rush perhaps August would be called August Rush. On the 25th of August, Neil Armstrong the first man to walk on the moon died. I was really sad when I heard the news. For me it meant that one of those people who pushed the frontiers of dreams and possibilities had exited the world. This post is meant as a tribute to the man. For his full biography, you can check here.

Before the tribute is paid, I think it is only fair not to keep some news to myself. The Create UNAOC Challenge is counting down and 90 days are left! I am not privileged in anyway. This information is freely available on Wetin Dey Shele developed by one of the few developers I personally admire Oge Nnadi. In the course of the new month, I will (threaten) ask him to discuss his use of Open Source tools in the development of the application.

In other developments, after the loss of Samsung to Apple, Samsung bounced back by making sure they are the first vendor to announce the launch of Windows 8 devices. I my opinion, this is the best way to make their stock prices withstand the shock of the lawsuit. The future of game development might be settled on the Windows 8 platform, so it is worth keeping an eye on.

So now the announcements are over, its time to pay tribute. When he landed on the Moon, he inadvertently created a world of dreams. Some of the ideas behind landing on the moon inspired games like Lunar Lander and cartoons like Voltron which for most of us growing up was kind of something to look forward to at 4pm….

While he was the first man on the moon, he did not do it alone. Behind Neil Armstrong is a long history of teachers, trainers and teammates. That’s the reality. No worthwhile dream can be achieved by one individual working alone!

Mission Crew

Apollo 11 Crew
The Apollo 11 lunar landing mission crew, pictured from left to right, Neil A. Armstrong, commander; Michael Collins, command module pilot; and Edwin E. Aldrin Jr., lunar module pilot.

Above is a picture of the “Front Men” behind them are engineers, scientists, government contractors and even cleaners! I think too many people are brainwashed into thinking like the “Man on the Hill” that epitome of the self made man that they never realize that it does not exist.

Even on the moon, one person had to be first. Could it have been any of them? I think so. At the end, it had to be about the team. And that is what this post is really about Synergy! That by working together, a team of ordinary people can get to do extraordinary stuff. In the words of Neil Armstrong “That’s one small step for man, one giant leap for mankind”.

First landing on the moon

My First Game

Ise

This week was particularly interesting. I found the words to complete the About section of this blog. I know people don’t usually read the About section of a blog but do check it out! The Samsung Mobile Ideation Challenge is around the corner and with all the buzz, I feel I should lend my voice to the debate. The first time I developed a game was for the Samsung Application Developer Challenge.

I remember it like yesterday. It was in September of 2010 that I saw the flyers for the Samsung Application Developer Challenge. Having finished at the University of Lagos in 2009 I was sort of drifting. The cash prize for the competition was fixed at N1,000,000 with prizes promised for category winners. When I saw the flyer, it was September 27th. I was working on 3 final year projects for some students. Seeing the opportunity before me, I rounded up their projects by October 4th.

Me at the Samsung Application Developers Challenge

The decision on the entry was made in that week. I decided on a game because I knew that was where I had the best chance of winning. I decided to build my native game ISE which is similar to BANTUMI and AYO. I headed home that weekend to see my parents because I hadn’t played the game since I was a child. My Dad taught me how to play the game again.

Around that time a friend of mine in the University of Lagos was working on AYO in a language I hated then C#. Using his board class as a template, I built the board class in Java. I remember feeling like a bad guy because I had to build my own custom data structure: a Circular Linked List.

The competition was due to close on October 30th but an extension period of one week was given. In the end, I submitted ISE for the competition. By November 6th, submission of entries ended. After the applications where screened and cut to 18 finalists, like this time too voting was how the winners were chosen.

Samsung Application Developer Contest Extension

Christmas came early that day for me that year because on November 25 winners were announced at the final touchdown held at Sheraton Hotel. Even though I came second in my category Games: Casual/Puzzles, I got my tithe on the star prize. The star prize for the competition was won by the Fanconnect Online team developers of Afrinolly

Fansconnect Online Team

Members of the Fansconnect Online Team

That for me was when I knew that I should actively look at Gaming. I had hacked my first game in 6 weeks. It wasn’t easy but it was worth it! One lesson I gained from the competition was the need for me to seek competitions where merit is used to declare winners not quota.

Concerning the competition organised by Samsung. What is my recommendation? I recommend that people submitting ideas take a long look at their lives and ask themselves what they want most. This question is important because participation in this competition will help Samsung achieve their own goals so what are yours?

For me participation in the competition in 2010 was the first step of getting what I wanted: a way out of Nigeria! The trail is like this: Samsung Application Developer Contest -> Tech in Education -> British Council Game Developer Contest -> Catalyst for Change Game Guide.

So did I make it? Yes I did! I write this blog from Ghana! For 3 years I wanted only one thing and I finally got it! I promised I will not hold back on this 8th post so I won’t. Meeting the guys from Co-Creation Hub was a good thing for me. I wish I had met them in 2009. By the time I met them in 2011 my mind was made up.

Trust me on this you don’t become a Software Architect without the ability to decide and commit yourself to your decisions. That said for me the 9 months I spent at Co-Creation Hub were some of the best in my life. They were also the last in my country Nigeria. When the 9 months were up like a baby in its mother’s womb, I had to see the world.

Co-Creation Hub was setup to keep guys like me in Nigeria. I remember some slight brushes with the management of the Hub during my stay in Nigeria. Now that I am in Ghana, I realize that because on a subconscious level our goal clashed, there could be no true harmony. Did I meet potential investors? Yes. I remember the April of this year at Mobile West Africa when I made a presentation for a game, I met a potential investor. The money was on the table. All I had to do was say yes. But I walked away empty-handed. I walked because the investor could not define my life. Only I could. I needed to be free! So I walked away from everything and everyone empty-handed. I learnt a long time ago that the only thing that could be used against me was my desire to survive. But I had lived through a lot in my life. I knew I would rather die on my feet than live on my knees.

That’s all for this week. The next post will be on September 1st. I will close this post with an image on my desktop that I kept as a wallpaper when I was in Nigeria. It is a clip from the story Eulogy for Lisa which was an entry in the L.Ron Hubbard Writers of the Future Contest enough said!

Eulogy for LISA