Nest Gen 2 and No Longer Evil

After Google crippled my Nest Thermostat gen 1, I began exploring options to repair it. Fortunately I came across Louis Rossmann describing his FULU bounty and eventually learned about NoLongerEvil.com. I’m happy to report that their modified firmware has restored web functionality with my thermostat, though I should say I made a trade with my mom and scored her gen 2 model, which was also broken by Google and can be restored by NoLongerEvil.com.

A few gotchas, I never got the firmware hack installed from my Mac, rather a machine running Ubuntu 25.04 was useful. And the following lines of code needed to be executed from the terminal before the firmware could be installed:

sudo tee /etc/udev/rules.d/99-omap-dfu.rules << 'EOF' SUBSYSTEM=="usb", ATTR{idVendor}=="0451", MODE="0666" EOF

sudo udevadm control --reload-rules
sudo udevadm trigger

I'll report back later after a repair of my gen 1 thermostat is complete. Surely a friend would like to use it? Also, I love the AI feature built into NoLongerEvil.com, it made quick work of importing our old heating schedule, very impressive!

References:
https://github.com/lastowl/homebridge-nolongerevil-nest (this plugin works well with homebridge 1.1)
https://github.com/will-tm/homebridge-nolongerevil-thermostat (should my homebridge every use MQTT)

2010 Mazda3 Key Battery Replacement

First of all, do not cheap out and buy your replacement batteries from eBay. Instead, buy them from someone reputable, like Digikey. I tried the cheap route and despite the batteries arriving with 3.27 volts, they don’t pack enough amperage to run the Mazda keys when they get below 3.07 volts.

Battery sourcing aside, this YouTube video does a good job of showing how to take a Mazda3 key apart. If you happen to snap any parts off and the keys don’t want to stay together, just dab some super glue blots, one each corner, and let the key dry. It will still come apart the next time you need to replace batteries.

When it comes to reprogramming, this guide may be helpful.

OpenVPN and DNS Fix

At some point I must have gotten cute with the OpenVPN’s client settings on macOS. I somehow entered OpenVPN’s “Advanced Settings” and enabled a feature called “DNS Fallback”. This seemed like a decent idea at the time, what I didn’t know is that would start to slow down my client-side OpenVPN connections a period of time after the VPN connection was established to the OpenVPN server. After this period of time, it would start to slowly (if ever) resolve domain names for external websites (the client side DNS resolution had latency on the order of seconds or more when it decided to use Google DNS.) Disabling the DNS Fallback feature brought speedy OpenVPN connections back to my client machine.

When these drop-offs or slow downs in resolving domain names occurred, the macOS OpenVPN client was producing these log messages: “UDP send exception: send: no buffer space available”. I will watch the log again to see if disabling the above “DNS Fallback” feature stops these UDP messages.

2001 Volkswagen New Beetle GLS (AEG engine) and LED conversion

Since 2010, low beam halogen bulbs on the above-referenced vehicle have been replaced on three separate occasions. Not terrible, but my relatively new driving daughter has noticed my wife’s car (HID bulbs) and my parents’ electric cars (LED bulbs) illuminate features on and off a night-time road much better than our New Beetle’s halogens. And when the driver-side low beam bulb recently capitulated, I got serious about converting it to newer bulb technology.

I understand LED’s have a much lower watt draw than halogens (and presumably also better than HID bulbs), so I focused my effort on LED bulb conversions. I figured more people are considering this, so I was somewhat surprised after searching online inventory for my local NAPA and finding that they had no LED conversion bulbs available. Maybe I searched wrong? I know many different options exist. Sadly, I don’t like buying car parts online and prefer to source them locally should a problem crop up later, so I moved on to AutoZone and Advance Auto Parts. Both carry LED conversions, specifically one made by OSRAM Sylvania, the H1LEDHP.BX2 for our New Beetle.

At the time of this post, AutoZone’s website shows:

Autozone showing incorrect picture for above-referenced part number.

Autozone’s listing for above-referenced part number has incorrect product picture.

After having to return what AutoZone showed in the picture, which was difficult considering the receipt showed the website’s part number, I found the correct H1 bulb in-stock and for less at Advance Auto Parts just down Lake Street.

Installation was nearly identical to a halogen bulb. The one adjustment I had to make was bending each of the New Beetle’s bulb clips outward, so that they could fit around the LED’s cooling plate. This slight modification aside, I tested the bulbs last night and wow, I’m impressed. I wouldn’t say they are twice as bright, but they definitely appear to be close to the 1,621 lumens that Sylvania claims and Advance Auto Parts repeats.

One other odd behavior with these bulbs that I noticed: when flipping the New Beetle’s high beams on, the low beams illuminate along with the old halogen high beam bulbs I left in. I think this happens, because Sylvania’s H1 bulbs operate at both voltages unlike the old halogen bulbs. I bet there’s an intermediary device I could add to stop this. I considered a workaround of replacing the existing high beam halogens with another set of these Sylvania H1 bulbs, but I think the problem then would be that both sets of bulbs will turn on when the low beams are flicked on – fellow road users won’t like the New Beetle’s headlights if it operates this way. For now, I’ll stick with the Sylvania H1 bulbs only for the low beam, though when the lower hanging halogen driving light bulbs break I may replace them with H1 LEDs too.

Final verdict on these: buy! Should the operation of these bulbs be causing other issues, Sylvania ships them with a lifetime warranty. Keep your receipt/paperwork. Should these Sylvania LEDs not work out, I may consider options here.

Brother HL-L3250CDW and Maintenance Mode

Folks here have broken the bypass tray on my workhorse Brother HL-L8350CDW, so when I happened across our electronics recycling bin at work and noticed a HL-L3250CDW, I quickly snatched it. It needed toner and new drums, no biggie. I picked up some of these off of eBay and have it operating; however, the magenta toner is shifted a bit. I’ve been messing around with the printer’s maintenance mode to make manual tweaks. To access this menu:

  1. On top of the printer, hold the home button for 5 seconds.
  2. Next four white boxes appear on the display, press and hold on the bottom box for 3 seconds then release.
  3. Using printer’s on-screen keypad, type *2864 and it will say “MAINTENANCE” across the top of the screen.
  4. Using printer’s on-screen keypad, type *66 and it will say “REGISTRATION” across the top.
  5. Using printer’s on-screen keypad, tap the “>>” button twice and you’ll reach a keyboard with arrow buttons.
  6. Tap the up arrow twice to navigate to “PRINT CHART”, then press “SET”.

This post may be a work in progress as I next explain how to improve the alignment of what you see from the printed output. This is an iterative process that is necessary, because the third party toner cartridges must not be fully compatible with Brother’s firmware.

Spam Calendar Appointments

Lately spammers seem to be coopting a feature in Gmail, and other email platforms, where a calendar appointment is automatically entered into a user’s calendar. To prevent these appointments from automatically appearing through your Gmail account, watch my demonstration to disable this feature or follow the instructions below:

How to configure Gmail to only allow appointments from known senders.

      Log into your calendar at https://calendar.google.com
      Click the settings icon/settings menu.
      Scroll to “Event Settings”.
      Change the contextual menu from “Add invitations to my calendar – From everyone” to “Only if the sender is known”.

I hope this helps!

Blind Hem and Bernini B 350

I picked up a new suit to match my sister-in-law’s color swatch and the pants came as 38-inch lengths. Those would probably be too short Big W, but they are too long for me. And for suit pants, a blind hem is needed.

Going in, I was somewhat unaware that a regular sewing machine would struggle with this task, but there are ways to overcome it. This video is by far the best of ones that I watched and on my first try applying my new skills it worked for my pants:

Pants with blind hem, playing 6th fiddle.

Happy day with Tina, Wes, Talia, Jamala, and Voke!

Many thanks to Aspiring Gent for making this easier. And for whatever reason, it hurt my brain trying to think about what I was doing and how it would work, but trust the process that Aspiring Gent lays out – it works.

Inkscape and Default Document Size at Startup

I’m really liking Inkscape. I wanted to customize it on macOS to make its default document a letter document in portrait (Inkscape ships with the A4 as the default). To make this change:

  1. Open Inkscape and create a new document.
  2. Set the Canvas Size:
    • Go to File -> Document Properties (Shift + Cmd + D).
    • Under the Page tab:
      • Set Units to in.
      • Choose Letter from the preset list, or manually set:
        • Width: 8.5 in
        • Height: 11 in
  3. Save the Document as a Template:
    • Go to File -> Save As.
    • Save the file as default.svg to a temporary location like your Desktop.
  4. Move the Template to the Correct Folder:
    • Open Finder and navigate to:
      ~/Library/Application Support/org.inkscape.Inkscape/config/inkscape/templates/
    • If the folder doesn’t exist, create it manually.
    • Move your default.svg file into this folder.
  5. Restart Inkscape:
    • When you launch Inkscape again, it will use your customized default.svg as the starting document — now with a Letter-sized canvas.

WordPress and Safari Blues

Seems Safari’s cache is corrupted on my Mac, several of the WordPress admin pages look like this:

Corrupted Safari cache when viewing WordPress Admin page.

Corrupted Safari cache when viewing WordPress Admin page.

To get around this issue, I’m temporarily using Microsoft Edge, which seems to work fine.

I tried erasing Safari’s cache for my schwie.com domain and then quit/restarted Safari:

Go to Safari > Settings > Privacy and click Manage Website Data.
– In the search bar, type the name of your website.
– Select it and click Remove.
Restart Safari and check the WordPress admin panel
– Close and reopen Safari to ensure the changes take effect.
– Revisit your WordPress admin panel to see if the changes are now reflected.

But the above instructions didn’t seem to resolve the issue in Safari. More aggressive action with Safari may be necessary, but I’m reluctant to try it now.

** Update 11-26-2025 **

I found a better fix to this, maybe getting closer to resolving this issue. In Safari’s settings and then Privacy, you can delete the Website Data for a specific website, this still didn’t help. I then tried emptying the cache through the Developer menu, this still didn’t help. Ultimately, I found that holding down the Shift key and then choosing
“Reload Page” by navigating to View->Refresh Page has WordPress admin pages rendering properly in Safari again – yes! Oddly, I have to do this one time for ever admin page that loads improperly, but the change then seems to stick for future visits.

** Update 12-5-2025 **
Oh dear, this fix stopped working today. Will report back later when I figure out a lasting workaround/repair.

pyHanko and macOS

I’m trying to be better about digitally signing .pdf documents that I author as a professional engineer. And without needing to pay Adobe to use Acrobat. Enter pyHanko, which does not have a graphical user interface; however, with a little fussing it works well.

First, open Terminal.app and execute the following command to create a certificate and private key:

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 3650

When prompted, I entered:

Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:Minnesota
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Barr Engineering Co.
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:Bradford Schwie
Email Address []:bschwie@barr.com

Next combine the above generated cert.pem and key.pem into certif.p12 with this command:

openssl pkcs12 -export -out certif.p12 -in cert.pem -inkey key.pem

Verify the certificate.p12 contains a certificate and key with this command:

openssl pkcs12 -info -in certif.p12

Finally, create a .pdf with command:

pyhanko sign addsig --field Sig1 pkcs12 input.pdf output_signed.pdf certif.p12

pyhanko sign addsig --field 1/70,400,390,350/Sig1 --style-name default pkcs12 input.pdf output_signed.pdf certif.p12

I could probably do more fussing with the signature appearance, but it took a fair amount of effort and this was before Liam bailed me out – thank you! Hopefully others find this as helpful as I do.

** Update 11-26-2025 **
Today I was signing a document that another user had already digitally signed. No sweat, pyHanko seems to handle this situation with the following example that I used:

pyhanko sign addsig --field 1/90,215,360,185/Sig1 --style-name default --no-strict-syntax pkcs12 input.pdf output_signed.pdf certif.p12

** Update 12-4-2025 **
Today I signed a couple letter documents. The following pyHanko command worked for me once I navigated to the Archive folder on the Desktop, where I had the other files discussed above.

pyhanko sign addsig --field 1/70,275,370,225/Sig1 --style-name default --no-strict-syntax pkcs12 input.pdf output_signed.pdf certif.p12

** Update 12-30-2025 **
To stamp the fourth page of a .pdf, replace “field 1” (above), with “field 4” as shown below:

pyhanko sign addsig --field 4/140,150,410,120/Sig1 --style-name default --no-strict-syntax pkcs12 input.pdf output_signed.pdf certif.p12

** Update 2-24-2026 **
For moving the signature around, I have found that keep the height of the signature box constant allows you to widen the box to create separation between the signature graphic and the date. This gets me separation on the first page of a wide form:

pyhanko sign addsig –field 1/90,108,520,78/Sig1 –style-name default –no-strict-syntax pkcs12 input.pdf signed.pdf certif.p12