1 Year Together and 10 Weeks Away

evolution

Its been 1 year already! The above image represents my progression as a blogger. When I started blogging, it was the first time in my life that I would be on the front-end of the web. My training in Systems Engineering made me think in terms of engines and not chassis. Here I was with the task of learning how to interact with the front-end of the web with no training to guide me.

Such choices are life changing. Simply put when we are faced with such choices we can step back to safety or move forward into growth. All growth is painful. It requires a shedding of the familiar and an acceptance of the unknown. Our 1  year together has been phenomenal growth experience for me! This week I will be looking at what it takes to get an online presence.

Get a Compelling Reason

You need a reason to start and stick with anything! It is always difficult to be consistent and without a good reason, excuses will be given and in the end failure will result.

Decide on a Tool

Decide on a tool to use. This depends on what kind of site you want to build, your technical and personal resources and available alternatives. When I first started blogging, I accepted my limitations. As a result, I use a cloud based WordPress installation to get a hang of the entire process.

Using Content Management Systems

Selecting a Content Management System should be based on 4 factors:

  1. Abilities
  2. Support
  3. Usage
  4. Maturity

In the world today, the top 3 are WordPress, Joomla and Drupal. They all have their strengths and weaknesses. When it comes to usage, WordPress is best for beginners, Joomla is preferred by designers and Drupal is preferred by developers.

Start

When the idea for a gaming blog first came up, I wasn’t ready. I was still a programmer then more concerned with writing code than prose. In the last one year, I have changed in a lot of ways. I am no longer just a programmer! My understanding of the entire software development process has gotten better.

Gratitude

I want to thank everyone who has supported me on this journey in the last one year. Their names are too many to mention but you all know yourselves. My family deserves the most credit all that I am I owe to you. The guest writers who make me have content each week deserve a word of thanks. My readers if you don’t come then what’s the point?

I will be shutting down for the next 10 weeks. With 1 year done, I want to take the next 10 weeks to seek a new direction for the blog. When I come back in July 6th, I expect to be back guns blazing.

Thanks everyone for everything!

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.