Excel Bootstrap

This post is more than a year old. The information, claims or views in this post may be out of date.

So this is a real thing, that I actually built.


It’s an Excel workbook that can generate Bootstrap HTML sites. And what’s more, if you have a hosting key, it can publish that site to the web.

For real: https://github.com/woganmay/excel-bootstrap

Why, for the love of God


Mainly: Why not. I know that VBA can do some basic string manipulation and conditional logic, and I know that it can work with HTTP, so I figured I’d put the two together.

Also, I felt like I needed some more experience with VBA. Despite all the love-to-hate that people throw at it, Excel is a remarkably capable platform and I was interested in what it might take to get it to do something weird.

Truly, though, I had been feeling a little bit irritated by the phrases “programming elite” and “bad language”. There’s this somewhat-arrogant notion out there (bordering on a holy war in some cases) that some languages are better at things than others, and there are some things you dare not consider using.

Well how about if I want to build websites using Excel? Who’s going to stop me?

How it works

The workbook is “open source”, for lack of a better term – you can download it and pop open the VBA modules in Excel to see how it works.

It’s pretty simple – the main worksheet lets you fill in a few cells, and those are substituted into some basic HTML by a macro. There’s even some “component logic” – you can turn parts of the site on or off.

The results can then be written out to an HTML file. Since all the CSS and JS files are hosted on CDNs, all you really need is that one file. And there you have a basic website.


It’s even themeable! I reference the library of themes via Bootswatch, so there’s a pre-defined list of themes to choose from.

Then there’s the hosting component. I have a server lying around, and you can get TLDs for free if you know where to look, so I quickly grabbed excel-bootstrap.cf, pointed it at my server, hooked up Apache and LetsEncrypt, and built a super-basic publishing endpoint with bare-minimum security.

I mean, literally, the entire thing looks like this:

Not pictured: the 4-line htaccess to enable url rewriting

Assuming you have an HTTP-capable client, that’s pretty much all the code you need to get a dumb-as-bricks “publishing” endpoint up and running. All it does is blindly dump whatever you send into an HTML file, that it then serves out on request, with a “pretty URL”.

Plus, it has rudimentary security – you can only publish to a named site if you have the correct GUID. I mean obviously the content’s not filtered at all, and a skilled hacker could probably exploit this to dump a reverse shell on my server, but you’re looking at maybe 10 minutes worth of work. Max.

Release and iterate!

This whole project took around 3 hours. Let me walk you through the timeline, starting with my stunning realization.

The principles behind this (rapid iteration) are perfectly valid when developing new applications of any kind. I think it’s a great idea to start with a minimum viable product, and then add on new things.

The app itself? Total bullshit. Do not use this as a reference for anything.


It took all of 34 minutes to go from that, to a basic MVP. I would not have suspected Excel to be an ideal candidate for rapid prototyping, but you can’t argue with results!

(Yes, you can, you really really can. And for the love of all that is sacred, you really should when presented with an idea as dumb as this.)


Getting up and running on Github took no time at all – I published my work under the Unlicense, and wrote up a basic readme.


And with my MVP out the door, it was time to iterate!

All my MVP could do was create a basic 2-line site as seen in that screenshot. I wanted to add some of the basic Bootstrap components – a Navbar, Jumbotron – and offer some sort of control over theming.

I even added Font Awesome, because every site nowadays seems to have an icon font library.

So I grabbed a more complex block of sample HTML, and grabbed a few links from Bootswatch.com. Some copying-and-pasting later (and the good old Data-Validation-for-dropdowns workaround), I had a much more robust version of Excel Bootstrap, including an updated UI!


At this point, I’d sunk 1h45m into this project. About the length of the average project management meeting. But it was time to go further!

Excel Bootstrap could now generate decent-looking websites, but what good is a website if you can’t host it? A quick trip to Freenom.com and I’d secured myself the excel-bootstrap.cf domain. I pointed it at my Afrihost server, hacked together a totally inadequate publishing API (pictured above), and set up my workbook with a macro that could upload data.

Which was actually not that difficult, all things considered.

Wired that up to a button, gave it a few test runs, and voila!


Total time spent = 2 hours 15 minutes

Total IQ points lost from considering such a tortured path from content to published page = unknown

So the point of this was…?

Partially to prove that I could, partially to do something weird and stupid, but mainly to prove that when it comes to delivering value, there’s no objective “right” or “wrong” way to do things.

Would I ever use an Excel workbook to generate and publish websites? Not in a million years.

Could there be any number of business users out there that would save an enormous amount of time being able to publish content from Excel to a web platform? Possibly.

Who’s to judge what the “right” tool is for the job? Basically nobody.

When it comes to choosing your tech stack: use what you have, what you’re best at, what you can support, and what can get the job done.

South Africa is burning

This post is more than a year old. The information, claims or views in this post may be out of date.

I usually keep my political and social views to myself, but I felt it necessary to share three brief clips from recent news articles that I found interesting. They paint a picture (hopefully!) of imminent change.


the situation at Rhodes University has escalated to the point where students are being arrested and shot at with rubber bullets.


Student protests turned to student riots this week, and it shows little chance of slowing down this time. Several universities have already shut down (exactly what Gwede Mantashe said he would do, incidentally), and if it goes on for much longer, the ripple effect into 2017 is going to be scary.

Last year the ANC was able to resolve the crisis in the short-term by mandating a 0% increase, but they don’t seem to have the same resolve this time around.

Hlaudi Motsoeneng

Hlaudi Motsoeneng’s “unlawful” appointment as SABC group executive of corporate affairs is the last straw that breaks the camel’s back, the ANC in Parliament said on Wednesday


Honest to god, this one surprised me. People have always accused the SABC of being the mouthpiece of the ANC, and Hlaudi worked really hard to turn it into that – but to now have the ANC itself take issue with it?

I’m sure there’s a far more astute political analyst out there who can point out how this is showing up the cracks in the ANC’s unified stance, but honestly, that started showing right after the municipal elections. This just makes the bleeding obvious.

Jacob Zuma

but it struck me that the ANC caucus was simply not defending their president. He was on his own and it seemed that he felt it.


This one might be the biggest news of all.

The one thing that all the opposition has accused the ANC of is twisting itself into contortions to protect one man, eroding all of the country along with it. And that’s been the case – slowly and systematically over many years, Zuma and his patronage network have bullied state institutions and SOEs into compliance.

But somehow, maybe, quietly, that ended. I thought it was a bit odd that after Treasury announced Zuma owed R7.8m for Nkandla, that the solution came from a Venda bank. I would have expected a Gupta-affiliated bank, like the Bank of Baroda, to come to his rescue. And what about the Friends of Jacob Zuma trust? The Big Four banks?  The President is a strategic client, after all, no?

But the Guptas seem to have vanished. Zuma’s source of finance might be gone, and so too might his ability to feed his network of patrons. Could it be the case that he’s starting to lose control of his tribe, that he’s being hung out to dry?

Interesting times, indeed.

Fare thee well, Twitter

This post is more than a year old. The information, claims or views in this post may be out of date.

I feel honored, in a very weird way, to have witnessed the birth, growth, stumbling, and inevitable death of a global phenomenon. I might have said that about Gangnam Style, but somehow that bloody video is still attracting views.

I’m referring to Twitter, and I have such fond memories of Twitter. They launched in 2006, but it was only in 2008 that I became aware of it. My first memories of Twitter was that it was a faster, lighter, and somewhat less-sophisticated version of Facebook, which I had first joined in 2007.

Within a South African context, I was on Twitter before it was cool. It’s hard to believe in 2016, where basically every talk show and marketing campaign is using hashtags, and questionable social movements are using the platform to rally and organize social change – but there was a time when Twitter in SA was small. Really, really small.

Small enough that in May 2008, a few of us started assembling a manually-curated directory of South African Twitter users. This was back when Twitter didn’t have a search feature (remember how that used to be a whole separate site?), and geolocation wasn’t even remotely an option.

The Internet Archive will forever immortalize this entry on a free PBWorks wiki (used to be Peanut Butter Wiki, by the way), before the spam came along.

2016-09-24 18_47_40-satwitter _ FrontPage.png

Three months later, the list had grown to a mere 150, and I think we got to about 300 before Twitter started gaining some real traction here in SA.

By September 2008, Twitter had introduced us all to the concept of the Fail Whale, and outages were about as common as uptime. I quite liked Twitter, though, and they had a REST API -so between that API, a profile search feature, and a few cron jobs, I built a South African shadow site, called TwitterSA.com.

All it did, really, was continuously search for users that had South Africa (or major cities) as their location in their profiles, automatically follow them, and cache all their tweets in its own database. I recall eventually adding a signup feature, and started scraping the tweets for popular links and hashtags that were being shared.

Yes, it was basically a nascent social media listening platform. If I knew how popular those would have become in the years to follow, I definitely would have held on to it a lot more strongly than I did.

It had a brief, but glorious reign. At one point it held the definitive directory of South African Twitter users, and even, some crazy how, got myself and the designer featured in an ITWeb column.

That lasted until about July 2009, when Twitter started sending out Cease & Desists to all domains that included “Twitter” in the name. We received it, discussed it for about two minutes, and decided to shut down the site. Twitter was only a few months away from launching their Geolocation API, which would have made the service redundant anyway.

Since then, I’ve been perpetually on-and-off Twitter, simultaneously inspired and frustrated by it. I never could figure out the best way to make use of it, and towards the end of 2015 I started making the mistake of trying to have rational debates through the platform.

Turns out, 140 characters at a time is not a good medium for debate, and the average participant who attempts it is not really great at communicating complex, cogent arguments – myself included. Retweets make it far too easy to take things out of context and magnify them to a hostile audience, and it’s way, way too easy to get mobbed off the service.

Which is why I quit in February 2016.


I left it connected to my WordPress.com account, on the off chance that some of my audience would appreciate the stuff I write here – but on the whole, I disengaged completely. Frustrating limitations, hostile audience, apathetic moderation – was there any other outcome?

And it turned out, I wasn’t the only one starting to feel this way. Me dropping off Twitter came as the stock coasted to its lowest level since IPO:

2016-09-24 19_02_49-$TWTR - Google Search.png

As it turns out, it’s really hard to monetize such a shitty place. And I choose that word with the utmost care:

  • The highest engagement comes from social media addicts and internet trolls
  • The tools basically streamline the hate mob and harassment process
  • The ad formats infringe directly on the stream experience
  • Twitter’s API policies turned exclusive and hostile, alienating developers
  • Nearly every algorithm adjustment upset users, who wanted reverse-chronological feeds entirely of their own curation
  • Twitter was routinely in the news for all the wrong reasons – usually because of someone famous (or just an inconsequential profile) saying something stupid that blew up

I suppose the smart Twitter investors started cottoning on to the fact that something was wrong back in April 2015, when they started redefining (almost every quarter) the metrics they used for measuring their own success. The less-smart investors would have started getting alarmed in August 2015, when the SEC started asking pointed questions about how Twitter was running their business.

For me, though, the moment of clarity came just last month, in August 2016, with a long-form Buzzfeed article entitled Inside Twitter’s 10-year failure to stop harassment. It’s a fascinating read, and in a few months, will serve as the pre-post-mortem of why Twitter collapsed the way it did.

So as of today, Twitter is on the chopping block. And the one piece of data that is really telling? Twitter’s stock price, the moment news broke of a potential sale:

2016-09-24 19_10_56-#TWTR - Google Search.png

That’s the last heartbeat of a company destined for flat-lining: When their stock gains instant value only because there might be a quick return. It’s a bit of a “vultures are circling” situation, with some of the braver ones picking at the still-lumbering victim.

At this point investor sentiment is basically clear – Twitter has to go. I can’t imagine there’ll be a last-second magic trick that restores Twitter’s credibility and independence. If that were possible, it would have emerged at some point in the last five years.

So what’s next? One thing to bear in mind is that no social network, post-acquisition, has actually survived in a form that in any way resembled the original. Social networks are tricky things, and new owners typically want a good financial return on their investment.

Whoever buys Twitter is getting a mixed bag of:

  • Some very good distributed message processing tech – global scale, realtime delivery
  • An executive team void of any real direction
  • A disillusioned workforce, whose attempts to improve the platform have met with repeated failure
  • A social hot potato, in that Twitter is more or less the new 4chan, and were forced to create a Safety Council in reaction to “extreme” speech
  • A political hot potato, in that anyone with clout will want the service sanitized to remove harsh messaging about them.
  • A financial hot potato, with declining ad revenues across the board
  • A brand that created two new entries in the Oxford Dictionary: Twitter and Tweet
  • A grab-bag of acquisitions: Vine, Periscope, some adtech and design startups
  • And a domain name that, if you think about it, is kinda dumb – birds can’t use smartphones

About the only thing that makes sense, acquisition-wise, would be to turn Twitter into a one-way content provider: letting brands and verified celebrities use it as a platform to push out messaging, while severely limiting user interaction – like how Hollywood works right now, basically.

A dumb content pipe with no controversies and news blowups is preferable, commercially speaking, to a public square for free speech and open debate. It’s a lot easier to monetize a captive and engaged audience, and if there’s one thing that news outlets in particular have realized in the last year, you don’t need a public feedback facility to enable that.

I might even start using Twitter again, should it turn into something that has a net positive effect on my mood. A safe content delivery pipeline, pushed to the top of your phone, with granular interest tracking, personalized content and real-time feedback? Marketer’s wet dream.

But for now, enjoy the long shadows cast by the setting sun that is Twitter.

First-World Offense

This post is more than a year old. The information, claims or views in this post may be out of date.

So there’s this asshole – Pastor Steven Anderson. He’s been making the news lately.

I choose that word carefully. Like most assholes, he has opinions, and cares very little for criticism. His positions are largely Neanderthal in their intellectual complexity.

For example, he believes that South Africa is a demonic “stronghold”, whatever that is. I’ve heard the same things said about the US, China and Australia, so it’s anyone’s guess where he’s getting his data from.

He also believes that all homosexuals should be executed. Between this opinion and his general outlook on life, he might be more welcome in a few other African nations than here, in South Africa – despite how badly our Executive flaunts the Constitution, we don’t really take kindly to that sort of bigotry.

And in something of a stunner, the Department of Home Affairs announced on Tuesday that Anderson was barred from getting a visa: http://mg.co.za/article/2016-09-13-pastor-of-hate-not-welcome-in-sa-says-home-affairs-minister-malusi-gigaba

Cue the victory cheer from GaySA, SAHRC, and social media. It certainly feels like a victory – Anderson was judged in the court of public opinion, his message was deemed hateful and destructive, and he was refused entry into South Africa on those grounds.

It seems that everyone overlooked a couple of really scary precedents that were just set, and some factors that were totally overlooked.

sfwmAkieTSyeToJZqfKV_IMG_9840 BW.jpg

Anderson was barred from entering the country based more or less solely on his speech. Lobbyists found it offensive, and DHA took that as sufficient cause to bar him from entering the country. What worries me now is – who sets the bar for what is considered “hate speech” or “social violence”?

If an activist from Rwanda wanted to come to SA to speak out against corruption in the ANC, and try to incite positive, democratic change, would that not be considered “social violence”? Remember that we do have a ruling party that’s friends with Mugabe’s ZANU-PF, a regime that continues to blame “Western Imperialism” for all their own failures, twisting the meaning of words to suit their own ends.

The second thing that was overlooked: Anderson had an audience here. Had he come to South Africa, groups like GaySA, SAHRC and others could have staged peaceful protests at all his venues, and try to reach out to some of Anderson’s “flock”, maybe try changing their minds about homosexuals and black folk.

That opportunity for engagement has now been shut down by the government, and it will be totally ineffective. Why? Anderson, and people like him, spread their messages online. They barred Anderson, but barred none of his ideas or his speech.

Which leads me to the most worrying part of this: If the government feels justified in taking steps to ban people from entering the country based on their ideas, and those ideas can still enter regardless through the internet, then logically the next step is to start cleaning up the internet.

By banning Anderson for his speech, I think the lobbies just handed a lot more ammunition and justification to the FPB. I wouldn’t be surprised to learn that the FPB will start considering stronger regulations, having now been given a mandate by civil society to protect designated groups from “harmful” foreign influence.

It really would have been better to let Anderson tour the country and expose the rot to the full glare of public view. It would have been a shot of social disinfectant that we could really have used.

Swinging a double-edged sword

This post is more than a year old. The information, claims or views in this post may be out of date.

It’s been an interesting few weeks in terms of freedom of speech, and what that means on the internet. On 31 August, YouTube made a small but significant change to its advertising policy – it set new guidelines for monetizeable content, and included rules specifically against offensive content.

In a lot of contexts, that’s pretty justifiable: It shouldn’t ever be the case that a system is put in place that rewards hateful and destructive speech. Under the previous system, ad revenue was pretty much a direct correlation to viewership, and controversy is a constant driver of viewership.

For example, it would be possible to create a YouTube channel that featured nothing but trolling and baiting other people, and not only would you get a response to that, you’d actually be rewarded for your efforts with ad revenue. That cannot possibly be a reasonable thing to reward – it directly fans the flames that make YouTube an unpleasant place to be.


Trouble is, “offensive” is an extremely subjective and rapidly-moving target – nowhere more so in the US, with college campus politics and ludicrous entitlement driving a new generation of offenderati. A recent, glowing example of this was a Lyft passenger who berated the driver for being racist, simply because the driver had a Hawaiian bobblehead accessory in his car:


That’s one element to consider. The second is how quickly instances like that are used to fuel internet mobs – groups of people with internet access and nothing better to do. They’ll gang up, post harassing messages on social media, try unearthing private information about their target, and generally try making their lives miserable.

If that Lyft driver in the article above was on social media, he would have been targeted with death threats, his information would have been made public, he’d probably be barraged with phone calls and texts for being “racist” – none of his fault, and all of it perpetrated by what I can only imagine is a mentally unstable woman.

That behavior – distasteful as it is – is a fantastic driver of “engagement” on these platforms. It drives eyeballs to videos, it drives comments (albeit bad), and it drives uploads – mainly rebuttals and rants. And YouTube is, in my opinion, justified in trying to protect themselves from that. Not only because advertisers will be insisting on it, but also just because it’s the decent, human thing to do.



But because everyone’s so easily offended, and because people can be rallied up into attack mobs, there’s a very real downside: The systems by which YouTube enforces this policy are largely automated, and there’s basically no preemptive defense. If you say the wrong thing on YouTube, or you upset a group of people (maybe no more than 50 people, even), they can rally against you and flag all your videos for inappropriate content. And after a certain point, the system simply starts demonetizing your videos.

That’s a bit of a slap in the face to the people that work on producing great content for YouTube. It takes a lot of effort to build a channel and an audience, and the ad revenue from that was what made it viable for a lot of content creators to keep doing that. There’s a large overlap between the people that are passionate about creating YouTube content, and the people that believe strongly in the views they’re sharing.

And since we’re now living in a world where simply existing is offensive to some people, it’ll become harder and harder for those content creators to justify spending so much time and effort producing content for YouTube (which already takes 45% of all ad revenue), when it’s so easy for someone to get a hate mob together and torpedo your earnings.

YouTube is by far the largest platform for community-driven speech in the world, and they’ve swung a bit of a double-edged sword here. They’ll likely end up with a profitable network, but at the cost of burning down a vital square for public debate.

Meaning that the final holdout just bit the dust. Facebook has been tailoring their algorithms for years, designed to put profitable content in front of you. Twitter’s losing the battle for their independence, and will have to start making larger compromises pretty soon if they want to remain relevant. And now YouTube has thrown their independent content producers to the wolves.

Kinda makes you long for MySpace a bit.

The Human CPU

This post is more than a year old. The information, claims or views in this post may be out of date.

Two of my favorite things in this world: Finding arbitrary connections and correlations, and survival crafting games. This post is about the former.

Earlier this year I took a trip to Melbourne, and got to spend some time looking at a very modern skyline. A few ideas occurred to me there that I only recently found a good way to verbalize.


So let’s start with a very basic introduction to how CPUs work. Everything your computer does is ultimately tied back to a series of bits – ones and zeroes – that move through the very delicate circuitry of your Central Processing Unit.

How do you get from 1s and 0s to cat videos? That’s a very long story, involving addressable memory, registers, clock frequencies and more, but the very basic unit of computing you need to know about is a transistor.


A transistor is a very special, and very tiny, mechanical device that can either prevent, or allow, electric current to pass through it. Each transistor handles one bit at a time, and modern CPUs are packed with billions of the things. A current-generation server-grade CPU can have as many as 2.5 billion on a single die (chip).

Each individual transistor has no way of knowing what’s going on in the overall system. All it does is receive and transmit electrical impulses as programmed, and with the combined effort of hundreds of millions of transistors, we as the end users experience the magic of computing.

It’s important to note that these transistors are “networked”, in a sense, too – they’re all connected with physical circuitry to allow current to pass through them. An isolated transistor is useless.


Hardware is useless without software though, and there too, computers exist as layers built upon layers. In 2016 you’re lucky enough to use an IDE to write a high-level language, with all the hard work of computing abstracted away from you. Everything you write gets compiled down to an impossibly long series of binary instructions that the hardware can execute.

And again, the software that runs on the hardware has no real idea what it’s doing, either. Most of it involves moving bits to and from memory, under certain conditions. It, too, doesn’t understand things at the cat-videolevel.

So this is where my question gets a bit more interesting. Computers are really powerful – they consist of:

  • Finely-tuned and optimized hardware,
  • Running programmable software,
  • Maintained by human programmers that derive a very complex result,
  • Despite the hardware and software running very simple instructions

With that in mind, let’s talk about humans for a little bit.


As of 2016, between urbanization and globalization, there have been two trends on the uptick pretty much since the end of World War II:

  • More people are moving into cities (urban centers are growing) and
  • More people are networked via telephony, and now the Internet

Go to any major metro today, and you’ll see the same thing: A skyline packed with impossibly tall buildings, with millions of people milling about, each doing pretty much their own thing.

Each person alive has a different set of skills, preferences, inherited advantages (or disadvantages), and will attain various levels of success, attributed to various levels of effort, grit, and sometimes luck.

However, as sophisticated as our modern economy and society looks, it tends to operate on very basic principles. Zoom in far enough, and you’ll see the same basic elements of trade – people making, people buying, people selling, people providing services to make all of that more efficient.

It’s also evident that cities follow people – for example, as mines dried up and people left to find work at cities, formerly-busy towns slowly degrade and turn into ghost towns. People (and more specifically trade) is the lifeblood that dictates whether a town shrinks or grows.


And the governing principle there? I suggest it might be our ideas.

As humans, we have thought, and that thought (plus experience and data) has given rise to the concept of an idea: A perception of how things might be, as opposed to how they currently are.

Or, taken another way, an idea is a shorthand for a set of positions and beliefs (like the idea that people should own property, defend their families and their way of life).

More than anything else, ideas have shaped human development. If it were not for our capacity to have ideas, we wouldn’t have progressed much further than the stone age, constantly living just to service our needs in the moment.

For example: if it were not for that, then smaller towns might not shrink. Instead of getting the idea of pursuing better opportunities elsewhere, people might turn to subsistence farming in their area instead, reducing their standard of living to match what the surrounding environment offers. You know, like how basically every other animal on the planet operates?

So now this is where it gets a little weird.


If you accept that a modern computer is a collection of hardware, powered by electricity, programmed with flexible software, running basic instructions that roll up to a complex outcome for the end-user,

And you also accept that a modern city is a collection of infrastructure (buildings), powered by the people that live in it, each person acting in limited self-interest, driven by a set of ideas they accumulate from the world around them:

  1. Is it possible that the balance of ideas in the world is not accidental, and
  2. What sort of higher, complex benefit might someone derive from the low-level interaction of ideas?

So that’s the first thing to think about. As the end-users outside the system, we can create instructions, send them to a computer, watch what it does, and improve on the way the software runs. The computer has no reference point for what it’s doing – it just blindly trusts instructions issued to it.

Does humanity work the same way? Are we just blindly trusting instructions, doing our limited best without comprehending the larger picture? Is there an aggregate outcome of our individual efforts and ideas that we’re not aware of?


Ideas themselves have evolved over time – from throwing stone axes, to the Universal Declaration of Human Rights, our ideas (and our capacity for bigger ideas) has evolved over time every bit as much as our capacity for technological innovation.

What if there were a force – outside our individual comprehension – that was iterating on the quality of ideas, in the same way a software developer iterates on the quality of their software? We’ve had some whopping bad ideas in our history (like racial purity, sun worship, human sacrifice), and more recently, some very good ones (democracy, ownership, free thought).

Ideas used to move at the speed of trade. They were carried in the format of myth and legend, by travelers and merchants for thousands of years until technology came along. In almost no time at all, ideas started moving across radio and telegraph, into widely-circulated print, and now in the last fifty years, on to a global communications network unlike anything that came before.

With that speed of connection, comes the speed of evolution. Ideas can be born, shared, grown, tested, challenged, discredited, and die out a lot faster today than they could a hundred years ago.


In 2016, ideas can move roughly at the speed of thought. People can post half-baked ideas (like this one) to a webpage that can instantly be accessed, digested and iterated on by a potentially infinite audience.

In the space of one day, you can come across new information that completely changes how you see the world, and by the next day, you can become a publisher of your own ideas.

I wonder what will happen when technology breaks down the next barrier, and lets cultures trade ideas without the restriction of language. For one, I know for a fact that humans already can’t deal with this new level of sharing – what used to be socially acceptable not even 20 years ago is taboo today.

Keeping your ideas up to date in 2016 is much harder work than it would have been in 1986, with new information becoming available almost daily, and every perception basically under constant attack. And with ubiquitous access to the Internet, ignorance is less and less of an excuse.


So whatever the next ten years hold, it’ll sure be interesting to watch. There are already compact new ways of expressing ideas (memes) and narratives (emoji), new rules evolving for how they should work, and new expectations that come from a generation of children growing up in an always-online world.

This new generation, and the 2-3 that come after it, will be growing up in a weirdly connected world with totally different rules. They’ll form a remarkably efficient human CPU – a hybrid human/technology engine for executing, iterating and discarding new bits of information faster than anything that came before.

Artificial Intelligence will have its work cut out 😉

Could have been a prophet

This post is more than a year old. The information, claims or views in this post may be out of date.

Back in 2013 I started learning about the “filter bubble” – a natural result of the behavior- and preference-driven algorithms that power major search engines. Between your search history, the links you click on, and the sites you visit that are tagged with Google Analytics (which is a lot of websites nowadays), search engines like Google can make a reasonable approximation of what results might interest you.

There’s nothing inherently nefarious about this. Google’s interest is in getting you to the right website as quickly as possible, and they’ve done a phenomenal job at it. The better results you get from Google, the more you use them – which means you’re more likely to click the ads that get served alongside search results.

The problem, though, is that it sacrifices diversity of ideas a bit. If you’re a habitual Fox News reader, you follow Donald Trump, and routinely watch his speeches on YouTube, the next time you search something like “abortion” or “gun rights”, the filter bubble will give you results from sites it thinks you want to see, and you’ll get a very right-wing view of the situation.

The search engine will dutifully give you the information it thinks you want to see, but may not give you the information you need, and that’s where the problem comes in. So if you’re in a really bad situation (say, unwanted pregnancy in a conservative and oppressive religious family), and you need level-headed information on whether abortions are safe, legal, and where to get them, Google won’t know to give you that.

That’s the inadvertent side-effect of the filter bubble, and it got me thinking – what would happen if it were made deliberate? A corporation with that much power could, theoretically, start deliberately adjusting their algorithms to subtly affect the worldview of the people using their service.

Facebook’s hilarious miscarriage aside, Google is now doing exactly this. Wired Magazine reports that a Google subsidiary is going to deliberately attempt to feed misinformation to potential ISIS recruits.

Much has been written about cyber warfare, and what it might look like – hackers, viruses, trojans, groups of dangerous people taking down power plants and military bases. Much less has been written about the more insidious form of information warfare that’s crept up on us over the last few years, and practically nothing about calling large search engines to account.

Today, Jigsaw (/Google) is trying to identify potential ISIS recruits, and change the results they get to feed them anti-propaganda, to dissuade them from signing up. Maybe it won’t work – I imagine that most recruiting is done peer-to-peer in any case – but maybe it will.

And if it does work, it sets a very worrying precedent. Up until this point, it’s been in Google’s best interests to vacuum up as much of the Internet as possible, and optimize it relentlessly to get you where you’re going. But what if Google decides that, for whatever reason, they’re a national security asset now, and they have a responsibility to tailor search results away from dangerous ideas?

That’s a slippery slope of note, because it opens the door for people to start redefining what those dangerous ideas are. To any reasonable person, a dangerous idea is one that could result in physical harm or a loss of property.

To a militaristic dictatorship, a dangerous idea is any one that can teach the common man to arm and defend themselves. In a police state, a dangerous idea is one that reminds people of their rights under their respective laws. In a communist dictatorship, a dangerous idea is that people are entitled to the fruits of their own labor, and that being constantly stripped of your wealth is not the best way to run a country.

Anything that upsets the balance of power could be considered dangerous, whether or not that power is being wielded fairly or equitably. And with the sheer amount of power we’re giving search engines over our lives, I think it’s worth asking whether or not we’re actually being shown a fair representation of ideas, not just the ones that are deemed “acceptable”.

In the past, the news media has always been the gatekeepers of that, and have been rightly criticized for withholding information that was of vital public interest. The internet has always acted as a bulwark against that, creating a forum where all speech is equal. And now it seems we’re slowly sliding back towards a world where there are gatekeepers, and fringe speech is marginalized at the behest of the powerful.

So anyway, the moral of the story here is that I regret not writing the short story I had in mind in 2013. It was a story that dealt more or less exactly with this – what would it look like if companies could start shaping information that we thought was being ranked on technical merit alone. Would people even notice that their ideas were being deliberately adjusted on a network they thought was free and open? Who would line up to pull the strings, to use information as the next theater for cyber warfare?

Had I written that then, it would have been topical now. Next time I’ll have to do better.

Farewell, Skype

This post is more than a year old. The information, claims or views in this post may be out of date.

At 12:37pm today, out of the blue, I got this email:

Not cool.

So, the funny thing about that email is that I requested no such reset. At the time, I was chatting to the plumber who was replacing my blown geyser element. Resetting my Skype password was the furthest thing from my mind.

I panicked, naturally, and got straight back to my desk, clicking that link to reset my password.

Now, every other system on the face of God’s green earth, since roughly 1990, will email you a link to reset your password if so requested. Skype is apparently too good for that – instead of just being able to plug in my registered email address, it gave me a 20-point questionnaire, including things like:

  • What’s my name?
  • What’s my email address?
  • Name at least 5 contacts on your account
  • When last did you make a Skype Credit purchase?
  • Did you use a credit card, or PayPal?
  • If it was a card, can you give a few of the digits?
  • When did you register the account?

Color me surprised, right? I filled in as much as I could, and got a message saying that my request had been accepted, and I’d be contacted shortly.

What the shit?

That form? Exactly the same as the previous form, except this time on a Microsoft.com domain, and it had even more questions. So I filled that in too, getting upset all the while.

I’m not concerned about the credit on the account – it’s a couple Euro I can afford to lose. I’m not even concerned about not being able to use the account, since I barely use it anyway. I’m concerned that whoever’s done this will now use my account to spread infected URLs and other nasties (best case) or is a malicious hacker who is out to ruin my reputation (worst case).

I hit submit on the form and get this:

Fucking done.

24 hours is more than enough time for a bad actor to do all the damage they’re going to do. If my account was set up for automatic recharge, that could include some financial damage too, plus I run the risk of my PayPal account suspended for fraudulent activity.

All of this could be avoided if Skype’s password reset policy wasn’t the loosest policy on the block. Apparently, to get a password reset, you just need a name, email, and up to 5 contacts on the account – not impossible to get from watching someone on Facebook for a bit and making some educated guesses.

As this gentlemen found out back in 2013: http://www.businessinsider.com/spammers-can-easily-hijack-your-skype-account-says-a-security-researcher-who-lost-his-account-six-times-2013-4

So I’m officially done with Skype. In the event I can recover that account, I’m messaging everyone on it where to find me elsewhere, and shutting it down. It’s insane that in 2016, a system as pervasive at Skype has worse security than a 9-year old’s secret handshake.

From now on I’ll just stick to systems that use two-factor authentication, and don’t just hand out free password resets to anyone that asks. I’ll keep my Contact page up to date.

System Shock 2 theme for Q10

This post is more than a year old. The information, claims or views in this post may be out of date.

So I’m trying to get back into writing more fiction work, and I’ve found that the actual writing environment has a big impact on my productivity. When the look, feel, and sound of a tool matches the tone of the writing I’m working on, it gets so much easier to focus.

One of my favorite games of all time is System Shock 2, a first-person cyberpunk thriller RPG. It was released in the late 1990’s, was way ahead of it’s time, and occasionally I’ll play through it again just to immerse myself in the wonderful story-driven world it creates. So naturally, when I’m working on SF-heavy writing, a SF environment helps 🙂

To set that up, I used the following:

The sound files simply need to be extracted to the same folder where Q10.exe lives. The fonts can be set via the preferences pane inside Q10 (Ctrl+P).

It’s the stories we tell ourselves

This post is more than a year old. The information, claims or views in this post may be out of date.

I’ve been blogging more or less since 2007. At first I thought it was really cool that you could run a website with a CMS, and publish whatever nonsense you wanted on the internet.

Then social media started getting cool. I still remember when Twitter started becoming a thing in South Africa – I was one of the first 300 or so people to sign up. The group was small enough that we could maintain a manually-edited wiki page with all our handles.

Boy, did it blow up fast. But I digress.

In my blogging, I’ve never had much of a particular focus. My posts were a bit of a mess, ranging from technical tips to sociopolitical commentary, to silly videos. At no point was I really invested in building a particular narrative – or telling a particular story.

Thing is, I LOVE stories. Stories are the thing I can talk about forever, in almost any context. Each of us sees the world differently, and each of us has a story to tell.

I never thought my own story would be particularly interesting – I mean, who wants to voyeuristically peer into the life of a total stranger on the internet?

(Quite a few people, come to think of it, but I digress. Again.)

What I did think would be better, though, would be collecting and sharing the stories that I thought were really clever, and/or inspiring.

Stories are what shape everything around us. Cultures, religions, companies, brands – they’re all stories. Narratives built and refined over time, handed down from generation to generation, diffused through society.

What’s new in 2016 is the ability for everyone to tell their story to everyone else. I don’t think we’ve quite figured out yet – as a species – how to deal with the internet, but over time this too will all become a story. Hopefully, not a cautionary one.

So what I’m going to try this time around is identifying, sharing, dissecting and analyzing stories. I have a particular fondness for fantasy and sci-fi, and will probably start there.

I’m hoping to accomplish two things with this. First, to write more (doh), and secondly, to revisit all the stories that impacted me, personally, over the course of life so far.

Maybe a few years into this, I’ll be better equipped to start telling stronger stories of my own, but I’m not shooting for the moon just yet 🙂