Posts Archive.

2024

Computer Startup Turns on Office Lights

Home Assistant has some useful features built in, even if they’re not particularly well presented. For example, you can actually trigger any automation from a basic HTTP GET request via a Webhook. All from the GUI, without messing with endless YAML. 2024-02-01

2023

Reply by Email

Long term readers may remember that I was a fan of the social network previously know as Twitter. Once upon a time, it was a seemingly rock-solid and an everlasting social platform. It was often a good experience, and an unmatched communication channel for when customers were ignored by uncontactable corporate types. It was also great for gathering, storing and displaying feedback from a large pool of people but that has unfortunately changed in recent years partially due to the misguided whims of one particular arguably-overpowered billionaire. The feedback focused functionality has now gone, and it’s far from the open and reliable platform it used to be. And so, the blog needs a new comment system again! Going forward, I won’t so easily overlook the obvious red flag of a non-profitable and proprietary centralised service giants. 🚩 Although there are some up-and-coming social platforms alternatives like Mastodon. I don’t think they’re ready just yet, and I’d rather not have a dedicated database with backend either. There are few good third-party blog post comment systems out there for static sites, and even some DIY options too, but after browsing the solutions used by some of my favourite blogs, I’ve decided to stick with a good old fashioned solution. Email. The Email Reply Button A few notes on mitigating some of the more obvious issues with email only comments or replies to blog posts: 1. Open Email Conversations If comments from readers only came in via private emails, the valuable public discussion... 2023-12-24

We Need Feeds

Let’s travel back in time to the internet’s teenage years, to when it was common to follow a personal blog, or join an open forum focused around a particular topic or community, without using any sort of mass-social media platform. You’d simply keep up to date with your small corner of the internet using an RSS feed or email digest. Nowadays, the default online behaviour is to consume an endless feed of low quality content, fed to you for free by a company who’s desperate to make money indirectly from your behaviour. All while, basing their success on some inhuman metric rather than your assessment or happiness with the service. 2023-11-27

Simple Self-hosted Log Navigation

There are a bunch of ways to deal with the plethora of logs when self-hosting or running a homelab. And, some are more sensible than others. As with everything Linux setup, there are simple ways, complicated ways, overly complicated ways, the enterprise ways and the complicated enterprise ways. If you’ve got a low power requirement or low headache requirement, you may prefer the simplest, most native approach when dealing with non-critical systems like a homelab and self-hosted services. i.e. I’d rather not host an application for logging when there are some great native alternatives. Here’s some groundwork information and a few great tools that will get you get started with logging. I’m going to cover: logging basics on Linux lnav 2023-11-27

Run a Cron Bash Backup Script Safely

You might already be using the cron scheduler to run a daily bash script, perhaps you’re backing up files using rclone or rsync? What happens if that script runs for more than 24 hours (or whatever time interval you’re using)? Bad things, as multiple instances of backup scripts can interfere with each other and corrupt data. This bash one-liner stops a script running again if it’s already running elsewhere. 2023-06-01

Syncthing Photos, a Dropbox or Google Photos Replacement

If you’ve not come across Syncthing before, it’s an open source file synchronisation replacement for commercial big-tech services like Dropbox and Google Drive. You configure it, run it and control your data. There’s no central server that stores your data, no company with other interests. It uses a clever P2P (peer-to-peer) file synchronisation technology called BEP (Block Exchange Protocol) to sync your files back-and-forth between devices directly without a storage server in the cloud. It’ll sync all your files and photos from your phone like Dropbox Camera Uploads or Google Photos automatic backup, replacing all but the public sharing features of Dropbox or Google Drive. 2023-02-07

2022

Jekyll in Docker with Docker Compose

Containerised local development is often the way forward for small software development teams. It allows everyone to replicate the same working environment without spending ages configuring their individual systems. This goes especially for the nowadays more uncommon languages such as Ruby - and if you’re not ready to make the leap to Hugo - running the ruby based Jekyll in Docker is a great solution for local Jekyll web-development. Setup Jekyll in Docker and Docker Compose First, make sure you have docker running in the background, whether via the docker engine or Docker Desktop etc. Then, create a docker-compose.yml file in the root of your Jekyll project with the below YAML content. Run this docker compose file to launch a container with the official Jekyll docker image, and your Jekyll sites files. Once the container has fully loaded, you can access it via http://0.0.0.0:4000 and since we’re only running this locally the lack of SSL/HTTPS should be fine in most cases. services: jekyll: image: jekyll/jekyll volumes: - .:/srv/jekyll - ./vendor/bundle/:/usr/local/bundle ports: - "4000:4000" command: jekyll serve --force_polling --drafts 2022-12-30

Remember tar flags the easy way.

tar is one of those commands that used all the time in the terminal on bash, but it’s not easy to remember the flags or parameters for compression and extraction of .tar.gz files. Here’s my dumb and easy to remember method for remembering the tar command options. (I don’t remember where I first came across this). 2022-08-08

2021

Deploy with Rsync on Github Actions

There’s a lot of great ways to deploy code into production nowadays. Some cloud providers even handle deployment themselves, you setup a repository in Bitbucket or Github, connect the Cloud provider and they’ll build and deploy the code based on your specifications. There’s also a bunch of third-party providers that can do this for you, acting as the “deployment middle man”. This is great for teams or complex systems with complex build requirements, but what if you have a simple or legacy app that doesn’t support these methods and you don’t want to continue relying on manually uploading code via SFTP (or FTPS… shudder)? Well it’s not an ideal solution but you can use Rsync on Github Actions for this. Github also has a generous free plan so it usually doesn’t cost a penny - depending on how often you deploy. 2021-10-02

Text-to-Speech for Linux

Those of us with dyslexia know that writing great emails (or any other written communication for that matter!) can be tricky at the best of times. Being able to check your writing with a text-to-speech app is a great help, and you may already be aware of the say programme for TTS on macOS. It can be setup with a keyboard shortcut to speak aloud any selected text. You can even get real human-sounding voices, rather than programmatic-robotic voices from back-in-the-day, they use real inflections and pick up on grammar too. This sort of tool is called “Advanced TTS” or Advanced Text-to-Speech, and it’s great for checking the flow of your emails. However, a great TTS is harder to get on a Linux desktop. There are a few easy-to-install TTS applications on the various Linux repositories, but they’re old-school at best (think 1990s Sci-Fi robot tones). These sorts of TTS apps are not the most helpful for checking human inflections and grammar in a chunk of text. There are some great Firefox web-browser add-ons for using advanced AI-based TTS for selected text on webpages. However, these add-ons won’t help outside the web-browser, and you may be sacrificing your privacy to the operators of the add-on as they sit between you and the advanced TTS providers like Google Cloud. Thankfully, all the big-players in the cloud now offer their own TTS or Text-to-speech APIs. This means that we can use them pretty easily on Linux, with just hacky script, some dependencies,... 2021-05-10

2020

Twitter as Comments, for Blogs & SME Brand Social Engagement

So you're looking for a super simple, light-weight, slightly hacky, solution for encouraging social engagement, promoting excellent customer feedback and managing comments on articles and posts? All with little effort and no extra services. A few lines of CSS, and the right call-to-action button will do. Here it is - the no-plugin, no-service, no-faff Twitter comment system for blogs and other media engagement. 2020-02-26

DSE Workstation Safety for Serious Computer Users

I’ve been <p>Learning the hard way that; Pain, Demotivation and Low-productivity can creep-up when you’re knee-deep in a startup or long project. You already take the time to ensure your tech and business model is setup and working well for you - so why not your teams physical health too?</p> Once you fix your workstation - you'd be surprised at the subtle low-levels of physical pain relief, as well as the acute pain relief too. You become more motivated, more productive and much more engaged in the same-old-tasks - seemingly like magic. Nurture yourself and those around you, before you fall apart and seize up like an old machine trying to reach the dividends. A London based company I've had the pleasure of working with teaches such Magic to mere-mortals like ourselves, via eLearning... 2020-01-16

2019

tmux-hints.sh v0.3 Update! The Terminal Cheat-sheet app for Devs

'tmux-hints' is a small shell script I wrote to display a live cheat-sheet - or key-mapping notes - in a terminal running tmux. As you switch from one program to another, your notes update automatically with that programs notes instead. Great for new key-combos and noobs alike. After gaining some popularity, mainly from Reddit, I had some great feedback ready to put into action. Version 0.3, improves on existing concepts and implementation mainly thanks to /u/vogelke and others commenting their experiences. 2019-12-23

Technical Business Management Developer in London

TLDR; Thanks for everything & I'm now available for hire. A quick update - thanks for the recent support on my article "Digital Will" a backup-plan for business, the support for my recent side-projects like the personal finance/net worth tracker & the feedback from readers too! ? Starting in mid-December 2019 - you'll spot the "dusty-red button" on the side of this blog when I'm available for freelance or contract consultancy work. I focus on technical business management for software and non-software businesses. Passionate about finance, sales, strategy and automation - I'm also a battle-proven fullstack developer i.e. LAMP, serverless, front & backend. 2019-12-16

"Digital Will" - a Last Will & Testament, for Your Online-life

TLDR; Use a Password Manager like 1Password, it makes your day-to-day life easier, more secure and can protect yourself & those around you in an emergency too. If you're an individual, or even a key-player in a SME business, you've probably already come across the nightmare situation where something vital becomes that-bit-trickier when the person holding the digital-keys is missing. What would you do when your colleague is sick and you need access to their account? All the careful planning will only get you so far, sometimes services disconnect and you need access to an account right-now. The situation only gets worse when you die, how will your loved ones access your accounts quickly when they need too? Here's the simple solution. 2019-12-10

How to track button clicks in Google Analytics simply with jQuery/JavaScript?

TLDR; Track & analyse button clicks (events) on website pages with Google Analytics by pasting these few lines of jQuery/JavaScript code onto your site under the Google Analytics code. It'll find most common button types and send clicks to Google Analytics for analysis. The jQuery/JavaScript code for tracking GA button click events is here hosted on GitHub Gists: View the Code Gist on GitHub 2019-10-25

SFTP for Vim

A great replacement to Sublime Text 3's SFTP plugin with a similar setup and workflow, but with the power of Vim. Whether you're a hardened vim veteran or new to vim for web development using SFTP is now the secure FTP standard over SSH - it's become a common feature built into most graphical IDEs. 2019-09-16

Atilium Phone Pre-launch

Although I'm sure most of my readers are already aware, I've been working with some excellent companies to provide simple micro-service-style tools for modern small-businesses and freelancers and today marks the day that our first digital business tool is released - although it's still very early days, you can sign-up and start using it now. Atilium.io - Small business tools. We are all connected, to everything, at all times, without thinking about it via the internet - shouldn't our work be too? "Atilium" (pronounced at-illy-um) will bring our in-house tools to the public, helping small teams and individuals connect with their customer audiences easier and efficiently in a digital-first world where traditional services struggle to keep up and modern services are out-of-reach for the everyday person. Atilium Phone - Professional phone numbers for small teams and freelancers. 2019-08-19

Hide - the Jekyll & Hyde Theme, WordPress Edition

The evil art of appending CSS code. Unfortunately CSS has a tendency to be endlessly appended, especially in large codebases and lazy or underfunded devs - this usually spells bad news for future development and a full refactoring is soon in order! However, appended CSS has it's time and place and this is one of them... A WordPress.org "Twenty Fifteen" theme modification to look just like "Hyde," a fantastic theme for Jekyll (another website/blog software somewhat like WordPress). 2019-08-13

Ctrl + Y

Here we are again! The re-re-birth, and collation, of my various old blogs and their posts... 2019-03-18