how-to

Setting up a Mikrotik 10 Gbps Switch the first time

Since I've done this four times now... and each time it's just a session of reading the docs, searching the forums, etc. until I get everything configured just so, I thought I'd document how I bring up a new MikroTik switch.

Mikrotik Cloud Router Switch CRS309-1G-8S+in

I personally love the CRS309-1G-8S+IN, and have three of them running in my homelab. They're less than $250, with 8 10 Gbps SFP+ ports, a 1 Gbps RJ45 port, and a serial console port.

But the best thing for my home use is they are fanless. Blissful silence, outside of a couple beeps the first time you plug it in.

Build your own private WireGuard VPN with PiVPN

I am frequently away from home (whether on family vacation, a business trip, or out around town), but I have a number of important resources on my home network—as any homelabber does.

There are services I like to access remotely like my NAS with my giant media library, my edit server with all my active projects, and especially Home Assistant, which lets me monitor all aspects of my home.

Some people rely on individual cloud services from IoT vendors and have a bunch of apps to connect to each type of device independently. As someone who has dealt with numerous security breaches for numerous services, I know not to trust 50 different cloud-connected devices in my home.

That's why I'm a 'self-hosted' homelabber, and why I try to find devices that don't leave my local network.

Raspberry Pi Zero 2 powers the Null 2 RetroPie gaming handheld

As a kid, I never had a Game Boy, Game Gear, or any other handheld console. Heck, as luck would have it I've never owned a Nintendo Switch, either.

I've played console and PC games, I've only used handhelds twice: once in middle school, when a friend let me borrow his Game Gear for a day, and last year year when my dad brought over his Nintendo Switch—which my kids quickly commandeered.

I guess out of a sense of jealousy, I decided the first thing I should do with Raspberry Pi's latest hardware, the Pi Zero 2 (see my review here), is build myself a handheld retro gaming console.

Null 2 kit on Tindie

And what better way than with the Null 2 kit (pictured above, from it's Tindie page), a kit integrating off-the-shelf components on a custom PCB, wrapped up nicely in a custom acrylic case.

How I make my YouTube videos - 100K Office/Studio Tour

Early this year, I passed a major milestone on my YouTube channel—100,000 subscribers!

I've had a channel since 2006, but never really devoted time to it until last year, and I'm blown away by the positive response I've gotten publishing videos on Raspberry Pi, Kubernetes, Ansible and more.

How I make my YouTube videos - 100K YouTube subscriber silver play button

To celebrate the milestone, I created a 'how it's made' video where I go behind the scenes and show how I made—from start to finish—my Argon One M.2 Raspberry Pi Case review video.

How I livestream with OBS, a Sony a6000, and a Cam Link

.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }

A few weeks before this year's pandemic started affecting the US, I started live-streaming on my YouTube channel.

In the past, I've helped run live streams for various events, from liturgies in a cathedral to youth events in a stadium. (I even wrote a blog post on the topic a few weeks ago.)

For larger events, there was usually a team of camera operators. We also had remote control 'PTZ' cameras, and dedicated streaming hardware like a Tricaster.

For my own livestreams, I had a very limited budget, and only one person (me) to operate the camera, produce the live stream, and be the content on the live stream!

How to livestream Masses or other liturgies on YouTube

Note: I also posted a video with more information and a demonstration of how I live stream.

I've been working on video streaming on a tight budget for years, and have scrambled to get live-streaming going for some liturgies on short notice, so I figured I'd put together a video showing a few options from 'cheap using what you already have' to 'a little more expensive but within a reasonable budget'. Note that if you plan on having regular video streams for the long term, it's better to invest in a proper streaming system with remote-controlled PTZ cameras and hard-wired connections.

All of the options in this post will require at least a smartphone or computer (laptop preferred) with a good WiFi connection. Ideally, you can also plug your phone or laptop into power so the battery doesn't run out in the middle of the stream

The Raspberry Pi 4 needs a fan, here's why and how you can add one

December 2020 Update: Lo and behold, the Pi Foundation tacitly acknowledges the Pi needs a fan in the official case, because now they sell the Case Fan!

The Raspberry Pi Foundation's Pi 4 announcement blog post touted the Pi 4 as providing "PC-like level of performance for most users". The Foundation even offers a Raspberry Pi 4 Desktop Kit.

The desktop kit includes the official Raspberry Pi 4 case, which is an enclosed plastic box with nothing in the way of ventilation.

How to focus stack a set of images in Photoshop

I recently rented a Nikon 105mm VR Macro lens for a weekend, and wanted to experiment with different types of macro photography.

One of the things I was most interested in was focus stacking. See, there's a problem with macro photography in that you're dealing with a depth of field measured in millimeters when reproducing images at a 1:1 ratio, even stopped down to f/8 or f/11. And, wanting to avoid diffraction at higher apertures, there's no way to take a straight-out-of-camera picture of a 3D object that's sharp from front to back.

(There's also a video version of this post, embedded below)

Converting a non-Composer Drupal codebase to use Composer

A question which I see quite often in response to posts like A modern way to build and develop Drupal 8 sites, using Composer is: "I want to start using Composer... but my current Drupal 8 site wasn't built with Composer. Is there an easy way to convert my codebase to use Composer?"

Convert a tarball Drupal codebase to a Composer Drupal codebase

Unfortunately, the answer to that is a little complicated. The problem is the switch to managing your codebase with Composer is an all-or-nothing affair... there's no middle ground where you can manage a couple modules with Composer, and core with Drush, and something else with manual downloads. (Well, technically this is possible, but it would be immensely painful and error-prone, so don't try it!).

Use Ansible's YAML callback plugin for a better CLI experience

Ansible is a great tool for automating IT workflows, and I use it to manage hundreds of servers and cloud services on a daily basis. One of my small annoyances with Ansible, though, is its default CLI output—whenever there's a command that fails, or a command or task that succeeds and dumps a bunch of output to the CLI, the default visible output is not very human-friendly.

For example, in a Django installation example from chapter 3 of my book Ansible for DevOps, there's an ad-hoc command to install Django on a number of CentOS app servers using Ansible's yum module. Here's how it looks in the terminal when you run that task the first time, using Ansible's default display options, and there's a failure:

Ansible 2.5 default callback plugin

...it's not quickly digestible—and this is one of the shorter error messages I've seen!