Posts

Cold showers

05 Nov 2023

During October, I decided to run a random experiment and stick to taking nothing but cold showers, regardless of the weather. Why would anyone do this? The idea was shared with me by my brother, who went through a month-long experience of taking showers at 5 a.m. at the advice of his therapist. I was intrigued by this (I love body hacking and will try most things at least once!) so I decided to challenge myself to see if there was any merit. It also just boiled down to challenging myself to get outside my comfort zone and see if I could improve my performance and health by living differently! My findings:

Finishing

19 Jun 2022

I want to share an observation that I made and have wanted to put into words for a while. A lot of times we talk about starting something, going for our dreams, never quitting or (eventually) quitting without paying attention to the process of executing. I think in-between start and result, process is something that needs a lot of thought, especially the means to create a long streak of consistent results or action.

Uses

21 Nov 2021

My workspace

My workspace is a constant work in progress. I believe designing a workspace is an exercise in setting the tone and values of your work. We all design our workspaces, either intentionally or otherwise. Of late though, I have been making calculated moves to eliminate things that don’t work well and replace with stuff that sets an ambience that inspires creativity. My elimination process has evolved to identifying a weakness, deep diving into potential fixes, then buying something with a money-back guarantee, and friendly return policy (pro-tip). My list is not a recommendation list, but a collection of things that work very well for me, YMMV. Here we go:

I changed jobs, again!

18 Sep 2021

Last year was a busy and also difficult year for most people. I hadn’t realized how hard it hit me until someone pointed out that I had written just one blog post the whole year! Of couse with Covid and major shifts in how people could socialize and work together, everything was so unpredictable. The one thing that I was still very happy about though, was the work I was doing over at JaSure. Since the beginning, we had been a remote company so we didn’t suffer in terms of culture when work moved to Zoom and people’s homes. Actually, I have worked remotely for close to 5/6 years now so it’s fair to say remote is ALL I know at this point.

How I passed AWS Developer Associate certification

01 Feb 2021

I have always been interested in Devops, tinkering with servers, writing some bash scripts and always grabbed the chance to get my hands dirty in server side stuff. Despite my interest, I hadn’t dug deeper into cloud computing to get a full picture of how everything comes together and that irked me. In the course of building a side project and giving serverless architecture a real go I discovered I wasn’t knowledgeable to a level of comfort so I decided to get a better understanding of AWS. After finishing the course, I am so glad I took it and will share my learnings in future blog posts as I document the making of my new sideproject, nroute (more on that later). For now let’s discuss how I planned and passed it.

Seriousness

26 Dec 2019

I am a huge Arsenal supporter. I started loving the club because they wore a shade of red I liked when I was young. As the years rolled by with Arsene Wenger as coach, I got to like his approach and method of putting the club’s values first, before victories. Arsenal was one of the clubs that could lose beautifully which would leave a conflict of emotions in supporters after a game, yes points would have been lost but you would also recall special, magical moments created on the field which would make you overlook the final result. Since Wenger left though, the club has been in a bit of a tailspin. Unai Emery who took over about 2 years ago failed to win the fans over because of an unattractive style of play and few victories which eventually culminated in his sacking. In his place, Mikel Arterta, a former captain was put at the the helm. While watching his first video as Arsenal coach the idea of this blog post came about. It was refreshing to hear how clear he was about what it takes for Arsenal to get back to greatness. One theme that I took away, is how serious he approaches his work and the level he requires of everyone who will contribute.

On belief:

…I want to start working with them (the players), I want to start looking in their eyes…

On culture:

…I know what a winning culture is and should look like, which is for me, the most important thing.

Leaving awesome OneSheep

20 Jul 2019

This is a post that I didn’t foresee myself writing for the last 3 or 4 years. It is amazing how long but short that time has been. Every day was always so fresh and full of promise, all because of the wonderful folks I was working with. I remember it like yesterday when I got the offer to become a full time contractor at OneSheep. Having been a Drupal contractor 2 years prior, I jumped at the chance to work on some awesome (and very diverse projects) and what a whirlwind it’s been with so many great memories made!

Ignore changes to specific git files

18 May 2019

There are times when you are working on something that should not be committed even though it has changed. In this instance, it’s not wise to add the changed files to .gitignore:

Whatever the case, git has an easy way for this: git update-index! Here is how it works:

git update-index --assume-unchanged [path_to_file]

This simple rule will delist/hide all changes on that file in future commits. That means you are free to edit the file locally and the changes won’t be staged nor pushed upstream! Listing the file again is straightforward:

git update-index --no-assume-unchanged [path_to_file]

Whilst the commands are handy, they do not come with an easy way to untrack an entire folder, which is not-great. However, this can be easily done by a bash command that can list all files you want to “untrack” locally and transverse that list, updating each file’s entry in the git index.

Update-index is a command that does exactly what it describes, it tells git to update its index for the tracked file it is given. When we set that entry of the file in the index to assume-unchanged what that does is tell Git to simply ignore anything that happens to that file. This results in performance gains via unburdening Git from doing unnecessary indexing on files we no longer care about. However, keep in mind that should the file be changed upstream, when merging commits, Git will still ignore it locally so it does introduce an extra step to be aware of.

Lastly the commands are pretty long. An easy way I use to set them to something friendlier is by aliasing them in my gitconfig file as follows:

[alias]
assume-unchanged = update-index --assume-unchanged
assume-changed = update-index --no-assume-unchanged

After this change, you can easily call: git assume-unchanged [file]!

As always thank you for reading, if you have tips or advice or other ways you handle this, please fire away in the comments below.

i agree with boring

09 Feb 2019

I couldn’t help but nod my head the entire length of the blog post written by Jeremy Wagner on make it boring. It’s not often that I find someone literally following my train of thought so succinctly, albeit from their own unique angle. The principle behind the post is that boring things are the big stones to be put in first.

Learning to learn

28 Jan 2019

When was the last time you thought about how you should be learning? Like many, I realized I went through formal education immersed in different kinds of learning methods but remained oblivious to reasons for using them. This has always bothered me because I enjoy learning, a lot and quickening the speed of it whilst reaping all the benefits, is the ultimate goal. With that motive in mind, I decided to enroll in the free course: Learning to learn by Terrence Sejnowski and Barbara Oakley on Coursera. This blog post will outline some of the insights I have found helpful.

2018

13 Jan 2019

As is custom, at the end or start of year I share my goals and progress as we close and open new chapters. I don’t think there’s an actual chapter closed or opened, it’s comforting to think about it that way but i think life is a continuos stream of … life events that ultimately define our entire existence, there is no break. None. Whatever it may look like, it is a continuation. It’s a mere formality then to state that the last year and all that took place had been a long time coming, whether we acknowledge it or not.

Comparing what my aims were at the end of 2017 and now, I cannot help but feel like I am no longer as open with some of my ideas, goals etc. The reasons behind that are not quite apparent to me, but going through last year’s post I even marvelled at how much I shared about my life and where I intended to go. I sure do hope to investigate my reasons for initially defaulting to scraping the surface with this blog post.

Recent takeaways from pairing

06 Aug 2017

A couple of weeks ago, my workmate paid a visit to Harare from his place in Cape Town for some pair programming, again (yay!). After having had a head start in coding a web app for a mobile application (built with Xamarin), the objective was to quickly knock it into shape and ship it out. I had chosen VueJS for the frontend (because it’s awesome), supported by an API in Laravel - to maintain consistency with the mobile app, we wanted everything to remain exactly the same. During the time of pairing, I learned even more lessons than the other times when I have paired with other programmers.

Working time

04 Apr 2017

For the past few weeks, actually since the start of the year, i’ve experienced the most turbulent of times in terms of my daily schedule. Really i wish I was Cerberus, or could teleport to Mars and have slightly longer days. I’ve been under massive, gargantuan pressure to code, exercise, plan, reply emails and continue being a human who’s not a joker.

How to add your own executable scripts to bash

13 Feb 2017

I have been enjoying the book Effective Engineer by Edmond Lau. One of the great tricks of becoming more effective is to set workflows that make you do more, much faster. I have ended up setting a few scripts to automate a lot of bash commands such as ssh-ing, using git etcetera and in this short primer i’d love to show total newbies how to have your own executable scripts from any place on your system.

The first thing to note here is Mac OS has a few candidate files in your home folder that it indexes for commands to use in every bash window. On my system, I prefer to use ~/.bash_rc mainly because it is loaded up when a new instance of a terminal window is opened compared to ~/.bash_profile which is loaded up at login.

2016 review and what’s next

07 Jan 2017

I almost always set goals for the year. In 2016 I had a bunch of goals and I think it’s fair to say I achieved about 50% of them, which has me beaming! I came to the comforting conclusion about two years ago that I’m in a marathon and my prophetic powers being what they’re (non-existant), estimating time is tough but I sure as hell have an idea about my direction. With that out of the way, here’s how my 2016 turned out to be:

Getting rid of rdiff-backup’s incremental backups

06 Nov 2016

Recently I had to help with maintenance of a server that I didn’t configure myself that had maxed out its storage (the horror!). Anyway, it took me some time to figure out it was using the handy and useful rdiff-backup package to create and store backups automatically. Rdiff-backup’s mission is succinctly put as an idea is to combine the best features of a mirror and an incremental backup

As it turns out, rdiff-backup does come with a handy tool to configure it to delete backups that are x-days old e.g 4 weeks:

rdiff-backup --remove-older-than 4W target-dir

What I learnt pair programming with a senior dev

17 Oct 2016

A couple of weeks ago, I had the pleasure to travel for some pair programming with a senior developer in our team who lives in Cape Town. This being our first meeting, I was really excited to finally meet the guy we all joke is a bot (internal joke). During my time in Strand (quiet city in Cape Town), I learnt some things I’d like to share here. These things became more apparent after our sessions and I think they should be considered huge benefits of pairing with someone more senior.

Connecting Dots

28 Sep 2014

In his famous Stanford commencement address, Steve Jobs said something about connecting the dots and how you can only do that after the fact. The first time I heard that, it didn’t shake my thinking; actually I dismissed it offhandedly without putting much thought into it. Not that I didn’t think it wasn’t true nor profound but like most things in life, hands-on experience is often more hard hitting than simple, verbal advice.

Better breadcrumbs for your Drupal 7 site

30 Mar 2014

Often times when creating custom modules for Drupal, we get confronted with the problem of setting friendly but useful breadcrumbs. The contribution a clearly set breadcrumb can make on a page can never be understated, it guides the user on where they’re coming from and currently are.

Startup Bus Africa 2013

07 Nov 2013

Yes, I got accepted to attend the inaugural Start up Bus Africa, a 5 day hackathon on wheels from Harare to Cape Town! This event is bringing different kinds of amazing people from all over the world to form groups and work on some amazing ideas during the trip that we will eventually pitch to Richard Branson! 

Sink or swim

15 Oct 2013

Lesson learnt: FIGHT YOUR FEARS! So yesterday I got home after a weekend at my sister’s only to realize I didn’t have the keys to the apartment. I HAD to get inside the flat though, I had a meeting scheduled for 12 noon. The only way was to get into the flat through a small little window, at the top there (see attached pic) Seemed like the most daring operation, lol growing up I hadn’t climbed houses like my peers would possibly confess they so often did.

Removing all-day label from Drupal calendar module

30 Aug 2013

If you’re new to Drupal, let me tell you something, the Date module is a must-install! It comes with some awesome functionality and a date API that enables you to add date fields to different content types, even entities in Drupal 7!

How to theme Views output Drupal 6/7

30 Aug 2013

I was recently asked by a friend how the output from Views can be themed easily. I’m going to show you an easy way for pure Drupal n00bs to control the look and feel of their website. This tutorial does not require much coding skill, just some CSS knowledge and the ability to use Views is enough.

Guide to securing Joomla v1.5 sites

30 Aug 2013

My Linux installation crashed this morning which got me thinking so much about doing regular backups and making sure everything is secure. It’s been a weird week really, one of my mates got his website hacked too so I’ve had to think a lot on web security as well. I’m a Drupaler and he was running Joomla!, the CMS I dabbled in when I got started into web development. I hope to show you some of the cool things one can do to secure a Joomla! Site, with hacktivists on the prowl now more than ever (for better or worse) it helps to take measures against seeing the photo my friend woke up to find .

Africa is killing it in thinking

30 Aug 2013

Disclaimer: this is in response to a post written by Sam Chipangura on his blog here:
http://takunda.tumblr.com/post/18998396482/is-africa-killing-it-in-the-c…

How to get the most from working at home

23 Aug 2013

it’s about having a culture and making sure that it’s understood.

@tafmakura

when discussing about the challenges of telecommuting, being disciplined and making sure one creates an environment they can best work in.

I totally agree.

Success and consistency

22 Aug 2013

Consistency is one of the key things young and budding entrepreneurs are never told enough times is fundamental to long-term, enduring success. In a lot of success talk and teachings people tend to concentrate on qualities that CREATE success, such as a strong desire for something, networking, working hard or smarter, etcetera. Based on experience so far, I can confidently say there’s something very close to what’s sometimes called “Beginner’s luck”. The easy-going, free flow of positive events at the start. It’s quite endearing and a lot of aspirants, quite literally, lose it at this early stage. Why that free, easy flow is often classified as success possibly has a lot to do with small, achieavable goals people set at start.

Back to old adventures

30 Jul 2013

Exactly a year ago, at this time, I was offered a job to become a full time web developer at Quatrohaus. Back at the time, I was still finding my feet in web development, a process that is still ongoing, and I felt truly honored that such an opportunity had come my way.

Letting of your passion

23 Apr 2013

A couple of weeks ago, I decided to stop many of the habits I had taken up in the past two, three years. That meant a lot of coding, consuming entreporn and talking a lot about opportunities we should be exploiting. What triggered this was not that I was feeling burned out, unmotivated or discouraged but I decided to find out what it felt like to live in an inhibited world once again.

A letter to everyone from my 7 year old niece

20 Mar 2013

This little letter was written by my niece, Ruva when she was over for the holiday last year. She’s 7 years old and learns at Phoenix Primary School in Malawi. After bugging me to write something to her parents, I decided to let her write a letter I promised to post on my blog.

Copied below is what she had to say:

Great startup podcasts to listen to

17 Mar 2013

I have recently become an avid podcast collector over the past month or so and I’m clearly enjoying it. Long before downloading podcasts was even considered normal consumption of internet bandwidth, many of my mates were onto downloading a ton of them, daily. I remember just how odd that struck me and I couldn’t figure their line of thinking whether they thought the internet would be shut down one day and they’d regret missed opportunities or they were seriously putting them to good use. To this day, i’m more clueless than I was then, having downloaded a few now, I can tell you, consuming them is the hardest part.

What happened at Cultureshift

16 Mar 2013

It’s a few days after the two week Culture Shift ideation and hackathon hosted by the British Council, Jumpstart and Culture Code (UK) and for most of us, we are still basking in the afterglow. It was a wonderful event hosted to help local artists mingle with the techies and try to hack together some real solutions to their problems.

Living with less

26 Feb 2013

Any talk of perfection is often linked to minimalism.

Growing up and learning about design, I was advised to know when something is both nice and useful when “when there is nothing more to remove”. That became the mark of near-perfection to me. As a result I have tried to abide by this rule when going about design and writing. This decision has come to haunt me on several occasions with comments centering on the work appearing “bland”, not exciting, very quiet and such. So maybe sometimes I personally have taken it too far? A big possibility given i’m not much of a designer but minimalism doesn’t just stop at design.

Zimbabwe technology 2012, an outlook

01 Feb 2013

It’s a new year(!) and we all know what to expect, bigger things! 2011 was nothing but brilliant and I am 100% sure 2012 will be just as fruitful!