Small Git commits are great when working, but they aren't so great when looking at the history. This post examines the commands to make a clean Git history.
This is Paul Boyd’s blog, where I write about programming and software development.
If this is your first time here, some people enjoyed hearing about this regular expression and this article about passwords.
Latest Posts
C++'s implicit copy and move behavior offer an excellent way to shoot yourself in the foot. Here's an example of how they can create a double-free and how to avoid it.
Hacker News had a lot to say about my article on securing a server. Oddly, it was one of my more …
![A mosaic of an overgrown flower bed.](https://pboyd.io/posts/go-concurrency-fan-out-fan-in/flowerbed-mosaic-small_hu8f3bf0cb6994bf5a4ee3f2c351d340ac_224701_300x150_fill_q75_box_smart1.jpg)
Fan-out, fan-in is the work-horse of Go concurrency patterns. This post explains how it works with an example.
![A gopher and a database.](https://pboyd.io/posts/5-ways-to-write-a-go-database-model/gopher-db_huddcebc15f62b3e72ae2366e5c79c3072_146942_300x150_fill_box_smart1_3.png)
Choosing the right tools to write a database model in Go can be overwhelming. This post describes the various approaches.
![Mythical Man Month cover](https://pboyd.io/posts/productivity-limit/mythical-man-month-horizontal_hu2a8c0cd6118de765d7f9a876f31f57ab_36429_300x150_fill_q75_box_smart1.jpg)
Fred Brooks published The Mythical Man-Month in 1974. As technology goes, it's ancient. Yet it still has lessons to teach us.
At this company, we are family. And what a family we are.
![copilot1.png](https://pboyd.io/posts/copilot/copilot1_hu324a726f552d7d88dd3aaf90b814beab_51874_300x150_fill_box_smart1_3.png)
I don’t exactly hate new things, but I’ve generally had enough of what’s new and …
![Successful AWS VM launch.](https://pboyd.io/posts/securing-a-linux-vm/aws-launch_hu02cacacdb4be43d9344aa6869ac7161c_16973_300x150_fill_box_smart1_3.png)
This guide covers the basics of hardening a new Linux virtual machine when you'd rather be doing something else.
A look at designing clean code interfaces, illustrated with examples.
![screenshot of sum](https://pboyd.io/posts/useless-program/a2sum_hue2eac8ed323b83d51c641cdee2b04a47_16257_300x150_fill_box_smart1_1.gif)
Do you need to tally numbers from your Apple //e's video memory? No? Well, neither do I. But at least we can have fun with 6502 Assembly.
I have a confession: I don’t think very much about memory when I’m programming. I know …
It seems everyone has a story like this, but I’ll give you mine anyway. I was 6-months into my …
![[,-.]](https://pboyd.io/posts/comma-dash-dot/code_hu8e996e254a7cb71a45e53435eb330779_113489_300x150_fill_box_smart1_3.png)
"[,-.]" matches a comma, a dash or a period, but it shouldn't work.
![Flag raising from the John Frum cargo cult.](https://pboyd.io/posts/cargo-cult-of-good-code/John_Frum_flag_raising-800_huc17401b6116eec3c5f43b4c8954dd38d_125115_300x150_fill_q75_box_smart1.jpg)
Software design is often reduced to a set of rules and rituals. It's well meaning and sometimes helpful, but it ultimately misses the point.
I once heard about a High School student who thought Europe was the capital of France. Of course …
As I write this, it’s Saturday morning I’m sipping coffee and listening to light rain …
Programmers tend to treat text encoding like the office bore. You weren’t planning on a 2-hour …
I learned recently that the word playwright is unrelated to write. It is, in fact, derived from …
This is a follow-up to an experiment on code structure. To recap, I built two versions of a back-end …
Like it or not, your users depend on you to protect their passwords. Here's a list of the worst things you can do.
Let’s say you want some software built. So you hire a team of smart developers, tell them what …
I recently wrote a Markov chain package which included a random text generator. The generated text …
The first time I ever heard of a Markov chain was overhearing a conversation at work. My coworker …