Posts Archive.

2025

Jekyll in Docker 2025 Update

/run-jekyll-in-docker-2025-update/ 2025-01-22
BLOG, CODE, FEATURED, JEKYLL, TOOLS, VSCODE

Selfhost Ente Photo's CLI Backup

/ente-photos-export-docker/ 2025-01-16
BACKUP, DATA, FEATURED, PHOTOS, SELF-HOSTED

2024

Classless CSS Frameworks

/classless-css/ 2024-09-09
CSS, FRAMEWORK

At the Pizza Party

/pizza-party/ This started life as a completely unrelated excise in abstractly defining common tech-related professions like you would for communicating tech-infra, but it ended up being this silly mess of unhealthy tech-company stereotypes. *Please email in your additions, corrections and protests at the bottom of the post.* You're meeting up with friends for your usual pizza party on Wednesday evenings, but only unhealthy tech stereotypes and other related professions show up. 2024-06-07
CULTURE, HUMOR

Take your stuff back, Part 2 of 2

/selfhosting-data-and-backups/ 2024-02-24
BACKUP, DATA, PHOTOS, PRIVACY, RSS, SECURITY

Take your stuff back, Part 1 of 2

/basic-online-data-security-and-privacy/ 2024-02-23
BACKUP, DATA, PRIVACY, RSS, SECURITY

Blog, Site and RSS Updates

/site-updates-rss-and-shop/ There's been some changes around here... 2024-02-01
BLOG, META, SHOP

Computer Startup Turns on Office Lights

/home-assistant-webhooks/ [Home Assistant](https://www.home-assistant.io) 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
AUTOMATION, FEATURED

2023

Reply by Email

/reply-by-email/ 2023-12-24
BLOG, JEKYLL, RSS

We Need Feeds

/an-rss-renaissance/ 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
DATA, PRIVACY, RSS

Simple Self-hosted Log Navigation

/simple-linux-logging/ 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
CLI, HOMELAB, LINUX, SELF-HOSTED, TOOLS

Run a Cron Bash Backup Script Safely

/run-bash-once/ 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
BASH, CODE, CRON, LINUX, TOOLS

Syncthing Photos, a Dropbox or Google Photos Replacement

/syncthing-dropbox-and-google-photos-replacement/ If you've not come across [Syncthing](https://syncthing.net/) 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](https://docs.syncthing.net/specs/bep-v1.html#bep-v1) (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
FEATURED, MESH, OPEN SOURCE, P2P, PHOTOS, SYNCTHING, TOOLS

2022

Jekyll in Docker with Docker Compose

/run-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. ```yml 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
BLOG, CODE, FEATURED, JEKYLL, TOOLS, VSCODE

Remember tar flags the easy way.

/linux-compression-tar-zip/ `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
BASH, CODE, LINUX, TOOLS

2021

Deploy with Rsync on Github Actions

/github-actions-deploy-with-rsync/ 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](https://docs.github.com/en/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
CICD, CODE, DEVOPS, FEATURED, GITHUB, LINUX, TOOLS

Text-to-Speech for Linux

/advanced-tts-text-to-speech-on-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... 2021-05-10
CODE, FEATURED, GCC, GCP, LINUX, PHP, TEXT-TO-SPEECH, TOOLS, TTS

2020

Twitter as Comments, for Blogs & SME Brand Social Engagement

/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
BLOG, CODE, JEKYLL, MARKETING, SME, SOCIALMEDIA, STARTUP, TOOLS, TWITTER, WEB

DSE Workstation Safety for Serious Computer Users

/serious-computer-users-dse/ I've been 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? 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
CODE, DSE, FEATURED, HEALTHANDSAFETY, PRODUCTIVITY, SAFETY, SME, STARTUP, WORKSTATION

Connect Starling Bank to Zapier & IFTTT

/connect-starling-bank-to-zapier-ifttt/ You can now connect Starling Bank to Zapier with full functionality (a great IFTTT alternative) and connect Starling to IFTTT with basic functionality. This makes it super-easy to integrate your bank with thousands of other online services, even if you're not a programmer. Even if it is a little unofficial. 2020-01-14
AUTOMATION, BANKING, CHALLENGERBANK, FEATURED, FINANCE, IFTTT, INTEGRATION, MONZO, MONZOBANK, SME, STARLING, STARLINGBANK, ZAPIER

2019

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

/tmux-hints-sh-v0-3-update/ '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
BASH, CHEATSHEET, CODE, DOTFILES, FEATURED, OPENSOURCE, TERMINAL, TMUX, TMUXHINTS, TOOL, VIM, ZSH

Technical Business Management Developer in London

/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

/the-digital-will/ 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
1PASSWORD, BACKUP, CODE, DIGITALWILL, FEATURED, FINANCE, PASSWORDMANAGER, SECURITY, SME, STARTUP

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

/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
ANALYTICS, CODE, GOOGLEANALYTICS, JAVASCRIPT, JQUERY, SME, TRACKING, UX

SFTP for Vim

/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
CODE, PLUGIN, SFTP, TERMINAL, TMUX, TOOLS, VIM, ZSH

Atilium Phone Pre-launch

/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

/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
BLOG, CODE, CSS, HIDE, THEME, WEB, WORDPRESS

tmux-hints.sh: The auto cheatsheet for vim, zsh, tmux etc.

/tmux-hints-sh-auto-cheatsheet-for-vim-zsh-tmux/ Being comfortable using terminal means nothing when getting used to new shortcuts, key-combos and custom mappings can be a memory-game. I've ended up with a bunch of note files containing hints for all the things I should have remembered by now. There's a better way... 2019-07-17
BASH, CHEATSHEET, CODE, DOTFILES, OPENSOURCE, TERMINAL, TMUX, TMUXHINTS, TOOLS, VIM, ZSH

Personal Finance, Net Worth Tracking Spreadsheet

/best-personal-finance-net-worth-tracking-spreadsheet-2019/ One of the easiest things you can do to improve any situation is getting a good lay-of-the-land. From business to personal life collecting info, mapping out the data and simply being informed can do wonders for progressing towards your goals - and the same goes for personal finance. 2019-03-31
ANALYTICS, BANKING, FEATURED, FINANCE, GOOGLESHEETS, NETWORTH, REDDIT, SPREADSHEET, TOOLS, TRACKING

Music for Programmers, Developers and Concentration

/music-for-programmers-developers-and-concentration/ Wiring in - getting down to some standard bug-squishing or building that mental-map is almost always easier with the right motivation in any profession. 2019-03-19
CODE, MUSIC, PRODUCTIVITY, WORKFLOW

Ctrl + Y

/ctrl-y/ Here we are again! The re-re-birth, and collation, of my various old blogs and their posts... 2019-03-18
The end of time, as this blog knows it.