I really appreciate Python’s pathlib module for managing filesystem stuff. While I don’t love the argparse module for command line parsing, I don’t think it’s worse than other available options. I usually choose it for my CLI scripts, since nothing else is good enough to overcome the inertia of using a third party library.

Not many people seem to be aware that the two can very easily be combined such that argparse will return Path objects instead of strings that need to be adapted after you query them:

Continue reading

Parts in this series

Part 2: HTML

This is the second in a series on the order to study topics related to programming. There are countless resources out there for learning to code, so many that it becomes overwhelming to decide where to start. The goal of this series is to help you get introduced to the topic as gently as possible. I’m not writing the instructional content on each topic, but giving pointers to the resources you need to accomplish each section.

Continue reading

I accidentally started working on a new personal project for budgeting that I think others might be interested in. I haven’t open sourced any projects in quite a few years now, but if I actually finish an iteration of this project, I think I’ll probably share it under an open licence.

While I’ll be running the service locally, it is implemented entirely in Javascript React, and could easily be deployed as a SAAS. I was considering sharing it as a hosted service and charging a small fee for it, a little to cover the hosting costs and a little extra for my time. I’m not interested in growing or maintaining a startup, but it would be worthwhile if I could get a couple hundred users each spending a couple bucks a month to support a project they find useful.

Continue reading

Parts in this series

Part 1

Learning to program is hard. There are a few reasons this is the case:

  • Programming itself is hard. However, this is less true than most people believe. Programming professionally is pretty difficult. But doing basic cool stuff that makes you feel accomplished is quite easy.
  • There are many “specializations” in programming. A beginner programmer isn’t going to know what all those are, let alone which one they are interested in. You shouldn’t have to choose the first programming language you want to learn before you know what programming languages are. You shouldn’t have to decide between mobile apps, games, data science, artificial intelligence and various types of web development before you understand the basic programming structures.
  • Setting up all the programs and tools (coders call this the ‘development environment’) needed to write software is hard.
  • Everything you need to know seems to depend on knowing all the other things that you need to know. It becomes really tricky to decide what to learn first.

This post is the first in a series intended to address all these points, especially the last two. I want to present easy-to-digest steps that anyone who can use a web browser should be able to follow to learn the basics of coding. The end goal might be to just give you a stab at a new hobby. Or maybe you’ll love it and end up with a new career in a lucrative field. Either way, I hope those programmer friends who have been urging you to try programming have recommended this post to you.

Continue reading

Back in 2012, I wrote a book called Hacking Happy. It was my first self-published work, and I was actually surprised by how well it did without a publisher or marketing behind it. I had plenty of positive feedback including more than one hopefully exaggerated, “This book saved my life.” Most of the feedback was a bit more sedate, but I received a lot of private messages thanking me for writing it.

Continue reading

I'm Back

Hi there, I’m Dusty. Welcome to my resurrected blog.

I started a tech blog in 2007 that I maintained with regular posts for several years. While it was well-regarded at the time, I took it down in late 2016 for several reasons. First and most obviously, I became extremely busy, and simply did not have time to keep up the schedule and quality of my writing. That reduced availability coincided with my taking on a new role with Facebook in late 2013. Working on infrastructure at Facebook scale requires understanding problems and technologies that are only interesting to the largest dozen or so tech companies in the world, and many of them are proprietary. As a result, I ran out of blog topics that would be of interest to the general population. Third, the blog was throwing frequent database errors and I didn’t have the time or interest to maintain it. I figured my audience would mostly have abandoned it by that point due to infrequent posting and intermittent availability.

Continue reading

Author's picture

Dusty Phillips

Canadian author and software developer.

Author and software developer

New Brunswick, Canada