Monthly Archives: November 2012

Wasted Effort

So in South Africa, we have this weird microcosm effect where people feel it’s useful to redo things locally. It came about due to various factors, and there are sometimes some useful advantages (job creation when you’re dealing with products people could make by hand, for instance). The rest of the time, I just don’t see the point.

Case in point, MyBroadband recently started pushing some initiative called Gr8Signal. It’s purpose? To map out cellphone network signal info. “This sounds eerily like OpenSignalMaps“, some might say, so let’s compare their features quickly.


  • Signal heatmaps
  • Coverage info for multiple operators
  • Speed data
  • Comparison possible
  • “Average” rating


  • Signal blocks

Seriously, that’s it. You can’t compare different operators, or even use more than one at a time. Okay, so it’s a new project. Maybe it still needs to get some basic features. Let’s compare their interfaces.

OpenSignalMaps first:

I searched for “Johannesburg, South Africa”, and the first maps I get are an aggregate coverage heatmap for all available operators across all signal bands, the capability to filter based on a variety of options, and – if I click on the “Advanced view” (not shown here, but it’s that bar left left of the “NetworkRank™” section) – I get speed, latency, and reliability information.

Now let’s look at Gr8Signal.

And then another one, because I can’t select more than one operator at a time:

Yup, seriously. No ability to compare operators. The views are in blocks (…you guys do know how cellphone signal works, right? Fluid display is *far* better). The default map choice makes it ridiculously hard to see detail clearly. The overall feeling of the website is about as awesome as the SAWS page was. You know, that one where you could flatline your CPU by racing your mouse over the zooming menu icons.

Overall, I just don’t understand the point of this project. The data already exists in a much more useful form elsewhere, alongside wider coverage. So that’s about it. Let’s see what the MyBB guys have to say.

Update: I feel I should add that the reason I seem annoyed about this is the perpetual case of people just doing something “local” for, seemingly, no more reason than doing it “local”. If they brought something competitive to the table, or offered a better product, I’d totally support that. This very seldom seems to be the case. Why should we keep dishing out subpar products in the .za market? It just gives us a name as bad imitators. China 2.0.

“Tip me that output quickly, would you?”

Jonathan recently wrote Codetip, a pastebin based on Twisted.Web with some neat client-side features and integrating server-side JS as well.

There’s a demo one running at

Short of the setup doc in the readme, there’s some further work you get to do when installing this on something like Debian Squeeze. Here’s a quick rundown from my shell history:

 1237  aptitude -t wheezy install python-pip
 1242  aptitude -t wheezy install virtualenvwrapper
 1252  aptitude -t wheezy install python-virtualenv
 1257  aptitude -t wheezy install python-sqlite python-pysqlite2

All of those mostly because of versioning. Node.js was also installed previously (for Brewer.js), so npm was around as well, at the sid package version level.

It was set up in a separate user account, with a virtualenv to avoid crapping all over the system. For those who don’t know, a virtualenv is used to make a little jail for python things to get installed into. This way you can have a different local version of something to what’s installed globally (globally meaning system level). Turns out this makes life a bit more painful:

Drop this into .zshenv (or the appropriate equivalent for your shell):

# virtualenv
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--system-site-packages'

And then run:

git clone
mkvirtualenv Codetip
activate Codetip
pip install Twisted; pip install Epsilon; pip install Axiom; ln -s =nodejs $(VIRTUAL_ENV)/bin/node
npm install brewer
cd Codetip
./node_modules/brewer/bin/brake install
./node_modules/brewer/bin/brake all
twistd -no-web --notracebacks --class=Codetip.resource.RootResource

The virtualenvwrapper package provides ‘mkvirtualenv’ amongst other things, use `source /etc/bash_completion.d/virtualenvwrapper` to get the hooks. This shellscript also works in zsh.

And that’s it, a working Codetip instance.