Applications over SSH?

A couple of months ago while experimenting with Rust I stumbled across Charm. A collection of tooling to create beautiful CLI applications in Go. Since I was mostly experimenting with Rust at the time I didn't bother looking deeper into it.

Forgr - AI Generated Dungeons & Dragons Content

I am excited to introduce Forgr.app. Forgr aims to serve as a comprehensive platform for generating content for your DnD campaigns, whether you are a Dungeon Master or a player.

TypeScript monorepo bundling for dummies

It might just be me, but I always felt like frontend development was always a step ahead when it came to monorepos and bundling dependencies together. Frameworks like Next.js are like magic, they just work. Backend development has always been trying to catch up.

Distributing Rust binaries through NPM

A few months ago, I made the decision to rewrite supdock once again, this time using Rust. However, I needed to find a solution that wouldn't force users to change how they installed the package if they were accustomed to using npm for updates.

Affordable alternative to the Midjourney V5

A couple of months ago, I started experimenting with Midjourney V5, and was truly amazed by its capabilities. However, the monthly subscription cost of $30 hindered my enthusiasm to fully explore its potential. So I stopped my subscription after a month.

Genmoji

Genmoji is a tool that you can use to generate gitmoji commit messages from a code snippet or git diff. Alternatively I also created commit-message which is a simplified version not abiding to the gitmoji standard.

Alternative ChatGPT UI

Ever since ChatGPT released I have been trying to incorporate it in my daily work routine to the best of my capabilities. While gpt-3.5-turbo is a terrific model, it often lacks complex coding insight which the gpt-4 model does have.

Generating PR descriptions with AI

propr is a command-line tool that uses AI to generate GitHub pull request descriptions automatically.

Combining Supervisor and nginx-proxy (docker) to remotely monitor Glances

I wrote a post a while back about nginx-proxy and how I was using it to resolve local DNS records. Today I decided I wanted to be able to monitor my server remotely using glances running over Supervisor and utilizing glances' internal webserver. Since this wasn't running in a container I needed a somewhat creative way to add it.

Ubuntu and snap installed Docker on reboot

I have been experiencing an odd docker issue lately that I've been tearing hair out trying to troubleshoot. For some odd reason every time I restarted my server the containers would be running, but not running at the same time. Wait this might sound weird, I promise it makes sense.

Bcache - DIY Hybrid Disks

Most Linux users that employ Solid State Drives (SSDs) build their systems with the smaller SSDs holding the operating system and the larger, slower, much cheaper HDD drives holding their data. When you’re trying to create the fastest system possible, though, you want to get that data drive up to the speeds of your far-faster SSD. Problem is, very large SSDs can be cost-prohibitive. So, what can you do? With the help of bcache, you can use a smaller SSD as a caching drive for the larger, slower HDD. With this set up, you have the best of both worlds.

Reverse proxy for local dns resolving

I have a bunch of services running in my home network. The more services I add, the more trouble I have remembering the ports for everything. Running a reverse proxy was something that has been on my planning for a while now but never found the urge to implement it. Thinking it would take way too long to set up. That was until last week when I learned about jwilder/nginx-proxy...

Mimicking Pi-hole's ad blocking

I have been running Pi-hole in my home network for quite a while now but often had issues combining it with other services running in the network. So I decided to run an incredibly basic version of it myself. Under the hood the basics of Pi-hole are a dnsmasq server which caches all of your dns records and a bunch of dnsmasq address= configurations that resolve to nothing.

Backblaze B2 and S3 compatible API

Backblaze started as an affordable cloud backup service, but over the last few years, the company has also taken its storage expertise and launched the developer-centric B2 Cloud Storage service, which promises to be significantly cheaper than similar offerings from the large cloud vendors. Pricing for B2 starts at $0.005 per GB/month. AWS S3 starts at $0.023 per GB/month.

Backing up using Backblaze B2 and Restic

Backblaze is a pioneer in robust, scalable low cost cloud backup and storage services. Their B2 service is similar to Amazon's S3 where you have a bucket where you just throw stuff into and pay for the bandwidth and storage used.

Converting videos to GIF's

During development I find myself capturing videos of bugs and issues on a regular basis. Sharing .mov files around is okayish when it's within an environment like Slack but obviously this doesn't work when commenting on Github issues or somewhere else. So I figured I needed an easy and reusable way of converting these videos to gifs with ease.

Programming on an iPad

I recently purchased a brand new iPad Pro for more ease of use daily internet browsing and media entertainment. Even though I knew in advance that it wouldn't be able to fully replace my Macbook Pro as a remote working station, I still felt like I had to try to get the max out of it.

How to fix the Docker and UFW security flaw

If you use Docker on Linux, chances are your system firewall might be relegated to Uncomplicated Firewall (UFW). If that's the case, you may not know this, but the combination of Docker and UFW poses a bit of a security issue. Why? Because Docker actually bypasses UFW and directly alters iptables, such that a container can bind to a port. This means all those UFW rules you have set won't apply to Docker containers.