Writing
-
Respecting user preferences for color scheme and contrast
I had a lot of fun building this new site and catching up on learning some CSS media queries. Here's how I used CSS custom properties and a basic system to support both a dark-mode and a high-contrast mode for my new site.
-
5 Useful things you can do with tmux
A friend at work (it’s you Yedida) asked why I use tmux instead of a regular terminal, so I thought I’d share my reasons here and explain some of the things it can do that regular terminal emulators typically can’t.
-
Play is a validated activity for learning
Play is a validated activity through which learning occurs. I’ve noticed in my own journey that I’ve learnt things I couldn’t have learnt in any other way than by simply having the curiosity and drive to try and “figure things out”.
-
If it's not a tradeoff it's a mistake
Whenever I need to make a decision I use a model because in software, every decision has a tradeoff. I find that using a model is extremely valuable as it helps put polarising views into perspective. For kicks, let’s discuss choosing a javascript framework (yikes).
-
Software estimation in hours with Scrum
Software estimation is difficult, and that's why I'd like to share a process that has worked for me, based on some other really smart people's thoughts. The gist of it: List what needs to be done in tasks of no larger than 4 hours. Then place them in groups according to how they can be tested by someone else.
-
Diagnosing cancer with machine learning
Many years ago, I gave a talk on how to diagnose cancer with machine learning. I shared this talk locally in South Africa, and twice in the USA. It was a roller coaster ride, and this why I did it...
-
The Dino Deep Work Policy
Getting things done when your team needs you is tough. This is my experience on a strategy that has worked for me: on notifications, focus, deep work, and being intentionally, fully present in every moment.
-
The horizon of software development estimation
How far into the future should a team estimate software development? To provide insights into this somewhat tricky and frustrating question, I have devised what I believe to be a useful metaphor that I want to share with you - I call it the horizon of software development estimation.
-
View objects in Ruby with SimpleDelegator
View objects are given little love in Ruby because of Rails' lack of a true view layer in it's architecture. Let's look at some view object patterns that can help you scale your server rendered views.
-
dotfiles, vim, & tmux
dotfiles are a developers configuration files that make them feel at home working on a machine. Here are mine.
-
Software Design Patterns in C++ & UML
OOP software is a complex game attempting to manage mutable state. There are well known patterns for common problems, you probably know them but don't know they had a fancy name. Here are some examples in C++.
-
Computer Scientist's Responsibility
Work on something that matters to the world. A developer has the ability to do this, so they should also carry some responsibility to seeing this actually happen.
-
Evolving Investment Strategies Using Genetic Programming
Evolve an investment strategy represented as a decision tree, referred to as the phenotype, using genetic programming, wait what?. This illustrates for a specific period, fundamental indicators winning out over technical indicators.
-
Vulnerability Detection System
Everyday our devices share data on public networks. The SWAP system uses active and passive scanning techniques, determines if a device is running compromised software, and blocks it from accessing the network, bummer.