I’m a computer engineer and small-business owner in Canton, GA, USA where I live with my family, work from home, and fiddle with just about anything tech. I use this site to share ideas, notes, and experience from my work and tinkering.

Ubiquiti Migration

I’ve been using Ubiquiti’s APs for years and they’ve been solid so when I was looking to get a new switch, I decided to look at replacing my firewall too and moving the controller off a VM onto a new UDM-Pro. It was pretty simple to swap things out but there have been some speedbumps…

[Read More]

Hugo Shortcode for PlantUML

I often need to embed diagrams into documentation but I dislike having to keep track of separate files for the image. I went looking for a way to embed them as “code” in the document and found GitLab’s ability to embed PlantUML in Markdown content including READMEs, issues, MRs, etc. I want to be able to do the same with Hugo.

[Read More]

Bash Completion for Symfony Console

I got annoyed with the lack of Bash-Completion support for the Symfony Console command and decided to figure out a fix. What I came up with turned out to be pretty simple but perhaps a little sketchy.

[Read More]

GitLab Snippets in Hugo

I needed to embed a GitLab Snippet into a page here on the site earlier today so I added layouts/shortcodes/snippet.html with the content below.

<script src="https://gitlab.com/-/snippets/{{ index .Params 0 }}.js"></script>

Now I can embed snippets just like Gists except using snippet in place of gist and it only takes the single number parameter. I’d put an example here but I can’t figure out how to make Hugo ignore it.

GitLab  Hugo 

Powerline Prompt Too Long

I’ve been using Powerline to make my shell prompt and the status line in VIM show lots of useful details for years. Deep paths in shell prompts can be an issue but the way it trims them by default usually works fine. Things got ugly a while ago when the GIT branchnames I work on got long. I finally took the time to address it this weekend.

[Read More]

Time Series Databases

I recently looked into current TSDB solutions for keeping historical status and performance data. InfluxDB looked promising initially but I ended up using TimescaleDB though I’m still not certain it’s the right solution for me.

[Read More]
TSDB 

Home when the Street Lights Come On

Did your mom ever tell you to be home before the street lights come on? That’s the guidance I give to my boy as he roams the neightborhood with his friends but he’s 12 and easily distracted so, I’m often sending “Time to come home, bud” messages. I got bored with that tonight and decided to let Home Assistant do it for me.

[Read More]

InfluxDB & Flux

I recently started using using the InfluxDB time-series database for storing some data I’ve been collecting. It’s the replacement for RRDTool that I’ve used in the past for performance metrics and it’s working nicely.

Their Flux query language took a bit of time to wrap my head around. It isn’t like a traditional scripting language. Yes, it has variables and functions and such but the overall flow of the logic is not like a typical programmer expects with branching and looping. SQL and their derivative, InfluxQL don’t either so it’s not surprising or bad. It’s just different.

[Read More]

Motion Automations

I’ve moved my home automation logic from the ISY994i to Home Assistant but it took me a while to get the responses to activity outside the house right. What I want is for motion to trigger a response (i.e. lights come on) which is simple. Then I want the system to wait until the motion sensors have been off for a while before reverting the initial response. This turned out to be harder than I expected.

[Read More]

Qustodio

The boy keeps getting distracted when he’s supposed to be doing school work at home so I’ve been trying to get filters going in the firewall. It turns out to be surprisingly difficult to block YouTube. Even if I managed to get something working, he can just turn off wifi on the phone and bypass my firewall. I finally broke down and paid for Qustodio on his phone and laptop.

[Read More]