RSSAmplifier

Blog

fardog.io

Recent content on fardog.io

fardog.ioRSS feed ↗26 posts

Latest posts

8BitDo 64 Bluetooth Controller DFU/Bootloader

tl;dr: With the controller off, hold L+R and connect it via USB. This is different from other controllers, where you hold L(1)+R(1)+Start then connect it over USB after a red LED is shown. In order to update the 8BitDo 64 controller from Linux, you first need to place it into its DFU mode, booting it into its bootloader. For most 8BitDo controllers, it’s said to hold L(1)+R(1)+Start for 3…

Chai Tea Blend

Here’s a blend of chai black tea I’ve been messing with: 100g Darjeeling tea 70g whole cloves, lightly pulverized to create a mix of fines and pieces 40g dried ginger, ground coarsely to 1–2mm pieces 32g cinnamon sticks, chipped into 5–7mm length pieces 35g black peppercorns 18g mixed peppercorns (black, red, green, white) This makes for a nice clove-heavy blend but it doesn’t…

Lenovo X13 Yoga Gen 3 Review

I recently picked up an X13 Yoga Gen 3, which I’m happy to say is a great little convertible that retains the ThinkPad feel. I haven’t found many in-depth reviews for this machine, and while this certainly won’t be “in-depth” it’ll hopefully give some insights into how it handles for regular use if you’re at all on the fence. This was purchased to replace…

Fix Windows Security "Actions Recommended"

I had an issue today with Windows Security dashboard on Windows 11, where it said there were “Actions Recommended” with an unnerving yellow warning icon, however opening it up showed all green: I looked at a lot of solutions which didn’t fix the issue, but then found a solution that I didn’t find listed elsewhere so I’m writing it down: there’s a (maybe hidden?)…

Greek Yogurt Recipe

This is a recipe for making greek yogurt, although I hesitate to call it a “recipe” since it’s more like replicating existing yogurt. Still I’m writing this down because it’s the result of trial-and-error and has some differences with what I’ve read elsewhere, although minor. This makes a tangy and smooth yogurt that I’m really happy with. The goal here is…

CentOS and KVM: Single interface, multiple VLANs for Guests

KVM on Linux is a nice way to run isolated services on your home network; in my case: MySQl, a Unifi controller, various Docker containers, etc. However: if you want to run these services on different VLANs so they can be in isolated networks, the process is less straightforward. This document covers how to get CentOS network interfaces set up so multiple VLANs can co-exist on a single interface…

Docker Hub Tag Builds

Docker Hub automatic builds are a great way to keep your Docker images up to date with a git repository, but building sensibly tagged releases isn’t very straightforward. It’s easy to create ones for a tag (like v4.1.1) but less so to create versioned images, such as: myimage:4 myimage:4.1 myimage:4.1.1 This means that when you release a v4.1.2, it becomes the new 4 and 4.1. It turns…

Docker Read-Only Volumes with SELinux

If you use Docker on an SELinux-enabled Linux distribution like Fedora, you may have run into issues mounting host volumes, and are probably aware of the z flag to modify the SELinux label: docker run --rm -v /var/www/letsencrypt:/var/www/letsencrypt:z nginx What isn’t made very clear from the Docker docs is that you can specify multiple flags separated with commas, say ro,z to specify…

Contact

Should you need to reach me, please use the most appropriate method below: For issues with this site or its content, file an issue at sourcehut For all other enqiries, email nat at this domain

Privacy

This Website I do not collect any data when you visit this website, and I have no idea that you visited. This site does not use cookies. This site is served via sourcehut pages. Refer to their privacy policy for additional information. To view how this site is built, see its repository. Android Applications For Android applications, I don’t collect any data. For apps installed through the…

Running Docker containers with systemd

Services in Docker containers can easily be run under systemd, but I had some difficulty finding good examples of how to do so. Here’s what I came up with. This example is a container running nginx, which has access to letsencrypt certificates, but could be adapted to any service. I’ve annotated lines below: [Unit] Description=nginx (Docker) # start this unit only after docker has…

Client-Side Certificate Authentication with nginx

Authentication in applications is tough. If you decide to roll your own, security issues are nearly guaranteed. Most anyone who writes software for a living will tell you to use something you didn’t write; that’s battle-tested and in wide use. Open source is even better; hopefully that many eyes and that many users will suss out the bugs. Still, there will be bugs. Which is what I…

Removing old posts

This site has a few old posts that are of dubious value and are never read; I’m removing them as part of a clean-up effort. For transparency’s sake, you can check this PR if you care about what was removed.

Automatically publishing websites with Hugo, Travis, and Github

Warning: This article is of little relevance, as the site is no longer hosted by GitHub, served by Cloudflare, nor built on Travis-CI (who have long since retired their open-source build service). This article is left for historical purposes, but the contents are no longer novel: building an HTTPS-served Hugo site using something like sourcehut pages—as this site is—or GitHub Pages is well…

Projects

I’ve written a lot of things—all can be found on my github—however these are the ones that are of particular interest, or that I’m particularly proud of. Swapper What? A Windows utility for swapping your mouse buttons with one click Where? github.com/fardog/Swapper Why? Swapping mouse buttons requires too many clicks Swapper is a small tray utility which swaps your primary mouse button…

Retiring some old projects

Some changes are coming; they’re changes for me, but a secondary effect is that I no longer have free hosting for some projects that have been in unmaintained-but-still-running status for the last few years. I’m taking the following offline: Adventure: My “Choose your own adventure”-like story builder. This hasn’t seen an update since early 2012; very few people were…

Mac OS X Audio in node.js, and a Chromecast

A few weeks ago, a simple idea formed: why can’t you easily stream system audio to a Chromecast? Sure, if your chosen listening application already supports it, you’re set. Otherwise you’re left out. A solution seemed simple: node.js has streams, and they’re awesome! Take system audio, pipe it to an encoder, pipe that to an HTTP response, and tell the Chromecast where to…

XKCD Password Generation for Node.js

I created an XKCD-style password generator for Node.js (see this comic for reference). You can find it on my github or do an npm install -g xkcd-password to get it on your path. There are others available, but most don’t include a CLI, or easily configurable options. Many use small word lists. So I made one that uses a sufficiently large list—113,809 words provided by the Moby Project—and…

primes, A Twitter-backed prime number generator

A few weeks ago I started primes, a Twitter-backed prime number generator. When I say “Twitter-backed”, I mean the bot that updates the account has very little idea of state: it only knows the last number it calculated because Twitter provides it. The program flow is this: Start up Fetch the most recently calculated prime from the Twitter feed. Calculate the next prime. Post if an hour…

An Addendum to "Fixing a Famicom Disk System"

My old Sharp Twin Famicom threw the belt again, as they do. While replacing it, I wanted to make an update to my previous blog post about FDS belts, since my old article wasn’t as helpful as I’d have liked when I actually tried to use it. First, there’s now a far better repair article available at the Famicom Disk System website. This goes through the whole process of belt…

Getting WiFi on a Headless Raspberry Pi

One of the final steps in a to-be-announced project involved getting a headless Raspberry Pi up on WiFi at boot time—which turned out to be a little more challenging that first expected. Not because it was particularly difficult, but because the documentation was poor. Below are my full configuration files that were required. The WiFi USB dongle itself was an Adafruit USB WiFi with Antenna which…

vim, fish shell, and vim-sensible

Part of this evening was spent making vim workable for me, the first step was getting some sane defaults. vim-sensible was recommended in several places (as was Tim Pope’s also excellent pathogen), but immediately after installation I was getting an error: Error detected while processing ~/.vim/bundle/vim-sensible/plugin/sensible.vim: line 75: E484: Can't open file /tmp/v1NmKg8/0 Press ENTER…

Using Caps-Lock as a Compose key in XFCE4

Why not take that useless key, and make it useful? The Compose Key—formerly present on many Unix keyboards of old—isn’t present on most modern laptops. In XFCE, this is a little more cumbersome than Gnome, since there isn’t a graphical interface for setxkbmap, but these two commands will swap the Caps lock for a compose key: setxkbmap -option ctrl:nocaps # disables caps lock setxkbmap…

Making noise in Python

I’ve been working with PyAudio lately, on a project to synchronize sound streams across multiple devices. Nothing to say on that front yet, but I do have a nice snippet for programatically generating a tone: import math import numpy import pyaudio def sine(frequency, length, rate): length = int(length * rate) factor = float(frequency) * (math.pi * 2) / rate return…

Simple 'workon' Command for fish shell

I put together a quick workon clone for the fish’s fish shell. Definitely nothing as complete or useful as virtualenvwrapper, but it fixes my need: switching simply between virtualenv’s and projects. Installation First, create a function file ~/.config/fish/functions/workon.fish with this defintion: function workon -d 'Activate virtual environment in $WORKON_HOME' set tgt…

Fixing a Famicom Disk System

Update 2013-10-08: There is now a great article available at the Famicom Disk System site, which I’d highly recommend. See my addendum for more info. This isn’t the usual fare from this blog, but this is good information that took me quite some time to find. I’m also an avid video game collector, and i recently picked up a Sharp Twin Famicom and a few Famicom Disk System games; notably Kid…