Archive for 2019

Recent Woodworking Projects

Published on July 12, 2019

These days I find myself thinking about woodworking more than just about anything else; it’s my new favorite thing! Here are a few of the projects I’ve completed over the past few months, in the order that I built them (the final project shown is not fully completed; it still needs sanding and finishing):

The table saw cart has been a great addition to my “shop” by giving me lots of storage for my tools (which are now nicely organized). I love having a new hobby that’s in a completely different direction from my day to day desk job. Programming doesn’t interest me like it once did, and having an outlet for creative energy has been quite cathartic.

Permanent Redirects Get Cached

Published on April 20, 2019

I maintain multiple tools at work that all run in Docker containers on the same machine. The overall setup looks like the following diagram:

Tool Network Diagram

The router container on top (nginx) routes traffic to the various application containers based on the hostname seen in each request (each tool has its own internal domain name). Each application has an nginx container for serving static assets, and a gunicorn container to serve the dynamic parts of the application (using the Django framework).

Earlier this week, I was trying to add a redirect rule to one of my application containers (at the application nginx layer), because a URL was changing. As a convenience for users, I wanted to redirect them to the new location so they don’t get the annoying “404: Not Found” error. I set up the redirect as a permanent redirect using a rewrite rule in nginx. For some strange reason, the port of the application’s nginx layer, which should never be exposed to the outside world, was being appended to the redirect!

Adding the port_in_redirect off; directive to my nginx rules made no difference (or so I thought), and I struggled for an entire day on why this redirect wasn’t working properly. At the end of the day, I learned that permanent redirects are aggressively cached by the browser! This annoyance means you need to clear your browser’s cache to remove bogus redirects. I wasted an entire day because my stupid browser was using a bogus cached reference. Ugh!

Garden Trellis

Published on April 19, 2019

My most recent woodworking project was also the toughest one to assemble. This time around, I built a garden trellis to support the beans and peas my wife planted. Here’s a picture (which you can click to view a larger variant):

Garden trellis
Completed garden trellis

The legs and horizontal frames are all cut with compound miters at 7 degrees. This made assembly difficult, as there weren’t any “flat” surfaces on which I could clamp things together. I purchased a cheap pneumatic nail gun which helped tremendously with this, but it was still a challenge. In the end, I think the final product looks pretty nice. Woodworking is a real fun hobby!

Switzerland by Rail

Published on April 6, 2019

My wife and I often daydream about returning to Switzerland. One of the things we loved most about our trip there was the ability to go everywhere we needed via public transportation, most often on trains. Imagine my delight when, purely by chance, I recently happened upon a YouTube channel that is nothing but rail trips through Switzerland from the driver’s point of view! There are hours and hours of videos, so I know what I’ll be watching over the next few days.

California Casual Patio Table

Published on March 28, 2019

I recently completed the first project of the online woodworking course I’m taking. Building this one was a lot of fun, and it was the first project I’ve put finish on (paint, in this case). My wife and I chose a bright blue color for the table, as it goes nicely with our orange-ish deck. This will be real useful to have on our deck when we grill or just sit outside to enjoy nice weather.

All the President’s Men

Published on March 16, 2019

A few weeks ago, my wife and I watched the film All the President’s Men, about the Watergate scandal. I had seen the movie before, but it was a real treat to watch it again (it’s truly an excellent film). Seeing the movie got me interested in the book on which it was based, so I picked up a copy from my local library.

Wow, what a read! This book ought to be required reading for American citizens. Though it’s a non-fiction book, it reads like an action adventure novel. It was difficult to put down, and was a real eye-opener into just how corrupt our politicians are. I cannot recommend it highly enough.

Adventures in Woodworking

Published on February 8, 2019

I’ve been interested in woodworking since I was little. As a kid, Saturday afternoons often involved watching This Old House, The New Yankee Workshop, and The Woodwright’s Shop. Late last year, I decided a change was needed in my extra-curricular activities. Many of my existing hobbies were becoming less interesting to me, and I wanted a new outlet for my energy. Woodworking is the hobby I chose to pursue.

During the months of December and January, I voraciously consumed woodworking videos of all types on YouTube. One particular channel stuck out: Steve Ramsey’s Woodworking for Mere Mortals. I really liked Steve’s down to earth presentation, and his attitude that anyone can do woodworking with basic tools.

In January, I signed up for his online course The Weekend Woodworker. The course contains six projects with a bonus workbench project to build first. Over the past week (I haven’t been able to get to it until now due to lousy weather), I built the workbench project. Pictures of the build process are at the bottom of this post.

Years ago, while watching a public television show about artists in North Carolina, a metalwork artist said something about the learning process that really stuck with me. He said that prior to becoming a metalworker, the only difference between metalwork artists and himself was that metalwork artists were actually doing it. That’s the attitude I’m taking this year with woodworking; why think about it when you can just do it, learning something in the process? I’m looking forward to tackling the projects in the course, and I’ve already got plenty of ideas on other projects to build. Stay tuned for more!

Company Man

Published on January 27, 2019

I recently stumbled on yet another enjoyable YouTube channel: Company Man. Each video tackles a particular company (or pair of companies), discussing how they got to where they are today. Some of the interesting ones I’ve seen so far:

New videos are posted each Wednesday.

1985 Fiero Revival

Published on January 23, 2019

I’m not a car guy, but tonight I stumbled upon a great little video series (still in progress, as of this writing!) of a guy restoring a 1985 Pontiac Fiero. The car sat unused for 20 years and he’s working on bringing it to life. Part 1 of the series is where to start. It’s a real pleasure to see this guy’s effort paying off.

Blocking Adblock Blockers

Published on January 9, 2019

One of our local news stations recently deployed an anti-adblock package (Admiral) on their website. It detects the presence of adblock software on the client, and prevents access until you white-list the website. The ads shown by this particular website have previously included malicious ones that attempt to deploy malware. As such, I refuse to white-list their site, having had bad experiences in the past.

While searching for tactics to sidestep this, I stumbled upon two Reddit threads (thread 1 and thread 2), both of which gave me enough information to figure out what was going on. The second thread above points to a repo of domain names used by this third-party solution for serving their adblock detection software. There are enough similarities in the domain names they use that make it pretty easy to pick out patterns. A typical pattern they employ is:

  • <adjective><noun>.com

This is similar to how default Docker containers are named. An example is unequalbrake.com, which also happens to be the domain serving the aforementioned news website instance.

Adding this domain (or list of domains) to your adblock filter list should block the adblock blocker.

NewsBlur

Published on January 8, 2019

I consume nearly all of my news and web reading through RSS feeds, and have done so for many years. Back before July 2013, I used Google Reader, before Google shut it down for good (the bums). Shortly after Google Reader was closed, I switched to NewsBlur, which closely resembles the Google Reader of yore. I cannot imagine surfing the web without it.

The service can be used for free (up to a maximum of 64 feeds, and only 5 stories at a time in the “river of news” mode), but I pay a yearly fee ($36) to have an unlimited number of feeds and stories.

One of the best features of NewsBlur is being able to “train” the reader to know what you like and don’t like from various sites. I’ve trained several of my gaming feeds to exclude anything about Fortnite, because that’s a game I have no interest in. As a result, stories on that topic are never shown to me; I’m in control of what I read! Similarly, I’ve also trained a few feeds to flag articles from authors I like. Those articles are highlighted, and I can view just those highlighted ones if I so choose with the “Focus” mode.

There are lots of other features to recommend about NewsBlur: searching for stories across all of my feeds, sharing stories with friends on the service, a pretty nice Android app, and lots more. If you haven’t given NewsBlur a try, be sure to.

SMBC RSS

Published on January 3, 2019

One of the web comics I follow is Saturday Morning Breakfast Cereal. The official RSS feed for this comic only includes the comic itself and the associated hover-text joke. To see the extra joke, you have to visit the SMBC website. But no longer!

I’ve just created a new project on GitHub that fixes this issue. It’s another RSS feed generator, and the feed that it generates contains the daily comic, the hover-text joke, and the hidden joke, all inline.

As always, there’s room for improvement in a place or two. Let me know if you spot any issues.

Copyright © 2004-2019 Jonah Bishop. Hosted by DreamHost.