Search

Updating GitLab project dates
2021-07-08 4 minutes #self-hosting #programming

As a developer I do basically everything in git and for fun I run my own git server on my home server. I’ve swapped around quite a lot between GitLab and Gitea, but finally settled on GitLab. It’s a bit heavy, but the deep CI integration is really nice.…

Backup Strategy 2021
2021-06-06 10 minutes #self-hosting #server-2021

Backups are critical to any systems longevity and reliability. If you’re not backing up your data, stop reading this now, go do it, then come back… Assuming none of you suddenly panicked and left, let’s keep going. You can keep telling yourself otherwise, but eventually, every system will experience some kind of failure.…

Website deployment process
2021-05-25 4 minutes #self hosting #programming

My website is a very important project to me. I’ve written a lot of content over the years, useful both to me and other internet folks. Currently, my website is a static site, powered by Hugo. Because it’s static, the content is served insanely quickly and handles any insane load spikes like a champ (not that any have happened).…

Server build 2020 - Proxmox setup
2021-05-03 15 minutes #server-2020 #self hosting #linux

Back in December, I fully rebuilt my home server from the ground up based on Proxmox. Being a hypervisor OS, it makes sense to run everything in VMs or LXC containers, not on the host. Therefore, there’s a huge amount of scope for opinions, lessons and customizations.…

Consuming YouTube through RSS
2021-04-12 5 minutes #privacy

YouTube is the largest video hosting platform on the planet, serving well over 1 billion videos a day to its over 30 million daily active users. People have had issues with YouTube’s subscription service for years, and for a service so large and so widely used it seems crazy that one of its fundamental features is so complex and illogical.…

What's new in Django 3.2 LTS
2021-04-06 20 minutes #programming #django

It’s that time again, time for another Django LTS release. Since Django 2.2, back in 2019, a lot has changed in tech, in Python and of course in Django. Historically, I’ve worked entirely on LTS versions, hence combining these 3 releases together.…

ZFS on home
2021-03-01 6 minutes #linux

ZFS is a great filesystem, especially for any kind of data storage, but the fact it’s not integrated into the Linux kernel makes it a risky choice for the root OS. Canonical are making this easier for Ubuntu users by tightly controlling and testing the kernel and ZFS to ensure the versions integrate correctly, reducing the risk of the system failing to boot - but the odds aren’t 0.…

Securing public servers
2021-02-11 12 minutes #security #self-hosting

At some point, servers need to be put on the public internet. Whether that be a VPS in the cloud, or your new homelab. Once a server is on the internet, it’s subject to anything and everything the internet has to offer, from botnets to hackers and script kiddies.…

Unsafe routes with Nebula
2021-02-02 3 minutes #linux #security

Nebula is a great mesh network I recently deployed into my stack. For connecting nodes spread between networks, it’s great, much better than my previous WireGuard installation. An additional feature of nebula is unsafe_routes. Unsafe routes allow nodes which don’t have Nebula installed to be accessible to other Nebula nodes.…

Plausible & Gitea
2021-01-19 3 minutes #self-hosting

Yesterday, I moved my Git server from GitLab to Gitea. There’s nothing wrong with GitLab, I actually quite like it, but it’s a rather large tool for my needs. Gitea is much more lightweight, faster, and provides all its features for free.…

Nebula mesh network - an introduction
2021-01-08 12 minutes #linux #security

WireGuard has been the “hot new thing” when it comes to VPNs, but it’s not always the best suited for every workload. Nebula is a mesh network originally created by Slack, but now owned by a separate company. TechSNAP 419 - Nebulous Networking Linux Unplugged 329 - Flat Network Truthers # What’s a mesh network?…

State of the Apps 2021
2021-01-01 10 minutes #linux #programming #self-hosting

It’s that time of the year again: time to look back at how I work, the tools I use, and how the next year might look. I’ve been working from home basically full time since the UK went into lockdown 17th March.…

Nvidia GPU passthrough in LXC
2020-12-23 8 minutes #self-hosting #linux #server-2020 #containers

GPU Passthrough has become a great way to run a Linux host, but still run games under Windows. By having 2 GPUs, 1 for the Linux host and the other for a Windows VM, you give Windows its own full GPU for games, but without having to run Windows as your primary OS.…

Mount NFS inside LXC containers
2020-12-14 4 minutes #server-2020 #self-hosting #linux #containers

NFS is a great protocol for sharing files quickly and simply over the network. Whilst it’s not designed for end user use, it’s great for mounting directories from remote machines, and having them be performant. NFS' lack of authentication is in a way a feature, honest.…

Backing up and restoring containers
2020-12-06 5 minutes #containers #linux #self-hosting

You should back up your data, properly! If you’re not, you’re playing a dangerous game with fate. Computers are pretty reliable, but they also go wrong, often. You should always backup your files, but backing up a containerized application isn’t quite as simple.…

Server build 2020 - Parts
2020-12-01 7 minutes #server-2020 #self hosting #linux

Black Friday, the only day which seems to last over a month, is a great time to buy tech. Whilst most people will be buying early christmas presents, new gadgets for themselves, or just impulse buying stuff they don’t need (something I totally never do…), I ordered the parts for my new server.…

Wiping Hard Drives
2020-11-21 3 minutes #security #linux

People say there’s no 100% reliable way to wipe a storage drive, and they’re right. By the nature of how mechanical drives work, there’s no real way to say for sure whether the data is ever really gone. With drives, the only way to be sure the content is gone is to destroy them.…

Flashing MagicHome with ESPHome
2020-11-07 5 minutes #self-hosting #electronics

I recently added some RGB LED strips around my headboard and bed frame, because everyone needs more RGB in their life. The only thing better than RGB is internet connected RGB. One of the most common controllers for this is the MagicHome.…

Hacktoberfest 2020
2020-11-01 #programming

This year’s Hacktoberfest was a little different, mostly in quite how much the internet gave a fuss about it. Given quite how much of the internet was talking about it back in early October, it doesn’t take long to find information and context on why it was so controversial.…

Increase your Docker IP space
2020-10-30 #containers #self-hosting #linux

Recently, I started setting up a new application on my docker host. It was late in the day, and I just wanted to get something up and working to play around with. Just my luck, I was met with wonderfully cryptic error:…

Recovering orphaned git commits
2020-10-22 3 minutes #programming

I recently had a far from fun morning. I had my website cloned on my desktop, with some commits which weren’t upstreamed. Having done some work on my laptop, upstream was ahead of my desktop, which needed rectifying. git pull -r is a great feature of git, which does a rebase rather than a merge commit when pulling a diverged remote.…

LAN-only applications with TLS
2020-10-19 5 minutes #self-hosting

The internet is a wild place, filled with well, everything. There are many ways of exposing an application to the internet, but no matter how secure an application claims to be, or how confident you are with your infrastructure, sometimes you may just be more comfortable keeping it internal.…

Using Scrutiny to monitor your drives
2020-09-24 3 minutes #self-hosting #linux #containers

After recently deploying a ZFS pool, I realized I had little insight into the health of my drives. I can run SMART stats now and then, but that’s not quite the same. # Scrutiny Scrutiny is a tool to help you with just that.…

Hello World with Traefik
2020-09-17 11 minutes #traefik #containers

I’ve been using Traefik for a while now, and I’ve helped quite a few people with it, but I still see a lot of people scared off it. This isn’t helped by a lot of guides being incredibly verbose, and not explaining what’s going on very well.…

Observing Traefik with InfluxDB
2020-09-10 3 minutes #containers #self-hosting #traefik

Traefik’s dashboard is a great tool to diagnose routing issues, and check services are being detected correctly, but it can’t do much more than that. It doesn’t show any metrics. Instead, it relies (arguably correctly) on external monitoring tools for metrics.…

Browsable snapshots with ZFS
2020-09-06 3 minutes #linux

ZFS is a pretty sweet filesystem, an opinion shared by the majority of the internet it seems. BTRFS (No Wikipedia, it’s not “butter fuss”) is also a nice filesystem, and the fact it’s built-in to the kernel makes it far safer to use as a root filesystem.…

Calming down Clickhouse
2020-09-02 4 minutes #containers #self-hosting

Clickhouse is a column oriented database engine, mostly designed for analytics. It was developed and deployed by Yandex in their analytics offering, but Plausible, my analytics provider of choice, uses it to store the analytics data, as it’s more suited to this than PostgreSQL.…

Installing Arch from scratch on Kimsufi
2020-08-29 5 minutes #arch #linux #self-hosting

Recently, I bought myself a new server from Kimsufi, to function as an off-site backup server. And after fighting with both their management interface and customer services, I finally got it booted. Kimsufi have a respectable list of OS options, however not especially recent.…

Container processes shouldn't run as root!
2020-08-18 4 minutes #self-hosting #security #containers

Docker containers, and containers as a whole, are really just a regular program wrapped in some extra protections provided by the kernel (namely cgroups etc) to create isolation, and other interesting features. Unlike VMs, containers run closer to the host operating system, so close they use the same kernel, meaning it’s even more important to protect it.…

HomeAssistant Temperature & Humidity Sensor with ESPHome
2020-08-12 5 minutes #self-hosting #electronics

The majority of England (where I live) is being hit by quite a heatwave. It’s hot here, like really hot! Temperature recordings from my bedroom this past few days Us brits are incapable of handling the heat, and enjoy nothing more than telling each other how hot and unbearable it is.…

Self hosting Plausible
2020-08-05 5 minutes #self-hosting #containers

I only recently talked about using GoAccess as an analytics tool. Over the last couple months, I’ve been more interested in how many hits this website actually gets. GoAccess was a really simple solution which worked on log files and only captured the bits of information I really cared about: Page views.…

Keeping your Docker containers up to date
2020-07-27 5 minutes #self-hosting #containers

Last year, I switched all of my hosting from arbitrarily installed packages to Docker. This made installing and configuring incredibly simple, but updating a little less defined. Whilst Docker itself is updated through the system package manager (probably), the containers themselves aren’t.…

Django ORM Performance
2020-06-07 13 minutes #programming #django

Django already does some pretty incredible things when it comes to performance, especially in the ORM layer. The lazy loading, fluent interface for querying means it’ll only fetch the data you need, when you need it. But it can’t handle everything for you, and often needs some help to work out what you’re doing, and what exactly it can optimize.…

VSCode Grammar Checks
2020-05-31

I write quite a lot. Whether it be coursework, blog posts, or any other random thing. Most of my time is spent in either VSCode or QOwnNotes, neither of which have any kind of spelling and grammar checking. It’s rare I’ll actually go back over something and fully check its grammar, unless there’s a very obvious issue or typo.…

How to store passwords
2020-05-28 8 minutes #security #programming

Storing passwords is a pretty simple problem in software development, right? Wrong! Storing passwords correctly is pretty complicated. With that said, it’s very simple to just lean on work someone else has done, and the libraries available for your language of choice.…

Remote to remote backups with Duplicati
2020-05-22 3 minutes #self-hosting

Duplicati is one of my favourite backup system. It’s pretty fast, supports numerous backup sources, and has a nice configuration web UI. Unfortunately however, it can’t be used to back up remote files. In fact, I can’t find a nice fully-features backup solution which does do this, which sucks.…

Traefik Basics
2020-05-01 6 minutes #self-hosting #containers #traefik

Traefik is a cloud native reverse proxy, which is basically a fancy way of saying it’s a reverse proxy with some fancy features. Specifically it has fancy features around auto-discovery, and deep integration with technologies like Docker and Kubernetes. # Basic concepts Traefik has four fundamental concepts: Entrypoints, routers, middleware and services.…

Exposing your Homelab
2020-04-29 8 minutes #self-hosting

In the current lockdown situation, a lot of people are starting to eye up that old desktop machine, or Raspberry Pi they bought for a project and just left on a shelf, and thinking of putting it to use, as a server!…

Nextcloud Sane Text Editor
2020-04-19

As a part of Nextcloud 17, Nextcloud released Text, a fancy new WYSIWYG editor for markdown with support for collaboration. Personally, I quite liked the old interface: A simple plaintext editor with syntax highlighting, paired with a side-by-side preview. Nextcloud Text was a step in the wrong direction for me, but I completely understand why Nextcloud did it.…

Self hosting my website
2020-04-11 3 minutes #self-hosting #containers

A few days ago, I was sharing a blog post to someone on the self-hosted podcast discord, and they asked if I was self hosting my website. Unfortunately, and rather ironically, I had to answer no. I’ve been intending to move it over to my own server for a while, so this felt like as good of a push as any!…

Privacy-respecting analytics with GoAccess
2020-04-10 #self-hosting #containers

Recently, I decided to put some analytics on my website. Would be nice to see what view number are like and what pages get the most traffic. Most people would just stick Google Analytics on and be done with. But the privacy implications off that are huge and terrible, not to mention any self-respecting privacy extension would block it almost immediately.…

WireGuard HAProxy Gateway
2020-03-21 5 minutes #self-hosting #security

Last year, I wrote a post on setting up a gateway to a private network, powered by OpenVPN-AS. I ran this network setup for quite a while with a lot of success, exposing services on my home network to the public internet, securely.…

Why WireGuard
2020-03-06 4 minutes #self-hosting #security

# What is WireGuard? The website defines it as “… extremely simple yet fast and modern VPN that utilizes state-of-the-art cryptography.”. Which basically means it’s a VPN, but sane. The point of a VPN is to allow two machines to talk to eachother, no matter how the network inbetween is set up.…

nologin vs false
2020-03-05 3 minutes #linux #security

When disabling a user account on a Linux box, it is good practice to also change the shell to something which, well, isn’t a shell. The point of these shells is rather than presenting the user with a prompt to execute further commands, it returns a failure code, and log out the user.…

State of the Apps 2020
2020-01-01 8 minutes #linux #programming

This year marks the 3rd year of my pattern for publishing a “My Stack” post, noting down how I get work done both professionally and personally (2018 / 2017). This year, I’m stealing borrowing inspiration from CGP Grey / Cortex and their “State of the Apps” episodes, and also talking about productivity, and the other services I use to get things done.…

CVE-2019-19844
2019-12-18 10 minutes #security #programming

Yesterday, an email was sent to django-announce, informing of an upcoming security update, labelled “high” severity. Previous notifications like this have been one week before the actual disclosure; This email, just 12 hours. The updates were scheduled to be released 12:00 UTC the next day (today).…

Hacktoberfest 2019
2019-11-01 #programming

This is year number three of my participation in Hacktoberfest, the initiative from DigitalOcean, and new this year, Dev.to. In previous years, the objective was to submit five pull requests to an open-source project. This year, the number was reduced to four, for some reason.…

macOS - A Linux Guys Perspective
2019-10-01 7 minutes #linux

For the last four years, I’ve been spending every working day off a Dell Optiplex. With an after-market SSD upgrade, and a little extra memory, it makes a pretty good work machine. When it comes to needing to work away from my desk, it’s a little annoying having only a desktop.…

Getting started with WireGuard
2019-09-15 5 minutes #security

WireGuard is taking the VPN world by storm, coming very close to the current champion OpenVPN in simple, small-scale deployments. It’s just unfortunate few people know about it, and quite how incredible it is! # What is WireGuard? WireGuard® is an extremely simple yet fast and modern VPN that utilizes state-of-the-art cryptography.…

My first arch install
2019-05-29 4 minutes #arch #linux

I’ve been an arch user for many years, and a linux user for even longer, but I’ve never installed arch from scratch. I was an Antergos user for many years, but after its demise, I needed an alternative. In a previous post, I spoke of attempting to install vanilla arch from scratch on my laptop.…

Antergos to vanilla Arch
2019-05-25 3 minutes #arch

I’ve been an Antergos user for almost three years, and I love it! It’s like Arch, but with a simple installation process, and yields a near-pure Arch install, unlike Arch derivatives like Manjaro. Unfortunately, on 21st May 2019, the Antergos project ended.…

Dealing with spoilers in a professional manner
2019-04-28 3 minutes

Spoiling films is something which has plagued people since forever. If something dramatic happens, of course people don’t want to find out by just being told, they want to watch and experience it for themselves. Unfortunately, it seems many people take pride and pleasure in spoiling films for people.…

Instance vs Static: A tale of memory leaks and OOP in Python
2019-04-27 4 minutes #programming

Object-Oriented Programming (OOP) teaches that classes can have two kinds of attributes: Instance and Static. Instance variables are attached to a specific instance of the class, and each has separate memory locations. Static variables are tied to the class itself, and are shared between instances.…

Django 2.2
2019-04-01 12 minutes #programming #django

April marks the release of Django 2.2, the latest LTS version of the popular Python web framework. Django 2.2 marks almost two years of development since the last LTS release, 1.11 in April 2017, and brings with it some very large improvements and changes which naturally come with a major version bump.…

Facebook cleanup - Part 1
2019-01-18 3 minutes

# Cleaning up Facebook - Part 1 Around 10 years ago, Facebook was everything. No matter your interests, you could find like-minded people on Facebook to share your passion with. But that communication came at a price: your personal data. In recent years, we’ve realized to what extent Facebook was selling our data and generally invading our privacy.…

My Stack - 2018 Edition
2018-12-31 5 minutes #linux #arch

Last year, I wrote My stack 2017, and now it’s time for a follow-up. A year is a long time, and my day-to-day stack has changed quite a bit since then. # OS I’m still an Antergos user, and have no sign of changing.…

Hacktoberfest 2018
2018-11-01 #programming

Hacktoberfest is a great initiative created by DigitalOcean and GitHub to get more developers contributing to open-source projects. After opening a set number of pull requests to open-source projects, they’re rewarded with branded swag. As someone who does a lot of development in their free time, it’s not hard for me to find some open source projects, and contribute where possible.…

Creating a fast, secure WordPress site
2018-10-08 6 minutes #security #self-hosting

In terms of security, WordPress, and PHP in general for that matter, have become a bit of a joke. If you want a site to be secure, people tend to steer clear of WordPress and PHP. That being said, nothing stands even close to WordPress in plugin support, community size, and documentation.…

Chill Soundtrack
2018-08-11 #robotics

This year, we tried something different. Rather than having the dramatic playlist, we created a chill playlist for outside of match time. This not only helped make the breaks feel more like breaks, and a bit more fun, but also acted as a contrast to make the match time feel more dramatic.…

VPN Gateway - Opening ports the safe way
2018-06-21 6 minutes #self-hosting #security

VPNs are a way of accessing application which sit on a separate network using an encrypted tunnel. Contrary to popular belief, they are not designed to anonymize your internet habits. Whilst VPNs are designed to enable a client to access the servers network, it’s possible to use them to provide a server to access to its client’s network.…

SourceBots 2018
2018-04-22 #robotics

At the arena, we had music playing in the background, through the competition stages, and the testing phase.

KeePassXC 2.3 Migration Guide
2018-03-03 5 minutes #security

I’ve been using KeePassXC since not long after it’s initial split from KeePassX in late 2016. I’ve bounced around many password managers, but KeePassXC looked to fill all the boxes: It’s actively maintained, unfortunately unlike KeePassX It’s open source, and easy to contribute to, as I have It’s got all the features I need, like TOTP and Browser Integration Cross platform (not KeePassXC specific) 2.…

Repairing GDM and Bluetooth Audio
2018-02-13 #linux

Bluetooth audio is great! I’ve had a pair of Bluetooth headphones, Sony MDR-XB950 BT, for around a year now, and the ability to listen to music without cables is amazing. But, I can only use the Bluetooth parts of this with my phone, because on Linux, it just sounds terrible.…

Opening Port 22
2018-01-23 #security

My university has a development sever, which it uses to host our coursework without the need to set up a development environment locally. It also enables lecturers to mark our work in a controlled environment, without needing to spin up an environment, and run untrusted code on their machines, a security hole I’m more than likely to take advantage of!…

My Stack - 2017 Edition
2017-12-31 5 minutes #linux #arch

As a software engineer and perfectionist, I have my machines set up in a very specific way, so I can do my job properly and have everything just the way I like it. Thanks to my dotfiles, I have everything syncing up between machines, meaning the tools I use are configured correctly, the same, everywhere.…

Make QT look less ugly
2017-12-27 #linux

As anyone who’s used an application written with the QT UI framework will know, they don’t always look the best, and certainly don’t fit in with the rest of your desktops theme in the way GTK does. Certain themes support styling both GTK and QT applications, however most don’t.…

Why I rewrote my website
2017-11-13

I’ve had a website for around four years now, starting with a python CGI-based site hosted at 1&1, and evolving into its current form, powered by Hugo. Although I’m a web developer, I’m very far from a designer. I really can’t design anything!…

Revert Arch linux packages to specific date
2017-09-11 3 minutes #arch #linux

I’m one of those Arch users who apparently doesn’t use arch properly: I install updates daily, including packages from the AUR. This has the great benefit of giving me the most up-to-date packages available from upstream. However, the downside of meaning I have the latest packages from upstream, meaning if something breaks, even temporarily, it breaks for me.…

Cyber Security Month 2016
2016-10-01 #security

As it is Cyber Security Month, now is the perfect time to work on improving the security on my websites, projects, and servers. But, upgrading them for now isn’t good enough for me, I wanted to add a way of scanning projects automatically, to check for any new issues.…

Fix steam under linux with an iGPU
2016-09-19 #linux

Running steam on linux is great, besides the triple-a game support obviously. But running it on an iGPU has recently been causing me problems, mainly under Arch. # Stacktrace: jake@***:~$ steam ~/.local/share/Steam/steam.sh: line 154: VERSION_ID: unbound variable ~/.local/share/Steam/steam.sh: line 154: VERSION_ID: unbound variable Running Steam on antergos 64-bit ~/.…

ProtonMail - Can it replace your email provider?
2016-06-28 3 minutes #security

Throughout my life, I’ve had numerous email providers, starting with Hotmail almost 10 years ago. Recently, I’ve been focusing more on ways I can secure my emails. No, I may not have anything to hide, but that doesn’t matter! Originally I thought the best way to keep things secure, and out of the hands of any government body was to host it all myself.…

React Native intro dev meeting
2016-03-16 #programming

Recently, at DabApps, we’ve been migrating our mobile app workflow over to using React Native rather than Ionic, mainly because of its near native performance. For the first few projects, there were only a couple of us that knew how to use React Native effectively, and work around the qwerks it has.…

Astrill Extractor

Astrill, my VPN of choice, allows you to export OpenVPN config files for all its VPNs, allowing you to connect on platforms it doesn’t provide clients for, which albeit isn’t many. The AUR package astrill has started becoming really unstable on my machine recently, so I decided to switch it out for ovpn files, as gnome has excellent support for OpenVPN.…

Attack on blocks game

Attack on Blocks is a space invaders style game I wrote for my IT coursework, for the games development unit. We could make any game we wanted, provided it could be done within the time limits, was very easy to play, and easily run on the college computers (which were pretty terrible).…

Backgrounds

As with most things, I synchronize my backgrounds between devices. I’ve also made them publicly accessible. I use tbg to set them on my machines. Disclaimer: None of these images have been created by me. I’ve tried to keep track of where they came from in sources.…

Backgrounds

Even though I use i3, a window manager well known for being minimal, and black, I still like having desktop wallpapers. It makes my desktop feel far less plan, and my lock screens far less boring. I’m not one for keeping things the same, and so my backgrounds cycle, every minute.…

CircleCI Artifact Proxy

My favourite feature of CircleCI, besides the fact it’s the fastest CI I’ve used, and support docker natively, is artifacts. Artifacts allow you to store files from your build, and download them from the web interface. This means you can use the interface to build mobile apps, installers, or even disk images!…

Date Group

Over the years, I’ve taken a lot of photos on my phone, and it’s hard to keep them organized properly. Large directories of files don’t play nicely with Nextcloud, my storage of choice. date-group is my tool to solve this. Give it a directory of files, and it’ll group them into directories by year and month.…

Development Playlist

When I work, and need to focus and get something done, I like a specific kind of music. It helps me focus and work much faster than listening to other music, or nothing at all. The work isn’t necessary software development, but seeing as that’s what I do most of the time, it’s usually what happens.…

Django Plaintext Password

It’s well known that storing passwords in plain text is a bad idea, A really bad idea. For production applications, there really is no excuse for it. Really, there’s no real reason for this module to exist. Although there are a couple reasons it might be handy.…

Django secret key generator

# What’s a “secret key”? Django’s SECRET_KEY is the setting used as the basis for secret generation and signing. It’s used to generate session keys, password reset tokens and any other text signing done by Django. For the safety and security of a Django application, this must be kept as secret as possible.…

Django SRI

Subresource integrity (SRI) is a way of securing your remote CSS and JS from being modified without your consent. This works by adding a hash of the file to the script or link tags, and if the remote file doesn’t match, it’s not executed.…

Docker Static Server

Sometimes, you just need a simple container to host some static files. Whether that be files for download, images to show, or a directory of files. # Why not just use Nginx? If you’re not really bothered, the default nginx container will work just fine for you, however this container has a few modifications which make it more suited to serving static files:…

Docker Website Server

If you, like me, have a website, you’ll probably need some way of serving it. And if, like me, your website is static, nginx is a great, lightweight and insanely fast file server. But, how do you configure it? Sometimes, you just don’t care, and want someone else to do it for you - like me!…

Git Mirror

Recently, I started moving most of my archived projects from GitHub onto my own Git server. Unfortunately, the self hosted offerings aren’t perfect for mirroring. Gitea supports mirroring repositories into itself, but not pushing (work is planned). GitLab supports pushing repositories to an upstream, but not mirroring into itself unless you pay them a lot of money.…

Grafana Apprise Adapter

Grafana is a great application for monitoring. With a plethora of data sources allowing for analysing and cross-referencing several metrics. Unfortunately, it doesn’t support much in terms of notifications. Apprise is a great library for creating generic integrations between applications and messaging services for receiving notifications.…

Hugo Theme RevealJS
3 minutes

RevealJS is a versatile front-end framework for creating slide show presentations in your browser using HTML. It’s designed to be easy to use, and create high-quality presentations. To create a presentation with RevealJS, you’ll still need a server to run the presentation from.…

Lantern

Lantern is a generic web server which wraps any application and allows it to respond to HTTP requests. The request body and headers are passed to stdin as JSON, and anything sent to stdout is returned to the client. Is this useful?…

MDCal

MDCal is a project designed to make creating calendar feeds simpler. Static site generators are great, but sometimes you need a calendar rather than a website. View on GitHub Demo: https://mdcal.netlify.app/

Morse code decoder

It’s not often people need to decode text into morse code (and visa-versa), but if I had something like this when I needed to, it would have saved me hours of time! # Usage In order to make it accessible for as many people in as many languages as possible, I converted our code from python to JSON.…

My Dotfiles
#arch #linux

Dotfiles are a way for people to store settings and preferences to make setting up a new computer that much easier. I use both my laptop, desktop and work machine almost every day, and want them to be set up in an almost identical way.…

Notes

As someone who spends a lot of time at a computer, you pick up certain commands and tricks which make life easier. Unfortunately, the human brain can only remember so much. And shell reverse search can’t remember everything. To store things like this, I created a “notes” site, powered by Gatsby and gatsby-theme-code-notes.…

Prank Lock

Everyone knows that you should lock your devices when you’re not using them, but it still shocks me just how few actually do. Leaving your computer unlocked whilst you leave it, whether it be for the toilet, lunch, or to leave the house greatly increases the chance of someone compromising your machine and stealing important, possibly sensitive information.…

Smallpeice 2017
#robotics

At the arena, we had music playing in the background, through the competition stages, and the testing phase.

Wiki Game solver

The Wiki Game is an online game where you attempt to navigate through Wikipedia from a start page to a goal page using as few other pages as possible. Not long after I was shown it, I realized that I really wasn’t very good at it.…

Yoga Pal
#linux

Once I started work, I bought myself a Lenovo Yoga 3 14" laptop, because I needed a thin and light laptop for trains and the office. This came with windows, which within 10 minutes was running Ubuntu Gnome! Ubuntu greatly increased the performance, but I had to sacrifice all the screen, touchpad and keyboard customization when changing ‘modes’.…

Buy Me A Coffee