I’m about halfway into writing my first novel. Though I have plenty of writing experience, this is my first real attempt at fiction. I’ve been surprised at the difficulty! Some of my skills transfer over; I still know the basic structure of the English language and I put commas in the right places more often than not, for example. But many other things are much different.

The hardest change I’ve had to make is the order I present information. In a nonfiction book, I try to present everything in a logical order with as much clarity as possible. Each step should lead to the next step in a way that is comfortable and non-intimidating to the reader.

Continue reading

Parts in this series

Part 6: Local Development

This is part 6 in my series on the order to study topics related to programming. This series aims to provide a gentle path to follow as you explore this fascinating field. The goal is not so much to get you a job in the field, but to help you to take on a new hobby.

Continue reading

Python 3 Object-oriented Programming 3rd Edition

My publisher unveiled the third edition of Python 3 Object-oriented Programming today! This has been the culmination of several months of work.

Editing and updating the second edition was a pleasure. It was gratifying to discover that the content has aged well. This was not the case with the first edition; I did extensive restructuring and rewriting before I was satisfied with the second.

Continue reading

One of many things I love about Python is how whitespace is an integral part of the language. Python was the first popular programming language designed with the idea that “code is read much more often than it is written.” Forcing authors to indent code in a maintainable fashion seemed a brilliant idea when I first encountered Python fifteen years ago. The lack of braces scattered throughout the code made for easier reading. Somewhat ironically, it also makes the language easier to write: Typing the brace character requires a certain amount of finger gymnastics.

Continue reading

Parts in this series

Part 5: Beginner programming, dynamically typed

This is part 5 in my series on the order to study topics related to programming. This series aims to provide a gentle path to follow as you explore this fascinating field.

Continue reading

The venerable RSA public key encryption algorithm is very elegant. It requires a basic understanding of modular arithmetic, which may sound scary if you haven’t studied it. It reduces to taking the remainder after integer long division. The RSA Wikipedia article describes five simple steps to generate the keys. Encryption and decryption are a matter of basic exponentiation. There’s no advanced math, and it’s easy to understand their example of working with small numbers.

Continue reading

Parts in this series

Part 4: Binary, bits, and bytes

This is part 4 of my series on the order to study topics related to programming. This series aims to give people a gentle path to follow in order to be able to dabble in this field. It is oriented toward people who are easily frustrated and therefore give up quickly.

Continue reading

Whenever I start a new hobby web project, I just want to jump in and start coding.

Instead, I spend many many hours trying to get authentication to work. I’ve got half a dozen half-finished “boilerplate” projects lying around that were supposed to satisfy the desire of, “next time, I can use this boilerplate and authentication will just work.” It never does.

One thing I know I don’t want to do is manage my own auth database anymore. It’s too risky, and keeping a Django (for example) instance patched and up-to-date is more devops overhead than I’m interested in.

Continue reading

Parts in this series

Part 3: SQL Basics

It’s not common to see SQL as the next language taught after HTML. Most authors would jump to a full-fledged structured programming language like Python or Javascript instead. There are a few reasons that I think SQL is a better next choice. While it’s a lot more complicated tool than the formatting languages you’ve been working with, SQL is designed for a specific purpose and is therefore not as overwhelming as a general purpose programming language. It also uses an English-like language that might be more familiar than those other languages. In fact, it was originally designed for use by non-programming business people, although it never achieved that goal.

Continue reading

My wife and I both have a tendency to leave the garage door open. You’re in and out, grabbing garden tools or supplies, and at the end of the day you enter the house through the back door and forget to check the garage. Luckily, we live in rural Canada, surrounded by wonderful people, where the door could sit open for days without anything “disappearing”. But it still makes me feel nervous to discover it’s been forgotten, if only because it is a waste of heat in the winter (not to mention the chance of blowing full of snow!). I tried a couple ways to solve the problem:

Continue reading

Author's picture

Dusty Phillips

Canadian author and software developer.

Author and software developer

New Brunswick, Canada