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!”

Metrobus

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.

thumb12[1]

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:

google-paly-music

 

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

music-unavailable

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 :)

Nightmares!

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 :)

Why I’m Investing in SSL

A few weeks ago I (‘we’) silently added SSL to rwt-to (http://rwt.to). The reason is quite simple, “it ain’t safe no more”. When I went shopping for a bare-metal server I looked at performance, price and regulations, and didn’t take much into considering latency or where most users of my current/future projects are located. Even with that said, the US seemed a good option, as I got a very ‘powerful’ server for the same price I’d pay locally.

Now the biggest problem with the server’s location is that it’s in the US, in fact, even all the VPServers that I use are in the US. This was always not a problem in the past, but due to the data hose of NSA revelations that keep pouring in, I get concerned by the day.

NSA and Google

I use Google services, the NSA have seen all my data one way or the other, and in practicality I don’t have a problem with that. Google gives me services for free, in exchange for my information so they can sell me ads. I’m happy with the model, it works out well for me. In principle, however, I am very concerned with the fact that government agenc[ies] have warrantless access to my data. Not just my data as a consumer, but also data as a service provider.

The recent revelation that the NSA had access to Google’s dark fiber, which was unencrypted petabytes of our information, is one of those things that have tipped the scales for me. I’ve never had to think about it, but now that I have thought about it; I didn’t expect Google to encrypt data between their data centers, as long as they theoretically were the only ones with access to their network. Simply, this is the same as operating on a VPN. The VPN security layer on its own should suffice as security that you’re on your own network. This, coupled with the presumption that Google wouldn’t share a leased connection, is the basis for my expectation.

I didn’t expect Google to encrypt data between their data centers

Realistically though, encrypting internal data is likely to be a costly exercise, both computationally and from an efficiency perspective. As +Mike Hearn from Google recently put it (https://plus.google.com/+MikeHearn/posts/LW1DXJ2BK8k):

“… the entire thing requires a large and complex key distribution and management infrastructure (fortunately already present). Also lots of different protocols flow over our wires, each one of which has to be handled. …”

Remember that, unless the model’s changed, Google uses distributed commodity servers, which might not always be the latest and greatest Intel chips with SSX 4.3 or whatever instruction sets make our blood rush with excitement these days. So end-to-end encryption on its own would really be costly.

My SSL Efforts

With the above said, now knowing that the NSA has had access to organisation[s]‘ dark fiber, I am overly concerned for the little server that I own, and the VPServers too. As mentioned, a few weeks back I added SSL on the public-facing ports on my little server. The main logic from that was because that in a few months I’ll be hosting probably a number of services that are consumed by the public.
I (‘we’) find it reasonable for anyone using whatever service I’ll have running at the time to have an expectation of security about inputting or storing their data on my (‘our’) services.

I’m about to go on a process of either killing the VPServers that I own or moving them to a small dedicated server, retiring some random experiments of mine, and perhaps also killing my blog and mail server. That’s something to think of over a glass of juice. Securing all of that with SSL (where necessary) will be expensive, unless I sign all the keys myself where possible.

The main thing that remains a concern for me is that as and when my services expand, and the need for additional servers/shards arises, I’ll have the same problem (albeit at a micro level) as the one that Google faced, being that; Do I (‘we’) need to protect internal traffic between downstream and upstream servers?

To give some context, I run a Node.js app on a single-instance cluster. Now, Node.js isn’t the most efficient of servers out there when it comes to handling TLS/SSL encryption and decryption (I believe Ben Noordhuis has made this admission himself). So as most people do, I use nginX to handle the crypting. The problem with this is that once a request is validated by nginX, internal traffic is decrypted (i.e. the Node.js cluster doesn’t use SSL) it flows around unencrypted. So, with more shards potentially located in other DCs (say, around the world, or maybe locally in SA), it means that the traffic that actually matters (the exchange between the database[s] and Node.js) is in full view of hackers and certain authorities.

Well, Nobody Cares

The reality is that for now, nobody cares. I don’t expect myself to build a sensitive system which will require important user information. However, as someone who has had an interest in computer security, and is aspiring to study in the field, it matters that I learn how to deal with such architectural problems at an early stage. This means that over time I’ll learn how distribution of encryption keys works, and other interesting concepts.

What Mike Hearn posted was quite insightful for a curious mind like mine, and is surely encouragement for me to continue with SSL for TCP protection. Of course the problem is that getting keys signed by a public authority can be expensive, and that isn’t a guarantee of security if the NSA wants in (eg. Lavabit’s certificate was revoked over a month ago).

I’ve had some time to look at PGP and things like PPTP/IPSec, and without promoting paranoia, I am going to be working more towards keeping my data safe, through the wire and beyond. I’ve learnt that it’s better to be safe than sorry when it comes to data security.

KitKat is Out, Party Time!

Android released KitKat (Android 4.4) last night, and as usual with a new major release of Android, we have fun with all the APKs while we’re waiting for AOSP to drop, and for ROM developers to get working on our favourite ROMs. Someone out there’s already taken a dump (mind out gutter) of KitKat and posted it in the wild, AOSP is building, and Git is ready for poking around to find NSA code and other FUD conspiracies;

With that said, let the fun begin!

I’m on CM10.2 (Android 4.3) on my device, so a lot of the apps on KitKat are working without any issues or force closes (remember to wipe app data if having issues!). I first got Hangouts 2.0 last night, which finally comes with SMS integration. One less app merged! Also got the clock app. Thank goodness they made the font standard.
image

Then this morning I updated Play Services, Google Now and got the new Google Experience Launcher (think of the combination as the Fusion cannon transforming onto Megatron). The launcher looks great, but I’m sure that Android Police are busy with teardowns of all they can. I was using Aviate, but I think I’ll stick with the Google launcher for now.

The tech sites will be flooded with updates on what’s new, but as for me I’ll be patiently waiting for CM11 (surely they can’t call it 10.3?).
image

image

image

I’m a Fat Kid

A few weeks ago I was complaining about how skinny I was, and I resolved to gain 10kg by end of November. Since then I’ve been watching what I eat (making sure that I eat), my mom came back for a few weeks, and I’m being spoilt with food at work. Tonight I realised how heavy I feel, and my arms no longer show much of my skeletal features.

It’s official, I’m a fat kid now.

I didn’t get a chance to buy the weight scale, so I won’t know my progress, but I an definitely on the rise.

I just had an awkward conversation with a guy in the office, I could see that he thought I’m someone he had meet earlier during the day. As awkward as it was, I couldn’t tell him that he’s got the wooing person.

Do all black people look the same? I’ve had a lot of incidents lol :)

I went to the south and back in a few billion yoctoseconds. It was soaking wet on the road, mom had to even caution me to drive like a granny.

On my way back the rain had stopped for most of the short journey. I noticed that my car was completely dry when I parked, and I might have a speeding ticket to my name. Since the car was dry and relatively clean, it struck me that next time it’s going to rain I should just apply a layer of car cleaner and go race it clean on the highway.

Problem solved, now to figure out how to clean the inside …