Mpumelelo Msimanga's blog

Questions to ask when planning a web site

Tell me about your organisation

Knowing about the customer gives you context to user for the rest of the conversation. There is a different between a multi-million dollar company and a sole proprietor.

What is the purpose of the site

I use this question to gauge the customer expectation of the site. Though I have listed one question, I always add follow up questions based on their answers they give. After this question I now have an idea of the vision the customer has of the site Typical answers for this question include:

  • We want to sell more products or acquire more customers
  • We want customers to interact with us using our site
  • We want people to know who we are and what we do.
  • We want people to know where to find us
  • We want to sell products online

What functionality would you like to do via your web site

You will need to explain what the functionality means.

  • Blog
  • Would you want to update yourself
  • How often will you be updating it
  • Do you want to have an online shop and process payments online

Do you have sites that you like that we could use as reference

Gives an idea of the users preferences in terms of look and feel. I have found though that users will like very different kinds of sites.

What is your budget?

Some customers are likely not to have this information. This is when I give my breakdown on the costs associated with different types of web sites.

Introduction to SQL: FROM statement

In my first post on SQL for I wrote about the SELECT statment . Using shopping in a mall full of shops as a real world reference I mentioned in a mall one has to visit different shops to pick specific items. The act of picking something specific like brown seed loaf from a shelf full of different types of bread equates to the SELECT statement.

The FROM statement does not differ in meaning when used in SQL or when used in conversation. I imagine a shopper reporting back after some shopping at a mall, "I bought some bread FROM the bakery and some sausages FROM the butcher". In a database the shops would be called the tables. Hence the FROM statement is always used to specify from which tables data must be selected.

Introduction to SQL: SELECT statement

Different types of professionals need to perform data analysis of some sort. From journalists to doctors doing research. Sooner or later in your data analysis journey you will have to use a database and by extension the Structured Query Language (SQL) used to manage and manipulate data in relational databases.

Like any language SQL has words/terms and each word has a definition and rules about when and how it should be used. I am always at pains to convince none IT people that creators of IT languages go to great lengths to use words that not confusing when designing languages. The first thing I advise new entrants to SQL is to look at the English dictionary meaning of a word to get an idea of how the word should use used in SQL.

SELECT is the first term you will encounter when starting out in SQL. I am a strong believer that if you understand the point of the term, learning to use it is just that much easier. Let me use an analogy for the SELECT key word.

Imagine a database being a mall, a collection of shops in one building. You are sent by your mother to buy a some items armed with a shopping list (because men do not listen or your memory is not as good as you think it is):

  1. Bread from the baker
  2. Cake from the baker
  3. Sausages from the butcher
  4. Towel from the linen shop

In SQL you should think of the SELECT statement as your shopping list. It has to be precise because for example bakers sell more than just bread. They also sell muffins, cup cakes, Swiss rolls, bagels and so on. You need to pick what you need, in this case bread, from an array of items on the shelf. In the same way when using the SELECT statement in SQL you have to be specific about the columns that you want from the database.

Marikana in numbers and why you shouldn't be a miner

One of the main aims of data visualisations is to represent information or data in a graphical format. A picture can tell the story of a thousand words with a single glance and speak the same language to all people looking at the picture. It is hence always interesting to represent stories with a social and political side in terms of a single graph. In mid 2012 a tragic incident happened in South Africa, 45 people lost their lives during a strike by by miners working for Lonmin mine in Marikana1 2.. The miners were striking for a 22% increase in their wages. 22% is just one of the numbers that tell the story of Marikana. This post collects some of the numbers and represents them in a graph.

There are many opinions on the Marikana tragedy. The unions have blamed the mining company for the manner in which they handled the strike. The workers say the union leaders, particularly those belonging to the National Union of Mineworkers (NUM) have lost touch with the miners.

Social commentators point to the fact that South Africa is one of the highest ranked countries when it comes to the gap between the rich and the poor. It is not for me to say who is right or wrong but perhaps looking at the numbers will give some perspective state of salaries and expenditure surrounding the Marikana tragedy.

It will take a Lonmin rock driller – who earns on average R10 500 in a total-cost-to-company monthly package (working 8 hours a day underground) – almost a decade to earn what the company’s chief executive earns in a month3. The commission established to investigate Marikana will reportedly cost 75 million Rands 4. Its safe to say the lawyers and judges involved will make much more out of Marikana than the miners.

Two very useful open source SQL editors

Working in Business Intelligence (BI), I write and execute SQL statements every day. Actually it is more like every other minute. The SQL tool I use is thus very important to me. Over the years I have mainly stuck to SQuirreL SQL Client and wandered off every once in a while to check out different tools. One thing is for sure, no one tool will every have everything you need. At some point in time you have to make a choice based on the features most important to you.

Different database vendors will each have their own frontend specifically developed for their database. Oracle has SQL Developer and Sybase has Interactive SQL and so on. I would advise any budding BI practitioner to probably start with the tool supplied by the vendor. In most cases you will have less compatibility issues and the user can start writing and executing statements from the onset.

For those who use more than one database at a time and want to use the same SQL frontend I would recommend SQuirreL SQL Client or my current favourite tool of choice SQL Workbench\J not MySQL Workbench as these are two totally different products.

Over the next few weeks I will do some blog posts to highlight features I find useful when using SQL Workbench\J and SQuirreL SQL Client. Here are some features technical and not technical that both tools have in common that have led me to use these two tools.

    None technical reasons:
  • Open Source Software, both are free for commercial use and with the source code available are open to developers to debug or contribute features.
  • At the time of writing both are under active development with regular builds being released. Probably about a build (new version) a month apiece. I use the latest testing builds and don't stick to the stable versions. For the faint at heart stick to the stable release versions.
  • Active forums, where I was able to get a response to some questions I had on the applications.
  • Both applications run on different platforms due to the fact that both are written in Java. This allowed me to use both applications on Windows and Linux
  • Technical Reasons:

  • JDBC as connectivity means it is probably likely that you will be able to connect to any database. Most databases provide a JDBC driver.
  • Data explorer component from both products are quite customisable. It is possible to customise the schema's that display, customise the SQL statements generated such as the INSERT, UPDATE or DDL statements created.
  • Data import and export wizards for data in various formats including CSV, Microsoft Excel formats XLS and XLSX and OpenOffice formats ODF is possible using both tools. You are likely going to have to experiment here most specifically with date and null fields imports.
  • Both tools provide for customisations of how SQL history is handled, frequently used SQL statement, syntax highlighting, connection settings and session customisation to name a few.

Both SQL frontends are very capable and the learning curve for both is pretty steep. This can be expected given the complex nature of working with SQL and working on different databases. Most decent SQL tools have some complexity and instead of learning many different tools I decided to invest time into learning how to effectively use SQL Workbench\J and SQuirreL SQL Client.

I would urge you too to take a serious look at these two tools because you will not get much better generic SQL tools. The alternative which I trailed for a couple of years is using different tools for different databases. For MySQL one could use a tool like HeidiSQL that runs on Windows. For Oracle one could use as TOra which is an OSS frontend primarily focused on Oracle. This would mean learning a different tool for each database once uses. This is okay if you don't change databases often but I find myself using different databases regularly.

Don't be fooled by the dated screen shots on both web pages, these tools look much better. Here are the home pages of the two tools:

Over the next year I will be writing some blog posts with in-depth step by step instructions on how to use some use functions in both tools. Do I have a favourite out of these two, not really. SQuirreL SQL Client is the one I have been using the longest and I really like what I see with SQL Workbench\J.

Distraction free writing

Just how did the writers of old manage to churn out so much material given that they did not have:

  • Word processors,
  • the Internet and
  • Google for all research?

My take and I am probably not the first person to say this is we may have made technological improvements to make writing much "easier" but along the line we created more things to distract us. For someone working in IT, I have always regarded writing as unimportant and have always done it using a normal word processor such as MS Word or LibreOffice Writer. It never occured to me to use anything else. It was after an extended period of non-productivity I realised the reason I was not writing as much as I would have wanted to was because I was just too easily distracted.

Distraction Free

Here is what typically happens, I start writing a piece of documentation, pause to look up a word or term I want to write about and before I know it I am immersed in a WikiPedia article on the history of Linux.

I am trying out two writers for now. I urge you to try them out, you will not turn regret it. After not being able to write a blog post for over a year suddenly I have managed to write two posts in a week and have finished countless work documents. Here are the ones I am trying out:

I have been able to use both applications concurrently without any difficulty. The main feature both provide is a blank screen with just you and your text. They both do have spell checkers and a few more nifty tools like pattern replacement.

Some articles to read with references to other distraction free editors are:

Do try out a distraction free editor, all your writing tasks will become much easier.

Good bye paper books hello ebooks

I might be an early adopter when it comes to software but I am old fashioned away from my computer. I like reading but in recent years I have not been able to read too many books. There just is not enough time in a day and some of the books I would like to read are just too bulky to carry around. I travel light so I will either carry a book around or my smart phone, I mostly chose the latter. At least with the smart phone I can read blogs online.

Enter the Kindle, I was given a Kindle as present by my lovely wife. After a couple of months using the Kindle I have to admit I don't care too much for good old fashioned paper books any more. They take up too much space, are cumbersome to carry around, can take days to be delivered when ordered online. I love the convenience of the Kindle. The Kindle is light, simple, understated but it reads exactly as a book would with no glare from the screen. I can read from it for hours on end.

Most people who ask to have a look at my Kindle initially try use it as a touch screen. I put the blame squarely on hype around the iPad for that :-). No the Kindle (at the time of writing) does not have a touch screen, it does not even have a colour screen and yet it does the job of replacing books well. I am able to load PDFs, MS Word Documents and saved web pages to the Kindle. I am able to read software manuals sitting on the bus without having to carry the printed the paper around, if I get tired of the Linux manual I switch to reading another book.

Yes there are disadvantages to ebook readers. The inability to share your books, if you are stuck in a desert and do not have a power outlet to recharge the reader (by the way I charge my Kindle once every 2 to 3 weeks, I turn WiFi off when I am not using it). I can live with the disadvantages. I putting all my paper books up for sale.

The Kindle is not the only ebook reader available. Just to name a few:

Barnes & Noble NookUS$139.002GB

Ubuntu Linux Experiment

My parents have a desktop PC that is not connected to the Internet. They have had this PC for close to 4 years and 50% of that time the PC has been unusable. The PC runs Windows XP and viruses collected from memory sticks and cameras have constantly rendered it unusable.

I have now decided to install Ubuntu 10.10 on the PC. This is the experiment and several questions come to mind. Will my parents be able to use software packaged with Ubuntu? Will the software available cater for all their needs and will my life be much easier? Easier as in will I have less maintenance to perform on the home PC and less questions to answer about how to do certain things.

I will be making updates to this page about the experiences. The first update is I managed to buy a PC without any operating system and I have already saved some money not buying Windows. To be correct I have kept within the law by not pirating Windows.

EDIT: Apart from a document that "disappeared" as it was accidentally moved to another desktop I am happy to report that there have been no problems with the Ubuntu installation at home. The news is made even better by the fact that I am getting reports of people coming over to my parents' place to type documents as their computer is virus free.

E-Commerce with Paypal in South Africa

A momentous event occured in South African e-commerce when First National Bank (FNB) made an announcement that it was now possible for FNB account holders to receive payments from people using Paypal. Why is this a big deal for the cost conscious business or budding entrepreneur:

  • One of the biggest costs to getting started with an online business was the amount of banking costs one had to incur in SA. Using the big four banks you needed to open a merchant account. As we all know banking fees are not cheap in SA, what more a specialised account.
  • The other alternative was to use a third party payment gateway. The SA based gateways on the main have a monthly fee which is a big deal if you are not making money from your web site
  • Paypal is a division of eBay and has over 200 million users. That means you have over 200 million clients who will find it pretty easy to purchase from your site.
  • Paypal charges a commission for actual sales you make. From the FNB web site this is 1.5%. When you are not making any sales you do not pay anything. This is perfect for the small player as it reduces the start up costs.

For more information visit the FNB web site:

Blogging Software

“Content is king”, and one of the major goals of this site is to have quality up to date information on the latest Free and Open Source Software (FOSS). The question I had was, how to best keep the site updated. Lets face it, typing out articles in text boxes is not the most inspiring activity. While Firefox does have a built in spell checker and Drupal, my choice of blogging web software ,has various Rich Text editors (MS Word like interfaces for typing in content, think web mail interface). I still get distracted by all the things going on in by browser, not to mention all the buttons and other menu interfaces on Drupal. I decided to look around and see how professional content creators go about it. Blogging software seems to be the name of the software the professionals use. Even though I must admit to having seen the odd software release statement I had never paid much attention to this type of software. Yes I am one of those people who has suddenly discovered something that others have known for years, still I do feel rather pleased with myself. I read through some reviews, here are a couple of links:

After reading through these reviews and ensuing comments. I came to the conclusion that Windows Live Writer (WLW) and Scribefire were the two tools to try out first. I was able to install both write some blog and publish the test blog entries … you may see one such test floating around on my blog. WLW makes you feel like you are using MS Word. It has a familiar look and feel to it. The interface is clean and allowed me to concentrate on writing the content. Setting up WLW to publish to my blog was pretty straight forward and in no time I was able to push through some content. I installed two flikr plugins. Installation was straight forward, like installing any application on Windows. I simple chose the default options and after clicking next a couple of time the installation was complete. The first time I uploaded an image to flikr, I was asked for my flikr account login details. From then on including images in my posts was easy enough. Scribefire is a Firefox add which I finally settled upon. The main reason being the intergration with Firefox. At any given point in time I tend to have more than a few applications open at a time and adding another application is not going to make my life easier. I am using Scribefire for this current post. Since I have made the choice, I think will  post a couple of posts before posting a review on Scribefire.