Hello world! I'm Al, a software developer in Vancouver, British Columbia.
Currently, I am keeping busy with software development at Absolute Software, graduate coursework at Georgia Tech, and occasional open source development for various projects.
I keep some of my stuff on GitHub and track my reading on Goodreads.
Blog Posts
- 2022-09-20 - iPhone Settings to Improve Focus
- 2022-08-20 - Course Review: Software Development Process
- 2022-08-16 - Writing an App Uninstaller for macOS
- 2022-04-24 - Course Review: Computer Networks
- 2022-04-17 - On Shorter Retry Loops in Elden Ring
- 2021-11-29 - Course Review: Introduction to Information Security
- 2021-10-30 - Remap Caps Lock to Control
- 2021-08-15 - Why Use Analogies in Software Teams?
- 2021-07-21 - Windows for Software Development
- 2021-06-19 - Software Development as Craft
- 2021-05-09 - Vim Tips: Editing as Super User
- 2021-04-28 - How I Manage My Dotfiles
- 2021-03-07 - Setting Up a Home Server
- 2021-02-21 - Practical Vim by Drew Neil
- 2021-02-15 - Vim Tips: Macros
- 2021-01-13 - Vim Tips: The Dot Operator
- 2020-12-30 - Changes to this Site for 2021
- 2020-08-07 - Real Wood Keyboard Skins from WoodWe
- 2020-07-11 - A Guide to Mosh
- 2020-06-28 - Learning What to Learn
- 2019-12-02 - Changes to this Site for 2020
- 2019-01-14 - Demystifying Events in C#
- 2018-10-22 - Demystifying Delegates in C#
- 2018-09-28 - JavaScript Pitfalls, Part 2
- 2018-08-20 - Neat Developer Tools on Windows
- 2018-06-28 - JavaScript Pitfalls, Part 1
- 2017-10-31 - The JavaScript Scope Chain
- 2017-09-08 - Languages: Strong or Weak, Static or Dynamic
- 2017-08-01 - Insert Row and Return an Auto-Generated Id in Oracle
- 2017-07-05 - When is Tail Recursion Worth the Trouble?
- 2017-06-12 - Better String Building in C#
- 2017-05-12 - First-class Functions
- 2017-04-02 - Coercion in JavaScript
- 2017-03-20 - Using params in C#
- 2017-02-10 - Static Classes vs Singleton Pattern
- 2017-01-27 - What's in my Tool Stack for 2017?
- 2016-12-21 - Multiple Inheritance in Python
- 2016-11-05 - Implementing a Date Range Parser
- 2016-10-27 - A Classic Case of Simpson's Paradox
- 2016-09-10 - Improvising Float Division in Tableau
- 2016-08-05 - The Basics of SSL/TLS
- 2016-07-29 - Access Modifiers in C#
- 2016-06-13 - Synchrony and Event Handling in JavaScript
- 2016-05-09 - A Simple Example of Big-O Analysis
- 2016-04-28 - Jekyll: An Incomplete Overview