King Features Comics Feeds

Published on October 6, 2018

Since I no longer subscribe to my local newspaper, I now primarily read daily comic strips through RSS feeds. comicsrss.com carries the vast majority of the strips I read, but several key strips are not included. It turns out that these missing strips are all owned by King Features which, frustratingly, doesn’t provide RSS feeds to their strips.

I have now fixed that.

My new project, comics-rss, is now available for users interested in creating RSS feeds to the comic strips provided by King Features. The project is admittedly brittle at the moment, but it has worked well for me so far. A number of improvements are planned:

  1. The script currently caches the comic strips locally, linking to the cached copy. I’d like to provide an option to use direct links instead, skipping the cache altogether.
  2. Cached strips are not currently cleaned up, so the folder into which they are stored will grow each day. I’ll be adding an “expired” configuration option to clean things up.
  3. Error checking in the configuration file isn’t very robust, and needs to be improved.

I would be interested in any feedback you might have on this project. If you find bugs or have suggestions for improvement, be sure to file them on the project issues board.

Infinite WordPress Redirects at DreamHost

Published on September 29, 2018

Do you run a WordPress site hosted at DreamHost? Are you seeing infinite redirect errors after adjusting the Do you want www in your URL? setting in the DreamHost control panel? Well friend, I had that same issue. Let me tell you how I fixed it. In this example, I will be migrating from the Add www to the Remove www value for the aforementioned setting.

Step 1: Change WordPress internal settings

  1. In WordPress, browse to the Settings » General menu item.
  2. Change both the WordPress Address and the Site Address to the new URL (in this case https://borngeek.com). Make sure there’s no trailing slash.

WordPress URL settings

Step 2: Change DreamHost control panel settings

  1. In the DreamHost control panel, navigate to the Domains » Manage Domains menu item.
  2. Click the Edit link next to the domain you want to change.
  3. Set the Do you want www in your URL? setting to the desired value.
  4. Click the Save button to save the change.

DreamHost URL settings

Step 3: Change https settings (if applicable)

This is the step that I got tripped up on (but finally stumbled upon). My site has HTTPS turned on, and there’s a setting we need to change.

  1. On the Domains » Manage Domains page, click the https On link next to the domain you’re changing.
  2. Change the Choose exact URL setting to the variant of your choice.

SSH settings

Now sit back and wait the 5 to 10 minutes for everything to take effect.

Snickerdoodle Cookies

Published on September 18, 2018

One of my favorite cookies!

Coating

  • 1/4 cup granulated sugar
  • 2 Tbsp cinnamon

Cookies

  • 1 cup shortening
  • 1-1/2 cups sugar
  • 2 eggs
  • 2-2/3 cups flour
  • 2 tsp cream of tartar
  • 1 tsp baking soda
  • 1/2 tsp salt
  1. Preheat oven to 400 degrees.
  2. In a small bowl, mix the coating ingredients together and set aside.
  3. In a second medium bowl, combine shortening, sugar, and eggs, mixing together well.
  4. In a third bowl, mix together the flour, cream of tartar, baking soda, and salt.
  5. Add the shortening mixture to the flour mixture, combining well.
  6. Roll dough into balls (size of your choosing), and then roll into the cinnamon and sugar mixture.
  7. Place the balls of dough on an ungreased cookie sheet.
  8. Bake for 8 to 10 minutes.

Note that the larger the cookie, the longer it may take to bake fully.

Chicken Pie

Published on September 16, 2018

Here’s another great recipe I grew up eating. The sage in this recipe is the key!

  • Pie crusts (we use store-bought ones like the ones from Pillsbury)
  • Shredded, cooked chicken (roughly 2 to 3 cups); we typically get a rotisserie chicken and use part of that
  • 1 package (1 pound) frozen mixed vegetables
  • 1 stick butter (can use less if desired; 1/2 stick might be ideal)
  • 1 chopped onion
  • One can cream of chicken soup
  • 1-1/2 tsp sage
  • 1-1/2 tsp poultry seasoning

Cook the package of frozen vegetables in salted water. While that is cooking, prepare the bottom pie crust in a pie dish. Next, melt the stick of butter in a skillet, and saute the chopped onion in it. In a large bowl, mix the onion, shredded chicken, cream of chicken soup, and the cooked vegetables. Add the sage and poultry seasoning, mixing gently so as to not tear up the vegetables.

Put this mixture in the bottom pie crust and cover with the top crust. Cut small slits in the pie crust for steam to escape. Bake at 375 until the crusts are done (30 minutes or so).

Photo Post-Processing

Published on June 23, 2018

I know that in the world of photography, post-processing is a very personal topic. Every photographer has a different workflow, especially when it comes time to process their photos. Mine has always been pretty haphazard, and for a long time I haven’t been as happy with my photos as I would like.

I shoot RAW images, which ultimately gives me a lot more creative control over the end product. Maximizing those possibilities, however, requires effort that I frankly haven’t been putting in. I’ve recently decided to change that, and I’m already seeing improved results. One of my recent photo albums, focusing on garden macro images, is the first album into which I put extra effort into the post-processing step. I’m really happy with every single photo in that album.

Over the past few weeks, I’ve been watching a lot of online tutorials on post-processing workflows, tips, and tricks. Anthony Morganti’s YouTube channel has been particularly helpful to me (he has lots of great pointers).

I’ve posted a few photos below to show the before and after effects of what I’ve learned. All of the “before” shots are photos that are posted in my public albums (all three of these shots come from the Lausanne, Switzerland photo album). If you happen to be reading this in an RSS reader, click through to the site for a better before/after experience where the images are stacked.

The first photo is a shot of a castle we visited. My “before” shot lacked detail, was fairly flat, and was generally overexposed. The “after” shot uses improved color, is a better crop (removing a stray head from the bottom of the shot), and has more detail.


This second photo was taken in the castle above. Again, there was missing detail, highlights were really overblown, and there was a general lack of contrast.


One final example originally suffered from overexposure and a lack of contrast. Note how so much more detail shows up in the leaves of the grapevine.


I’m looking forward to using my new-found skills in future photo albums.

June Garden Macros

Published on June 12, 2018

I’ve posted some new macro photos taken from my garden tonight. The colors in some of these photos are really beautiful, in my opinion. I hope to continue posting new photos like this.

Switzerland Photos (Part 2 of 2)

Published on May 30, 2018

The second set of photo albums from last year’s trip to Switzerland have been posted. First up this time is an album on our visit to Lausanne and its surrounding areas (a nice place to visit), followed by an album about Zermatt and the Matterhorn. Enjoy!

Switzerland Photos (Part 1 of 2)

Published on May 26, 2018

Last year, my wife and I spent two glorious weeks in Switzerland. While there, we hiked over 90 miles and visited a number of incredible places. We both fell in love with the country, and we intend to return in the future. If I had enough money, I’d even consider living there (though the cost of living is ridiculous)!

I’ve finally posted photos from this trip to my photos site. The first two albums cover our visits to Luzern and Wengen. Wengen is my top spot in Switzerland, and is perhaps the most beautiful place on Earth.

I will post two more albums in the next week or so, covering the second half of our trip. Stay tuned!

Linked Photo Albums

Published on May 12, 2018

I’m trying something new on my photos site. Starting with the NC Arboretum album, photos will now be hosted at Google Photos. This has a number of benefits:

  • Users can comment on photos
  • I can now embed videos in the album
  • Nicer viewing experience on all devices
  • Simplifies the import process for me

New albums will still show up on my photos site, but they will now be links to the external albums. The RSS feed for albums should still work to track what I post.

I’m not yet sure how to handle the “favorites” section of the photos site. I’d like to be able to point to favorite photos as I take them, but how to do that is still to be determined.

Let me know what you think of this new setup. I’m looking forward to giving it a try, and I have a backlog of photo albums to post.

A Subtle Python Bug

Published on February 23, 2018

I recently had a very subtle bug with an OrderedDict in my Python code at work. I constructed the contents of this object from a SQL query that was output in a specific order (can you spot the bug?):

qs = models.MyModel.objects.all().order_by("-order")
data = OrderedDict({x.id: x.name for x in qs})

My expectation was output like the following, which I was seeing on my development system (Python 3.6):

OrderedDict([(4, 'Four'), (3, 'Three'), (2, 'Two'), (1, 'One')])

However, on my official sandbox test system (which we use for internal testing, running Python 3.5), I was seeing output like this:

OrderedDict([(1, 'One'), (2, 'Two'), (3, 'Three'), (4, 'Four')])

There are actually two issues in play here, and it took me a while to figure out what was going on.

  1. First, I’m constructing the OrderedDict element incorrectly. I’m using a dictionary comprehension as the initialization data for the object’s constructor. Dictionaries are (until recently) not guaranteed to preserve insertion order when iterated over. This is where my order was being screwed up.
  2. Second, the above behavior for dictionary order preservation is an implementation detail that changed in Python 3.6. As of 3.6 (in the CPython implementation), dictionaries now preserve the insertion order when iterated over. My development system, running on 3.6, was therefore outputting things as I expected them. The sandbox system, still running 3.5, did not. What an annoyance!

I’ve learned two valuable lessons here: (a) make sure you’re running on the same levels of code in various places, and (b) don’t initialize an OrderedDict with a dictionary comprehension.

High Contrast Mouse Pointer

Published on February 19, 2018

As I age, my vision is getting worse (and it’s already pretty bad). At work, I use a three monitor setup: my laptop is the middle screen, and two external monitors sit to either side. Given the large screen real estate, and given my increasingly bad eyesight, I’ve been having a tough time finding my mouse pointer. Windows has an option to show the location of the mouse pointer when you press the Ctrl key, but that has limited usefulness (though I do use it from time to time).

I recently stumbled upon a neat feature in Windows 10 that has helped me tremendously. There are several mouse-specific features in the Ease of Access section of the Windows settings. The pointer size can be adjusted (which is helpful to a degree), but the most helpful feature is the Pointer Color setting. There’s an option to adjust the pointer color based on whatever color is beneath it. It took a little getting used to, but I can now find the mouse pointer a lot easier than I could before.

ThruNite Archer 2A Flashlight

Published on February 11, 2018

I have always liked a good flashlight. As a kid, I even asked for a 5-cell D Maglite for Christmas (which Santa brought!). This past December, I picked up the ThruNite Archer 2A flashlight from Amazon, based on a review from The Wirecutter. At $30 it’s not cheap, but boy is this thing great.

It uses two AA batteries and puts out an incredible amount of light. There are four brightness settings, ranging from dim (great for when your eyes are adjusted to the dark) to blindingly bright. I also like the fact that it’s compact; you could easily store this in a bag, car console, or junk drawer without taking up much space.

Since I bought it, I’ve put it to use in a number of ways (looking for dropped items in the car, using it on walks at night, and hunting under furniture for lost cat toys). I highly recommend this spectacular flashlight.

Sunset of Firefox Content

Published on January 7, 2018

This post serves as a notice that all Firefox content on this website has been removed. This includes:

  • CoLT
  • Googlebar Lite
  • Firefox Toolbar Tutorial
  • Firefox Profile Tutorial
  • Automatic Extension Updates Tutorial

All links to that content should now redirect to this notice statement. If you’re looking for information on the above, here are a few external references for your use:

Hammocks Beach State Park Photos

Published on January 1, 2018

I’ve just posted some photos from a visit to my final North Carolina state park back in October of 2016. This album has been long overdue, but I’m finally getting around to it.

I hope to post more photos in the coming weeks, but I’m debating how best to do that (I have a large backlog of stuff that never made it here). I’ve been using Google Photos as my posting ground in recent times, and I haven’t seen a good way to make those photos public.

Bread Machine Cinnamon Rolls

Published on December 24, 2017

I have a fairly old bread machine (late 90s / early 2000s model) that I use all the time. A few years ago, my dad found a great recipe for bread machine cinnamon rolls that he shared with me. After a minor tweak or two from the original, we’ve hit upon one of the best cinnamon roll recipes I’ve ever tried.

Wet Ingredients

  • 1 cup warm milk
  • 2 eggs
  • 6 Tbsp butter

Dry Ingredients

  • 1 tsp salt
  • 1/3 cup white sugar
  • 4 cups bread flour
  • 1 Tbsp yeast

Put all ingredients in the machine in the typical order (most machines call for wet first, then dry). Use the 2-pound dough setting, and let the machine do its thing. Once the machine is done, dump the dough out onto a flat surface (lightly floured if you like to avoid sticking). Roll the dough into a rectangle about 1/4 inch thick.

Filling

  • 2 Tbsp softened butter for spreading
  • 1/4 cup brown sugar
  • 1/4 cup white sugar
  • 2 Tbsp cinnamon
  • 1/2 cup raisins (optional; golden raisins are particularly good)

Spread the butter on the rolled out rectangle, and then sprinkle the sugar/cinnamon mixture on top of the butter. Also add the raisins (if using them). Roll the rectangle into a tight log (starting with long edge) and keep the seam side down to keep it sealed. Cut the log into the desired pieces (I typically get about 15 or so of these at about 1/2″ or so thick), and place them in greased pans. Let rise in a warm place for 30 minutes to 1 hour. Bake at 350° for 10 to 15 minutes, or until golden brown.

Icing

  • 1 cup powdered sugar
  • 1/4 tsp vanilla
  • Enough milk to make it thick (this is the tricky part)

I typically use about 1 Tbsp of milk, but it’s an art form to guess-timate the right amount. You don’t want the icing too thick, and you don’t want it too runny. I always double the icing recipe above because I love icing (if I can see the bread of the cinnamon roll, I don’t have enough icing on it). Enjoy!

Sunset of Googlebar Lite

Published on April 6, 2017

As of today, I am officially withdrawing my development support for the Googlebar Lite Firefox extension. I’m aware that the extension no longer works well in the latest builds of Firefox, and I have absolutely no desire to fix them. Mozilla’s development environment has gotten pretty irritating as of late, and I just don’t have the cycles (or the drive) to fix the issues that exist.

The future of Firefox add-ons lies in WebExtensions, and toolbar support in that arena is pretty bare-bones (last I looked). The default Firefox search box meets most needs, which has motivated me to drop this extension.

For those that are so-inclined, I will accept pull requests at the official googlebarlite repo. Or, you can fork the project and roll your own.

Lumber River State Park Photos

Published on December 20, 2016

In early October, I visited Lumber River State Park, the penultimate state park in my quest to visit them all. Naturally, I took my camera, and these photos were the result. Sadly, this small park offers lackluster hiking.

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