Journeys of intellectual wandering, that involve learning, problem solving and discovery, where the destination isn’t that important.
By the end of this article I hope you can see why investing your time in such projects is interesting and useful, and how such projects could be beneficial for you.
odyssey (n): an intellectual or spiritual wandering or quest
Merriam-Webster online dictionary https://www.merriam-webster.com/dictionary/odyssey
Ever since I got into computing and technology, I’ve embarked on large, ambitious solo projects to create things. Most of the time, but not always, by writing code. …
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.
About 20 minutes in, I found a small issue that ideally needed me to upgrade…
If you’re like me, you spend your whole day in SSH sessions. Simply knowing how to save a few seconds here and there will add up to minutes and hours over time.
https://mosh.org/ — use SSH while roaming, with bad or laggy connections, most importantly, support for local echo (ie, you don’t want for the server to send keystrokes back to you).
It should be impossible for me to ever lose any of my files again.
In the past, I lost files. It pains me that I cannot get back some of my early files from my first PCs and computers. I’ve had corrupt disks. Typos in disk format commands. Busted RAID controllers, and I’ve been permanently locked out of cloud storage access, etc. I can’t stop any of that happening again, but I refuse to lose any more data because I thought I could trust the storage.
This is so important now that so much of the important stuff is only…
How to automatically build AsciiDoc into HTML on every Git commit using GitHub actions, and host it using GitHub pages.
Example of the end result;
GitHub favours Markdown the the README — so in my projects I keep a
README.md that describes the project like normal. , but I use AsciiDoc for the “real” documentation. My real documentation spans multiple files, so I use a
docs directory in my repositories. As your project grows, you’ll find you cannot document everything in the
Increased speed and accuracy with a Linux command line can lead you to be hugely more efficient and productive than you once were. This article is a continuation of the hugely popular first article; Speed up your command line navigation (Part 1).
Instead of having to type
cd usr ,
cd bin , etc. You can literally just type “usr”, and “bin”, any any other directory name that exists. This is called
autocd . Enable it like this;
user@host: shopt -s autocd
Then, if you would normally
cd bin, you can simply type
bin(you don’t need
df -hwill give you a simple understanding of how much disk space you’ve got remaining. You can filter out loopback and temporary partitions easily with;
dg -h | egrep -v 'tmp|loop'
Filesystem Size Used Avail Use% Mounted On
/dev/mapper/centos-root 100G 60G 40G 60% /
user@host: du -hs messages
You probably need to install the NCurses Disk Usage tool;
yum install ncdu (Fedora, CentOS) or
apt-get install ncdu (Debian, Ubuntu, etc). It’s awesome though;
How often do you look at people’s calendars, finding a total mess, and lack of convention around how they schedule their appointments? How many times do you have people who refuse to look at, or interpret your own calendar?
I personally use Google calendar appointment slots make this pretty easier on other people. Quite a few other calendar options have this (eg, Outlook).
Before I set this up, my calendar was very blocked back to back with appointments. I suggest you look a few weeks ahead where you calendar is more empty, and start carving out some appointment slots.
There are many elaborate tools out there for building custom raspbian images, and injecting, and adding files. Using just a simple local mount and a bit of bash, you can easily make reproducible raspbian images as well.
You’ll need a Linux “build server” to do this. This could be another running Raspberry pi (although it’ll be slow). I used my Fedora workstation. This article doesn’t cover MacOS Bash or Bash for Windows, as it needs
losetup to do the real work.
Create a build directory, and download the latest version of Raspbian;
This article briefly explains a python based script, which when run as a service, check gmail very 5 minutes for new messages against a list of labels (Inbox, High Importance, etc). The script gets the number unread and read emails with labels that you specify. Those numbers of messages are exposed as prometheus metrics, which can be rendered into pretty charts by Grafana.
Here is a close-up view of that same chart.
Public Cloud and Open Source advocate. Red Hat Solution Architect during the day. Enthusiastic developer at night :)