If the Vapour Does Not Vanish

It’s always nice to make medium-term plans and goals, but as wisdom would contend; tomorrow is an unknown until it becomes today. The apostle James cautions us against boasting about tomorrow:

Come now, you who say, “Today or tomorrow we will go to such and such a city, spend a year there, buy and sell, and make a profit”; whereas you do not know what will happen tomorrow. For what is your life? It is even a vapor that appears for a little time and then vanishes away. – James 4:13-14


This, being my personal space, has always been a place where I can talk about things that bother me; things that I ordinarily wouldn’t converse about with anyone, so if you’ve found yourself reading this, and you’re not into reading about strangers, you could save yourself the time by not reading further :).


My Church-hopping Dream

I had really would have loved to have gone church-hopping around the US earlier this year, but that didn’t really happen. Instead of a work contract in the US, I ended up going to Canada. In retrospect, if you were to ask me whether I’d choose the US if I had the choice; I’d probably abstain from the choice. I don’t believe in coincidence, and as unhappy as I initially was about my allocation; I grew content and acknowledged that I believe in a God who has a purpose for my life; that nothing is a coincidence in this life.

I also met and made friends whom I’m hopefully will remain in contact for as long as possible. One other thing that my plans hinged on was being able to save up for all the flights and buses travelling around. To be honest, when I was in Canada, I was broke most of the time, and had a bad experience as a result of that. I was lucky to be with a friend at that time, because I wouldn’t have survived alone.

Perhaps being where I’ve dreamed of going to, and yet being unable to travel as I had desired, would have broken my heart. I thank The Lord that even if I don’t get what I want, He still provides for what I need.t

On the Present

I’ll admit that I’ve become too absorbed in work and my projects that the time that I devote to my daily reading of the Word, and other devout deeds, has been at the danger of being insufficient.

A friend bought me the New King James version Bible, which I’ve always wanted. I intended on reading it in a year, but I’ve fallen behind over the months. I’m embarrassed to say how far I am, but I can still complete reading it if I up my current pace. My friend keeps saying that I’m being hard on myself, but for someone who’s lived life as a renegade of sorts; it’s important that I read, hear and pray more often, that I don’t fade away in things of this life.

One of the things that I’ll acknowledge running the risk of, is that of being proud and boastful. My project https://rwt.to is nearing the beginning of production; and another related project is also coming close to seeing light-of-day. To get to where I am now, has been a tough lengthy struggle. My routine at some point was to frustrate myself all weekend, and go cry out to The Lord on Sunday evening church, asking for strength to continue working on rwt-to.

For a person who walks away from things easily, it’s not by my own will that I’ve come this far. It’s a testimony I guess, that some of the things that got me through were solutions that I dreamt of when all my wit had failed me.

We Suffered; We Persevered; We Succeeded; We Forgot our Help

We often forget where we come from after we survive tough times. I currently sense that I’m at that point where I might forget my struggles if my venture succeeds. This is really a reminder for myself that I didn’t get where I am now by my works, because by such standards I would have given up a year ago.

On the Future

Though we can’t boast about tomorrow, James says that:

Instead you ought say, “If the Lord wills, we shall live and do this or that”. – James 4:15

An unplanned life is a life without purpose. If I choose to go about living each day without goals for the future, I could end up finding myself in the same place after a number of years. So, if the Lord wills, I hope that I shall live to do this or that, being:


I wanted to register for a BSc. degree this year, and I’m still keen on seeing it through. From a career perspective, it makes sense that I do something else. I don’t know what the future holds, and whether I have the will to carry through such ambition. I’m also conflicted on whether I can adjust my lifestyle to accommodate studying.

Bethel and Passion

I still want to see my dream through and visit Redding and Atlanta in the near future. Going to Redding would make it convenient to also go visit Silicon Valley, seeing as it’s central to all our start-up dreams. If it would be possible, I’d like to attend one of the Passion conferences, probably in Atlanta.
Both require a lot of finances, and logically the best thing is to find a few non-essential expenses to cut off, so that I can start saving up for the possible trip back to the US. Passion conferences are normally in January, so 2016 is the most logical estimate to save up for.

If the Lord wills, that the vapour that is my life does not vanish, I’d like and hope to save up to be able to go to Atlanta and Redding in 2016.

We Get What We Vote For

In a democratic election, everyone gets what they vote for. It’s such a beautiful concept, one which as South Africans, we should embrace; going back to the struggles that took place while some of us almost-born-frees, and the born-frees, never experienced.

Our 5th national democratic elections have surely been interesting for me, not because it’s my second national vote, but in that I am wiser than I was 5 years ago, that although I am not a politician, I am at least more clued up on some of what is happening in my country.

There are a number of things that I noticed in the run-up to, and the elections themselves. This is my account of them. I do disclaim that as this are my opinions, there will obviously be an element of anecdote, interpretations of circumstances at their face-value when that might not be the case, and opinions that may or may not be backed up by facts. If I do not explicitly state something; please do not deduce anything or label me as some category of a person, especially in a defamatory manner. We live in a democracy, we have rights as per the Bill of Rights on our beautiful Constitution, and I am responsibly using my rights to freedom of expression.

Now that the mandatory stuff is out of the way, on to the good stuff.


There is no green-grass in a drought

Not a history I like revisiting at will, but as many South African children from ‘previously disadvantaged backgrounds’, I didn’t grow up without my fair share of suffering. It’s however not about competing on who’s seen more suffering, because it’s not a vanity contest.
For a major part of my childhood I lived without my mother due to her health conditions at the time. If I recall properly, I was around 12 when I first stayed with my neighbour at home, he was 14 at the time. His sister and himself were staying alone, because their mother was working ‘the kitchens’, elder siblings were also working. Fortunately his sister was much older and more responsible than the both of us. There were tough times when we didn’t have anything to eat for the day, how we survived is only by God’s grace [that is my belief, so if you are not of the same belief, you can substitute this with something else like a big-bang or an equivalent bang].

The following year I moved to go stay with my grandmother’s sister (great aunt?). It was tough, in their elderly pension-years, they were supporting 8 dependent mouths that needed feeding, from me to the youngest child, there were 6 of us, sleeping in the same room. Yet, with such love was their support administered, that the tough times that we often faced faded away easily. In my tough puberty years, I am glad that I had someone to teach me impartiality by treating everyone as if they are their children.

To go into the specifics, in a typical previous-gen African family; there are often many children, with a vast age difference. The older children would often have a ‘piece-job nyana’ or more formal employment at the mines etc. So we young ones relied on our grandparents, and grants from the working-class to help here and there.

Central to that support structure was our grandparents’ pensions, i.e. my great aunt’s husband (wait for it … great uncle), as he had worked his entire life until he took pension. His pension wasn’t much, but bearing purchasing power at the time, and other circumstances, we got by. Another grant system was our government’s social grant system. My great aunt was already receiving it, so it patched most of the holes.

When all I have is R500 a month to feed the whole family, the last thing I want to be uncertain is whether I’ll continue receiving that R500.

[As a sidenote, that's how much the grant was back in my day, in 2014 I believe it's about R1270]. My great uncle later went on the social grant when his annuity came to its lengthy end. Thank you ANC-led government for the support. Though the grass wasn’t green, we survived the drought.

Baby Boom, for a water buffalo

Now that I mentioned the social grant, there was an element of the grant that was intended for good, but resulted in an indirect social ill. The government introduced the child support social grant. It was much needed, we had a lot of children who needed some support, so the R100 (amount at the time, might be out by a few Ront) was a great addition to the R500 that pensioners received.

Statisticians can try prove/disprove this one, but on the ground, I remember the motivation for a lot of teenage pregnancies being to receive some money. Call it the ‘hustle of the day’. Our despondent sisters who weren’t finding employment were being tempted into reproduction having an element of security in receiving a grant of sorts.

To be clear, I’m not directly inferring that people started having kids to get the grant. I held that opinion, but I later grew out of it as it was too riddled with anecdote, due to isolated cases of people who proclaimed such intention. What I won’t disagree with was that the grant had the side-effect of not convincing people that child maintenance was no childs’ play.

An incident which most of us should be familiar with is when MEC Faith Mazibuko was quoted telling an unemployed mother to ‘close up’ her legs and stop having babies in 2009 or so [Evidence: http://www.citypress.co.za/news/mec-must-pay-telling-mother-close/]. By the way, probably slipped through election-fever, but the taxpayers have settled with the woman for an amount of R350’000 (the news article is from last week, at the time of writing).

In closing of this section, remember that in the coming 4 to 10 years, most of these children who were born in that era will be coming through our education system.

It’s Based on Outcomes

Educate a man

Nna ga ke je tlhapi, tlhapi ke noga, noga ya metsi, e ya lelesela, setlhare sa baloi. [Translated to an extent as: "I don't eat fish, it's a water snake, witches' medicine/muti"]. It comes from an old Tswana song, I just remembered it when I was about to type “Educate a man, feed him for life”, with the obvious reference to fish.

I have written about our education system about 3 years back, and my views are still similar, so here is what I wrote: my opinion on our education system.

Despite the matric pass-rate, I am convinced that our education system is failing us as a country. To add some weight to my claim, I have seen it first-hand at the times when I tutored my class at high school, and when I tutored in varsity. I attribute two problems to this:

  1. Weakening standards. We all saw OBE and its earlier implementation as disastrous
  2. The disincentive to think. We generally are a young generation that doesn’t “think” in the sense that we don’t seem to be applying our minds at school.

Cue the pitchforks, Maths Literacy, you are killing us.

Education costs sweat and blood

Our parents didn’t have the opportunities that we have in getting educated, my mother had to leave school after Std 8, so she could go work and help the family out. I think similar with her two sisters. She wished for education so badly that there’s a time when she went back to school, but it was just at the period when she fell ill, so she never completed her night school.

One of the many things I praise her for is that she saw the value of education, and she demonstrated it by giving me the best she could in that department, while she could. There are 2 schools of thought;

  • those that believe that ‘geniuses’ are born, and;
  • those that believe that ‘geniuses’ are made.

I currently fall in the latter. I learnt to read fluently in 2 languages before I could figure the writing thing properly. In my last 2 years of pre-school, I had an after-creche teacher who used to smack the lights into me, along with her nephew. She was a middle-school teacher, entrusted with the great task of being a ring-bearer, carrying the ring of illiteracy to Mount Doom [yes, I just Lord of the RInged this one]. By the time I went to sub A (the current Grade 1), I was breezing through material like a prodigy.

Though I went to public schools all my life (except for a dodge 2 year stint at some ‘private school’), I wouldn’t really have known better on what the difference with a private school was. At least until i got to middle school and high school.
Through mother’s sweat and blood, and the stripes that I bore for having laziness beaten out of me, I loved education throughout school, and survived in tough places where the system wasn’t strong.

Kudos to the teachers that believed in me. In my one-year stint in Rustenburg, as my punishment, I think I cleaned our classroom more than anyone else that year. I did it with a smile as I knew that my class teacher was punishing me out of love.

Also, thank you to the ANC-led government for pushing the policy of free education. In grade 12, at the height of financial suffering, my school fees were only R150 that year.

It’s stealing if we don’t contribute back

Personal and family struggles will always exist, and that’s not a good excuse to not contribute back to society. As appreciation for what my government has done, I hope to contribute more back to our system from this year onwards. Watch this space?

Racial Discontent

This is a tough one, so remember that I’m writing as a young-blood who didn’t live through the Apartheid era.

Grayscale TV Tendencies

Remember the days when we had grayscale TVs? At that time, a ‘black’ person was black, and a ‘white’ person was white. No yellow bones, just grey bones.

We haven’t forgotten those days I believe. In the last weekend of the election campaigning, Blade Nzimande was at Soccer City in front of the masses, accusing the opposition party of being a ‘white party’ blah blah (me paraphrasing). At the same time, the attribution of the ruling party to the concept that it’s a ‘black’ party in 2014 is also sad.
I’m not disregarding the demographics of our country, but I’m saying that by saying such things during electioneering, we run the risk of keeping the grayscale mentality alive.

This is a topic which I will acknowledge the lack of qualification to dwell on, so i’ll briefly move on.

Sunshine Policies

The EFF is fighting for economic freedom in this lifetime. I think we were headed in that direction with policy, but its implementation is where it failed. I’m referring to Affirmative Action, BEE and the tender systems. Much has been said, but I’ll focus on some observations of mine.

We have passed through the phase when there was extreme window-dressing in the hope of meeting certain quotas and credentials. That phase obviously did a lot of harm.
We are currently going through its aftermath, which is the period where business doubts black people’s ability to deliver. This is isolated, and my view here is based on fireside chats with friends, I don’t believe to have experienced what I am about to talk about, so no witch-hunts please.

‘Young black professionals’ are in the phase where they get into the workplace, and there are some minorities of people who still have grayscale tendencies of presuming that just because you are ‘black’, you had inferior education, and you might not deliver as your other counterparts. It’s a strong and bold accusation to make, so I’ll make sure I don’t drop the baby here.

The Rebuttal

This is what is called a rebuttable presumption, which is the assumption that something is true until its proven otherwise. (I won’t forget my Honours Accounting lecturer putting me on the spot asking me such deep English, he was out to get me lol).
Such presumptions might be racially motivated now, but the danger that we face is that they continue to exist because of the current throughput of our education system.

I tutored 1st years in varsity, and I could clearly see the difference in the quality of thinking from that era. That era, and the subsequent years, is the one that is joining the workplace now. It’s not isolated to a specific race, but we as people who have been in the system for a few years, are seeing the clear drop in quality of thinking in the current crop of graduates.

Obviously to get where you have was because you proved yourself competent by passing exams,,but it is; the problem-solving ability, the inarguable demonstration of clear well-thought reasoning, that we assess you on. For me, such element is missing. If things continue ceteris paribus, as a country, we’re in trouble.

There is grave danger in that as the OBE generation (gross generalisation on my part), you will fail to rebut the presumption as we have managed to.

Our government is making strides where it can, there are some blunders like the Limpopo textbook isolated cases, but we as people educated by our system, it is our responsibility to help our government out. It is for the good of our future labour force. Else we will be supporting youth unemployment subsidies with our salaries to come nice!

Kudos to all those who are dedicating their time to contributing back to the system. I can’t let the left hand know what the right hand is doing, so I won’t compete with mentioning what ad where I contribute.

Stupid Voters and Clever People

This is a very sensitive issue, I won’t talk much about it, except that:

No South African has the right to call another South African ‘stupid’ or the equivalent for voting for the ANC. There is a clear history, there is a lot of uncertainty on what would happen if opposing parties win the elections. There are people who have the valid fear that they will lose their grants if the ANC is voted out, etc.

As a taxpayer who’s been paying probably north of R5’000 a month in taxes, it is frustrating for me to hear of all the waste of my money taking place. There is a lot of good that my money goes to, and there is a growing element of an unhealthy lack of accountability eating into our state coffers.
I believe my vote reflects my action based on how I feel about my money. Someone else’s vote might be an extension of the joy they feel for our liberation, others for the grant they receive, you get the story. That however, doesn’t give me the right to call someone names because they don’t see what I see. I too don’t see what they see.

As taxpayers funding our free education, our social grants system, subsidising business learnerships, let’s not forget that at the end of the stick is someone living the story that I told. They are not ‘stupid’ for voting for what they don’t want. For me the biggest confusion has been people saying they are unhappy with the leadership, but they will still vote for their respective party. It’s something I resigned to acknowledging to be human nature. A mother sticks to her child even in wrongdoing.

Our responsibility as South Africans is to keep fighting for those who do wrong to be brought to justice. The ruling party should acknowledge in the coming inaugurations, that it should clean up its act. ‘Clever people’ are likely to be more disgruntled, the effects of certain short-term decisions will catch up to us. Though some of us oppose e-tolls on our highways, we pay for them from our pockets, and in the increased cost of goods that are transported through those roads.

“In South Africa we are in an unique position in that we pay twice for the same thing” – Moeletsi Mbeki, public speech at Wits (circa 2011)

When we are careless of our table manners, the dogs on the ground get the pieces of food that we keep dropping. This is just an analogy, I’m not calling anyone a dog.


The Opposition

Kudos again to the EFF, we look forward to the ‘Commander in Chief’ of the EFF joining Parliament. Well done DA, we will forever wonder whether your strategy of attacking ‘Zuma’ worked, but you too have done well. To those parties that lost out, losing is tough, take heart and show character.

As South Africans who always say that the opposition has nothing to show, remember that the perceived entertainment taking place in Parliament is the execution of accountability, which is enacted by our laws, and enforced by the opposition. In simple English:

The opposition’s role is not to govern, but to make sure that the government does its job transparently.

So let’s please think about this and stop saying that our opposition is useless. The media succeeds often out of the questions that the opposition raise.

The Media

I have seen many instances of shoddy journalism and direct misinterpretation. Please continue raising the standard of excellence whilst State Information is not yet protected.

Our Government

5 more years, likely of many more to come. Honourable members of government, please start on a clean slate and write a good story for the country, one which will make us your employers deem you worthy of Parliamentary busts next to that of tata Madiba in the coming decades.

The Public Protector, and other Chapter 9 Institutions

Ausi Thuli, may I please kindly have your autograph before your 7-year non-renewable term is over.

I have heard great stories of the Auditor-General, and to the IEC, please do consider electronic voting, I really hope that you will be able to resolve grievances and allegations of dumped votes and so on.


Let us stop with unfounded conspiracies, thinking that politics are a gameshow or Mickey Mouse cartoons. It is our lives that are affected. Let us take interest in our country, and as hard and blind-sighted as my words are, dwelling on the past is nonconstructive. Let us assess our current-day leaders on their current-day achievements and shortcomings.


In a democracy, people get what they voted for. I just hope that what we voted for as a collective is 5 years of a good story to tell our children and the world. Since we’ve casted our votes, let us not stop there, but continue taking an interest in the well-being of our nation. Let us please lose the grayscale mentality.

Thanks for reading, I’d appreciate healthy comments, corrections and other views.

#VoteSA 2014


Kudos to the IEC, had a smooth election process today. All political parties that were at the polling station were seating at the gate of the church (was the same last time I came here to vote). I was with mom, whose mobility is unfortunately impaired; after a few minutes of standing in the queue she called me, saying the IEC people will allow me to vote so she doesn’t have to wait for me.

I hope all other polling stations will have a turbulence-free process :) Happy Election Day SA, remember; go out there and vote!

In the Land of Opinions

In the land of opinions, the men with facts are kings.

In the land of opinions, it is the loudest voice that wins.

It’s been a while since I engaged in senseless arguments with someone. I remember back in the days when we’d have silly arguments like fanboys, about Android vs. Apple vs. whatever. I should be sad for those wasted hours of my life.

I think we often disregard the importance of biting one’s tongue in the midst of pop-culture arguments, fruitless discourse as the Puritans of old would call them. The best way to prove your point is by demonstrating it, but if you want to win an argument in sheer style, you have to go a few extra steps and demonstrate it in style. That begs of us to do what we do to the best of our abilities.

There will always be detractors, those people who seem to always disagree out of blinding pride and envy; those who won’t agree with you even if it is for their own good to. The way of handling such – as I have learnt – is by not entertaining their views. Not entertaining one’s views, however, is not a license to ignore them. It is the realisation of when to walk away from a discussion.
I have lost many an argument in the past, and I will continue to lose more of them. I’m just glad that in most of those losses, I stepped back and realised that winning was wasting my time, and I walked away.

The beauty of modern technology is that if one manages it well, it always comes back as a record proving or disproving one. Similar to how Davy Jones told Bootstrap Bill that he was a liar, transcripts are always there to disprove one’s opinion at a later time.

It is the battles that win the war, but not every win of a battle contributes to the success of the war.

The one thing I wish we all learnt was discerning when something is merely an unsubstantiated argument, so that we could go back to our caves and engage in some research. With elections upon us, it seems that we’re all now expert politicians, and I just got insulted by some stranger for having an opinion which he disagrees with. What a waste of my evening :(


World in Union

If you came here, you probably know World in Union, the Rugby World Cup theme song. For me the version by Ladysmith Black Mambazo and PJ Powers is the version of the song that hits home. I found myself playing it at work in the morning, the only childhood memory I have of the 1995 Rugby World Cup, which none of us can deny as one of the iconic moments that shaped our country’s reconciliation.

There are a number of other anthems that remind me of the World Cup, but ‘World in Union’ will always remind me of what I never witnessed as a child. I’m here with mom listening and singing along to Ladysmith Black Mambazo, and a few other songs that I can still remember from the 95 RWC soundtracks. Pokarekare Ana (Maori anthem), Swing Low, Sweet Chariot (England anthem).

UNISA 2014!

UNISA registrations open tomorrow. I’m quite excited to be registering for my third degree. No I won’t be working with Deborah Patta though.

The problem’s that I still haven’t decided what I want to study. Knowing myself, it will likely end up being decided at the casting of lots. For whatever I end up studying, I have a lot of recognisable prior knowledge, but I’m not taking shortcuts, doing all 30 modules.

The idea is to tackle two years’ modules in 2 years, and spread 3rd year over two years. Here’s to not having a life over the next 3-5 years!

rwt.to Update

It was around this time last year that I wrote my board exams, about 52 weeks back. I remember after writing the last exam, thinking that I’m done, and I can now focus on my project. See, it was very tough in the weeks that I was studying because I had to discipline myself to try not to think of my little project.

So, at around this time last year I scrapped all the code that I had worked on, and started rebuilding rwt.to. It’s been quite a journey! I remember in February thinking that I would have everything done by end of March, but then I went on a lengthy secondment that took a lot of weekend time away from my hands.

I kept on moving my target, like a man reaching for the moon.

What is rwt-to?

It has a dodge name, at least that’s what I’ve seen some people thinking as I explained what rwt-to is.

rwt-to: an integrated public transit planner based in South Africa. It helps a commuter find their way using public transport, giving them schedule time estimates and cost of trips.

I finally framed the best way to explain it, can I get a “whoop whoop!”

Getting to Know JavaScript

The technology behind rwt-to is JavaScript. I use JavaScript to write all the logic, to interact with the datastore and of course for the interaction on the client-side. As you’d know I use Node.js and MongoDB, a bit of a controversial couple.

When I first started with rwt-to, my JavaScript knowledge was quite sparse. I could do some ‘stuff’ on the DOM, with the help of jQuery anyways, but I realised that I didn’t really know JavaScript. So having spent a year; conceptualising, scribbling and learning to create in JavaScript, I could say that I have certainly learnt a lot. I’m at the point where I’m no longer figuring out how to implement something, but how to implement it efficiently.

I remember getting my search algorithm working in January, it was a night/morning worth all the celebration. I had achieved something that would validate my concept, and give me the strength to continue on with the project over the coming months. Over the months I’ve built on top of that algorithm, a number of features that I believe will make rwt-to a useful service when it’s ready for public use. I can’t share the detail yet, but I’m silently excited!

Node.js – why you in my toolbox?

I remember at the end of July, I set a beta launch target of mid-August, and I worked as hard as I could to meet the target. I stumbled upon a significant blocker, after all the math and crazy stuff I had done to get things working, I still had a bug that I couldn’t chase down and fix.
There’s a night where I spent about 2 hours on the Internet reading up on Node.js and its use cases. It was really a time of severe doubt, because I felt like I had invested 9 months of my life in the wrong tool for the job. Either way, I had to press on. I was at the point of accepting that if things don’t work out, I can always start over with a different language.

although sometimes I come across as a pessimist, I consider myself to be a cautious optimist, a realist

I tend to be realistic when it comes to such things, although sometimes I come across as a pessimist, I consider myself to be a cautious optimist, a realist. At some point that week I considered drawing a timeline for how long it would take to port all my work to good ol’ PHP. However, I still knew that PHP wasn’t the right job for the task at hand. I remember having overflow errors in PHP when my search heap grew out of hand, and that alone reinforced my belief that JS would work as I was managing well with huge heaps. I should disclaim though that it’s likely I was doing something wrong, and I’m not really blaming PHP for that, but I had other issues with it.

I eventually found the solution to my bug, and it had to do with JavaScript referencing. Even though I was passing an object around for manipulation, it wasn’t being cloned, so I was doing all sorts of crazy things to the same object. I’ll illustrate someday anyways. On with the journey I went, and now the moving target was set at early September.

MongoDB flame wars

I must say, I started using MongoDB when it was at 2.2 (at least that’s what I remember). I liked it not because of ‘web scale’, sharding and all the wonderful things </s> that were being said on the Internet about it, but I liked and chose it because of the following:

  1. It had geolocation indexing, which is a no-op when you’re building a location-based project
  2. It promised a dead-simple API for working with arrays. To illustrate, in PHP & MySQL I had to convert an array to a string before sending the query through with the ODM. That’s risky and cumbersome. I’m sure there are more efficient ways of doing it (prepared statements I think), but for someone with little knowledge, it turned me off.
  3. Control. Novice developers using PostgreSQL with PostGIS could maybe agree with me here:
    PostGIS feels like a black box, along with PostgreSQL actually. The software promised all the features that I wanted for geolocation, but I felt uncomfortable with putting my data in a black box and knowing that it just works without having control of certain functions. With Mongo I had to build most functions from scratch, allowing me to understand everything that was happening, and to be able to control how certain functions work.
  4. A query API that I understand. 
    Even though I didn’t know the details of how some DBs work, I can safely say that my SQL is in shape. I can get dirty with SQL, so things like JOINs don’t worry me much. The problem comes when trying to read a long SQL query mushed together with some PHP, at 3 a.m. Headache much? With Mongo, I found that I could quickly read what I wrote and see where I’m going wrong without having to run the query itself.

Instead of complaining about the lack of JOINS, I embraced the art of denormalising data

Having said all that, I do appreciate the work that MongoDB Inc. (10gen) are doing. There’s a lot of criticism about MongoDB, some of it valid, and other just failed people trying to make MongoDB a scapegoat. An occasional story pops up on Hacker News, but I’m lazy to find some links. I RTFM when I started using Mongo, and I understood that I was losing the ability to JOIN, but for me I saw great wealth in what I was gaining as I felt it would work for my edge-case.

12 months later, Mongo is in version 2.4 with 2.6 a few months away. I have GeoJSON, which my algorithm heavily relies on as, and I’ve been able to complete my prototype. In beta testing Mongo is faring well, my data is backed up in the clouds, and I’m happy.

Thanks MongoDB, and Obama!

JavaScript Slow?

Another speed-bump that I came across was with JS performance. As I added data to rwt-to, I noticed performance degradation. An algorithm that once took 5 seconds at most was starting to run over double to triple the time, and sometimes timing out. I got my hands dirty and learnt a bit of profiling. I was able to reduce the algorithm back down to about ~7 seconds.

However, as I added more data again, performance took another hit. As I learnt about algorithm running times, I realised that I had an exhaustive algorithm, and I needed to apply heuristics sooner than I had anticipated. This realisation was sometime in October, so I’ve been working hard when I can to improve things. I currently have a worst case running time of ~40 seconds in production. I have managed to reduce it down to ~20 seconds in development, but it’s still bad.

If I can’t answer the question: “How do I get from Brakpan to Centurion?” in less than 5 seconds, I’d be failing the user of my service.

With that said, I’m working on some exciting stuff that will greatly reduce running time, I had initially targeted 500 milliseconds, but that’s a bit impossible right now. I think 5 seconds is still acceptable considering that Google does it in about 2-3 seconds.

Data, Data, Data!

Taxi Industry

Anyone with ambitions of creating a public transit planner, but hasn’t ran into the taxi industry, should pack up and go back home.

The taxi industry is the core of our public transport in South Africa. I estimate that you can get to over 90% of populated areas using taxis. Most bus services are regional, stuck in the past regarding availability of data, and are similarly unpredictable. There have been great advances with the likes of Rea Vaya and MyCiti, but those cover a small geographic part of the country. The meat is where the taxis are.

I had/have a strategy regarding taxis, but boy was in for a shock when I started implementing it! I’ve had a taxi association official hint to give me information if I bribe him, I’ve had associations not respond to me, threats when approaching taxi officials. I just haven’t gotten the t-shirt yet. There’s major rivalry with some of the taxi associations, so it’s sometimes a bit dangerous asking for data as the associations keep it confidential.

I’m not done yet, in the words of Arnold: “I’ll be back!”


If you live in Joburg, you probably know Metrobus, the unicorn bus service that covers most of the Joburg area, yet not many of us know where all these buses come from and go to. I could safely say that there’s probably only one person in the Southern Hemisphere who knows all the routes and stops.

I’ve had experiences akin to Juggernaut hitting the brick wall in The X-Men. I was told about all these fancy tender processes that I had to follow with Metrobus, procurement policies that I still don’t know of, and later deafening silence. The problem’s that like many government services, you always speak to the acting this and that, and tomorrow another acting this and that has filled the previous acting this and that’s position.

Government is like Hollywood, full of acting roles

It was quite saddening though learning that one of my competitors is working with Metrobus, without them being subjected to the same rubbish that I was fed about processes and whatnots. To be honest, I lost respect for some people in the process.

Yo, Imma let you finish, but I haven’t given up yet!

Metrorail, outdated schedules

Loliwe, Stimela! Anyone have memories of the old Spoornet days? I only have childhood memories :)
PRASA has come a long way, but there’s still the apartheid shadow hanging around. I can safely say that a lot of people still view Metrorail as an apartheid legacy transport system, which came as a result of spatial planning back in the day. You don’t see Metrorail slouching into Sandton or Houghton, though I must say that PRASA are probably doing all they can.

The problem with Metrorail is that we don’t have access to their schedules. Officials don’t respond when I ask for information, and the schedules on their website are ancient (though some might still be applicable). I wish Gauteng Metrorail could take a leaf out of Cape Town Metrorail’s book.

Y U no Integrate?

Lastly, we’ve heard lots of talk about government integration of public transport. I still say that it won’t work with the taxi industry, and the odds of success are slimming down further with every new ‘smart card’ system that each provider implements. We can only grab popcorn, wait and enjoy the show.

Recently I saw Rea Vaya bus stops right next to Metrobus stops. I think that’s what we refer to as integration. Millions are being poured onto the Gautrain, which a friend of mine says benefits the few. He is probably right, which is the sad thing cos although I grew up in the ashes of apartheid, what government is doing with their planning seems to be sort of similar to the spatial planning of the days gone.

Ah, before I forget the orange bus service … To cover my back with people who will wonder, here: PUTCO PUTCO PUTCO. In case you Ctrl + F and search for it, I’ve mentioned it thrice.

Just slap the word freedom around, and it’s all post-94. I know, corridors of freedom!

Now now, balance thyself!

My apologies, I am quite frustrated by the suboptimal planning, I don’t mean to criticise our government that much. My apologies if I appear biased. One of the reasons why I’m working on rwt-to is the hope that I’ll be able to lend a hand someday in helping with optimising public transport. Until I get there, I’ll remember that I live in a glass house.

Mzansi, Competition; Innovate!

I was telling the creator of awayto.be (a competitor) a few months back that I feel that SA isn’t producing the best it can. Aside for awayto.be, the current public transit planners lack the most important thing: integration. To be honest, I expected more from CS graduates and engineers, more than something that just piggybacks off querying GTFS data. That’s the reason why I’m continuing to work on rwt-to when there are already public transit planners out there. To bring some competition, a challenge that will benefit commuters in the long run.

I’ve seen a lot of misdirection from the competitors, playing their hands casually in the open, and all the such. A few months ago one of them announced that Metrobus support is ‘coming soon’, while there are other bus services with information publicly available, yet being ignored. I’m still curious as to how that would have worked. As far as I’m aware, only the bus drivers and controllers in Metrobus know what’s still going on out on the streets.

I’ll stop here before I make enemies too soon, again, I live in a glass house. I don’t yet have a solid product to showcase, so I can’t be criticising people who are making things happen.

To Conclude the Sermon

You know when the preacher says he’s almost done, but he’s still got another solid 30 minutes? I’m kinda like that … But let me spare the reader’s eyes and time.

The State of Mobile Apps

Without getting too far ahead of myself, I plan on building apps for the following, likely in that order:

  • Android
  • Nokia (S60) and perhaps Windows Phone
  • BlackBerry, the dying phoenix
  • iOS

Of course, time will tell. I must first complete my optimisations, and complete the design of the website :)

The Moving Target

With all the above said, I now expect rwt-to to be functional by April next year. I’ve learnt lessons not to estimate timelines that are too unrealistic. I got burnt on Twitter when my beta launch flopped. Lesson learnt!

Helping Hands

Lastly, I want to say thanks to all the friends who have been helping me out. From beta testers, voices of reason, educators and advisors, and everyone helping with data.

I can’t write a Grammy acceptance speech without first being nominated, so I’ll happily give thanks where it’s due when rwt-to is online.

Church Hopping Canada

Today something reminded me that in everything that happens, I still don’t believe in coincidences. I made peace with not going church hopping in the US, I can always do it at other times. An alternative that I did not think of though is going church hopping in Canada.

Spatially, it’s different to the US in the sense that the province that I’ll be in doesn’t have a lot of towns/cities, and I’ll already be in the capital, which isn’t huge itself. Other places to likely visit might be French states, and far away to go on a Saturday/Sunday in winter. So I started looking on the Internet to see the churches that the city has, and I believe I’ll have enough to keep me hopping around for most of the 10 Sundays there.

So, with that said, I’m officially going to start planning for Church Hopping Canada 2014!

I haven’t had a chance to go pick up something that I purchased online two weeks back, it’s currently at the Strubensvalei Post Office. I thought I’d go pick it up this morning, but somehow I struggled to find the location of the post office. Google Maps pointed me to the correct place, but I was skeptical seeing how some POIs are sometimes not at their correct locations.

I took on to the internet to find the address, and I kept getting Corner Fred and Harry Street. The ‘official’ address from postoffice.co.za was “corner Vrede and Harry Streets”. Problem is, there is neither Fred/Vrede nor Harry Street in Strubensvalei. I went back to Google Maps, and after a minute of looking I just thought:

These idiots, the post office is on corner Fredenharry, not Fred and Harry!

As the politicians always speak, heads must roll over this mistake! I ended up not picking up my package as I was becoming late for work.


Google Play Music Coming to South Africa

Android users, Google fans, rejoice! I just discovered something on Google Play Music :)

We now have local South African music on Google Play. It’s only available through All Access for now, but it’s all there! I searched for a few Kwaito and Hip Hop artists, and gospel of course lol.

I think that it’s only a matter of weeks before Google announce availability.

For example, I searched for We Will Worship, and found their latest album from this year. Here’s evidence:



Again, the music is now only available on All Access, trying to buy an album will result in the fugly default 404 page:


I’ve been hoping for this for a while now. I’ve found it a bit off that I’d go to iTunes to buy music, then have it upload to Google servers. I just hope that they don’t price their music in the same way as the US, because we all know that iTunes is cheaper in SA than in the US.

Here’s to waiting for Android Police to tip us on the announcement :)


I can’t sleep, I don’t want to sleep. For the past few days I’ve been having nightmares, the most recent one was this morning. There’s really three weird things about these nightmares, firstly being that I can’t force myself to wake up from them, secondly that instead of waking up frightened, I wake up saddened, and lastly that I just can’t recall anything about the nightmare when I wake up.

I have a lot on my mind, yes, I always have a lot on my mind.

I have a lot on my mind, yes, I always have a lot on my mind. If I don’t have a lot on my mind, something is wrong, so having a lot on my mind right now isn’t the problem. I do, however, have a lot on my plate. I’ve been trying to gain weight, so I have to have a lot on my plate. So since it’s currently good to have a lot on my plate, that can’t be the problem.

I am however in the process of solving an interesting but sad puzzle, it’s been giving me some of my nightmares. So I’ve been doing a lot more reading and researching, but tonight, I found something interesting! Sort of a jackpot that’s been rolling over for months on end.  I don’t know if I should call it interesting or just shocking.

There’s a lot that one can learn by stopping and observing how other people behave.

n order to learn a lot, you have to put things in context, behaviour, time, significant events etc. So now instead of having a few pieces to a small puzzle, I have more pieces to a larger puzzle. Though I write a lot of what’s on my mind on paper, this now bigger puzzle is to be kept in my innermost, where childhood monsters once lived, where My Keeper lives.

It’s a secret I can neither keep nor share, but I must do something about it, so I will do neither of the two, a third option. There’s always a third option!
I always believed that every person has a hidden side, two sides to a coin, right? Yes! Two sides to a coin. It made sense, we get to see the side that you want us to see, unless we take charge and toss the coin ourselves. Though it makes sense, I didn’t see that my puzzle might not be a coin, a third side?

There’s always a third option!

Yes, indeed, a third side. It was hiding right in the open. You puzzle you! You turned your face around and hid right in front of my eyes, but I have found you out. Your third side, I never knew it existed. What shall we say you have? A three-sided coin? Surely my analogy is now clouded with my new-found confusion.

I still can’t sleep, my nightmare has woken with me, and is now in my conscious mind. Surely if I were a cat I would be done for! I can’t stop the curiousity. Can I coexist with my nightmare in my waking moments? Surely such is an absurd imagination …
Wait, imagination! It might make sense, what if this is all a figment of my imagination? But surely I can’t think that, I ruled it out, and as the puzzle stares me in the eye saying “solve me, solve me!” I am faced with a dilemma, do I solve (or rather attempt to) it, or do I let it unravel itself?

Time! We need time to let it unravel itself. We need time alone to think things through, but surely we’ve had enough such time? No, we always use time yet we always consider how we do not have it. It is always running out, we’re not remaining in our youth, we are decaying, losing our youth to time. We surely have to say what we always say, we do not have time! Does this mean that we have to solve the puzzle since we can’t let it unravel itself?

No! Have we not been learning? There is a third option, there is always a third option, it’s not a coin, even a coin can choose to stand and not fall on a side. But a coin can only do that under the right and perfect circumstances. Something must hold it still, as in its nature it will always fall on a side. So does that mean that something is forcing our puzzle’s hand towards the third option? Is our puzzle still a coin? This is confusing, why did we choose a coin?

Fine, have your way then. No more coins, just options. I’ve considered two options, but now I must look for the third option. It won’t be an ‘aha!’ moment though, my third option is the hardest. My third option is the nightmare that I have blocked out of my mind. My nightmare is an option, it might even be the option. I can only explore it by facing it. I can only explore them by facing them. Am I scared? No, I am petrified! I never thought I’d consider this option, but my puzzle must be solved, no matter what the cost is.

The thing with costs is that they appear to be two-sided, but they too have a third side. The side of no cost. In the side of no cost, both of us don’t care what we lose. We don’t count what we gain. We are freed from the burden. Why carry such a burden when we were once given a promise written in pure blood? He surely said “my yoke is easy and my burden is light”. So why carry mine own burden when there is a lighter one? Why fight my nightmare, walking as a man tossed around by the wind, wondering what happened, what is happening and what will happen? Does one on the face of the Earth know such answers?

Surely they come and profess to know the answers. Men of flesh as us, men who fall as us, who are as weak and wretched as us. Why ought we trust in man, forsaking He who created him, along with all things including those which we cannot fathom. What do these mere men of flesh possess? Is it great insight, deeper than the stars that were born and have died but still resonate in the time continuum? Is it the bravery and the trait of a king of the jungle? Even the king falls, for the jungle is not his alone.

I once looked upon the mirror, and I saw what I am. I since forgot what I am, but now I remember that just as these men, I too am made of flesh, I too fall. Yet there is one being who is not mortified in me, his name is pride. He walks with an axe, chopping all my roots, burning all branches that grow within me. Surely he is the enemy! We must fight him with all we have, with all it takes.

As I see, so I am.

How can I fight what I see, who I am? I can’t do it on my own, I need help to conquer my nightmare. Else I might boast in mine own strength, being blinded by folly and self-deceit, opening mine self up to an intrusion of sevenfold such demons, legion for they are many.
Just as the men of flesh, so too I am. I am evil at heart, filled with ill intent. I cannot help myself. My Defender once pleaded my insanity, I forgot that I still know not what I am doing. He called me to himself for my healing and sanctification. He saved me, and he said that he would neither leave nor forsake me. How true his words are at this moment!

I failed a thousand times, yet His mercy remained.

I failed a thousand times, yet His mercy remained. He raised me up each of those thousand times, and this time He raises me up to face my nightmare. The air around me is full of malice, deceit, ill-intent. I ought call upon My Redeemer who lives, and ask for redemption from my nightmare. The elders said “resist the devil and he will flee from you“. The devil, my nightmare is the devil, and surely it shall flee, as I shall resist it.

I shall be liberated from my nightmare, I shall sleep and wake, as I continue to call upon My Helper.

Microsoft Office 2013 Nightmare

Microsoft is really screwing up with this ‘cloud’ thing. Ever since I installed Windows 8 over a year ago, I’ve been slowly growing frustrated with Microsoft’s offerings, especially their cloud services (yup, SkyDrive or whatever they’ve been forced to rename it to).

I’m using Office 2013, and it’s quite fantastic {especially Excel), except for one irritating thing, their crappy Office Web Apps:

I edit a document with Office Web Apps, and it firstly doesn’t sync with SkyDrive, then I can’t open the document, period!

I’m getting to the point where a lot of my Excel stuff just doesn’t work when I get home and try to continue where I left off. Don’t get me started with the Android app that I’m paying R90 bucks a month so I can have on my device(s).

I’m sleepy, and frustrated, so I just need some place to let some steam off. In the weekend, I’m going to go into a lot of detail on my disappointment with Microsoft of late. Oh, and I’m still on Windows 8, can’t upgrade to 8.1 cos of some unuser-friendly error that keeps downloading 3.4GBs of rubbish to only tell me that setup has failed.

Microsoft better take a leaf out of Linux’s book when they release their next Windows version, cos I’m just tired of this.

Habits die Hard

Tonight I decided to whip out my work laptop to join a Google Hangout (this is one of the most awesome communication tools out there, once you get used to it), I put the laptop next to my PC, and my brain immediately started behaving as if I’m on multiple monitors.

I kept swinging stuff across the screens with my mouse and trackpad, so frustrating cos after a few seconds of not seeing the cursor moving on the other monitor, I’d realise that I’m working on two separate devices. I have a blind spot for mouse cursors (read, I’m kinda blind), so I always have to swing/toggle the mouse around to find its position, so I tend to go into a micro-panic before I realise that the mouse is moving on the other monitor.

Completely random story, but because I deliberately shut myself off Twitter and Facebook, this was the next best place to come post my nonsense of the day :)