Joel Always one syllable, sometimes "@jayroh"

Another Summer in the Books

04 Sep 2022

As we close the chapter on the summer of ‘22 I’m left dealing with the feelings that hit me every year at this time. “Summer’s over. School’s here. Stoke up the anxiety machine.”

As a grown man who hasn’t been in school for more than half his life, yes. I realize this makes no sense. Very well. Tell that to my brain.

In any case, I can look back on this summer and consider it a success. G had a great time at his day camp. We’d made it to the Cape more than a few times to enjoy some sun and water. I may have read a few books, and comics, that I very much enjoyed. I saw a few movies that I also enjoyed - Nope, and Top Gun: Maverick at the top of that list.

And we’ve managed to still ditch Covid. 🤜🪵

Looking back - I am grateful and happy.

G posing at Cautaumet Mini-Golf
It isn't a summer on the Cape without a few trips to a mini-golf course (or two).
Me, Sara, G @ Mashpee Commons' Big-Ass Chair
The giant blue deck chair in Mashpee Commons is easy photo-op bait - so we took it.
Joel and Sara, Woods Hole
Sara and I took a trip, just the two of us, one morning to Woods Hole to get some breakfast and take a stroll. It was lovely, as is Woods Hole.

Weeknotes for the week ending Jul.29

29 Jul 2022

An empty cardboard box on the sidewalk with 'free' hastily written on the side
You know the saying - "Nothing in life is free"

A year or so ago I bought a Synology NAS and started to consolidate some of the disparate cloud storage services into one single physical box that I knew I could (theoretically) control myself. It worked out well. I liked it! I could install some packages, I could run Plex, I could back up docs, photos, mp3’s, movies, etc.

Then I started branching out a little bit and messing around with using docker to host some services that didn’t already have Synology-related package installers. With docker-compose, this was all pretty straightforward and didn’t give me too much headache.

Over time this has grown into a full-on “homelab” situation where I’ve migrated most services onto a small Dell server that sits in the corner of my office plugged into a UPS. Ultimately this has turned into the sweet spot and I am thrilled with the workflow. It looks a little something like this:

  1. Does this service I pay for (Dropbox) have a decent alternative? Is there a docker image? Give it a shot.
  2. Does this service which I DON’T pay for but serve as data points for a machine-learning algorithm (Google Anything) have a decent alternative? Is there a docker image? Give it a shot.
  3. Does something look cool on /r/selfhosted that I want to try? Is there a docker image (almost 100% of the time: “Yes”)? Give it a shot.

Pretty easy.

So what has been good for me?

  1. Dashy - A dashboard that serves as my homepage. Links to all of my self-hosted services, in their logical groups, go here.
  2. Nginx Proxy Manager - An nginx configuration front-end. Makes setting up services and LestEncrypt certs a cynch.
  3. Linkding - Bookmarking app a la “Pinboard” and “Del.icio.us”
  4. Whoogle - “A self-hosted, ad-free, privacy-respecting metasearch engine “, AKA “Google front-end”. No google ads. No tracking.
  5. Umami - A privacy-focused website analytics package. No more Google Analytics for me.
  6. AdGuard & Pi-Hole - Both! DNS servers for local, in-house, ad blocking.

This is the tip of the iceberg. There are more, but these are good starts.

If you’re in the “tech” business you can imagine this is a potentially dangerous hole to drop down into. I recognize this, but there’s not a chance in hell I end up like the people in /r/homelab.

Knock on wood.

Weeknotes for the week ending Jul. 22

22 Jul 2022

Brothers and Sisters Coffee, Brookline Village
Brothers and Sisters Coffee, Brookline Village

Most weekday mornings I will walk G to the bus stop near Brookline High School for his trip to his day camp. We’re out the door at around 7:53AM and arriving just about at 8:00AM. The past week or so has been brutally hot so if I was going to get any time outside it’s going to be right after his drop-off. I’m not built for that 90+ degree stuff.

Thankfully, luckily, our town is pretty well stocked with parks and areas to walk in the shade. Shade is at a premium with this heat so I kept walking until I found a nice spot to take a break, and in this case, have a coffee. Brothers and Sisters (formerly the KooKoo Cafe) in the Village has been that little oasis thanks to the decent cold-brew, and copious seating & shade just outside.

Don’t know if it’s necessarily a spot to make the trip for, but for me it’s been a welcome break and spot to get my brain to slow down a bit.


Reading: A (cautionary) tale from a small-business-owner, lamenting the redesign of his website.

The comments at HN are, predictably, ludicrous, but I digress.

Having lived on the Agency side of this equation for a large hunk of my career there is a lot here that rings familiar and true. As I look back on those days, my freelancing days, I realize how profoundly underestimated and under-served the customer engagement and management portion of the equation is. I can look back and clearly pick out the spots where I done F’d up and wish I was more mature and better at that part of the job. Live and learn.

Fathers Day 2022

19 Jun 2022

After finishing a recent book – Mouth to Mouth (verdict: “meh. ⭐⭐”) – I picked up Michael Ian Black’s “A Better Man: A (Mostly Serious) Letter to My Son” and dived in. I figured, hey it’s almost Father’s Day, so let’s see what this funny guy has to say. And as the title of the book says, yes - this really is a mostly serious piece of writing. He gets into the heavy stuff pretty quickly.

But that’s not why I’m writing this. There’s a bit in the first 10 or 20 pages where he explores the feeling of when he crossed into the realm of “manhood”:

Before I sat down to write this, I couldn’t have told you the moment I felt I’d crossed, irrevocably, into manhood.

It was when I drove my family home from the hospital for the first time.

I’ve never been more terrified than the moment I turned out of the parking lot.

This statement stopped me, and I let out a quiet, “heh”, chuckle.

Because this has been, almost verbatim, what I have shared with first-time parents through the past 7+ years that I’ve been a father. “No one prepares you for the moment you strap your child in that car-seat, and drive away. There was ‘you before’, and ‘you now’, there is no manual, so go figure it out.”

Happy Father’s day to all you Dads out there. I trust, and hope, that you are navigating those waters successfully. ❤️

Porting the blog to TailwindCSS

18 Jun 2022

A couple weeks ago I noticed there were some style-related issues here, so I reached for the CSS to make the necessary fixes. Easy enough.

But when I did so - I paused, confused, then realized I had no idea how to edit and rebuild it(?). It had been a long, long, while since I last adjusted the styles.

Side note: remember Compass? This website was using Compass! I loved it! Shout out to a real OG, author of compass and co-founder of Sass, Chris Eppstein. Absolute legend.

The small issue here was that, as it pertains to Compass, I just didn’t recall the conventions around mix-ins, building, file locations, etc. So, like every “good” (air-quotes) writer of software I decided to go the long-way ‘round and re-implement all of the styling with TailwindCSS, the current CSS Belle of the Ball.

Rough steps:

  1. Stripped the site of any and all CSS-related code, assets, dependencies, etc.
  2. Use the jekyll-postcss-v2 plugin.
  3. Installed with their instructions, except for the npm dependencies, which they instruct that you install via npm i -D postcss postcss-cli. If you are using Netlify to build and deploy your website (as I do), then make sure to omit the -D because if and when you set JEKYLL_ENV to production then npm won’t install whatever is inside the devDependencies key of your package.json.
  4. Rewrite the old styles using the new framework. AKA, “draw the rest of the owl

The process was pretty straightforward and relatively painless if you run your local Jekyll server with jekyll serve --livereload, and have your editor, work in progress in one browser window, and your source/reference in another browser. The Tailwind docs workflow for Alfred also came in handy for all of the documentation reference.

Final thought part 1: while doing this bit of work I took the opportunity to examine the blog’s performance via Lighthouse and made some further changes to improve its score. I’ll add some details related to that in a follow-up post.

Final final thought: additional shout-out to Dan for the original design and CSS for this website. Literally couldn’t have done this without you, Dan. Thank you 😄.