Cleaning / Fixing 4Runner Door Switches
If you have a 3rd Gen 4Runner (1996-2002) that no longer lights the dome light when the doors are opened, chances are your door switches are dirty or in need of repair. Luckily, it’s a very easy fix.
Here are a few of my recent projects / snippets of code.
If you have a 3rd Gen 4Runner (1996-2002) that no longer lights the dome light when the doors are opened, chances are your door switches are dirty or in need of repair. Luckily, it’s a very easy fix.
The TCC clutch on my Chevy Express van has shuddered and had poor engagement ever since I purchased it. A common wear item is the TCC regulator valve bore, which causes fluid to leak past the valve. TransGo makes a repair kit which has a scarf cut o-ring to seal the valve bore and improve TCC engagement, even with substantial wear.
I purchased a 2006 XW20 Prius (Gen 2) from a trucking company that had used it as a shuttle vehicle. The red triangle warning light was on with codes for a bad hybrid battery. To save money, I decided to try repairing the battery using individual cells purchased from Ebay instead of immediately paying for a whole refurbished pack.
I recently bought a 2000 Jeep Cherokee (XJ) with the 4.0l inline-6 engine. It had a light misfire at idle and would blink the check engine light under heavy acceleration. Here is the procedure that I used to diagnose and solve the problem.
My Dell Precision 5510 (more or less an enterprise XPS 15 9550) recently updated itself to BIOS version 1.12.0. Apparently this BIOS version has a known issue where pressing F8 during boot will cause a no-POST, no display condition which effectively bricks the laptop.
The 1990 and earlier Volvo 240 windshields are known for their frustrating trim design which was held on by 22 plastic clips, set into the butyl rubber used to mount the windshield. My 1989 240 developed a leak near the top right of the windshield due to a combination of rust and shoddy resealing done by the previous owner.
The Subsonic project recently added support for databases other than the built in HSQL database that has always been packaged with the Subsonic server. My Subsonic server manages about 40,000 media files and has ~40 users with hundreds of favourites and ratings. It was starting to perform slowly and index scans in particular were taking ~3 hours, so I was looking forward to moving away from the outdated HSQLDB system to MySQL.
Alex Sherman and I recently finished a project we call deco, which is a simplified way to run code concurrently in Python. Because of the CPython global interpreter lock, runnning concurrent code in Python currently requires using multiple independent processes and serializing and piping function calls and arguments to them.
The poorly documented and understood udev system on Ubuntu now generates persistent device names for network hardware, which is a step up from the old system where device names would be reassigned at boot and hardware changes could make assosciating a name with a physical insterface very frustrating. I wanted to take this a step further and generate meaningful custom names for different classes of hardware.
The Generation IV Dodge Grand Caravan (and its sibling the Chrysler Town and Country) is well known for requiring an annoying and expensive replacement of the front window regulators after a drawn out failure where they will gradually stop working. I finally got around to looking into the problem on my van this week and found the root cause to be easily fixable.
A lot of the work I do involves large Flask applications structured in the manner described by the excellent Digital Ocean guide How To Structure Large Flask Applications. A side effect of this is that for large applications with many blueprints you end up with a templates folder that is a jumble of subdirectories, each relating to a specific blueprint. On a recent project, I decided I wanted to start storing an individual templates folder inside of each blueprint’s Python module instead of jumbling them all together into a single folder. This would make things more modular, as a single blueprint could be deleted from or added to an application without needing to mess around with another set of templates being copied into the main templates folder.
Linked clones are a neat feature in ESXi for installations with many virtual machines that need to be deployed off the same template, because once you’ve created a base image you can deploy many copies of it without consuming a few GB for each install. Linked clones only consume space for the diff between them and the base image. Currently, the process of creating a linked clone is somewhat tedious if you only have vSphere, and requires downloading vmx and vdmk files to your computer and manually editing and duplicating them. I wrote a bash script to automate the process on your server which saves a lot of time and messing about.
One of our embedded devices at work reports in to a central control server about once a second and several different pieces of diagnostic information are logged in a mySQL database by the control server. Recently as more devices have been added to the network we have been seeing poor performance on the control servers as queues of diagnostics fill up while waiting for database inserts to complete. I performed some benchmarks comparing the performance of a mySQL database stored on an SSD vs. one stored on a spinning hard disk.
I run Deluge on one of my headless server instances to seed several different categories of torrent (Linux mint ISOs, etc) and I like to have completed torrents automatically copied back to my home NAS over FTP. To do this, I use the execute plugin for Deluge to execute a shell script upon download completion.
One of my older but consistently popular articles is my guide to communicating with an N64 controller via an Arduino.
I recently ran into a project where I wanted to take a folder full of JPEG images and turn them into a timelapse.