GitHub may replace DockerHub

It’s been interesting to witness the meteoric rise of “Docker” over the years, and it is undoubted that the technology that was pioneered and popularized by Docker (more correctly called “Linux Containers”), is here to stay for the long run. The rise of the technology was partially due to the ease of publishing containers, enabled by free DockerHub service. However, in this article, I propose that DockerHub as a single repository of container images is becoming less and less important than it once was, and in it’s place, GitHub is a strong contender to take over as the 1 repository for containers — as it has its sights on being everything a developer needs.


Continue reading...

Use Firefox as a universal web chat app

Chat that is always compatible, updated, and integrates with browser extensions.

Too many chat apps — can’t change that.

The amount of chat applications and protocols out there now-a-days is getting absolutely crazy. It’s like in the 1990s, when we had ICQ, AIM, IRC, and others. For a little while, I felt like things were getting better — I got down to just 2 chat apps!…

Fast-forward to today — the chat apps I need are unfortunately even more than in the 90s. However, something that has changed for the good: thankfully all of them have web-based versions. Here are all the webchat options I have loaded in Firefox now;


Continue reading...

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? Developers, Architects, Security, Operations?


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. In the article I’m going to outline my top three benefits for doing so.


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. Before that I was a nano user. What got me to switch? I started getting really annoyed that all the servers I was logging into didn’t have nano installed, didn’t have syntax highlighting, and similar. I consciously stuck with it and now I have a text editor that I love on every server.


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. However, it certainly works for me. This is what I naturally got to after lots of experimenting over the years. I certainly don’t think having lots of monitors is right for many people — certainly 1 large 4k ultra wide monitor is a very popular option for many people now-a-days.


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...

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.