How to properly archive a project

The TURTLES model. How many times have you seen projects abandoned on GitHub, or internal Wikis, with no explanation, no “next steps”, no follow-up or notes? How many hundreds of hours were lost to that project, and what was learned? This article proposes a model (“TURTLES”), or more simply, a checklist, of how to properly archive a project. Is now the right time to archive this project? T — Technologists: Do enough people contribute to maintaining this project?

Continue reading...

Use a httputil reverse proxy to host grpc, rest and HTML on a single port

This helps you use Go to power the next generation of APIs+PWAs. Prerequisites; This article assumes you know what protobuf and gRPC are, and have set up the grpc-gateway for REST already for your app. The context gRPC has become the default standard for modern Cloud Native RPC in Go. And gRPC is fine for backend service-to-service communication that can speak gRPC. To support older services, and the web, REST still reigns supreme.

Continue reading...

Read the source, Luke

Reading the source code is a pathway to many abilities that some consider… unnatural. Luke’s original strategy was to attack the death star via SQL injection, but in the end he went for an X-Wing based buffer overflow. I want to encourage you to actually read through the open source code for the software that you’re using. Doing so has many potential benefits, and skills like this can give you a real edge and advantage in your team.

Continue reading...

Linux tools that I learned 10 years ago, which I still use every day

There are a lot of cool Linux commands and tools you COULD learn, but what’s the point in investing a bunch of time if you just use them once a week, or once a month? A good example I like to give is Vim — it takes a long time to learn and master, but I use it over 10 times a day so it’s worth it. vim — the universal text editor I remember thinking vim was stupid — so many keypresses and shortcuts to remember.

Continue reading...

My desk has 6 monitors

Taken in approx Mar 2021 I want to explain how I use this setup, and how I got here. Perhaps I will encourage you, to experiment with your desk and workflow. Pictured above, is my desk. It does indeed have 6 monitors. It also has 4 computers with 3 operating systems (2x Linux, 1x Windows — for gaming, 1x Mac — for iOS development). I don’t intend to brag, or show off, or try and say that this set-up is absolutely essential for me and that nothing else would work.

Continue reading...

Recompiling a Linux terminal — a story of time well invested

My desktop after the story; i3, st, and some other stuff. It was worth it, but I need to explain how I got here. It’s about 2pm on a Friday afternoon, my week of meetings is finally drying up. I have a few hours in my calendar the rest of the day — and I’m not going to spend it catching up on more emails. I want to fill these last couple of hours with something a bit more fun, so I pick up the Ansible collection I was hacking code on and get to work.

Continue reading...

All storage will fail, so all my files are distributed & tracked in Git Annex. ❤

This post is about how, and why, I use Git Annex to implement my 3-2-1 backup strategy backup strategy. In summary, that is; At least 3 copies of the data In at least 2 different storage mediums With at least 1 copy offsite In practicality, I’ve used Git Annex to implement more like a 9-5-3 backup strategy and track everything nicely. This strategy should mean that I should not ever lose files that I care about ever again.

Continue reading...

Odyssey Projects

This article is about how I often invest time in ambitious projects just for the joy of working on the project, often without the intention of finishing or publishing the project. By the end of this article I hope you can see why investing your time in such projects is interesting and useful, so you can understand why I spend so much time on this, and why you might consider doing the same too.

Continue reading...

You can't do GitOps until you `git add`

This article explains how I solved a couple of challenges of getting my initial environment and configs into Git — the first steps to GitOps. I’ve been wanting to embrace GitOps for quite some time, but it’s always tricky to know where to start. Do I use Jenkins Jobs — I know Jenkins well? It’s a bit old school though, maybe I should be using Ansible Tower. I’ve heard things about ArgoCD, and lots of others.

Continue reading...

Speed up your command line navigation

Speed up your command line navigation Photo by Kevin Ku from Pexels Knowing a few key shortcuts can have a surprising impact. As someone who sits frequently with others over a command line to help debug code and navigate servers, it’s easy to become frustrated on their behalf at how cumbersome things can be when you may not know time-saving shortcuts. Here are some essential shortcuts and key tips to help you speed up your command line usage.

Continue reading...

About James Read

Picture of James Read James is a "full stack" Open Source enthusiast, who enjoys creating no-nonsense open source software.

Dad, hobbyist developer, open-source enthusiast and Red Hatter.