Technical

November 2010
Wordpress

My website (or a version of it) has existed since 2010. Made and remade at least ten times over in different guises, but standardised since 2014. It brings together all my projects, interests and hobbies in one place on the world wide web. It has taught me a lot about web development and is my most enduring project.

  • Progress85%

Changelog
Version 7.0 (15 January, 2018) - Rebuilt website from the ground up with a focus on architecture and sustainability. Version 6.1.1 (17 September, 2017) - Fixed minor mobile menu issue. Version 6.1 (09 July, 2017) - Create a consistent modal experience, from contact forms to image and PDF overlays. - Added rich snippets to pages. - Activated GZIP compression. Version 6.0 (26 June, 2017) - Complete site overhaul. - Changed theme to Pro. Images below of design concepts I played with. The final result is different, but familiar. Version 5.2 (02 October, 2016) - Fixed contact form error. - Added social links to footer. Version 5.1 (02 April, 2016) - Enabled hotlink protection. Version 5.0 (29 February, 2016) - Moved hosts. Lost some backups. - Complete overhaul of the entire site. Version 3.3.1 (13 October, 2015) - Swapped GitHub icon for BitBucket. Version 3.3 (05 September, 2015) - Revised home page. - Speed improvements (home/1.1s, projects/4.4s, blog/5.6s, services/2.4s, resume/2.2s). Version 3.2.3 (16 August, 2015) - Edited button styling. Version 3.2.2 (15 August, 2015) - Added GitHub to social links. - Changed footer social icons. - Enabled HTTP Strict Transport Security. Version 3.2.1 (11 August, 2015) - Added Wikipedia profile to social links. - Updated to Font Awesome 4.4. Version 3.2 (10 August, 2015) - General housecleaning and updating. - Structural overhaul of Resume page. Version 3.1.3 (11 July, 2015) - Fixed certificate chain issue. Version 3.1.2 (23 June, 2015) - Fixed slider form bug. Version 3.1.1 (07 June, 2015) - Updated styling on PDF embedder. - Updated styling on upPrev. Version 3.1 (06 June, 2015) - Overhauled services pages. - Updated all forms. - Fixed analytics bugs. - Added Open Web Analytics tracking code. - Changed cache plugin. Version 3.0 (30 May, 2015) - Major update to theme. - Revised resume page. Version 2.2.2 (26 April, 2015) - Replaced PDF embedder. - Updated forms. - Fixed broken links. - Switched cache engine. - Enabled default responsive images. - Speed improvements (home/2.1s, projects/5.6s, blog/7.3s, services/5.8s) Version 2.2.1 (22 March, 2015) - Added Web service page. - Updated the Resumé page. Version 2.2 (30 January, 2015) - Finally, finally updated certificate to SHA-2. - Updated 404 page. - Updated No Result search page. - Updated services page. - Updated home background. Version 2.1.3 (24 January, 2015) - Updated popup forms. - Added PGP key download. Version 2.1.2 (05 January, 2015) - Styling on the comments form. - Added additional social media links. Version 2.1.1 (30 December, 2014) - Fixed date format issue. - Updated blog reviews. - Enabled upPrev. Version 2.1 (29 December, 2014) - Overhauled home page. - Redefined site design (font, colour, etc). - Added copy protection. Version 2.0.1 (08 November, 2014) - Fixed forms bug. - Fixed portfolio archives issue. Version 2.0 (05 November, 2014) - Major overhaul of all the main pages. - Serious media optimisation. - Enabled BJ Lazy Load. - Enabled WP Fastest Cache. - Enabled PDF Lite Viewer. - Added page update services to Wordpress. - Bugs: Portfolio archives. Some forms still not functional. Version 1.4.1 (22 August, 2014) - Disabled Amazon CloudFront CDN (SSL issues). - Enabled Lazy Load. Version 1.4 (20 August, 2014) - Troubleshooting popup forms. - Enabled Amazon CloudFront CDN. - Page speed optimisation. Version 1.3 (16 August, 2014) - Overhauled services page. Version 1.2 (12 August, 2014) - Replaced SSL certificate. - General site troubleshooting. Version 1.1 (27 July, 2014) - Updated forms. - Updated analytics. - Size-optimised images. - Disabled Minify. - Added service and legal pages. - Registered with Bing Webmaster Tools. Version 1.0 (22 July, 2014)
May 2018
On24, audio gear (microphones, sound absorbers, etc)

My role at Allan Gray has grown to include hosting and producing webinars. The production involves hardware setup, helping the presenters with content and generally ensuring the sessions run smoothly. You can watch on-demand recordings of the webinars I have been involved in below. Still a lot to iterate and improve on with the process.

  • Progress40%

Webcasts
Behavioural Coaching Programme
09 May, 2018

A webinar I produced about a programme to help advisers to improve their offering for clients.

Making sense of fees in an umbrella fund
23 April, 2018

An informational webinar I produced alongside Adiel Slarmie to teach adviser about the complexities surrounding fees in umbrella funds (a type of retirement investment).

How you can do better than the average investor
22 March, 2018

Hosted a webcast for novice investors with Thandi Ngwane, who is head of strategic markets at Allan Gray.
September 2016
Homebrew, Brew CU, Command Line, iTerm

A nifty little script to update applications, node packages, ruby gems, App Store applications and apply macOS software updates. I use it as an expect script, because it needs to log into accounts with higher privileges in order to work - but it can work as a normal shell script if you use an administrator account as your default (not recommended). The script has issues handling password prompts for brew cask updates - especially when there is more than one update. Still thinking about a solution to this and a way to get a password popup instead of hard-coding that sensitive information.

  • Progress60%

Changelog
Version 2.1 (13 January, 2018) - Added 'brew cleanup'. Version 2.0 (21 October, 2017) - Converted into an expect script to be responsive. - Added Mac App Store commands and macOS update commands. Version 1.0 (15 September, 2017)
Code
#!/usr/bin/expect -f
# This expect script logs into the admin account and updates brew, brew cask apps, ruby gems, npm packages and macOS (including system software) Apps.
# Version 2.1 (13 January, 2018)

# Sets username and password variables.
set user "yourusername"
set password "yourpassword"

# Logs into administrator account
spawn login

expect "login:"
send "$user\r"

expect "Password:"
send "$password\r"

# Updates brew.
send "brew update; brew upgrade; brew cleanup; brew prune; brew doctor\r"

# Updates brew cask
send "brew cu -ay --cleanup; brew cask cleanup\r"

# Handles password prompts for brew cask or proceeds to gem update.
expect {
"Password:" {send -- "$password\r"}
"$ " {send -- "gem update; gem cleanup\r"}
}

# Updates npm
expect "$ "
send "npm install npm@latest -g; npm update; npm prune\r"

# Updates Mac App Store applications.
expect "$ "
send "mas upgrade\r"

# Updates system software.
expect "$ "
send "softwareupdate -ia\r"

# Log out and exit terminal window.
expect "$ "
send "logout\r"

send "exit 0"

interact
January 2015
Wordpress

Conceived in 2013 and finally delivered in 2015. The theme was a bit of a letdown, but Woocommerce more than made up for it. A great learning experience about creating an online shop. Right now it's just one ebook, but hopefully it will be expanding into a library very soon (anyday now!).

  • Progress100%

Changelog
Version 1.5.0 (31 December, 2017) - Added a custom website modification plugin. - Added custom autoupdate plugin Version 1.4.0 (30 May, 2016) - Migrated site to new host successfully. - Added content copy protection. Version 1.3.1 (10 June, 2015) - Fixed a few small bugs and irritations. Version 1.3 (06 June, 2015) - Changed security package. - Changed book cover on homepage. Version 1.2.2 (14 March, 2015) - Updated to SHA-2 certificate. Version 1.2.1 (14 January, 2015) - Enabled PDF invoices. Version 1.2 (13 January, 2015) - Enabled Payfast payment gateway. - Enabled dual currency support (ZAR / USD) and geolocation. Version 1.1 (11 January, 2015) - Beta Testing. - Added extended attributes to product. - Enabled eCommerce tracking. - Styled button colours. Version 1.0 (10 January, 2015)
Credits
Content Sizakele Gumede
December 2017
Automate (Android), Excel, ADB, Controlplane

I have been trying to build a quantified self system for a couple of years. Each attempt failed when I ran into the limits of my knowledge. So, I am trying again - with a little more knowledge - in the hopes that I finally get this right. Phase 1 is going to use technologies that I have a grasp on and later I hope to bring my front end skills in to upgrade the project. The project has three components: collection, transfer and analysis. The collection part (the tentacles) works on my smartphone collecting information and the review for the day. Transfer happens daily through a mobile sync script. Analysis (the octopus brain) happens in a spreadsheet that draws data in automatically and displays it in a dashboard.

  • Progress50%

Automate Script
qself-script-965x1930
Changelog
Version 0.2 (02 March, 2018) - Finally solved location engine bug (after 3 months). - Updated Mobile Review App to handle resetting review time after current time (i.e. don't run the review more than once in a day). Version 0.1 (25 February, 2018) - Tentacles complete. - Analytics work beginning. Version 0.01pa (05 January, 2018) - Pre-alpha testing on components. - Setting up spreadsheet. - Setting up Automate app.
December 2016
Time Machine, Carbon Copy Cloner, NextCloud (previously OwnCloud), ABD

I am paranoid about maintaining backups. A nasty incident a couple of years back taught me the value of having them. Digital possessions are as irreplaceable as the tactile versions. My schema has the most important information backed up using different systems, different hardware and different locations for durability. It was a pain to setup, but now it runs smoothly and independently. [0A = critical data, 0B = important data, 0C = everything else]

  • Progress100%

Changelog
Version 1.0 (31 December, 2017) - Activated all nodes. - Added media module.
January 2018
CSS, PHP

A little custom Wordpress plugin I cobbled together to style the login page and the admin area. The problem with using hooks and functions in functions.php is that any theme update or changes wipes away all of your customisation. So, I created a little plugin to keep those changes seperate. The values (like the location of the background image and the login logo) are hard-coded, so you will have to dig in to make it useful to you. Some know-how about PHP and CSS is required.

  • Progress70%

Changelog
Version 1.3 (20 January, 2018) - Remove admin toolbar. - Redordered and removed menu items. Version 1.0.1 (15 January, 2018) - Added styling to secondary input box. Version 1.0 (14 January, 2018)
error: