<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Mike Schweitzer</title><link>https://www.mikeschweitzer.com/</link><description>Blog of Mike Schweitzer, software engineer in the game industry.</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><copyright>Mike Schweitzer</copyright><lastBuildDate>Sun, 16 Feb 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://www.mikeschweitzer.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Multi-account GitHub Workflow on Mac and Windows</title><link>https://www.mikeschweitzer.com/posts/multi-account-github-workflow/</link><pubDate>Sun, 16 Feb 2025 00:00:00 +0000</pubDate><guid>https://www.mikeschweitzer.com/posts/multi-account-github-workflow/</guid><description>If you have multiple github.com accounts, such as a personal and work account, and you want the correct account to be used automatically without signing out and signing in, then this post should interest you.</description><content:encoded>&lt;p>If you have multiple github.com accounts, such as a personal and work account, &lt;strong>and you want the correct account to be used automatically without signing out and signing in&lt;/strong>, then this post should interest you.&lt;/p>
&lt;p>This is a spiritual successor to &lt;a href="https://medium.com/macoclock/my-multi-account-github-workflow-on-mac-133708a93544">an old Medium post of mine&lt;/a> that was specific to Mac.&lt;/p>
&lt;p>This update was made possible by improvements to Git and GitHub that have been made over the years&lt;/p>
&lt;ul>
&lt;li>GitHub&amp;rsquo;s website now supports an account switcher&lt;/li>
&lt;li>Conditional includes using &lt;a href="https://git-scm.com/docs/git-config#_conditional_includes">&lt;code>includeIf&lt;/code>&lt;/a>&lt;/li>
&lt;li>URL rewriting using &lt;a href="https://git-scm.com/docs/git-config#Documentation/git-config.txt-urlltbasegtinsteadOf">&lt;code>insteadOf&lt;/code>&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>I added Windows support in this post as well.&lt;/p>
&lt;p>&lt;strong>For better or worse, SSH is still the best way to support multiple accounts automatically.&lt;/strong> Essentially the setup is like this:&lt;/p>
&lt;ul>
&lt;li>You&amp;rsquo;ll have a &amp;ldquo;default&amp;rdquo; account that uses https&lt;/li>
&lt;li>All other, &amp;ldquo;non-default&amp;rdquo; accounts will use ssh&lt;/li>
&lt;/ul>
&lt;p>However, unlike in the past, all use cases should now be covered properly with the aforementioned improvements. In the past, it was possible for some apps on your machine to break the workflow in my old post by invoking Git as a child process without properly injecting system environment variables. Now that Git itself can be configured to always use the correct credentials, this is no longer an issue.&lt;/p>
&lt;p>There&amp;rsquo;s a lot of ground to cover, so let&amp;rsquo;s get into it.&lt;/p>
&lt;hr>
&lt;h1 id="multi-account-on-githubcom">Multi-account on github.com&lt;a class="heading-anchor" href="#multi-account-on-githubcom" aria-label="Link to this section">&lt;/a>&lt;/h1>
&lt;p>The first thing you&amp;rsquo;ll want to do is sign into all of your accounts on &lt;a href="https://github.com">github.com&lt;/a>&lt;/p>
&lt;ol>
&lt;li>First sign in with any one of your accounts&lt;/li>
&lt;li>Then click your avatar in the top right
&lt;img src="https://www.mikeschweitzer.com/posts/multi-account-github-workflow/assets/AvatarButton.png" alt="Avatar Button" width="636" height="440" loading="lazy" decoding="async">
&lt;/li>
&lt;li>Click the Account Switcher button (looks like left-right arrows)
&lt;img src="https://www.mikeschweitzer.com/posts/multi-account-github-workflow/assets/SwitcherButton.png" alt="Switcher Button" width="636" height="440" loading="lazy" decoding="async">
&lt;/li>
&lt;li>Click the Add Account button
&lt;img src="https://www.mikeschweitzer.com/posts/multi-account-github-workflow/assets/AddAccountButton.png" alt="Add Account Button" width="636" height="440" loading="lazy" decoding="async">
&lt;/li>
&lt;/ol>
&lt;p>&lt;strong>You&amp;rsquo;ll need to use the account switcher later&lt;/strong> to repeat chunks of this guide for each &amp;ldquo;secondary&amp;rdquo; account you want to setup.&lt;/p>
&lt;hr>
&lt;h1 id="os-and-software-versions">OS and Software Versions&lt;a class="heading-anchor" href="#os-and-software-versions" aria-label="Link to this section">&lt;/a>&lt;/h1>
&lt;p>This guide was written using the following versions:&lt;/p>
&lt;ul>
&lt;li>Mac: macOS Sequoia 15.3&lt;/li>
&lt;li>Windows: Windows 11 24H2&lt;/li>
&lt;li>Git: 2.48.1&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h1 id="one-time-machine-setup">One-Time Machine Setup&lt;a class="heading-anchor" href="#one-time-machine-setup" aria-label="Link to this section">&lt;/a>&lt;/h1>
&lt;p>&lt;strong>⚠️ These steps only need to be done once per machine ⚠️&lt;/strong>&lt;/p>
&lt;p>Currently, &lt;strong>ssh keys are the only way to make auto-multi-account work&lt;/strong>. So most of this guide walks you through setting up ssh keys.&lt;/p>
&lt;p>This is the general shape of what we will do:&lt;/p>
&lt;ul>
&lt;li>Organize your folders on disk similarly to how github.com organizes accounts i.e. &lt;code>https://github.com/{account-name | org-name}/repo-name&lt;/code>&lt;/li>
&lt;li>Create ssh key pairs for any &amp;ldquo;non-default&amp;rdquo; accounts you want to use (your default account will use https)&lt;/li>
&lt;li>Use your ssh keys + folder layout + the &lt;code>includeIf&lt;/code> config option to automatically choose the correct account based on a repo&amp;rsquo;s folder&lt;/li>
&lt;/ul>
&lt;p>An ssh key is essentially a user/pass in the form of an encrypted file. Git has no built-in way to select accounts, but it &lt;em>does&lt;/em> have ssh support. So we&amp;rsquo;re going to take advantage of that by leveraging ssh as an automated account selector.&lt;/p>
&lt;h2 id="your-user-folder">Your User Folder&lt;a class="heading-anchor" href="#your-user-folder" aria-label="Link to this section">&lt;/a>&lt;/h2>
&lt;p>&lt;strong>I&amp;rsquo;m going to refer to &amp;ldquo;your user folder&amp;rdquo; a lot in this guide.&lt;/strong> Your user folder is where many tools store settings, usually in a folder prefixed with the tool name (e.g. &lt;code>~/.ssh&lt;/code> is where the &lt;code>ssh&lt;/code> tool stores settings). In Git&amp;rsquo;s case, Git stores settings files here directly like &lt;code>.gitconfig&lt;/code> rather than in a subfolder.&lt;/p>
&lt;p>On Mac and Windows that means these folders:&lt;/p>
&lt;ul>
&lt;li>Mac: &lt;code>/Users/&amp;lt;YourUserName&amp;gt;&lt;/code>&lt;/li>
&lt;li>Windows: &lt;code>C:\Users\&amp;lt;YourUserName&amp;gt;&lt;/code>&lt;/li>
&lt;/ul>
&lt;p>From a Mac terminal or Windows PowerShell, the &lt;code>~&lt;/code> character is an alias for your user folder:&lt;/p>
&lt;pre tabindex="0">&lt;code>cd ~
&lt;/code>&lt;/pre>&lt;p>For example:&lt;/p>
&lt;pre tabindex="0">&lt;code>mike@mikes-mbp14 Developer % cd ~
mike@mikes-mbp14 ~ % pwd
/Users/mike
mike@mikes-mbp14 ~ %
&lt;/code>&lt;/pre>&lt;h2 id="git-command-line-interface-cli-setup">Git Command Line Interface (CLI) Setup&lt;a class="heading-anchor" href="#git-command-line-interface-cli-setup" aria-label="Link to this section">&lt;/a>&lt;/h2>
&lt;h3 id="install-git">Install Git&lt;a class="heading-anchor" href="#install-git" aria-label="Link to this section">&lt;/a>&lt;/h3>
&lt;p>Let&amp;rsquo;s first walk through installing the Git CLI to support multiple accounts.&lt;/p>
&lt;h4 id="mac">Mac&lt;a class="heading-anchor" href="#mac" aria-label="Link to this section">&lt;/a>&lt;/h4>
&lt;p>Since I work in games, I also install Git LFS. Even if you don&amp;rsquo;t plan to use LFS, installing it couldn&amp;rsquo;t hurt since it will make LFS-enabled repos behave correctly.&lt;/p>
&lt;ol>
&lt;li>Open a terminal&lt;/li>
&lt;li>&lt;code>brew install git&lt;/code>&lt;/li>
&lt;li>&lt;code>brew install --cask git-credential-manager&lt;/code>&lt;/li>
&lt;li>&lt;code>brew install git-lfs&lt;/code>&lt;/li>
&lt;/ol>
&lt;p>You&amp;rsquo;ll configure Git in the next section (below the Windows setup).&lt;/p>
&lt;h4 id="windows">Windows&lt;a class="heading-anchor" href="#windows" aria-label="Link to this section">&lt;/a>&lt;/h4>
&lt;ol>
&lt;li>Download the 64-bit Git installer &lt;a href="https://git-scm.com/downloads/win">https://git-scm.com/downloads/win&lt;/a>&lt;/li>
&lt;li>Run the installer&lt;/li>
&lt;li>There are a lot of pages in this installer, so for the most part, you&amp;rsquo;ll want to leave defaults as-is and choose the things that are called out here:&lt;/li>
&lt;li>Select Components
&lt;ol>
&lt;li>Check &lt;code>Windows Explorer Integration&lt;/code>
&lt;ol>
&lt;li>Check &lt;code>Git Bash&lt;/code>&lt;/li>
&lt;li>Check &lt;code>Open Git GUI Here&lt;/code>&lt;/li>
&lt;/ol>
&lt;/li>
&lt;li>Check &lt;code>Git LFS&lt;/code>&lt;/li>
&lt;li>Check &lt;code>Associate .git* configuration files with the default text editor&lt;/code>&lt;/li>
&lt;li>Check &lt;code>Associate .sh files to be run with Bash&lt;/code>&lt;/li>
&lt;li>Check &lt;code>Add a Git Bash Profile to Windows Terminal&lt;/code>&lt;/li>
&lt;li>Check &lt;code>Scalar&lt;/code>
&lt;img src="https://www.mikeschweitzer.com/posts/multi-account-github-workflow/assets/GitSetupSelectComponents.png" alt="Git Setup Select Components" width="727" height="556" loading="lazy" decoding="async">
&lt;/li>
&lt;/ol>
&lt;/li>
&lt;li>Adjusting your PATH Environment
&lt;ol>
&lt;li>Check &lt;code>Git from the command-line and also from 3rd-party software&lt;/code>&lt;/li>
&lt;/ol>
&lt;/li>
&lt;li>Choosing the SSH Executable
&lt;ol>
&lt;li>Check &lt;code>Use bundled OpenSSH&lt;/code>&lt;/li>
&lt;/ol>
&lt;/li>
&lt;li>Choosing the HTTPS transport backend
&lt;ol>
&lt;li>Check &lt;code>Use the OpenSSL library&lt;/code>&lt;/li>
&lt;/ol>
&lt;/li>
&lt;li>Configuring the terminal emulator to use with Git Bash
&lt;ol>
&lt;li>Check &lt;code>Use Windows' default console window&lt;/code>&lt;/li>
&lt;/ol>
&lt;/li>
&lt;/ol>
&lt;p>You&amp;rsquo;ll do remaining Git config from a terminal in the next section.&lt;/p>
&lt;h3 id="configure-git">Configure Git&lt;a class="heading-anchor" href="#configure-git" aria-label="Link to this section">&lt;/a>&lt;/h3>
&lt;p>We installed Git, now we need to configure it. Here, we setup &lt;strong>global default&lt;/strong> Git config settings.&lt;/p>
&lt;p>These steps are the same for Mac and Windows.&lt;/p>
&lt;ol>
&lt;li>Open a terminal&lt;/li>
&lt;li>Run these one at a time&lt;/li>
&lt;li>&lt;code>git lfs install&lt;/code>&lt;/li>
&lt;li>&lt;code>git config --global user.name &amp;quot;YourFirstName YourLastName&amp;quot;&lt;/code>&lt;/li>
&lt;li>&lt;code>git config --global user.email &amp;quot;youremail@example.com&amp;quot;&lt;/code>&lt;/li>
&lt;li>&lt;code>git config --global init.defaultBranch main&lt;/code>&lt;/li>
&lt;li>&lt;code>git config --global pull.rebase true&lt;/code>&lt;/li>
&lt;li>&lt;code>git config --global push.autoSetupRemote true&lt;/code>&lt;/li>
&lt;li>&lt;code>git config --global core.editor nano&lt;/code>&lt;/li>
&lt;li>&lt;code>git config --global core.fsmonitor true&lt;/code>&lt;/li>
&lt;li>&lt;code>git config --global submodule.recurse true&lt;/code>&lt;/li>
&lt;/ol>
&lt;p>All of these settings end up in your &lt;code>~/.gitconfig&lt;/code> file (in your user folder). It should look like this.&lt;/p>
&lt;h4 id="mac-1">Mac&lt;a class="heading-anchor" href="#mac-1" aria-label="Link to this section">&lt;/a>&lt;/h4>
&lt;pre tabindex="0">&lt;code>[filter &amp;#34;lfs&amp;#34;]
	clean = git-lfs clean -- %f
	smudge = git-lfs smudge -- %f
	process = git-lfs filter-process
	required = true
[user]
	name = Mike Schweitzer
	email = mschweitzer@gmail.com
[init]
	defaultBranch = main
[pull]
	rebase = true
[push]
	autoSetupRemote = true
[core]
	editor = nano
[credential]
	helper =
	helper = /usr/local/bin/git-credential-manager
[credential &amp;#34;https://dev.azure.com&amp;#34;]
	useHttpPath = true
&lt;/code>&lt;/pre>&lt;h4 id="windows-1">Windows&lt;a class="heading-anchor" href="#windows-1" aria-label="Link to this section">&lt;/a>&lt;/h4>
&lt;pre tabindex="0">&lt;code>[filter &amp;#34;lfs&amp;#34;]
	clean = git-lfs clean -- %f
	smudge = git-lfs smudge -- %f
	process = git-lfs filter-process
	required = true
[user]
	name = Mike Schweitzer
	email = mschweitzer@gmail.com
[init]
	defaultBranch = main
[pull]
	rebase = true
[push]
	autoSetupRemote = true
[core]
	editor = nano
&lt;/code>&lt;/pre>&lt;h2 id="ssh-folder-setup">&lt;code>.ssh&lt;/code> Folder Setup&lt;a class="heading-anchor" href="#ssh-folder-setup" aria-label="Link to this section">&lt;/a>&lt;/h2>
&lt;p>By convention, the &lt;code>~/.ssh&lt;/code> folder is where you store ssh keys.&lt;/p>
&lt;h3 id="mac-2">Mac&lt;a class="heading-anchor" href="#mac-2" aria-label="Link to this section">&lt;/a>&lt;/h3>
&lt;ol>
&lt;li>First, make sure you can see all hidden files and folders
&lt;ol>
&lt;li>Open a terminal and run these in order&lt;/li>
&lt;li>&lt;code>defaults write com.apple.Finder AppleShowAllFiles true&lt;/code>&lt;/li>
&lt;li>&lt;code>killall Finder&lt;/code>&lt;/li>
&lt;/ol>
&lt;/li>
&lt;li>Go to your user folder&lt;/li>
&lt;li>Create a folder called &lt;code>.ssh&lt;/code> if not already there&lt;/li>
&lt;li>Create a file called &lt;code>config&lt;/code> if not already there
&lt;img src="https://www.mikeschweitzer.com/posts/multi-account-github-workflow/assets/SshConfig.png" alt="SshConfig" width="980" height="840" loading="lazy" decoding="async">
&lt;/li>
&lt;li>The contents of &lt;code>~/.ssh/config&lt;/code> should be
&lt;pre tabindex="0">&lt;code>Host *
 UseKeychain yes
 AddKeysToAgent yes
 IdentitiesOnly yes
&lt;/code>&lt;/pre>Refer to &lt;a href="https://medium.com/macoclock/my-multi-account-github-workflow-on-mac-133708a93544#ssh-config">my original post&lt;/a> if you want to know more about these properties.&lt;/li>
&lt;/ol>
&lt;h3 id="windows-2">Windows&lt;a class="heading-anchor" href="#windows-2" aria-label="Link to this section">&lt;/a>&lt;/h3>
&lt;ol>
&lt;li>First, make sure you can see all hidden files and folders
&lt;ol>
&lt;li>Open File Explorer Options&lt;/li>
&lt;li>Check &lt;code>Show Hidden Files&lt;/code>&lt;/li>
&lt;li>Uncheck &lt;code>Hide extensions for known file types&lt;/code>
&lt;img src="https://www.mikeschweitzer.com/posts/multi-account-github-workflow/assets/FileExplorerOptions.png" alt="File Explorer Options" width="555" height="697" loading="lazy" decoding="async">
&lt;/li>
&lt;/ol>
&lt;/li>
&lt;li>Go to your user folder&lt;/li>
&lt;li>Create a folder called &lt;code>.ssh&lt;/code> if not already there
&lt;img src="https://www.mikeschweitzer.com/posts/multi-account-github-workflow/assets/WindowsSshFolder.png" alt="Windows SSH Folder" width="694" height="559" loading="lazy" decoding="async">
&lt;/li>
&lt;/ol>
&lt;h2 id="repo-folder-setup">Repo Folder Setup&lt;a class="heading-anchor" href="#repo-folder-setup" aria-label="Link to this section">&lt;/a>&lt;/h2>
&lt;ol>
&lt;li>Create a folder called &lt;code>Developer&lt;/code> in your user folder&lt;/li>
&lt;li>Create a folder called &lt;code>github&lt;/code> in your &lt;code>Developer&lt;/code> folder&lt;/li>
&lt;li>Create folders for each of your account or organization names, reminder that you want your folders to look like your github URLs&lt;/li>
&lt;/ol>
&lt;p>For example, if you have accounts &lt;code>foo&lt;/code> and &lt;code>bar&lt;/code>, you&amp;rsquo;d have something like this&lt;/p>
&lt;p>&lt;img src="https://www.mikeschweitzer.com/posts/multi-account-github-workflow/assets/MacReposFolder.png" alt="Mac Repos Folder" width="1316" height="830" loading="lazy" decoding="async">
&lt;/p>
&lt;h1 id="repeated-per-account-setup">Repeated Per-Account Setup&lt;a class="heading-anchor" href="#repeated-per-account-setup" aria-label="Link to this section">&lt;/a>&lt;/h1>
&lt;p>&lt;strong>📣 These steps need to be repeated for each of your &amp;ldquo;non-default&amp;rdquo;, SSH accounts 📣&lt;/strong>&lt;/p>
&lt;p>Let&amp;rsquo;s say we are working with this two account setup:&lt;/p>
&lt;ul>
&lt;li>Personal account &lt;code>foolio&lt;/code>
&lt;ul>
&lt;li>Personal email: &lt;code>foo@example.com&lt;/code>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Work account &lt;code>foo-bar&lt;/code>
&lt;ul>
&lt;li>Work organization: &lt;code>bar&lt;/code>&lt;/li>
&lt;li>Work email: &lt;code>foo-bar@bar.com&lt;/code>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;p>You will need to run all of the steps in the following sections for both accounts.&lt;/p>
&lt;p>For simplicity, I will use &lt;code>foolio&lt;/code> and &lt;code>foo@example.com&lt;/code> in the following steps.&lt;/p>
&lt;h2 id="note-for-organizations--work-accounts">Note for Organizations / Work Accounts&lt;a class="heading-anchor" href="#note-for-organizations--work-accounts" aria-label="Link to this section">&lt;/a>&lt;/h2>
&lt;p>When setting up an org / work account, there is a trick:&lt;/p>
&lt;ul>
&lt;li>Anywhere in the following steps when you see the account name &lt;code>foolio&lt;/code> -&amp;gt; replace with org name &lt;code>bar&lt;/code> (i.e. NOT the work account name &lt;code>foo-bar&lt;/code>)&lt;/li>
&lt;li>Anywhere you see the email &lt;code>foo@example.com&lt;/code> -&amp;gt; replace with work email &lt;code>foo-bar@bar.com&lt;/code>&lt;/li>
&lt;/ul>
&lt;p>In other words, when you setup a work account: &lt;strong>replace the personal account name with the org name rather than your work account name&lt;/strong> and the personal email with your work email.&lt;/p>
&lt;h2 id="create-an-ssh-key-pair">Create an SSH Key Pair&lt;a class="heading-anchor" href="#create-an-ssh-key-pair" aria-label="Link to this section">&lt;/a>&lt;/h2>
&lt;p>When creating an ssh key, you create a &amp;ldquo;key pair&amp;rdquo;, meaning two files: (1) a private key file and (2) a public key file.&lt;/p>
&lt;p>The private key stays on your machine and the public key gets uploaded to your github.com account.&lt;/p>
&lt;p>🚨 We will be giving our ssh key pair readable names that incorporate the word &amp;ldquo;github&amp;rdquo; followed by the account/org name. One of the most common points of confusion I see in ssh setup guides is leaving the default ssh key file names, which is typically the name of the encryption algorithm used to make the key. That&amp;rsquo;s not useful to you as an end user, so we&amp;rsquo;re going to avoid that problem. 🚨&lt;/p>
&lt;p>&lt;em>NOTE: You will be given the option to password-protect your ssh keys. This is like password-protecting a pdf. I don&amp;rsquo;t do that and don&amp;rsquo;t recommend it, but it&amp;rsquo;s up to you.&lt;/em>&lt;/p>
&lt;h3 id="mac-3">Mac&lt;a class="heading-anchor" href="#mac-3" aria-label="Link to this section">&lt;/a>&lt;/h3>
&lt;p>Open a new terminal, and just copy what you see on the right hand side of each prompt of this terminal block into your own terminal.&lt;/p>
&lt;pre tabindex="0">&lt;code>mike@mikes-mbp14 ~ %
mike@mikes-mbp14 ~ % cd ~/.ssh
mike@mikes-mbp14 .ssh % ssh-keygen -t ed25519 -C &amp;#34;foo@example.com&amp;#34;
Generating public/private ed25519 key pair.
Enter file in which to save the key (/Users/mike/.ssh/id_ed25519): github_foolio
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in github_foolio
Your public key has been saved in github_foolio.pub
The key fingerprint is:
SHA256:2YGzaeGnJnHvt11w9610IEEsBsMy1Cxmti09u/HbKm8 foo@example.com
The key&amp;#39;s randomart image is:
+--[ED25519 256]--+
| ..+o. .. |
| B +oo.. |
| + B+.... |
| o.+B . . |
| ..Soo . o o|
| +o+ . ++|
| . o+. . =|
| oo.E..o + |
| +=+o.o |
+----[SHA256]-----+
mike@mikes-mbp14 .ssh % ssh-add github_foolio
Identity added: github_foolio (foo@example.com)
mike@mikes-mbp14 .ssh %
&lt;/code>&lt;/pre>&lt;h3 id="windows-3">Windows&lt;a class="heading-anchor" href="#windows-3" aria-label="Link to this section">&lt;/a>&lt;/h3>
&lt;p>&lt;em>⚠️ You MUST use a Git Bash terminal in this step ⚠️. In all other steps, you can use the default PowerShell terminal.&lt;/em>&lt;/p>
&lt;p>Open a Git Bash terminal and copy what you see at each prompt.&lt;/p>
&lt;pre tabindex="0">&lt;code>Mike@zephyrus-m16 MINGW64 ~
$ cd ~/.ssh

Mike@zephyrus-m16 MINGW64 ~/.ssh
$ ssh-keygen -t ed25519 -C &amp;#34;foo@example.com&amp;#34;
Generating public/private ed25519 key pair.
Enter file in which to save the key (/c/Users/Mike/.ssh/id_ed25519): github_foolio
Enter passphrase for &amp;#34;github_foolio&amp;#34; (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in github_foolio
Your public key has been saved in github_foolio.pub
The key fingerprint is:
SHA256:BW6bt56HIt2X8f3tzUPd/TGib14MSCtBnLss2HCYjs4 foo@example.com
The key&amp;#39;s randomart image is:
+--[ED25519 256]--+
| o.. |
| ..+ |
| o o.o. |
| + o =o o |
| o = S.oo . +|
| . o o +....o++|
| o ......+o++|
| E . o.oo+.oo=|
| . .oo+o .O|
+----[SHA256]-----+
&lt;/code>&lt;/pre>&lt;h2 id="key-pair-files">Key Pair Files&lt;a class="heading-anchor" href="#key-pair-files" aria-label="Link to this section">&lt;/a>&lt;/h2>
&lt;p>After the above steps, you should have two files:&lt;/p>
&lt;ul>
&lt;li>Private key: &lt;code>~/.ssh/github_foolio&lt;/code> (stays on your machine)&lt;/li>
&lt;li>Public key: &lt;code>~/.ssh/github_foolio.pub&lt;/code> (will upload contents to github.com in next section)&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Restart your machine now.&lt;/strong>&lt;/p>
&lt;p>This is the simplest, most reliable way I&amp;rsquo;ve found to get an SSH private key to be recognized on either Mac or Windows after much experimentation.&lt;/p>
&lt;h2 id="copy-the-public-ssh-key-to-githubcom">Copy the Public SSH Key to github.com&lt;a class="heading-anchor" href="#copy-the-public-ssh-key-to-githubcom" aria-label="Link to this section">&lt;/a>&lt;/h2>
&lt;ol>
&lt;li>First, find your machine name
&lt;ul>
&lt;li>Mac: System Settings &amp;gt; General &amp;gt; Name&lt;/li>
&lt;li>Windows: Settings &amp;gt; System &amp;gt; About &amp;gt; Device name&lt;/li>
&lt;li>&lt;em>NOTE: You&amp;rsquo;ll need this to give your public ssh key a sensible name in your github.com account&lt;/em>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Login to github.com with your &lt;code>foolio&lt;/code> account
&lt;ol>
&lt;li>If you&amp;rsquo;re logging in to an account you made for work in order to access repos in a work org (e.g. your work account is named &lt;code>foo-bar@bar.com&lt;/code> or something), go ahead and login to that. &lt;strong>We won&amp;rsquo;t need the name of your work github account elsewhere in this guide.&lt;/strong>&lt;/li>
&lt;li>If your &lt;code>foolio&lt;/code> account is not currently selected, use the account switcher&lt;/li>
&lt;/ol>
&lt;/li>
&lt;li>Click &lt;code>Settings&lt;/code>&lt;/li>
&lt;li>Click &lt;code>SSH and GPG Keys&lt;/code>&lt;/li>
&lt;li>Click &lt;code>New SSH Key&lt;/code>
&lt;img src="https://www.mikeschweitzer.com/posts/multi-account-github-workflow/assets/NewSshKeyButton.png" alt="New SSH Key Button" width="1536" height="1280" loading="lazy" decoding="async">
&lt;/li>
&lt;li>Title: &lt;code>&amp;lt;YourMachineName&amp;gt;&lt;/code>&lt;/li>
&lt;li>Key type: &lt;code>Authentication Key&lt;/code>&lt;/li>
&lt;li>You have to copy/paste your public key (located at &lt;code>~/.ssh/github_foolio.pub&lt;/code>) into the Key field.
&lt;ul>
&lt;li>This is SUPER touchy since you have to paste the contents without any extra whitespace. To do this, open a terminal, then:&lt;/li>
&lt;li>Mac: &lt;code>pbcopy &amp;lt; ~/.ssh/github_foolio.pub&lt;/code>&lt;/li>
&lt;li>Windows: &lt;code>cat ~/.ssh/github_foolio.pub | clip&lt;/code>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Click &lt;code>Add SSH key&lt;/code>
&lt;img src="https://www.mikeschweitzer.com/posts/multi-account-github-workflow/assets/SshKeyForm.png" alt="SSH Key Form" width="1536" height="1296" loading="lazy" decoding="async">
&lt;/li>
&lt;/ol>
&lt;h2 id="use-a-specific-account-for-specific-urls">Use a Specific Account for Specific URLs&lt;a class="heading-anchor" href="#use-a-specific-account-for-specific-urls" aria-label="Link to this section">&lt;/a>&lt;/h2>
&lt;p>Let&amp;rsquo;s assume you want to use your &lt;code>foolio&lt;/code> account for any URLs like &lt;a href="https://github.com/foolio/">https://github.com/foolio/&lt;/a> and your &lt;code>foo-bar&lt;/code> work account for any urls like &lt;a href="https://github.com/bar/">https://github.com/bar/&lt;/a>&lt;/p>
&lt;ol>
&lt;li>Open a terminal&lt;/li>
&lt;li>For personal account &lt;code>foolio&lt;/code>
&lt;ul>
&lt;li>&lt;code>git config --global url.&amp;quot;ssh://git@github.com/foolio&amp;quot;.insteadOf &amp;quot;https://github.com/foolio&amp;quot;&lt;/code>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>For work account &lt;code>foo-bar&lt;/code> in org &lt;code>bar&lt;/code>
&lt;ul>
&lt;li>&lt;code>git config --global url.&amp;quot;ssh://git@github.com/bar&amp;quot;.insteadOf &amp;quot;https://github.com/bar&amp;quot;&lt;/code>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ol>
&lt;h2 id="use-a-specific-account-in-an-account-subfolder">Use a Specific Account in an Account Subfolder&lt;a class="heading-anchor" href="#use-a-specific-account-in-an-account-subfolder" aria-label="Link to this section">&lt;/a>&lt;/h2>
&lt;p>Let&amp;rsquo;s assume you have a folder to hold repos from your &lt;code>foolio&lt;/code> account.&lt;/p>
&lt;p>&lt;code>~/Developer/github/foolio&lt;/code>&lt;/p>
&lt;p>And you want to use this as your user identity:&lt;/p>
&lt;pre tabindex="0">&lt;code>Name: Foo Baloo
Email: foo@example.com
&lt;/code>&lt;/pre>&lt;p>Go to your user folder in Finder/Explorer. Open &lt;code>~/.gitconfig&lt;/code> in a text editor. Add this entry to the bottom:&lt;/p>
&lt;h3 id="mac-4">Mac&lt;a class="heading-anchor" href="#mac-4" aria-label="Link to this section">&lt;/a>&lt;/h3>
&lt;pre tabindex="0">&lt;code>[includeIf &amp;#34;gitdir:~/Developer/github/foo/&amp;#34;]
	path = ~/.gitconfig_foolio
&lt;/code>&lt;/pre>&lt;h3 id="windows-4">Windows&lt;a class="heading-anchor" href="#windows-4" aria-label="Link to this section">&lt;/a>&lt;/h3>
&lt;pre tabindex="0">&lt;code>[includeIf &amp;#34;gitdir:C:/Users/&amp;lt;YourUserName&amp;gt;/Developer/github/foo/&amp;#34;]
	path = ~/.gitconfig_foolio
&lt;/code>&lt;/pre>&lt;p>&lt;em>⚠️ A common Windows mistake is to omit the last slash in the &lt;code>gitdir&lt;/code> path ⚠️&lt;/em>&lt;/p>
&lt;p>Still in your user folder, create a new file called &lt;code>.gitconfig_foolio&lt;/code>, and make the contents look like this:&lt;/p>
&lt;pre tabindex="0">&lt;code>[core]
	sshcommand = ssh -i ~/.ssh/github_foolio
[user]
	name = Foo Baloo
	email = foo@example.com
&lt;/code>&lt;/pre>&lt;h2 id="clone-a-repo-to-an-account-subfolder">Clone a Repo to an Account Subfolder&lt;a class="heading-anchor" href="#clone-a-repo-to-an-account-subfolder" aria-label="Link to this section">&lt;/a>&lt;/h2>
&lt;p>The setup is actually done now, so you&amp;rsquo;ll want to test by cloning a repo.&lt;/p>
&lt;p>Let&amp;rsquo;s assume you have a private repo &lt;code>ugh&lt;/code> in your &lt;code>foolio&lt;/code> account. Make sure the repo is private so you can test that your ssh credentials are actually being used.&lt;/p>
&lt;ol>
&lt;li>Open a terminal&lt;/li>
&lt;li>&lt;code>cd ~/Developer/github/foolio&lt;/code>&lt;/li>
&lt;li>&lt;code>git clone https://github.com/foolio/ugh.git&lt;/code>
&lt;ol>
&lt;li>Note that this url will be rewritten under the hood to ssh due to our config&lt;/li>
&lt;li>You should generally always clone with https and let config rewrite to ssh&lt;/li>
&lt;/ol>
&lt;/li>
&lt;li>If everything was configured correctly AND you&amp;rsquo;ve never cloned with your foolio account before, you should get an ssh warning:
&lt;img src="https://www.mikeschweitzer.com/posts/multi-account-github-workflow/assets/SshHostWarning.png" alt="SSH Host Warning" width="1102" height="148" loading="lazy" decoding="async">

&lt;ol>
&lt;li>Type &lt;code>yes&lt;/code> to proceed with the clone&lt;/li>
&lt;/ol>
&lt;/li>
&lt;li>After the clone is done, verify your username and email are correct
&lt;ol>
&lt;li>Make a commit&lt;/li>
&lt;li>Do a &lt;code>git log&lt;/code> to verify the username and email&lt;/li>
&lt;li>Hard reset back to the parent of the commit&lt;/li>
&lt;/ol>
&lt;/li>
&lt;/ol>
&lt;h1 id="bonus-change-your-default-https-account">Bonus: Change your &amp;ldquo;default&amp;rdquo; (https) account&lt;a class="heading-anchor" href="#bonus-change-your-default-https-account" aria-label="Link to this section">&lt;/a>&lt;/h1>
&lt;p>If you want to change which account uses https when using GitHub, which is generally what most people that DO NOT have multiple accounts use by default, do this:&lt;/p>
&lt;h2 id="mac-5">Mac&lt;a class="heading-anchor" href="#mac-5" aria-label="Link to this section">&lt;/a>&lt;/h2>
&lt;ol>
&lt;li>Open the Keychain Access app&lt;/li>
&lt;li>Go to your login items on the left sidebar&lt;/li>
&lt;li>In the topright search bar type &lt;code>github.com&lt;/code>&lt;/li>
&lt;li>You should see an entry like this
&lt;img src="https://www.mikeschweitzer.com/posts/multi-account-github-workflow/assets/MacCredential.png" alt="Mac Credential" width="1664" height="858" loading="lazy" decoding="async">
&lt;/li>
&lt;li>Right click and choose Delete&lt;/li>
&lt;/ol>
&lt;h2 id="windows-5">Windows&lt;a class="heading-anchor" href="#windows-5" aria-label="Link to this section">&lt;/a>&lt;/h2>
&lt;ol>
&lt;li>Open your windows search bar and type Credential Manager&lt;/li>
&lt;li>The Windows Credential Manager should be the top result&lt;/li>
&lt;li>Find the &lt;code>github.com&lt;/code> entry
&lt;img src="https://www.mikeschweitzer.com/posts/multi-account-github-workflow/assets/WindowsCredential.png" alt="Windows Credential" width="1318" height="753" loading="lazy" decoding="async">
&lt;/li>
&lt;li>Delete it&lt;/li>
&lt;/ol></content:encoded></item><item><title>R&amp;D: Asset ID Generators</title><link>https://www.mikeschweitzer.com/posts/asset-id-generators/</link><pubDate>Fri, 11 Oct 2024 23:39:32 -0700</pubDate><guid>https://www.mikeschweitzer.com/posts/asset-id-generators/</guid><description>In the past few years, I&amp;rsquo;ve been thinking a lot about how to generate asset IDs ergonomically for game projects. My goals are:
Serialize the asset IDs. Use the asset IDs at runtime, to identify and load assets. Be able to say the asset IDs out loud. This is super useful for client-server games, but can still be useful for offline games e.g. saving player progression. Also useful for streamlining team communication for e.g. outsourcing or bug tracking.</description><content:encoded>&lt;p>In the past few years, I&amp;rsquo;ve been thinking a lot about how to generate asset IDs ergonomically for game projects. My goals are:&lt;/p>
&lt;ul>
&lt;li>Serialize the asset IDs.&lt;/li>
&lt;li>Use the asset IDs at runtime, to identify and load assets.&lt;/li>
&lt;li>Be able to say the asset IDs out loud.&lt;/li>
&lt;/ul>
&lt;p>This is super useful for client-server games, but can still be useful for offline games e.g. saving player progression. Also useful for streamlining team communication for e.g. outsourcing or bug tracking.&lt;/p>
&lt;p>YouTube video IDs are a good example of capturing a huge number of assets with a compact number of characters. In the physical world, license plates are an excellent example of IDs that you can memorize and say out loud.&lt;/p>
&lt;p>My requirements for an ID scheme:&lt;/p>
&lt;ol>
&lt;li>Reasonably high cardinality e.g. 2 million or more assets&lt;/li>
&lt;li>Reasonably easy to say out loud&lt;/li>
&lt;li>Should not easily, accidentally support inappropriate words&lt;/li>
&lt;/ol>
&lt;p>My requirements for an ID generator:&lt;/p>
&lt;ol>
&lt;li>Should be able to run completely in-process, no calling out to another process&lt;/li>
&lt;li>No collisions&lt;/li>
&lt;li>New IDs should be easy to re-generate manually, if needed&lt;/li>
&lt;/ol>
&lt;p>So for instance, the ID space should support just over 2 million assets. More is better, obviously. And if an ID is already in use and a user forcibly re-generates the ID, then it&amp;rsquo;s OK for the existing ID references to become invalid. The goal is to not have to re-generate unless it&amp;rsquo;s some emergency, in which case manual labor to remap an ID or fixup a saved ID feels OK.&lt;/p>
&lt;p>UUIDv4 is a great default ID generator due to its ubiquity and being able to generate unique IDs client-side, but they have a number of shortcomings that don&amp;rsquo;t meet my requirements. Several newer ID generators have attempted to shore up some of the shortcomings of UUIDv4, but none of these really meet my requirements well.&lt;/p>
&lt;p>I&amp;rsquo;ve determined I&amp;rsquo;ll need to make my own generator, but since I haven&amp;rsquo;t gotten to doing that yet, I wanted to aggregate the list of generators I&amp;rsquo;ve found for inspiration first. I&amp;rsquo;ll eventually follow this up with a post that describes my super clever solution!&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://www.ietf.org/archive/id/draft-peabody-dispatch-new-uuid-format-04.html#name-uuid-version-7">UUIDv7&lt;/a>
&lt;ul>
&lt;li>&lt;a href="https://buildkite.com/blog/goodbye-integers-hello-uuids">Goodbye to sequential integers, hello UUIDv7! | Buildkite&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://lu.sagebl.eu/notes/maybe-we-dont-need-uuidv7/">Maybe We Don’t Need UUIDv7 After All&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://github.com/ulid/spec">ULID&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://instagram-engineering.com/sharding-ids-at-instagram-1cf5a71e5a5c">Sharding &amp;amp; IDs at Instagram | Instagram Engineering&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://en.wikipedia.org/wiki/Snowflake_ID">Snowflake ID&lt;/a> - created by Twitter&lt;/li>
&lt;li>&lt;a href="https://github.com/ai/nanoid">Nano ID&lt;/a> - short, URL-friendly
&lt;ul>
&lt;li>&lt;a href="https://github.com/codeyu/nanoid-net">Nano ID for .NET&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://zelark.github.io/nano-id-cc/">Nano ID Collision Calculator&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://www.mongodb.com/docs/manual/reference/method/ObjectId/">MongoDB ObjectId&lt;/a> - auto ID used in MongoDB&lt;/li>
&lt;li>&lt;a href="https://github.com/rs/xid">Xid&lt;/a> - Go-based implementation of MongoDB&amp;rsquo;s ObjectId, modified for compact string transport&lt;/li>
&lt;li>&lt;a href="https://firebase.blog/posts/2015/02/the-2120-ways-to-ensure-unique_68">The 2^120 Ways to Ensure Unique Identifiers&lt;/a> - Firebase Push IDs&lt;/li>
&lt;li>&lt;a href="https://github.com/open-duelyst/duelyst/blob/main/app/common/generate_push_id.js">Duelyst Push IDs&lt;/a> - Push ID generator used in Duelyst, a web game made by Counterplay Games&lt;/li>
&lt;/ul></content:encoded></item><item><title>How This Blog Was Made</title><link>https://www.mikeschweitzer.com/posts/how-this-blog-was-made/</link><pubDate>Sun, 18 Feb 2024 22:34:17 -0800</pubDate><guid>https://www.mikeschweitzer.com/posts/how-this-blog-was-made/</guid><description>A couple years ago, I used Hey World to startup a DIY blog. I wasn&amp;rsquo;t motivated to self-host at the time, but still wanted to blog. I wanted to keep things simple, so I figured I&amp;rsquo;d leverage my email provider&amp;rsquo;s newly announced blog addon.</description><content:encoded>&lt;p>A couple years ago, I used &lt;a href="https://www.hey.com/world/">Hey World&lt;/a> to startup a DIY blog. I wasn&amp;rsquo;t motivated to self-host at the time, but still wanted to blog. I wanted to keep things simple, so I figured I&amp;rsquo;d leverage my email provider&amp;rsquo;s newly announced blog addon.&lt;/p>
&lt;p>At some point, I realized I wasn&amp;rsquo;t really using Hey email, so I was wasting money on that subscription. Also, &lt;a href="https://www.hanselman.com/blog/your-words-are-wasted">Scott Hanselman&amp;rsquo;s post&lt;/a> on owning your content was in the back of my mind for a while. ALSO, I was really curious to get hands on experience with static site generators (SSGs) since I was scarred from self-hosting a blog way back in college, which was basically maintaining a custom CMS, and figured this is the newer, easier way to achieve the same result. ALSO ALSO, I figure since I&amp;rsquo;m a programmer I should go through some extra effort for a project like this.&lt;/p>
&lt;p>This used to be in my &lt;a href="https://www.mikeschweitzer.com/about">About&lt;/a> page, but I moved it to a post since it&amp;rsquo;s a pretty specific subject.&lt;/p>
&lt;hr>
&lt;h2 id="tools">Tools&lt;a class="heading-anchor" href="#tools" aria-label="Link to this section">&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://gohugo.io/">Hugo&lt;/a>
&lt;ul>
&lt;li>With a custom theme built by &lt;a href="https://claude.com/claude-code">Claude&lt;/a>, replacing the &lt;a href="https://github.com/panr/hugo-theme-hello-friend">Hello Friend&lt;/a> theme I started with, which was archived by its maintainer&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://pages.github.com/">GitHub Pages&lt;/a> - hosting
&lt;ul>
&lt;li>Published with Hugo&amp;rsquo;s &lt;a href="https://gohugo.io/hosting-and-deployment/hosting-on-github/">stock GitHub Actions workflow&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://aws.amazon.com/route53/">Amazon Route 53&lt;/a> - domain registration, DNS management
&lt;ul>
&lt;li>Already had a personal AWS organization&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://simplelogin.io/">SimpleLogin&lt;/a> - email aliases for my domain
&lt;ul>
&lt;li>Easy way to forward arbitrary email addresses at my domain to my gmail&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="target-workflow">Target Workflow&lt;a class="heading-anchor" href="#target-workflow" aria-label="Link to this section">&lt;/a>&lt;/h2>
&lt;p>I really wanted to have a workflow like:&lt;/p>
&lt;ol>
&lt;li>write markdown&lt;/li>
&lt;li>git push&lt;/li>
&lt;li>automated publish&lt;/li>
&lt;/ol>
&lt;hr>
&lt;h2 id="content-creation-tech-choices-considered">Content Creation Tech Choices Considered&lt;a class="heading-anchor" href="#content-creation-tech-choices-considered" aria-label="Link to this section">&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>WordPress was briefly considered for its pervasiveness and CMS capability, but ruled out due to it not fitting well into my target workflow.&lt;/li>
&lt;li>I settled on using an SSG. I didn&amp;rsquo;t want to mess with learning JavaScript or CSS frameworks, because I&amp;rsquo;m getting old and don&amp;rsquo;t have time to do everything from scratch any more, if it&amp;rsquo;s not work related. I didn&amp;rsquo;t want a ton of dynamism either since I wanted to keep hosting fairly low overhead.&lt;/li>
&lt;li>I wanted an SSG based on a language that compiles to machine code. That ruled out the most popular SSG: Jekyll. I didn&amp;rsquo;t want to take a Ruby dependency.
&lt;ul>
&lt;li>&lt;a href="https://www.getzola.org/">Zola&lt;/a> was briefly considered, but Rust felt (and still feels) too complicated for what I wanted to do for this blog.&lt;/li>
&lt;li>A Swift-based SSG was considered, but there doesn&amp;rsquo;t appear to be a well supported winner here.&lt;/li>
&lt;li>&lt;a href="https://gohugo.io/">Hugo&lt;/a> won because it was compiled and writing Go felt like low-enough overhead. Plus I&amp;rsquo;ve wanted to dabble in it more over the years and this felt like a good excuse.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>I originally chose the Hello Friend theme for Hugo because of its relatively simple layout, decent documentation, and color theme. I modified it a bunch, and ended up having to do more surgery than I was intending, unfortunately. Didn&amp;rsquo;t end up mattering in the end since the theme was archived by its creator, so I had Claude modernize and replace my theme with one that&amp;rsquo;s vendored into this repo.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h3 id="publishing-and-hosting-tech">Publishing and Hosting Tech&lt;a class="heading-anchor" href="#publishing-and-hosting-tech" aria-label="Link to this section">&lt;/a>&lt;/h3>
&lt;p>For publishing, GitHub Pages made the most sense because I already have an &lt;a href="http://github.com/mikerochip">active GitHub account&lt;/a>, and really wanted to have a write markdown -&amp;gt; git push -&amp;gt; publish workflow. Creating a repo to host my site, automate publishing, and hook it up to my custom domain was surprisingly low-friction and ergonomic.&lt;/p>
&lt;p>Domain, DNS, and email were the trickiest bit. I wanted to keep this simple as well, and just use Google Domains for everything, especially since it had easy forwarding to a personal gmail account. But about 2 months after I migrated from Amazon Route 53 to Google Domains, &lt;a href="https://www.theverge.com/2023/6/16/23763340/google-domains-sunset-sell-squarespace">Google decided to kill their domains business&lt;/a> and sell it to Squarespace. I didn&amp;rsquo;t want a Squarespace account; that felt like bloat since I&amp;rsquo;m already using an SSG + GitHub Pages workflow. It looks like Squarespace may have backtracked on some of the unpopular decisions they made &lt;a href="https://domains.squarespace.com/google-domains">according to this page&lt;/a>, so maybe I&amp;rsquo;ll go back to it at some point now that it seems to be a separate offering from their hosting service. Until then, I wanted easy email forwarding instead of running an email service, and SimpleLogin is easy enough to use. And, I actually don&amp;rsquo;t mind using AWS for domains and DNS, it&amp;rsquo;s probably too complicated for most folks, but for a programmer like me, it&amp;rsquo;s not too simple and not too complex.&lt;/p></content:encoded></item><item><title>LG Washer Pulsator Disassemble</title><link>https://www.mikeschweitzer.com/posts/lg-washer-disassemble/</link><pubDate>Sat, 13 Jan 2024 00:26:07 -0800</pubDate><guid>https://www.mikeschweitzer.com/posts/lg-washer-disassemble/</guid><description>I made my first DIY YouTube video for this one.
If you have a top load LG washer and you start to see gross looking brown sludge (aka scrud) show up after a wash cycle, then this video is for you.</description><content:encoded>&lt;p>I made my first DIY YouTube video for this one.&lt;/p>
&lt;p>If you have a top load LG washer and you start to see gross looking brown sludge (aka scrud) show up after a wash cycle, then this video is for you.&lt;/p>
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
 &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/qaNxDG1ZTj8?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video">&lt;/iframe>
 &lt;/div>
</content:encoded></item><item><title>What is Notion?</title><link>https://www.mikeschweitzer.com/posts/what-is-notion/</link><pubDate>Fri, 23 Jun 2023 00:00:00 +0000</pubDate><guid>https://www.mikeschweitzer.com/posts/what-is-notion/</guid><description>This post started life as an internal Confluence page that I made while working at Netflix Games. There wasn&amp;rsquo;t much internal about it except a couple screenshots, so I rewrote it as this post.</description><content:encoded>&lt;p>This post started life as an internal Confluence page that I made while working at Netflix Games. There wasn&amp;rsquo;t much internal about it except a couple screenshots, so I rewrote it as this post.&lt;/p>
&lt;h1 id="overview-of-notion">Overview of Notion&lt;a class="heading-anchor" href="#overview-of-notion" aria-label="Link to this section">&lt;/a>&lt;/h1>
&lt;p>Notion is a document management tool that, on the surface, looks like an alternative to Confluence and Google Docs, but in reality can be multi-purposed to do many things.&lt;/p>
&lt;p>Part of Notion&amp;rsquo;s elevator pitch is that, out of the box, it&amp;rsquo;s&lt;/p>
&lt;ul>
&lt;li>flexible&lt;/li>
&lt;li>pretty-looking&lt;/li>
&lt;li>a replacement for your other project management tools&lt;/li>
&lt;/ul>
&lt;p>Notion can do even more than be a Confluence and Google Docs alternative: you can create workflows to compete with other collaboration tools like Airtable.&lt;/p>
&lt;p>But, Notion&amp;rsquo;s flexibility also makes it complicated. Its prettiness hides its complexity. Around the second time you get prompted to create a new Database or use an existing one, you&amp;rsquo;ll understand why. You can avoid interacting with Databases however, in which case it&amp;rsquo;s basically a drop-in Google Docs / Confluence replacement.&lt;/p>
&lt;h1 id="core-concepts">Core Concepts&lt;a class="heading-anchor" href="#core-concepts" aria-label="Link to this section">&lt;/a>&lt;/h1>
&lt;h2 id="workspace">Workspace&lt;a class="heading-anchor" href="#workspace" aria-label="Link to this section">&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>These are containers of &lt;strong>Teamspaces&lt;/strong>&lt;/li>
&lt;li>Workspaces can be named&lt;/li>
&lt;li>In a company, you would typically have a single Workspace for your whole company&lt;/li>
&lt;li>Think of these as the equivalent of a Confluence account or the Google Drive instance in your Google Workspace account&lt;/li>
&lt;li>Screenshot of multiple Workspaces
&lt;img src="https://www.mikeschweitzer.com/posts/what-is-notion/assets/Workspaces.png" alt="Multiple Workspaces" width="1638" height="938" loading="lazy" decoding="async">
&lt;/li>
&lt;/ul>
&lt;h2 id="teamspace">Teamspace&lt;a class="heading-anchor" href="#teamspace" aria-label="Link to this section">&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>These are containers of &lt;strong>Pages&lt;/strong>&lt;/li>
&lt;li>Teamspaces can be named&lt;/li>
&lt;li>In a company, you would typically have a Teamspace for each team (slash project) within your company&amp;rsquo;s &lt;strong>Workspace&lt;/strong>&lt;/li>
&lt;li>These are analogous to a Confluence Space or a shared Drive in GDrive&lt;/li>
&lt;li>In each &lt;strong>Workspace&lt;/strong> with 1 or more Teamspaces, you will see a section at the bottom called &lt;strong>Private&lt;/strong>
&lt;ul>
&lt;li>&lt;strong>Private&lt;/strong> is actually the default section you start with in a new Workspace
&lt;img src="https://www.mikeschweitzer.com/posts/what-is-notion/assets/Teamspaces.png" alt="Multiple Teamspaces &amp;#43; Private" width="984" height="1300" loading="lazy" decoding="async">
&lt;/li>
&lt;li>This is the equivalent of a personal Confluence Space or personal GDrive&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h2 id="page">Page&lt;a class="heading-anchor" href="#page" aria-label="Link to this section">&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>Pages are an ordered list of &lt;strong>Blocks&lt;/strong> (described below)&lt;/li>
&lt;li>Pages can be named&lt;/li>
&lt;li>Pages and &lt;strong>Blocks&lt;/strong> are what make Notion look like other document editing tools (Confluence, Google Docs, MS Word, etc)&lt;/li>
&lt;li>Pages inside of a &lt;strong>Database&lt;/strong> have a new feature unlocked: a &lt;strong>Property&lt;/strong> list (see &lt;strong>Database&lt;/strong> section)&lt;/li>
&lt;li>Screenshot of Page blocks and the hidden UI that enables re-arranging blocks
&lt;img src="https://www.mikeschweitzer.com/posts/what-is-notion/assets/Page.png" alt="Annotated Page" width="906" height="1342" loading="lazy" decoding="async">
&lt;/li>
&lt;/ul>
&lt;h2 id="block">Block&lt;a class="heading-anchor" href="#block" aria-label="Link to this section">&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>Blocks are containers of content. They can be text, images, table of contents, etc.&lt;/li>
&lt;li>Blocks cannot be named&lt;/li>
&lt;li>They are the building blocks of a &lt;strong>Page&lt;/strong> (hence the name Block)&lt;/li>
&lt;li>&lt;strong>Database&lt;/strong> and &lt;strong>View&lt;/strong> are two special case Blocks&lt;/li>
&lt;/ul>
&lt;h2 id="database">Database&lt;a class="heading-anchor" href="#database" aria-label="Link to this section">&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>A database is
&lt;ul>
&lt;li>A container of &lt;strong>Pages&lt;/strong>&lt;/li>
&lt;li>A container of &lt;strong>Properties&lt;/strong>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Databases cannot be named&lt;/li>
&lt;li>A &lt;strong>Page&lt;/strong> inside a Database unlocks a new Page feature: a &lt;strong>Property&lt;/strong> list&lt;/li>
&lt;li>Notion does not display a list of Databases anywhere. A &lt;strong>View&lt;/strong> is the only way to interact with a Database.
&lt;ul>
&lt;li>To create a Database, you have to create a &lt;strong>View&lt;/strong> first&lt;/li>
&lt;li>When you create a &lt;strong>View&lt;/strong> you get prompted to create a new Database or point to an existing one&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>You can have as many or as few &lt;strong>Properties&lt;/strong> and &lt;strong>Pages&lt;/strong> in a &lt;strong>Database&lt;/strong> as you want&lt;/li>
&lt;li>When you create a Database, a property called &lt;code>Tags&lt;/code> is auto-created on it
&lt;ul>
&lt;li>&lt;code>Tags&lt;/code> is just a &lt;strong>Property&lt;/strong> of type &lt;code>Multi-select&lt;/code>. You can delete it if you want.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Screenshot of a &lt;strong>List View&lt;/strong> on a Database
&lt;img src="https://www.mikeschweitzer.com/posts/what-is-notion/assets/Database.png" alt="Annotated Database" width="1477" height="898" loading="lazy" decoding="async">
&lt;/li>
&lt;/ul>
&lt;h2 id="view">View&lt;a class="heading-anchor" href="#view" aria-label="Link to this section">&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>Views allow you to see and interact with a &lt;strong>Database&lt;/strong>&lt;/li>
&lt;li>Views can be named&lt;/li>
&lt;li>They have a Type, which allows you to see a &lt;strong>Database&lt;/strong> in various layouts
&lt;ul>
&lt;li>Types: Table, Board, Calendar, Timeline, List, Gallery&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Views enable &lt;strong>Pages&lt;/strong> to be opened in a &amp;ldquo;Side Peek&amp;rdquo; or &amp;ldquo;Center Peek&amp;rdquo; mode&lt;/li>
&lt;li>Views can Filter and Sort on a &lt;strong>Database&lt;/strong>&amp;rsquo;s &lt;strong>Properties&lt;/strong>&lt;/li>
&lt;li>The order of &lt;strong>Pages&lt;/strong> within a View does not persist across client devices
&lt;ul>
&lt;li>You have to Sort on a &lt;strong>Property&lt;/strong> in order to have a consistent order across devices&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Screenshot of a &lt;strong>Page&lt;/strong> with a &lt;strong>Database&lt;/strong> List view at the top and text &lt;strong>Blocks&lt;/strong> underneath
&lt;img src="https://www.mikeschweitzer.com/posts/what-is-notion/assets/PageDatabaseListView.png" alt="Page with Database List View" width="1958" height="1052" loading="lazy" decoding="async">
&lt;/li>
&lt;li>Screenshot of Side Peek view for the My Test Task page
&lt;img src="https://www.mikeschweitzer.com/posts/what-is-notion/assets/SidePeek.png" alt="Side Peek" width="1958" height="1196" loading="lazy" decoding="async">
&lt;/li>
&lt;/ul>
&lt;h2 id="property">Property&lt;a class="heading-anchor" href="#property" aria-label="Link to this section">&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>A Property is a key-value pairing, with a Type&lt;/li>
&lt;li>Properties can be named&lt;/li>
&lt;li>There are many built-in Property types, some only allow one value and some allow multiple values&lt;/li>
&lt;li>You can have a list of Properties attached to a &lt;strong>Page&lt;/strong>&lt;/li>
&lt;li>Screenshot of Property types and the auto-created Tags property
&lt;img src="https://www.mikeschweitzer.com/posts/what-is-notion/assets/Properties.png" alt="Properties" width="1958" height="1052" loading="lazy" decoding="async">
&lt;/li>
&lt;/ul>
&lt;h1 id="impressions-after-test-driving">Impressions After Test Driving&lt;a class="heading-anchor" href="#impressions-after-test-driving" aria-label="Link to this section">&lt;/a>&lt;/h1>
&lt;p>Notion is really, really great if you want basically a personal Confluence. Confluence&amp;rsquo;s UX is not good at scaling down to the individual user level, so Notion is really good for individual usage (similar to Google Docs). It&amp;rsquo;s also really great at something GDocs is great at - external sharing of individual pages. You should definitely consider Notion if you want to have a one-stop shop for organizing your personal docs and information, and plan on sharing the occasional page.&lt;/p>
&lt;p>The dark side of Notion is that, while its UI looks modern and minimalist at first glance, it&amp;rsquo;s not minimalist in practice. It just makes aggressive use of fade-out. There are about 2 dozen buttons and other controls on any given page that you can&amp;rsquo;t see until you mouse over them, and since everything in the UI is small and invisible, it can be easy to fat finger and hard to know how to do what you want to do.&lt;/p>
&lt;p>Notion&amp;rsquo;s biggest Achilles Heel though are Databases and Views. Databases are a thin veneer over what is essentially an SQL database (regardless of how it&amp;rsquo;s implemented under the hood, it&amp;rsquo;s probably some flavor of NoSQL because of the flexible schema). Views are how you interact with Databases since you can&amp;rsquo;t do so otherwise. The UX just ends up being super confusing though because they really don&amp;rsquo;t clarify the difference. When you first use it, you don&amp;rsquo;t really understand what you&amp;rsquo;re doing and will have a tendency to create many Views with unique Databases, and therefore will end up with a confusing mess of Views and Databases as you build up and reorganize your Teamspace.&lt;/p>
&lt;p>A View is really akin to a visual SQL query for a Database. Pages are basically rows in a SQL Database. Once you make those realizations, Notion starts to make WAY more sense. Unfortunately, it means you basically have to be a programmer to understand Databases successfully. And Databases are the key to making Notion scale for teams because they are the mechanism that Notion uses to re-use data across Pages, which is a unique feature of Notion vs Confluence and GDocs.&lt;/p>
&lt;h1 id="some-confusing-things-explained">Some Confusing Things, Explained&lt;a class="heading-anchor" href="#some-confusing-things-explained" aria-label="Link to this section">&lt;/a>&lt;/h1>
&lt;h4 id="how-is-notion-different-from-confluence-google-docs-etc">How is Notion different from (Confluence, Google Docs, etc)?&lt;a class="heading-anchor" href="#how-is-notion-different-from-confluence-google-docs-etc" aria-label="Link to this section">&lt;/a>&lt;/h4>
&lt;ul>
&lt;li>The fundamental difference between Notion and other document management apps is the ability to display a single set of data across multiple pages (i.e. Notion&amp;rsquo;s Database feature).&lt;/li>
&lt;li>In every other document app, the data you enter is tied to the page and can&amp;rsquo;t be re-used. You can link pages or show previews of pages, but typically you can&amp;rsquo;t create a page that edits literally the same data as another page.&lt;/li>
&lt;/ul>
&lt;h4 id="database-vs-view-vs-page-vs-property">Database vs View vs Page vs Property&lt;a class="heading-anchor" href="#database-vs-view-vs-page-vs-property" aria-label="Link to this section">&lt;/a>&lt;/h4>
&lt;ul>
&lt;li>Sorry for the non-programmers out here, but this is a very &amp;ldquo;programmery&amp;rdquo; part of Notion. The best way to think of these concepts is using traditional database terms:
&lt;ul>
&lt;li>Pages are rows (aka items)&lt;/li>
&lt;li>Properties are columns (aka attributes)&lt;/li>
&lt;li>Views are queries&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h4 id="what-happens-when-you-make-a-new-table-new-board-etc">What happens when you make a &amp;ldquo;new Table&amp;rdquo;, &amp;ldquo;new Board&amp;rdquo;, etc&lt;a class="heading-anchor" href="#what-happens-when-you-make-a-new-table-new-board-etc" aria-label="Link to this section">&lt;/a>&lt;/h4>
&lt;ul>
&lt;li>Remember that Table, Board, etc are just visualizations, not data. They are just views into a Database.&lt;/li>
&lt;li>When you make a &amp;ldquo;new Table&amp;rdquo; what you&amp;rsquo;re actually doing is making a new View with a Table-style visualization. You still need to tell that View what Database to use, or create a new Database.&lt;/li>
&lt;li>Again: a &amp;ldquo;Table&amp;rdquo; in Notion is just a View Type. It is not a &amp;ldquo;data table&amp;rdquo; as other apps might have you believe. It took me FOREVER to understand what was going on here.&lt;/li>
&lt;/ul>
&lt;h4 id="the-difference-between-tasks-and-pages-when-using-notion-for-task-tracking">The difference between &amp;ldquo;Tasks&amp;rdquo; and &amp;ldquo;Pages&amp;rdquo; when using Notion for Task tracking&lt;a class="heading-anchor" href="#the-difference-between-tasks-and-pages-when-using-notion-for-task-tracking" aria-label="Link to this section">&lt;/a>&lt;/h4>
&lt;ul>
&lt;li>If you use Notion as a Trello / Asana / Jira replacement, just understand that all data in Notion are considered Pages.&lt;/li>
&lt;li>As far as Notion is concerned, there is no such thing as a &amp;ldquo;Task&amp;rdquo; (or &amp;ldquo;Issue&amp;rdquo; in Jira parlance). Everything is a Page.&lt;/li>
&lt;li>Make sure to mentally translate &amp;ldquo;Task&amp;rdquo; or &amp;ldquo;Issue&amp;rdquo; to &amp;ldquo;Page within a Database&amp;rdquo; whenever you have to work with the guts of Notion (settings, making new Views / Databases, etc)&lt;/li>
&lt;/ul>
&lt;h4 id="why-mouse-drag-re-ordering-of-pages-and-properties-has-no-effect-on-other-apps-devices-etc-in-the-same-teamspace">Why mouse-drag re-ordering of Pages and Properties has no effect on other apps, devices, etc in the same Teamspace&lt;a class="heading-anchor" href="#why-mouse-drag-re-ordering-of-pages-and-properties-has-no-effect-on-other-apps-devices-etc-in-the-same-teamspace" aria-label="Link to this section">&lt;/a>&lt;/h4>
&lt;ul>
&lt;li>There is no built-in ordering concept in a Notion Database (just like a SQL database). When you drag and reorder something, it&amp;rsquo;s just a device-specific UI change.&lt;/li>
&lt;li>To get things to sort consistently across machines, you have to
&lt;ul>
&lt;li>Create a Property that you can sort on&lt;/li>
&lt;li>Create a View that shows the Property&lt;/li>
&lt;li>Choose a sort order for that Property inside the View&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>There is no way to sort by &lt;strong>subgroup&lt;/strong> as far as I can tell. I won&amp;rsquo;t explain subgroups here since this is supposed to be a cheat sheet. If you&amp;rsquo;re curious:&lt;br>
&lt;a href="https://www.notion.so/releases/2021-10-19">October 19, 2021 – Notion 2.13, now with database groups &amp;amp; sub-groups 🍱&lt;/a>&lt;/li>
&lt;/ul>
&lt;h4 id="how-can-i-tell-what-database-my-view-is-looking-at-how-can-i-tell-if-two-different-views-are-looking-at-the-same-database">How can I tell what Database my View is looking at? How can I tell if two different Views are looking at the same Database?&lt;a class="heading-anchor" href="#how-can-i-tell-what-database-my-view-is-looking-at-how-can-i-tell-if-two-different-views-are-looking-at-the-same-database" aria-label="Link to this section">&lt;/a>&lt;/h4>
&lt;ul>
&lt;li>There isn&amp;rsquo;t a good way. Sucks, doesn&amp;rsquo;t it? You can add or remove Properties from a View to see which Properties exist, but that&amp;rsquo;s pretty much the best way. If you&amp;rsquo;re trying to add a Property to your Page and you don&amp;rsquo;t see one that you&amp;rsquo;re &lt;em>pretty sure&lt;/em> is there, then that means your View is actually for a different Database.&lt;/li>
&lt;/ul>
&lt;h4 id="is-there-a-way-to-see-a-list-of-all-databases">Is there a way to see a list of all Databases?&lt;a class="heading-anchor" href="#is-there-a-way-to-see-a-list-of-all-databases" aria-label="Link to this section">&lt;/a>&lt;/h4>
&lt;ul>
&lt;li>NOPE, baffling isn&amp;rsquo;t it? You can&amp;rsquo;t do maintenance on them or delete them&lt;/li>
&lt;li>This is also what makes it difficult to tell if 2 Views are for the same Database&lt;/li>
&lt;li>It&amp;rsquo;s possible to have orphaned Databases (and Pages!) if you do these steps
&lt;ul>
&lt;li>Create a Database&lt;/li>
&lt;li>Create a View for that Database&lt;/li>
&lt;li>Create Pages in the View for that Database&lt;/li>
&lt;li>Delete the View&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://www.reddit.com/r/Notion/comments/tkpm66/is_there_a_way_to_see_a_list_of_literally_all_the/">Is there a way to see a list of literally all the databases across my entire workspace?&lt;/a>
&lt;ul>
&lt;li>According to this thread, Notion will start to slow down as more Databases are added, but I haven&amp;rsquo;t confirmed that or when that starts to become a problem.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h4 id="why-notion-for-project-management-requires-more-steps-vs-purpose-built-tools">Why Notion for project management requires more steps vs purpose-built tools&lt;a class="heading-anchor" href="#why-notion-for-project-management-requires-more-steps-vs-purpose-built-tools" aria-label="Link to this section">&lt;/a>&lt;/h4>
&lt;ul>
&lt;li>Purpose-built tools are like having a door that opens and closes and does nothing else&lt;/li>
&lt;li>Notion is like having the materials (pretty-looking materials) to make a door. You can make a door. You can make it open and close, as well. You can make it do other things, if you want.&lt;/li>
&lt;/ul>
&lt;h4 id="if-were-doing-specific-thing-a-lot-shouldnt-we-use-a-tool-that-does-specific-thing">If we&amp;rsquo;re doing &lt;code>specific thing&lt;/code> a lot, shouldn&amp;rsquo;t we use a tool that does &lt;code>specific thing&lt;/code>?&lt;a class="heading-anchor" href="#if-were-doing-specific-thing-a-lot-shouldnt-we-use-a-tool-that-does-specific-thing" aria-label="Link to this section">&lt;/a>&lt;/h4>
&lt;ul>
&lt;li>Maybe? Depends on the tooling strategy
&lt;ul>
&lt;li>Notion is great if your strategy is to keep the number of tools low, because you can make it do anything. It&amp;rsquo;s not good if your strategy is to use multiple purpose-built tools, because it will be less efficient than your purpose-built tools.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Read this &lt;a href="https://zapier.com/blog/airtable-vs-notion/">Airtable vs. Notion: Which app do you need? [2023] | Zapier&lt;/a>
&lt;ul>
&lt;li>It&amp;rsquo;s about Airtable but can be generalized to &amp;ldquo;should I use &lt;code>specific thing&lt;/code> or Notion?&amp;rdquo;&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></content:encoded></item><item><title>Furnace Maintenance</title><link>https://www.mikeschweitzer.com/posts/furnace-maintenance/</link><pubDate>Fri, 27 Aug 2021 00:00:00 +0000</pubDate><guid>https://www.mikeschweitzer.com/posts/furnace-maintenance/</guid><description>Lot of backstory on this one! Feel free to skip ahead if you don&amp;rsquo;t want to read a wall of text.
When we moved into our house, one of the first things we noticed is that the whole house would get blanketed by a thin layer of dust every night that we used the AC, fan, or heat.</description><content:encoded>&lt;p>Lot of backstory on this one! Feel free to skip ahead if you don&amp;rsquo;t want to read a wall of text.&lt;/p>
&lt;p>When we moved into our house, one of the first things we noticed is that the whole house would get blanketed by a thin layer of dust every night that we used the AC, fan, or heat.&lt;/p>
&lt;p>We had a somewhat similar issue in a past condo where the problem was that the dryer vent was supposed to go up through the roof. The problem was that our condo was getting covered in lint every time we used the fan/furnace. It ended up being that the insulated tubing that was supposed to be attached to the vent opening from the dryer in the ceiling was just sitting there, lying down in the attic, detached. Not good when your furnace is in the attic. An HVAC company came in and discovered and fixed that.&lt;/p>
&lt;p>So! We called the same HVAC company from back then to help us diagnose our dust issue in our current house since we suspected something similar was happening. We also had them do some cleaning on our ducts, because we&amp;rsquo;ve noticed that our previous house owner didn&amp;rsquo;t seem to be a fan of doing the dirty maintenance jobs (plumbing, HVAC, etc). We should&amp;rsquo;ve been tipped off from the number of air purifiers she had setup all throughout the house when we were doing walkthroughs.
&lt;img src="https://www.mikeschweitzer.com/posts/furnace-maintenance/assets/B941910B-BEC3-4F92-9387-33B32F188CBA_1_102_o.jpeg" alt="" width="1536" height="2048" loading="lazy" decoding="async">
&lt;/p>
&lt;p>This was one of the first things the HVAC guys did when they showed up. Hooked up this giant inverter that pumped air back through our registers. Pretty neat!&lt;/p>
&lt;p>Oh, this is a good time to explain that there are 2 types of vent openings in a house:&lt;/p>
&lt;ul>
&lt;li>Registers are those smaller steel (usually, sometimes plastic) covers. There&amp;rsquo;s typically one per room, sometimes 2. The house fan and/or furnace makes air flow out of these.&lt;/li>
&lt;li>Returns are those larger steel panels that you open up and put your MERV-8, 11, or 13 pleated air filters in. They&amp;rsquo;re called returns because air flows into those vents. This is why it&amp;rsquo;s crucial to line up the arrow on your filters such that the arrow is pointing toward the duct.&lt;/li>
&lt;/ul>
&lt;p>OK, so where&amp;rsquo;s the DIY part? Well, long story short, the HVAC contractor found the problem with our dust: there was TONS of blown-in insulation circling our furnace. Blown-in insulation are those little loose bits of fiberglass insulation that work really really well in an attic that doesn&amp;rsquo;t have a furnace in it, but are a terrible thing to have in an attic where the loose bits could get caught and blown throughout the house.&lt;/p>
&lt;p>He got rid of a bunch of the loose insulation from the furnace, and also took out our super old, probably never changed furnace filter (a big 5 inch version of those pleated filters).&lt;/p>
&lt;h3 id="heres-where-the-diy-starts">Here&amp;rsquo;s where the DIY starts&lt;a class="heading-anchor" href="#heres-where-the-diy-starts" aria-label="Link to this section">&lt;/a>&lt;/h3>
&lt;p>Our HVAC contractor took the panel covers off of our furnace but didn&amp;rsquo;t put them back on properly - he put them on backwards and drove some bolts into the panels because they weren&amp;rsquo;t sticking (again, because they were backwards). So, I set out to fix that, and I mean, I also needed to change the filter anyway.&lt;/p>
&lt;p>Here&amp;rsquo;s the filter. Chonky boi. I actually ordered the size blindly, like an idiot. It could&amp;rsquo;ve either been 4 or 5 inches. The old filter didn&amp;rsquo;t have its size printed on it, for some reason. I went with 5 since that felt right haha.
&lt;img src="https://www.mikeschweitzer.com/posts/furnace-maintenance/assets/5FC047B8-BEBF-4D21-A5BF-46EADC1EE869.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Getting the tools ready. I actually had to buy an impact driver for this. I didn&amp;rsquo;t know what an impact driver was before this, but I deduced that that&amp;rsquo;s what he used to drive in the bolts in the panels. Learning is fun!
&lt;img src="https://www.mikeschweitzer.com/posts/furnace-maintenance/assets/DF16545A-DAE9-440E-A79E-FEF4F0A3F9C9.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>OK, more tools education time&lt;/p>
&lt;ul>
&lt;li>Impact Drivers are great for driving fasteners (screws, nuts, bolts). These don&amp;rsquo;t have a clutch the way drills do, and the bit holders on these are stubby and magnetic. Very easy to take bits on and off one handed, which is awesome. Yay for ergonomics! Impact drivers will also detect when resistance is being met and will start to sort of stop up and push back on you, letting you know you&amp;rsquo;ve gone far enough.&lt;/li>
&lt;li>Drill drivers (commonly known as drills) are great for drilling holes. They have an adjustable clutch to both hold bits and adjust force. There are also hammer drills that are great for harder surfaces like masonry.&lt;/li>
&lt;li>Due to the changeable bits, there is a lot of overlap these days between what an impact and drill driver can do. Moreso with drills being able to drive screws. But, drill bits for impact drivers is atypical and nut/bolt bits for drills is atypical.&lt;/li>
&lt;/ul>
&lt;p>My Werner folding ladder is only 6 ft, which isn&amp;rsquo;t tall enough, so I had to use my Gorilla telescoping ladder. Lots more painful to setup, but lots more flexible, of course!
&lt;img src="https://www.mikeschweitzer.com/posts/furnace-maintenance/assets/E399E985-65AF-4A1F-B921-DD092916BB64.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/furnace-maintenance/assets/998C7526-10DD-49D2-9925-79A962E88DE3.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/furnace-maintenance/assets/414E0711-8EC4-4FE8-A9CC-DAAB40DF7178.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>A peek at the blown-in insulation mess on entry
&lt;img src="https://www.mikeschweitzer.com/posts/furnace-maintenance/assets/FF4DD2B6-7C8C-4E24-BDA9-A375071AE92D.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/furnace-maintenance/assets/C75C28CE-6101-40CF-848D-E27C031FFDB0.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Now, here&amp;rsquo;s what the furnace looked like before the HVAC contractor opened it up.
&lt;img src="https://www.mikeschweitzer.com/posts/furnace-maintenance/assets/2215D536-9209-4660-8AE8-39F1C55D4258.JPG" alt="" width="2731" height="1536" loading="lazy" decoding="async">
&lt;/p>
&lt;p>See all that loose insulation? That was the problem. Anyway&amp;hellip;&lt;/p>
&lt;p>Here&amp;rsquo;s how he left it:
&lt;img src="https://www.mikeschweitzer.com/posts/furnace-maintenance/assets/AC7438CA-4AFE-4B24-B87B-8E54E4084EA5.JPG" alt="" width="2049" height="1536" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Note the panels have swapped sides, AND the hand screws on the panel with the logo is backwards. That&amp;rsquo;s why he couldn&amp;rsquo;t get it to fit properly and ended up driving bolts into it. Close up:
&lt;img src="https://www.mikeschweitzer.com/posts/furnace-maintenance/assets/CE33C83C-C7A5-4E66-A77D-824BA604CD04.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>You see, the way this furnace works (maybe all furnaces?) is that a button needs to be held down to keep it powered on. The button is underneath that panel. I probably should&amp;rsquo;ve gotten a photo of that, now that I think about it, oops.&lt;/p>
&lt;p>But first things first, the filter. Oh, it&amp;rsquo;s worth mentioning that my furnace (and probably a lot of furnaces for newer construction) is both a house fan and a furnace, so it has a filter attached to it, which is actually a totally separate device. I found out that this is a Honeywell F100 Media Air Cleaner, funny story on that in a minute.
&lt;img src="https://www.mikeschweitzer.com/posts/furnace-maintenance/assets/8A502C43-12DC-46D0-A646-7C1A40931FCC.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/furnace-maintenance/assets/4DC6ECF3-8DCB-4925-8B21-3A4E708A2069.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>The filter fit perfectly. SUPER LUCKY! Note the direction of the arrow since this is the return path.
&lt;img src="https://www.mikeschweitzer.com/posts/furnace-maintenance/assets/B9DDFC53-A65D-42F3-BE3F-0B2A60237E9D.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>OK now back to fixing the panel. For some reason I didn&amp;rsquo;t take many progress photos of this even though I thought I did. Anyway, impact drivers are fun, so I guess I should thank my HVAC guy for messing this up lol.&lt;/p>
&lt;p>Note that it&amp;rsquo;s flipped from its original orientation, but that&amp;rsquo;s ok. The reason the HVAC guy got it backwards was because the warning labels on the non-logo panel were up-side-down, originally, so he got confused. So I just made things make more sense.
&lt;img src="https://www.mikeschweitzer.com/posts/furnace-maintenance/assets/E18EAD0D-53A7-430F-912D-25666F24E93B.JPG" alt="" width="2049" height="1536" loading="lazy" decoding="async">
&lt;/p>
&lt;p>So the funny story thing I mentioned. There was actually a manual for the filter lying top of the unit. Didn&amp;rsquo;t get a photo of that again, for some reason! There was another manual a little further in. Sorta felt like finding a hidden item in an RPG.
&lt;img src="https://www.mikeschweitzer.com/posts/furnace-maintenance/assets/715CC462-DF0D-4E48-B79B-19B14DFB1233.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>This drew my attention to these pieces of sheet metal holding the furnace down.
&lt;img src="https://www.mikeschweitzer.com/posts/furnace-maintenance/assets/FDA91415-891D-423A-BB4E-D96FB9B16285.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/furnace-maintenance/assets/5D0FF203-AFFA-4B4C-9779-37A5E908F667.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Well, for now my job was done, since I mostly did what I set out to do.&lt;/p>
&lt;p>However, I was still sort of unsettled by how dangerous those pieces of metal were up there. I also read that it&amp;rsquo;s actually a good idea to duct tape the furnace panels in place and not leave too many air gaps since the air just escapes into the attic that way, making your HVAC less efficient. So I decided to make a return trip many weeks later.&lt;/p>
&lt;p>I had a better strategy on dealing with the actually quite heavy drywall panel covering the attic. Label it with my phone in a photo and leave it on the ground instead of pushing it into the attic.
&lt;img src="https://www.mikeschweitzer.com/posts/furnace-maintenance/assets/67AB5FAA-F1CD-4EEB-9235-8D0653869DEA.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/furnace-maintenance/assets/BFB1DEB1-5E73-4FE2-A3C0-7F150BFCCB51.JPG" alt="" width="1125" height="2436" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Tools for the return trip.
&lt;img src="https://www.mikeschweitzer.com/posts/furnace-maintenance/assets/7B1E6A4F-C40F-4F53-ACB3-8FF7FB4B0C3B.JPG" alt="" width="2049" height="1536" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/furnace-maintenance/assets/99EB7F98-AAA3-42A0-BC6B-F74D7919CC41.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/furnace-maintenance/assets/07A20AA8-AB85-4002-94D3-5FDBBD24C122.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>The screwdrivers were for a separate project. I wanted to check out the light up there (a CFL) since I want to convert the whole house to LED. Anyway, the knife was going to be for cutting the old tape since there was a lot of old melted tape up there. The chisels were supposed to be for smoothing out the metal.&lt;/p>
&lt;p>Here&amp;rsquo;s some of the old duct tape
&lt;img src="https://www.mikeschweitzer.com/posts/furnace-maintenance/assets/EABFAA1F-C208-405B-A0CC-0C4E6883B75A.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>This part isn&amp;rsquo;t super entertaining. I just had to make a lot of awkward cuts to get the duct tape to fill the gaps.
&lt;img src="https://www.mikeschweitzer.com/posts/furnace-maintenance/assets/844A78EC-2F8B-4BB6-B181-6B0228FF4125.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/furnace-maintenance/assets/B5DB6B3C-93DA-4B04-925C-D3066535D05C.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/furnace-maintenance/assets/3EC1CCAC-A5E9-4386-8C96-F7673106B45B.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Finished taping
&lt;img src="https://www.mikeschweitzer.com/posts/furnace-maintenance/assets/BFE8F0C0-E3A5-4D9D-A8C3-EC40F8266D94.JPG" alt="" width="2049" height="1536" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Smoothing out the jagged sheet metal ended up being a DIY Fail. Here&amp;rsquo;s where I started.
&lt;img src="https://www.mikeschweitzer.com/posts/furnace-maintenance/assets/6D955FF8-B923-4187-AA4F-52D89C7D5174.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/furnace-maintenance/assets/A5488E59-F595-4EE1-BDAF-AEA4331937D3.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>And here&amp;rsquo;s the result
&lt;img src="https://www.mikeschweitzer.com/posts/furnace-maintenance/assets/52BFA066-410B-4690-8EC4-C24AEFAB319C.JPG" alt="" width="2049" height="1536" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/furnace-maintenance/assets/3C4F793E-76F6-4F20-9328-12D4CD55FB87.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>I did a bit more research and got some aviation snips and emery cloth. I think those will be more effective&lt;/p></content:encoded></item><item><title>Stripped Screw Hole Repair</title><link>https://www.mikeschweitzer.com/posts/stripped-screw-hole/</link><pubDate>Mon, 09 Aug 2021 00:00:00 +0000</pubDate><guid>https://www.mikeschweitzer.com/posts/stripped-screw-hole/</guid><description>My wife alerted me to a loose cabinet face in our kitchen. She said she&amp;rsquo;d been screwing one of the hinges tight for several months, so I decided to investigate and discovered this.</description><content:encoded>&lt;p>My wife alerted me to a loose cabinet face in our kitchen. She said she&amp;rsquo;d been screwing one of the hinges tight for several months, so I decided to investigate and discovered this.
&lt;img src="https://www.mikeschweitzer.com/posts/stripped-screw-hole/assets/556C8BC8-B4FE-440D-A47A-A4DF484EA220.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/stripped-screw-hole/assets/7E9B9BE7-E36A-46FD-B284-E31B9B326BE6.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/stripped-screw-hole/assets/C9E3798D-0908-4ACB-A8C2-49D9D4061E05.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>I&amp;rsquo;m not sure what the original installer was thinking with this, but maybe there were some extenuating circumstances that led to this rush job.&lt;/p>
&lt;p>Anyway, we really needed to use these particular screw holes, otherwise we would&amp;rsquo;ve had to pick two other ones which would&amp;rsquo;ve required woodworking to make a new cut for the hinge on the cabinet face. I don&amp;rsquo;t have the gear for that, and it would&amp;rsquo;ve made the hinge placement uneven. So, I decided to try to repair the screw holes.&lt;/p>
&lt;p>This post will be a bit long and rambly since I did a LOT of experimenting and learning for this one, and frequently I would have to take several days-long breaks between experiments to let product dry.&lt;/p>
&lt;p>I started out by trying a squeeze tube wood filler from DAP, color matched to white.
&lt;img src="https://www.mikeschweitzer.com/posts/stripped-screw-hole/assets/4A4E88AF-EBC4-420F-9714-3A13A8EC5E3D.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/stripped-screw-hole/assets/48C7083B-C2F8-45EC-B260-4C7FE2C1895E.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>I got a pro tip from &lt;a href="https://www.youtube.com/watch?v=q_qCods-DdY">this youtube video&lt;/a> to drive the screws into the filler and let them sit for a couple minutes in order for the filler to take on the shape of the screw threads.&lt;/p>
&lt;p>&lt;img src="https://www.mikeschweitzer.com/posts/stripped-screw-hole/assets/77EC8B86-3CE0-4325-AC18-A607FFB41C0C.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/stripped-screw-hole/assets/E79DE4A2-BCB3-41DB-A589-2B96AFF41C5F.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>It&amp;rsquo;s a bit difficult to get a good shot of this. Here&amp;rsquo;s the best close up I could get.
&lt;img src="https://www.mikeschweitzer.com/posts/stripped-screw-hole/assets/1047EDC4-5BD4-42A3-A709-4C6C2ED001E3.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Something I didn&amp;rsquo;t think about ahead of time was sanding down the bulged out holes prior to applying the product. Oh well. I did it afterward, which is fine since wood fillers are meant to be sanded.&lt;/p>
&lt;p>I first used a sanding sponge to really grind it down, then sand paper to do some finer finish, then the handheld vac for cleanup.
&lt;img src="https://www.mikeschweitzer.com/posts/stripped-screw-hole/assets/8A69475C-FFAF-4808-8000-4243E30D9127.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/stripped-screw-hole/assets/CE27713D-64D8-4566-9854-4545A4B95604.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/stripped-screw-hole/assets/931F6497-42E7-4F08-89E7-A8A4736DB67C.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>I tried dry fitting the hinge base, but it wasn&amp;rsquo;t quite level yet.
&lt;img src="https://www.mikeschweitzer.com/posts/stripped-screw-hole/assets/90F45D3B-8566-4669-8B18-B0D5808DCE67.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/stripped-screw-hole/assets/37175877-94AA-4A5D-9CFD-66B1514F4408.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Also, after sanding the holes kinda looked like this.
&lt;img src="https://www.mikeschweitzer.com/posts/stripped-screw-hole/assets/D2C911D9-CF18-4E45-9139-2A13747771B4.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>So I applied some more wood filler to level this out and restore the color. Same process as before. The result ended up looking like this after the second application.
&lt;img src="https://www.mikeschweitzer.com/posts/stripped-screw-hole/assets/F8023CE6-9341-4060-B3EE-4AD31DC3D19F.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Now, I was feeling pretty good about getting the base plate back on. But, it turned out the screws just couldn&amp;rsquo;t go in far enough to make the plate flush with the wall, so it was no longer a sanding problem. It&amp;rsquo;s no wonder this hinge failed&amp;hellip;someone didn&amp;rsquo;t drill the appropriate holes for these screws.&lt;/p>
&lt;p>&lt;img src="https://www.mikeschweitzer.com/posts/stripped-screw-hole/assets/ECEAD12C-F9F3-431E-ACA6-566DD677688F.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>OK so now the strategy became drilling in JUST A SMIDGE since this is literally the end of a cabinet, and drilling too far meant drilling through the cabinet. The face of the cabinet is only about 3/4 inch. I used black oxide bits, but Titanium would have worked just as well if not better.
&lt;img src="https://www.mikeschweitzer.com/posts/stripped-screw-hole/assets/68C4C158-32AC-403D-A795-3E19E3EEF8E2.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/stripped-screw-hole/assets/6C31B0A8-512C-4815-8923-AE9CDB7321A0.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>I don&amp;rsquo;t remember which YouTube video I learned this from, but I basically measured the screw shank and put a piece of tape on my drill bit at about the same length, so I knew when to stop.
&lt;img src="https://www.mikeschweitzer.com/posts/stripped-screw-hole/assets/F4D690C1-5410-4491-AC29-0B1EE74A4163.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/stripped-screw-hole/assets/56E5E30D-4358-471B-A341-BC8744C0825A.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>This tech works remarkably well. Lots of wood filler debris on my drill now, so I had to clean up a bit.
&lt;img src="https://www.mikeschweitzer.com/posts/stripped-screw-hole/assets/D2A02DAC-BF6A-400E-8090-E8610970BEBF.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/stripped-screw-hole/assets/DA5E5932-21E8-4C71-B155-9A70A1EB7C87.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>At this point my new strat was to actually dry fit the base plate first to see if it was flush.
&lt;img src="https://www.mikeschweitzer.com/posts/stripped-screw-hole/assets/C359AEE6-17A3-422E-A4F5-84FF83010E78.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>This time, when I applied wood filler, I left the base plate on (again) to hopefully get a more accurate result.
&lt;img src="https://www.mikeschweitzer.com/posts/stripped-screw-hole/assets/B5C440E4-6EC0-472E-BFA8-DE7A07CA5F3D.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/stripped-screw-hole/assets/3DA16C05-0802-45C9-AB91-57C1B06B54D8.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Here&amp;rsquo;s the screw hole caverns.
&lt;img src="https://www.mikeschweitzer.com/posts/stripped-screw-hole/assets/AF8BC5C4-5B1A-46D4-A0A1-C134D139AF5B.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>And after scraping with a putty knife
&lt;img src="https://www.mikeschweitzer.com/posts/stripped-screw-hole/assets/43D3DFE0-93BC-4B95-8A73-ACFBE958BC15.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>OK so at this point this process has been going on for a few weeks. The recommended curing time for the wood filler is 3 days. I thought I was finally at the finish line. I felt pretty good about screwing the base plate into the cabinet box. &lt;img src="https://www.mikeschweitzer.com/posts/stripped-screw-hole/assets/F815DBA8-86B9-4742-9A3E-5CC4D2D08E8B.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>I tried reattaching the cabinet face. In case you&amp;rsquo;re interested, my hinges are Salice soft close, full overlay, 105 degree hinges.
&lt;img src="https://www.mikeschweitzer.com/posts/stripped-screw-hole/assets/ED695D92-AAD7-4CF3-9397-B7680FF2AE76.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/stripped-screw-hole/assets/00F823BE-C37F-4C52-8E11-B5D391518784.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>It was VERY wobbly and unstable. It was pretty clear at this point that the base plate was still not flush and the wood filler was not going to be able to hold the weight of the cabinet face. Sadness&amp;hellip;&lt;/p>
&lt;p>So I had to sand some more, but what to do about the stability? Luckily I have had great success with the steel putty product from JB Weld, and it turns out they have a wood putty product as well, so I was pretty confident I could be successful with that.
&lt;img src="https://www.mikeschweitzer.com/posts/stripped-screw-hole/assets/A1928D74-200C-4032-A19C-CDA21994F22B.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/stripped-screw-hole/assets/0764AB02-7059-452A-B36C-1CF6FC4A00C6.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>A video would be easier to give you an idea here, but basically you open the tube, cut a chunk off, and start mixing by rolling and shaping them with your fingers. The texture is like clay. It&amp;rsquo;s essentially a two-component epoxy, similar to the glue, but in a single column semi-stiff putty form. Rolling the putty around in your fingers causes the two components to activate vs having a little mixing tray, which is typical of an epoxy glue.&lt;/p>
&lt;p>I used the same application technique as the wood filler. I used the screws to create threads in the putty, let it sit for a couple minutes, then removed the screws before the product hardened.
&lt;img src="https://www.mikeschweitzer.com/posts/stripped-screw-hole/assets/05A89654-5AEE-4FC4-A943-308DEF797594.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/stripped-screw-hole/assets/4172AC1B-C92B-4CD8-9A87-7159F3D36F6F.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>So that takes care of the strength part since JB Weld epoxy putties are indestructible. For the stability, it turned out that the base plate had a small amount of play from front to back, so I did a couple things&amp;hellip;&lt;/p>
&lt;ol>
&lt;li>Bend it with pliers and a wrench &lt;img src="https://www.mikeschweitzer.com/posts/stripped-screw-hole/assets/CC54178F-7A7D-4EB2-B330-0BF95BF9D0B1.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/li>
&lt;li>Apply some wood filler to the cabinet where the front of the base plate rests
&lt;img src="https://www.mikeschweitzer.com/posts/stripped-screw-hole/assets/AB6081A1-4386-41D7-9E67-FCA9904B64FA.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/stripped-screw-hole/assets/B83A28F2-17F2-4297-B10F-47F4D4B10879.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/li>
&lt;/ol>
&lt;p>Not perfect, but a lot more flush!
&lt;img src="https://www.mikeschweitzer.com/posts/stripped-screw-hole/assets/A2706CFC-70C3-4DAD-B97C-A4E32820A5F5.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>This was finally enough to have acceptable performance for the cabinet face.
&lt;img src="https://www.mikeschweitzer.com/posts/stripped-screw-hole/assets/B77AB444-4D65-45A5-9FD0-E5A83FC3CC5F.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/stripped-screw-hole/assets/E6794D06-B8A4-4784-BEC2-3731C84618E8.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/stripped-screw-hole/assets/2AED67F5-5A98-47F1-8D16-22E8E1A6EE16.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>I had to do a bunch of adjusting of the screws on the plates themselves to get the alignment right, but that&amp;rsquo;s boring stuff and this post already went on way too long lol&lt;/p></content:encoded></item><item><title>Dutch Door Repair</title><link>https://www.mikeschweitzer.com/posts/dutch-door/</link><pubDate>Fri, 09 Jul 2021 00:00:00 +0000</pubDate><guid>https://www.mikeschweitzer.com/posts/dutch-door/</guid><description>OK, this is my first Fail blog. It&amp;rsquo;s a fail because I failed to fix the actual problem despite doing a bunch of work towards that goal.</description><content:encoded>&lt;p>OK, this is my first Fail blog. It&amp;rsquo;s a fail because I failed to fix the actual problem despite doing a bunch of work towards that goal.&lt;/p>
&lt;p>My front door is a Dutch Door. That&amp;rsquo;s a type of door with two halves that can move independently.
&lt;img src="https://www.mikeschweitzer.com/posts/dutch-door/assets/B0760F4A-F548-4A1F-8605-261C4704DD02.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
)&lt;/p>
&lt;p>Here&amp;rsquo;s the problem: the locking mechanism to keep the two halves together has barely any clearance. You can see from the photo that clearly an attempt was made to fix this in the past.
&lt;img src="https://www.mikeschweitzer.com/posts/dutch-door/assets/73A0C64B-BBC7-42D0-A54B-256FD33EF409.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/dutch-door/assets/B6D40050-4008-499A-B642-478B6A5B6E5C.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Seemed to be an alignment problem to me. Specifically, the bottom half sagging at the top hinge.
&lt;img src="https://www.mikeschweitzer.com/posts/dutch-door/assets/98F6DE25-D8EE-4520-8C24-9B01C6F0F5B6.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/dutch-door/assets/B8674416-B985-4B1D-8F03-71BA73CA22BE.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>There are a lot of YouTube videos and internet articles about bending the knuckles on your hinges, but this wasn&amp;rsquo;t a viable option for me since bending the knuckles on the door side didn&amp;rsquo;t do much, and bending the knuckles on the trim side isn&amp;rsquo;t really feasible because of the thickness of my trim.&lt;/p>
&lt;p>So instead, I bought a replacement hinge. It seemed like this would fix it. Look at how tight that hinge is!
&lt;img src="https://www.mikeschweitzer.com/posts/dutch-door/assets/C21AD8A3-FEA8-408B-B3BF-DEF7E5DACA23.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>FYI door hinges are measured in length and radius of the corners. This is a 4 inch, 1/4 inch corner radius in Satin Nickel finish.&lt;/p>
&lt;p>Time to get the tools.
&lt;img src="https://www.mikeschweitzer.com/posts/dutch-door/assets/45B8105E-3BC8-4B08-A3A4-C9B065DB0C60.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>I realized after the fact that I didn&amp;rsquo;t need to pop out the hinge pin on the old hinge, but I did it anyway. This was a bad omen I suppose of how this project was going to go.
&lt;img src="https://www.mikeschweitzer.com/posts/dutch-door/assets/7ACEB523-A3A3-415A-B386-1DF53701655A.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Popping out a hinge pin basically involves putting something underneath the hinge pin and hammering it. In this case, I have a spare hinge pin that I use to hammer up. But first! Painter&amp;rsquo;s tape to help protect the area from damage.
&lt;img src="https://www.mikeschweitzer.com/posts/dutch-door/assets/E0C17ADE-413A-44F6-A3C5-726B9664022D.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/dutch-door/assets/2E1B58F9-6E48-4531-BB70-DCFCCE39CA7C.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>After knocking it a little out, I got the diagonal pliers to pull it out the rest of the way, mostly to not risk getting the pin I was hammering stuck inside the hinge. Good thing I put the painter&amp;rsquo;s tape there because I ended up accidentally pushing into the door!
&lt;img src="https://www.mikeschweitzer.com/posts/dutch-door/assets/016CDABE-DF44-4339-8A09-070CFE83BE20.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/dutch-door/assets/D73D8CC5-9BF4-4361-9225-25A563492CB8.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/dutch-door/assets/36D02305-BD06-4CB8-9F40-5D8179B76CFF.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>OK next order of business is to open the door up and stabilize it so I can switch out the hinge. The Rhino is a really fun tool to use, not gonna lie.
&lt;img src="https://www.mikeschweitzer.com/posts/dutch-door/assets/620D0A7E-82A4-449C-B35C-2B4E1BD2D5F0.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Here&amp;rsquo;s what we&amp;rsquo;re working with, before and after cleaning things up:
&lt;img src="https://www.mikeschweitzer.com/posts/dutch-door/assets/CFF9B5A5-CFEC-45D7-810C-C56AE00659BD.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/dutch-door/assets/7DAE814E-5C89-471D-AC3B-6465EE6AE91D.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>I wanted to use at least a couple 2 1/4 inch wood screws to really help push this hinge into the wall and keep it steady. By the way, door hinge fasteners (screws) are weird. They&amp;rsquo;re actually 9 gauge, which isn&amp;rsquo;t a typical gauge. Fastener gauges usually go from 6 to 8 to 10, then they switch to diamater inches, 1/4, 1/2, etc. And, typically door hinges come stock with 3/4 inch or 1 inch long 9 gauge fasteners. So, a recommended practice to really stabilize your hinges is to use 2+ inch.
&lt;img src="https://www.mikeschweitzer.com/posts/dutch-door/assets/847E9082-6CBA-467C-8811-939110742CCC.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>So I discovered something weird whilst unscrewing the screws on the frame. If you look closely you can see that the top screw there is actually the wrong finish. It&amp;rsquo;s stainless steel, not satin nickel.
&lt;img src="https://www.mikeschweitzer.com/posts/dutch-door/assets/7DAE814E-5C89-471D-AC3B-6465EE6AE91D.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/dutch-door/assets/B2D133B2-72B2-4B6B-A17F-70D1BF354FFD.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>So, once again I find evidence that someone tried to fix this problem already. That top screw is actually 2 inch long, it&amp;rsquo;s also a 10 gauge. Basically it&amp;rsquo;s a standard 2 inch wood screw rather than a hinge screw since hinge screws are always 9 gauge.
&lt;img src="https://www.mikeschweitzer.com/posts/dutch-door/assets/0F6EEF1A-A0A7-43E4-ADA7-39998E25475D.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Fun times. So many hacks. Anyway, I took the rest out. This magnetic wrist thing is great when dealing with tons of screws by the way.
&lt;img src="https://www.mikeschweitzer.com/posts/dutch-door/assets/7246A9D4-98DD-439F-8B89-3750753B921C.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/dutch-door/assets/188246BD-A731-4702-8740-11F3FA691357.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>I popped out the old hinge and discovered some truly weird shit
&lt;img src="https://www.mikeschweitzer.com/posts/dutch-door/assets/4F013014-AD5F-495D-A71F-BBCB6DADABE8.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Seriously, wtf. There&amp;rsquo;s an extra, stripped screw hole in the middle and there are two fasteners just&amp;hellip;holding the frame to the stud I guess? So weird. Anyway, whatever, here&amp;rsquo;s a quick comparison of the old, 10 gauge 2 inch screw vs the 9 gauge 2 1/4 inch I planned to use to replace it.
&lt;img src="https://www.mikeschweitzer.com/posts/dutch-door/assets/075F997A-8627-445C-B36E-41B5CFABE6D3.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Time to start screwing in the new hinge
&lt;img src="https://www.mikeschweitzer.com/posts/dutch-door/assets/884BCDE9-C73F-4201-92D1-A129C3559788.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/dutch-door/assets/66F16755-8EB2-4253-8BE9-528E44B9CF4F.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>I actually use the impact driver most of the way, but hand screw the rest so I can get a sense of what the bite is like and whether I need to change screws or fill in a hole with wood filler, etc.&lt;/p>
&lt;p>The last screw on the door side was being a pain. It seemed to be misaligned, and after attempting to put in my 1 inch screws a couple times and the 2 1/4 once (It got stuck most of the way in and wouldn&amp;rsquo;t go further), I decided to re-use the 2 inch screw from the trim side on the bottom of the door side.
&lt;img src="https://www.mikeschweitzer.com/posts/dutch-door/assets/D20A32A6-877B-4C9F-A02B-85FB96BCB780.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/dutch-door/assets/3DB076C0-18BB-44DD-983B-9DE5842522E4.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>OK after that&amp;rsquo;s done, it&amp;rsquo;s time to deflate the Rhino and check the alignment.
&lt;img src="https://www.mikeschweitzer.com/posts/dutch-door/assets/47935484-5CD2-458C-A32B-806FC3DC0040.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Super sad. The new hinge is now just as expanded as the old hinge. I guess the screw holes and the positioning of them were the actual problem. I don&amp;rsquo;t have a table clamp at the moment, but if I had to go back and redo this, I&amp;rsquo;d pre-bend the trim side about 1/8 inch to get better dutch door lock alignment.&lt;/p>
&lt;p>Oh well. Best I can do at this point is to fallback to some knuckle bending.
&lt;img src="https://www.mikeschweitzer.com/posts/dutch-door/assets/A9309E7B-9D2B-4EE2-A1CC-B01FF935EAB5.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/dutch-door/assets/A181BEBF-2888-4B76-A431-E6FC4E9F0302.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>It&amp;rsquo;s about the same clearance as when I started 😭 Lesson learned. Do a more thorough diagnosis before addressing symptoms.
&lt;img src="https://www.mikeschweitzer.com/posts/dutch-door/assets/05EFF86B-379C-4AAB-9EE0-6C3501F42045.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/dutch-door/assets/9C8FB791-4930-4D55-B995-0F58473CF7EE.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>I still want to buy a table clamp, take off that hinge, and bend it to compensate, but now I&amp;rsquo;m worried that all of the screw holes holding the hinge in place will get stripped from over use. Curses!&lt;/p></content:encoded></item><item><title>Concrete Crack Seal</title><link>https://www.mikeschweitzer.com/posts/concrete-crack/</link><pubDate>Mon, 21 Jun 2021 00:00:00 +0000</pubDate><guid>https://www.mikeschweitzer.com/posts/concrete-crack/</guid><description>I have a patio with some very nice looking (and feeling) ceramic tiles sitting on top of concrete. A big chunk of the floor is like this, and there is a built in, matching fire pit and bench. The bench has the same sort of ceramic covering. It&amp;rsquo;s all quite nice and was probably very expensive. Definitely a huge selling point of the place!</description><content:encoded>&lt;p>I have a patio with some very nice looking (and feeling) ceramic tiles sitting on top of concrete. A big chunk of the floor is like this, and there is a built in, matching fire pit and bench. The bench has the same sort of ceramic covering. It&amp;rsquo;s all quite nice and was probably very expensive. Definitely a huge selling point of the place!&lt;/p>
&lt;p>Here is an MLS picture
&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/9259C59C-3882-4C51-B7F9-C105A9782E6B.JPG" alt="" width="2436" height="1125" loading="lazy" decoding="async">
&lt;/p>
&lt;p>A few weeks after we moved in, we noticed that the grout was cracked pretty bad on one of the seams of the ceramic. In fact, you can see it in the picture between the BBQ and the farthest patio chair. Here&amp;rsquo;s a &amp;ldquo;before&amp;rdquo; picture
&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/CC0E7B38-8181-40E9-BEE2-C09EDFB52F5D.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>After examining this more closely, my guess was that the seam is actually an expansion joint between 2 slabs of concrete. I guess the landscapers figured they could fill the joint with the grout from the ceramic flooring? Grout doesn&amp;rsquo;t work that way; it&amp;rsquo;s not flexible.&lt;/p>
&lt;p>My strategy for solving this problem was to fill the crack with some flexible concrete sealant so the seam would be impervious to any further settling. I was hoping to get away without putting backer rod or sand in there since it&amp;rsquo;s a relatively small crack, but I bought some sand just in case. I&amp;rsquo;d have to paint it eventually since the sealant would be an eye sore next to the grout, but the more urgent need was to protect the foundation. Plus, I hate painting, so I&amp;rsquo;m procrastinating on that&lt;/p>
&lt;p>Enough talk! I dug out a couple pieces by hand first so I could have them handy for color matching paint later, then got the tools ready.
&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/B875157E-426E-4487-AF55-18DEEC3DBAD9.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/B05B72E5-F4B6-4114-962F-B2E33D0FB967.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>The first order of business was to dig out the loose bits of grout and chisel the rest so I could fill the entire crack instead of taking the risk of the remaining grout cracking. I did this by putting the head of the chisel at a roughly 15 degree angle against the edge of a stable piece of grout, then lightly hammering the back of the chisel. Video would have been a lot more handy for showing this 😕&lt;/p>
&lt;p>&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/038C3F8B-CBA1-459C-B411-53EA2F79EACF.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/2EF08E24-C52F-4CD0-95BF-D6623C5F9D40.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>First photo is right after getting through the whole seam, next photo is after sweeping with the broom.
&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/F91C12BB-D522-4A0F-B846-0C607FCECE14.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/34F28FF1-B432-4510-9223-46CF38DDBE72.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>I wanted to do some measuring after this. First the width of the seam, which was pretty much a consistent measurement across the seam. Then the depth. The depths varied wildly depending on where I measured. It got up to what looked like 3/4 inch.
&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/98F41D83-2E62-4608-8EE8-08D7AC6873F8.JPG" alt="" width="2049" height="1536" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/A6C41894-B559-417F-97EC-6E24E54AE3A9.JPG" alt="" width="2049" height="1536" loading="lazy" decoding="async">
&lt;/p>
&lt;p>I used my air duster at this point all along the seam to push out a bunch of the dirt and bugs that had piled up in there. Luckily I had gloves on otherwise I would&amp;rsquo;ve gotten frost bite. Probably need to get an air compressor or leaf blower for these sorts of tasks!
&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/CF8F17B6-57DC-4C78-92F1-6A7F313E1F72.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/09741933-6A5F-4DD3-99CE-FB6B4A592AAD.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Dear reader, I&amp;rsquo;m embarrassed to admit that I got lazy and did not take the time at this moment to fill the deeper pockets with sand. I figured I had enough material in my tube of sealant to overcompensate. More on that in a bit, first prepping the sealant tube.
&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/A5552331-3B96-4560-8A6D-CBA2BA19D84D.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/040C96CE-B90E-4941-A270-5D1E182B6B43.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/C6DAB3A0-44E9-43D3-A31F-56A032D785C5.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>I actually had to make a cut twice since I wanted to get a really small opening at the tip to fit the small seam, but I had trouble puncturing the inner seal with my caulking gun&amp;rsquo;s built-in puncture tool because of how long the tip is on this tube.&lt;/p>
&lt;p>I&amp;rsquo;ve since learned that a scrap piece of 14 gauge wire cut to about 8 inches is the best tool to puncture caulk tube seals. Wish I&amp;rsquo;d figured that out before doing this project!&lt;/p>
&lt;p>Anyway, I started applying the sealant and realized pretty quickly that I was going to run out of material if I didn&amp;rsquo;t apply some sand first, so I paused where you see in the photo below.
&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/3DAE48DB-1C97-40E4-ADDF-D7DCE6145F56.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>I had to work quickly since the sealant was starting to skin, so all I got is a photo of the bag of sand lol.
&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/D4AA899A-E698-4CCC-B728-A1DDAF64DAC1.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Now technically I&amp;rsquo;m not using the sand as intended. This sand is meant to sit between pavers and get &amp;ldquo;activated&amp;rdquo; by water, which starts a hardening process, but meh. The sand&amp;rsquo;s color was the reason I got it lol. It matches the patio and concrete.&lt;/p>
&lt;p>Had to work quickly here since, again, the sealant was starting to skin. It just means I didn&amp;rsquo;t get any photos of applying the sand. Pretty much just poured it into some of the deeper areas of the seam, then used a broom to sweep away loose sand that was sitting outside the seam on top of the flooring.&lt;/p>
&lt;p>I went back to applying the sealant after that. Again, no great photos because of timing, so here are some &amp;ldquo;after&amp;rdquo; shots.
&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/FE7A11BC-3682-41D2-AA82-16C268AC967D.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/25EBF4CB-9943-4A00-966A-F06562DAC67E.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/8249692B-FC66-492F-9088-1642F1857549.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>See how bright that seam is now compared to the surrounding seams? Yeah, I&amp;rsquo;ll have to color match and paint that SOME day.&lt;/p>
&lt;p>Update: Almost 3 weeks later, and I finally got around to paint!&lt;/p>
&lt;p>I took those scrap pieces of grout I picked out earlier to my local big box store and luckily it was enough to do a color match exterior paint + primer.&lt;/p>
&lt;p>I didn&amp;rsquo;t get great photos of what it looked like before starting, but it was pretty dirty by this point! Here&amp;rsquo;s an after photo of me after cleaning the entire joint with alcohol pads.
&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/BDDD757E-C970-4AAB-BDAC-1AB8E5CA17C9.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>These little suckers are perfect for really wiping away all the dirt that had adhered to the sealant.&lt;/p>
&lt;p>Time for more tool prep. I was pretty excited to bust out the frog tape. I heard good things about it from some YouTube videos and I knew for sure i was going to need to tape this area since I was dealing with a long thin line.
&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/90DBC264-FBCE-45D8-A12F-4F744BFEE1B8.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/31087EF7-FD5A-43EB-8CC1-A25F7881328A.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Taping was pretty tedious since the tiles settled so much and weren&amp;rsquo;t perfectly aligned&amp;hellip;part of the reason I procrastinate on paint lol
&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/B19B868F-C311-49A0-9993-348B1D5356D0.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>My right leg is pretty shot from doing so much sealant work as of late, if I squat too long, the nerves in my shin start to have shooting pain (maybe from all the compression?), so I absolutely had to get knee pads. I highly recommend knee pads in general if you&amp;rsquo;re going to spend any amount of time working on a floor.
&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/BFED3C2B-406E-46A7-B248-0D4AA57819B8.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Anywho, time to bring the painting tools down. I use the painter&amp;rsquo;s tool purely for propping open and closing shut the lid, like so
&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/DEF52DA1-F28A-487D-92D2-161312F1A5F8.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/96864883-63AC-4EE7-8644-0752BE9F2061.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Time to start! I really need to work a lot on how much paint I get on my brush, how many strokes to use, how far to go, etc. Lots of learning was done here.
&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/BA10A593-C5DB-45A7-9879-12B1114C1350.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/5926EDE6-59F3-419C-A805-7C648D4E86BC.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/06916164-ED1B-4C43-89BC-FE6D722B28B3.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>I was a bit unhappy with one part of the seam where my paint brush bristles really popped, but you have to get pretty close in to see it, so generally not too bad.
&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/C15E8A0E-DF72-4B45-8E86-AE33F8CF0FA3.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Just about done!
&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/876C7622-8EAF-48A4-8510-C785F77BE6E6.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Time to pull the tape up!
&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/9C9B8CB8-5AD9-4D3D-8F68-5070DEF4589D.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/4E918C3D-EDA8-4064-8D48-881FD0F10BF1.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/E16DAAAE-D297-47ED-B695-93A397399376.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>The frog tape did really well. Left barely any noticeable lip.
&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/BC269E2E-21DA-489A-808A-C1409969A38A.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/29DC25A4-A7D6-4931-856C-454F0E2ADDEA.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Here&amp;rsquo;s something you won&amp;rsquo;t see very often. Clean up! Paint&amp;rsquo;s messy, so here&amp;rsquo;s some shots of cleaning things up and putting them away.
&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/86033ACD-0DC4-4346-A482-8560415F99E0.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/793E642E-DC88-4041-9CC0-BB04B2CB825B.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/AF310CEA-CE20-4892-940A-3618AF0C5800.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>This was my first time really cleaning a paint brush. I overprepared and tried a few tools to clean. I ended up liking the dedicated brush cleaner over the wire brush or using the painter&amp;rsquo;s tool to scrape off.
&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/FDDA9B96-F3B6-49E6-BA43-346B258DD0A8.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>I wasn&amp;rsquo;t really happy with leaving the brush in the dish rack since there wasn&amp;rsquo;t a good way to get the bristles faced down without touching a surface, so I improvised and put the brush between the gaps in my Elfa rack in my garage.
&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/A114A3D6-62D3-4808-8B9F-0E5B65D6753C.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/D0D8264E-A8B1-4190-85BD-7EFD5AAF7E01.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>I went outside to take another peek at the result, and was mostly happy&amp;hellip;
&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/34012F7A-734A-4B16-AF1D-C2296EA2F976.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/701E10B1-0622-46B9-88EE-744702638719.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Except some spots where frankly I did a sloppy job applying the sealant. The sealant is so bright that it stuck out like a sore thumb against the color matched grout. See?
&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/89F123D6-005E-4A26-B9ED-3C94CBA2B940.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Another angle
&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/F9DB020B-2F12-42D6-A8EA-BE7DACB1842F.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/71F691F5-3218-43BC-A3D4-D8F27ED0206D.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>This might not look like a big deal in the pictures, but these bright spots really catch your eye when you&amp;rsquo;re walking around out there. Human eyes are really, really good at detecting edges (which is why things like dead pixels in monitors are so bothersome). So&amp;hellip;I decided not to get lazy and put in the extra time to deal with it now instead of living with it or dealing with it later.&lt;/p>
&lt;p>I busted out an artist brush set since I needed the right tool for very fine detail touch ups.
&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/15E80DD6-BB06-4D7E-A8C5-7CE2AE06F2B5.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/086E03D0-A757-4B77-96B0-6CFFDBB4AFB5.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Painting is a real pain in the butt
&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/743B53DC-EB2A-46D9-881B-CF894D27D0CE.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/292E71C6-13DD-49D6-B786-B9C4F65332CB.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Very happy with the result of the touch ups. Edges aren&amp;rsquo;t clean, but at least the colors blend much better.
&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/54AA29D0-47CE-4ECC-BAB0-F1A2F9A9E12B.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/A1643E5D-D225-4B9D-9878-13709D3A8300.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>I think the final result looks pretty good!
&lt;img src="https://www.mikeschweitzer.com/posts/concrete-crack/assets/139557B8-223D-49F0-8EAD-A34B357B5276.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>This was a pretty fun project overall. Lots of learning. Lots of experience gained with wet materials including the process of color matching paint. I still am not in love with painting, but I do feel good about having a new skill under my belt.&lt;/p></content:encoded></item><item><title>Toilet Seats</title><link>https://www.mikeschweitzer.com/posts/toilet-seats/</link><pubDate>Wed, 02 Jun 2021 00:00:00 +0000</pubDate><guid>https://www.mikeschweitzer.com/posts/toilet-seats/</guid><description>My house came with 3 Sterling toilets. 2 of them had the cheap stock seats that slam when you let go of them, and one of them had a fancy Kohler Bidet toilet seat.</description><content:encoded>&lt;p>My house came with 3 Sterling toilets. 2 of them had the cheap stock seats that slam when you let go of them, and one of them had a fancy Kohler Bidet toilet seat.&lt;/p>
&lt;p>Yes, just the seat had the Bidet functionality, not the toilet itself, which made the seat very massive and bulky, and essentially turned an elongated bowl into a round seat because of all the gear in the back.
&lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/13BAA849-FE3A-4D1B-9594-E3B7643C7238.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/24F5DFD7-20CF-4A89-8D51-DA3F05BB8F93.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>My goal was to replace all 3 seats with soft close ones. The bidet seat has soft close, but we weren&amp;rsquo;t interested in keeping it because of the bulkiness.&lt;/p>
&lt;p>Originally I got Delta soft close seats since they were crazy highly rated: &lt;a href="https://www.amazon.com/Faucet-801903-WH-Slow-Close-Non-Slip-Bumpers/dp/B015Z4BH34">https://www.amazon.com/Faucet-801903-WH-Slow-Close-Non-Slip-Bumpers/dp/B015Z4BH34&lt;/a>&lt;/p>
&lt;p>But the tank cover on the Sterling toilets is so wide that they were pushing the Delta seat forward, so it couldn&amp;rsquo;t stay up! I also didn&amp;rsquo;t like that the screws were plastic. I&amp;rsquo;m not sure why they&amp;rsquo;re so highly rated on Amazon. No photos of this unfortunately 🙁&lt;/p>
&lt;p>Anyway, I did a bit more research and settled on these 3&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://www.amazon.com/K-4008-0-Quiet-Close-Grip-Tight-Bumpers-Elongated/dp/B00BTLLIFA">https://www.amazon.com/K-4008-0-Quiet-Close-Grip-Tight-Bumpers-Elongated/dp/B00BTLLIFA&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://bathroyale.com/products/premium-toilet-seat">https://bathroyale.com/products/premium-toilet-seat&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://bathroyale.com/collections/toilet-seats/products/family-toilet-seat">https://bathroyale.com/collections/toilet-seats/products/family-toilet-seat&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Changing out non-fancy bidet toilet seats is super easy. You just need GIANT screw drivers&amp;hellip;a 3/8 inch slotted and a #3 Philips.&lt;/p>
&lt;p>The 3/8 inch 6-8 inch shank slotted screw drivers are actually being marketed as &amp;ldquo;demolition screwdrivers&amp;rdquo; these days because they are super durable and really good at prying. They are better than pry bars in a lot of cases and can be hammered. Anyway, I&amp;rsquo;m rambling now&amp;hellip;&lt;/p>
&lt;p>Here&amp;rsquo;s the new Kohler soft close.
&lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/422AB346-1798-4574-8B1C-F999DDAD978B.JPG" alt="" width="2049" height="1536" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/78862CDC-01D9-4B1C-95F1-C0A10617F7F1.JPG" alt="" width="2049" height="1536" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/F438E6EA-D30C-416F-A386-C4F408058C38.JPG" alt="" width="2049" height="1536" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/94101779-9C49-4924-9F3F-06B819D3C330.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>There&amp;rsquo;s a little trick here which is to make sure the under-seat screw nuts have their long tails facing the wall. This makes it easier to unscrew the toilet seat.&lt;/p>
&lt;video width="100%" controls>
 &lt;source src="assets/9C0405D7-AE44-4B71-8D91-E78E5CBA0CDC.mp4" type="video/mp4">
 Your browser does not support the video tag.
&lt;/video>
&lt;p>The bigger project here is changing out the Kohler Bidet seat with one of the Bath Royale seats. Yes, Bath Royale! That&amp;rsquo;s an actual company! And they make good toilet seats!&lt;/p>
&lt;p>Most of the difficulty in this project is the fact that these fancy bidet seats have a custom water supply line.
&lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/A2F1A34D-1304-4916-909A-030F54387416.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/C4750B5A-2830-423A-A659-D2704E98B7AE.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>So our main objective is to remove the plastic supply lines and the T valve connected to the tank.&lt;/p>
&lt;p>While I could&amp;rsquo;ve chosen to keep the plastic supply line connected to the valve on the wall, I wanted to use a the same lines that were on the other toilets, which was a flexible stainless steel supply line.&lt;/p>
&lt;p>Getting the tools ready&lt;/p>
&lt;p>&lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/549C07C7-1475-4179-891D-3E1ED750AE58.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>I made sure to pick up a stop valve as well, in case I needed to replace that too. &lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/FA1A9B7A-1ABE-453C-8FAF-D9B96893CCA5.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Honestly, I got lazy and didn&amp;rsquo;t end up doing that part, because I was already going long and didn&amp;rsquo;t want to take longer. Replacing this part would&amp;rsquo;ve involved turning off the water to the house. In case you&amp;rsquo;re reading this and ever need to take on that project, though, just keep that in mind. Also keep in mind the sizes listed here.&lt;/p>
&lt;p>1/2 in comp inlet means the compression fitting to the pipe (inlet = water going in)
3/8 in comp outlet means the compression fitting to the supply line (outlet = water going out)
1/4 turn is just a style thing. It means you turn the valve a quarter circle to stop or release the flow&lt;/p>
&lt;p>Moving on, my first order of business was actually to clean things, since the ground was filthy and my bucket was filthy!
&lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/FEA08B9D-6DFB-43A2-8E83-A9237C1BE897.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/7761C76E-3823-45E3-BAD1-9AEFE961A0E6.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>You have to turn the water off at the valve to change the supply line, so I did that and flushed the toilet to remove the excess water and pressure.&lt;/p>
&lt;p>&lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/926D68F2-BABB-4EE9-B0C0-88F5C35DEA04.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>I&amp;rsquo;m going to admit a dumb mistake here. That angle stop is NOT turned all the way. I found this out the hard way. Since this isn&amp;rsquo;t a project I&amp;rsquo;ve done before, I didn&amp;rsquo;t realize that the fill valve in the toilet should NOT have kept doing work. I put a zip tie on the fill valve to stop it and got out this cup to dump some of the water. Ugh.
&lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/0B0E58BC-1E99-4791-81C2-D04C74800996.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/891C721A-FF95-45EC-AA7A-AA62A8A616BD.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Anyway, after being quite a moron for a while, I realized I just needed to actually close the valve by twisting it all the way
&lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/C8FCF3C3-BEAD-4FE8-807C-9880A1F0F5DF.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Also, since I had to look inside the tank, I noticed a bunch of these little plastic dingleberries. I went ahead and cleaned those out using a giant sponge. Giant sponges are magic.
&lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/CFA669E4-A446-492E-BE67-0883A214D1B3.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/72AAA483-7915-495E-AB02-D7C157F2307E.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/5C95503A-DF86-4ABE-A2BD-54810053F312.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/B4A22B1F-3E13-42E9-9012-3A8ED8FFFB79.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>OK, now that the water is ACTUALLY off, time to loosen all the fittings without getting squirted.
&lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/5D91EDEC-3AB6-4347-A242-8108F21B951B.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/F2DFB06D-D77C-456D-8F58-2AECAF8A950C.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/7A3A49AD-ACEA-4884-8699-3FC192757EE5.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/7AE93F96-8AC3-495D-BE32-0630C51B38A2.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/E95F8817-4278-4EA1-95D7-F2BDACD7A530.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/95247EDF-E717-470F-816B-63FD690D7C65.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

Now it&amp;rsquo;s time to remove the behemoth, starting by loosening the plastic nuts under the seat.
&lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/8F4B0BCD-249A-458B-BCA2-D75521ED2130.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/A7202DD7-4574-4F5B-95F0-4AC254A74B1C.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>You&amp;rsquo;ll see me use dishwashing gloves on almost every job. They are crazy useful. They are basically a rubber grip on your fingertips and are the best tool at loosening tight glass, metal, and plastic fittings. I use these things to open jars as well. Such a mundane household item, but one of the most useful for handy work!&lt;/p>
&lt;p>Look at how gross this was underneath, this is part of the reason why we&amp;rsquo;re getting rid of it - hard to clean.
&lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/40A058E3-933C-4ABA-ABFD-C9B05DCFA720.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/0039CA5B-D524-47F4-A44E-CBF476A1C20E.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/55325026-1976-4202-B3FA-E6C26586B99F.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/079F3018-E67C-4C6C-8BE1-C36D8B76FA14.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Time to install the new supply line. Not pictured: use a wrench to tighten the connection at the valve.
&lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/A160014E-5C99-4C1C-A3F3-456E73BA0A6D.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/7D424274-A010-480C-B749-43CF22B3880B.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/3571357E-C47A-4B9E-BC6A-3EAECF12215B.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

Hand tightening at the tank is all you need, actually don&amp;rsquo;t use a wrench for that!&lt;/p>
&lt;p>Installing the fancy bath royale seat with my giant screw driver.
&lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/5B564626-D193-4781-867A-EE19A8519CE3.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/18570A59-F697-4831-ACAB-C9E4B0C79AB1.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/A0A19958-B7D0-462F-9C40-BC863A7B3426.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Instructions say to get the spacing between the posts 4 and 5/8 inches apart. That&amp;rsquo;s probably the &amp;ldquo;biggest&amp;rdquo; downside to this seat. The kohler soft close was brain dead simple - just screw it on.&lt;/p>
&lt;p>&lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/F74EDE5B-ABD5-4092-BD90-B34745DC950F.JPG" alt="" width="2049" height="1536" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Biggest upside is that the seat comes right off and makes it super easy to clean the bowl itself. There&amp;rsquo;s a little button in the back to release it.
&lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/79B88ACC-73F8-4E01-A544-2F1760DA0E12.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/AAFA3F7D-EE7E-4456-B6A4-B7488B4ACCE4.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Just finishing touches after this
&lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/4A8211D7-656D-4884-8B9D-D18F64241840.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/0A4E3F54-EA48-44BA-8558-5FEEEEF9B9EA.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>And then&amp;hellip;
&lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/73B5BC6D-B038-49A9-9D81-91F9F432245F.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/0A2DDD34-8E9C-4611-9488-C44CB927E870.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/toilet-seats/assets/AC34F83B-84A2-47E9-8171-C293D98046FF.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;video width=100% controls>
 &lt;source src="assets/39EBA4B3-BEBE-4EE7-8A67-B232B1475AC5.mp4" type="video/mp4">
 Your browser does not support the video tag.
&lt;/video></content:encoded></item><item><title>Shower Reseal</title><link>https://www.mikeschweitzer.com/posts/shower-reseal/</link><pubDate>Wed, 26 May 2021 00:00:00 +0000</pubDate><guid>https://www.mikeschweitzer.com/posts/shower-reseal/</guid><description>Our place had some really nice bathroom and kitchen upgrades installed, but for whatever reason they were pretty stingy with the sealant. Some of the existing sealant has also corroded.</description><content:encoded>&lt;p>Our place had some really nice bathroom and kitchen upgrades installed, but for whatever reason they were pretty stingy with the sealant. Some of the existing sealant has also corroded.&lt;/p>
&lt;p>One especially problematic area was the bottom of our shower door
&lt;img src="https://www.mikeschweitzer.com/posts/shower-reseal/assets/8B43AC50-0720-405A-83FC-308751EBBC47.JPG" alt="" width="2049" height="1536" loading="lazy" decoding="async">
&lt;/p>
&lt;p>This spot actually had water leaking out of the bottom
&lt;img src="https://www.mikeschweitzer.com/posts/shower-reseal/assets/3AE01F92-0203-4DDF-BAD0-AE180389FD5B.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>And this spot just had a big gap where they over cut the metal and didn&amp;rsquo;t bother to sand it
&lt;img src="https://www.mikeschweitzer.com/posts/shower-reseal/assets/F0573F55-5163-413D-AE5E-2F920837F4F4.JPG" alt="" width="2049" height="1536" loading="lazy" decoding="async">
&lt;/p>
&lt;p>So we&amp;rsquo;re going to fix this! Rough strategy is:&lt;/p>
&lt;ul>
&lt;li>Get some highly rated clear silicone sealant&lt;/li>
&lt;li>Cut out the existing sealant&lt;/li>
&lt;li>Form a barrier in that gap with steel epoxy putty so water can&amp;rsquo;t get inside the railing
&lt;ul>
&lt;li>This stuff is great for filling holes in metal or bonding cracked metal&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Use painter&amp;rsquo;s tape on the longer areas to get clean lines since this is a high traffic zone&lt;/li>
&lt;li>Apply generous amounts of sealant&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="https://www.mikeschweitzer.com/posts/shower-reseal/assets/7C557AB6-E535-4F5A-9AD8-43CE70B2A30B.JPG" alt="" width="2049" height="1536" loading="lazy" decoding="async">
&lt;/p>
&lt;p>The putty knife and utility knife were the weapons of choice for scraping the existing stuff away. This was my first time doing this size of a job, so I had to iterate on my scraping techniques a lot. I definitely spent a lot of time working harder, not smarter.
&lt;img src="https://www.mikeschweitzer.com/posts/shower-reseal/assets/1501C351-971F-4C27-B7CC-A10FB90534EF.JPG" alt="" width="2049" height="1536" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/shower-reseal/assets/F3237F85-7FAD-46F4-AFDE-512C04C4E5CE.JPG" alt="" width="2049" height="1536" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Water started to come out of the joints as I scraped off the old sealant, which was a sign that this problem was definitely going to get worse sooner than later.
&lt;img src="https://www.mikeschweitzer.com/posts/shower-reseal/assets/63C51334-D3AB-4271-9E56-D78809B0B38E.JPG" alt="" width="2049" height="1536" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Inside shot of how bad this was
&lt;img src="https://www.mikeschweitzer.com/posts/shower-reseal/assets/B92DA1E9-C586-4F56-9B6A-7304AA5D0A50.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Scraping took a couple hours as I worked on my technique. The technique I ended up relying on to remove large strips of sealant at once:&lt;/p>
&lt;ul>
&lt;li>Cut open a slot in the sealant with the utility knife&lt;/li>
&lt;li>Stand the putty knife upside down, with the blade in the slot that was made in the previous step&lt;/li>
&lt;li>Twist the knife horizontally to a 45 degree angle&lt;/li>
&lt;li>Press downward and push forward&lt;/li>
&lt;/ul>
&lt;p>Sadly since this is a 2-handed process, I didn&amp;rsquo;t get great in-progress pictures, but here&amp;rsquo;s the result
&lt;img src="https://www.mikeschweitzer.com/posts/shower-reseal/assets/0EC4C2FB-D5A4-48F0-825C-4240E4560039.JPG" alt="" width="2049" height="1536" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/shower-reseal/assets/05CACF16-94F0-4442-B083-10EF93559CF1.JPG" alt="" width="2049" height="1536" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/shower-reseal/assets/5FF210D2-6A2E-457C-9184-9C1723C2FE89.JPG" alt="" width="2049" height="1536" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/shower-reseal/assets/D843A4AB-E096-4BF7-AB99-3D78CA210E8A.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

OK time to flex my arts and crafts skills with this putty. I cut a chunk off and rolled it around in my hand. It starts to harden after a minute so you have to work fast.
&lt;img src="https://www.mikeschweitzer.com/posts/shower-reseal/assets/4C4137FD-D8C3-4E44-8E6E-000A4BEA2D40.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/shower-reseal/assets/61D1784A-E651-46CD-AF83-B7B89AA76A6B.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Prepping the area for the next step
&lt;img src="https://www.mikeschweitzer.com/posts/shower-reseal/assets/9FAAC63F-773D-49A1-AC04-20CED7C3DE47.JPG" alt="" width="2049" height="1536" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/shower-reseal/assets/EABB3664-DBC5-452B-A9B5-9729CBD12EB3.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>This sealant is really great. I bought several tubes lol! It has a nice cutting guide at the tip, and a great reusable cap.
&lt;img src="https://www.mikeschweitzer.com/posts/shower-reseal/assets/4F7FC657-1AE4-478C-BAC9-09139D9C02A3.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/shower-reseal/assets/D3E6D636-ED62-43ED-BA74-C1BBBFD0AF72.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>I don&amp;rsquo;t have great in progress pictures of actually applying the sealant, so here&amp;rsquo;s what it looks like afterward. I put an obnoxious amount because I don&amp;rsquo;t want to deal with this problem again for a long time lol
&lt;img src="https://www.mikeschweitzer.com/posts/shower-reseal/assets/EC555786-C156-43FF-9005-EEF161FFD403.JPG" alt="" width="2049" height="1536" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/shower-reseal/assets/447309E5-0F29-46E7-A746-C330F461A4F3.JPG" alt="" width="2049" height="1536" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/shower-reseal/assets/98251500-BCA5-4301-9A1F-5D01978D41F2.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/shower-reseal/assets/E6EB7366-C8FF-45B7-9BBF-A7F65243B704.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>The main trick is to try to apply even pressure to get the sealant in all the spaces it needs to go, then put some water on your fingers and smooth it out with your fingers. Seriously, your fingers. Don&amp;rsquo;t use tools for that part, it&amp;rsquo;ll get way messier and won&amp;rsquo;t look as smooth. SOMETIMES the putty knife can help to flatten out awkward corners but the sealant will most likely drag off the surface when you pull your knife away.&lt;/p>
&lt;p>So at this point I realized I made a horrible mistake, which was that the plastic siding on the door, above the epoxy putty, that helps hold the doors together, wasn&amp;rsquo;t able to close as tightly as it used to, which prevented the door from closing.
&lt;img src="https://www.mikeschweitzer.com/posts/shower-reseal/assets/73CEF074-93B1-4620-B52E-164246A9AB6D.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/shower-reseal/assets/EE1C859B-A199-4A18-8169-A8BBA18593E1.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Time to get the mini filing set out. I had to do a LOT more filing than I expected, yikes! Luckily the epoxy putty is ultra durable after it hardens.
&lt;img src="https://www.mikeschweitzer.com/posts/shower-reseal/assets/61C36EED-8580-4641-AB4B-C1F95E73B84E.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/shower-reseal/assets/B615C33C-FCC6-4BCB-930C-EC67E0162149.jpeg" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>The finished product&lt;/p>
&lt;video width=100% controls>
 &lt;source src="assets/2FD0025A-29AE-4147-9230-2761D335318B.mp4" type="video/mp4">
 Your browser does not support the video tag.
&lt;/video>
&lt;video width=100% controls>
 &lt;source src="assets/E218C849-829D-47D8-B1D8-2A8ED3B7726A.mp4" type="video/mp4">
 Your browser does not support the video tag.
&lt;/video></content:encoded></item><item><title>Vacancy and Humidity Sensors</title><link>https://www.mikeschweitzer.com/posts/vacancy-humidity-sensors/</link><pubDate>Wed, 28 Apr 2021 00:00:00 +0000</pubDate><guid>https://www.mikeschweitzer.com/posts/vacancy-humidity-sensors/</guid><description>The laundry room and master toilet have a 2-gang configuration with single pole switches.
They control the overhead light and exhaust fan. We kept leaving these on for long periods of time, so the main objective was to automate shut off.</description><content:encoded>&lt;p>The laundry room and master toilet have a 2-gang configuration with single pole switches.&lt;/p>
&lt;p>They control the overhead light and exhaust fan.
&lt;img src="https://www.mikeschweitzer.com/posts/vacancy-humidity-sensors/assets/495982EE-6706-4B7F-B7DE-F4F8062F605C.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>We kept leaving these on for long periods of time, so the main objective was to automate shut off.
&lt;img src="https://www.mikeschweitzer.com/posts/vacancy-humidity-sensors/assets/C08EDFC3-8D57-40BA-A9CA-32EABE5C277A.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Setting up!
&lt;img src="https://www.mikeschweitzer.com/posts/vacancy-humidity-sensors/assets/3C652536-9791-4C2F-BAA9-FA8032B65F85.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/vacancy-humidity-sensors/assets/6D4FC343-A46E-4F65-8BBA-AF5163E15697.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/vacancy-humidity-sensors/assets/E7C5C043-40E3-4FB8-9F5A-29485FBFF893.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>I&amp;rsquo;m just a fraudulent electrician, not a real one, so I went through a bunch of experimenting to find stuff out. Like tagging the wrong wire as the hot wire. Turns out all the hot wires were wired together with the wire nut and the load wires were direct from wall to fixture. I thought it was the opposite!&lt;/p>
&lt;p>&lt;img src="https://www.mikeschweitzer.com/posts/vacancy-humidity-sensors/assets/E90C9863-72DA-4FB9-A18B-C841A0501B08.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/vacancy-humidity-sensors/assets/96E4A0EC-EB32-41F6-9092-B9608C7255D0.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/vacancy-humidity-sensors/assets/1DB2CB11-3214-4BFC-9A66-17F0FC072873.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Wire cutters are not my preference for straightening wires. I&amp;rsquo;m learning that I prefer needle nose pliers 🤷‍♂️
&lt;img src="https://www.mikeschweitzer.com/posts/vacancy-humidity-sensors/assets/DD6179C6-2665-461A-A52E-D3CFFA8238B1.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/vacancy-humidity-sensors/assets/A799C09D-1424-4078-B948-0986756BC9F6.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/vacancy-humidity-sensors/assets/BF45D05F-4310-47F8-8E75-412CDB446DB2.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Closeup of the wiring.
&lt;img src="https://www.mikeschweitzer.com/posts/vacancy-humidity-sensors/assets/47AD4B28-3B09-4971-A11F-06771D719659.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Removing pushed in wires and almost breaking my lens screw driver
&lt;img src="https://www.mikeschweitzer.com/posts/vacancy-humidity-sensors/assets/28048884-F9A6-46C5-9D1D-E5975BD01D60.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/vacancy-humidity-sensors/assets/784567D2-DD5D-4B86-B3EA-A9B4F8E506D7.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Spreading wires is generally good practice when changing multiple fixtures at once to not get confused
&lt;img src="https://www.mikeschweitzer.com/posts/vacancy-humidity-sensors/assets/17BBFEA0-F022-4C55-9687-448F715FA276.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>This is where my fraudulence goes on full display. I thought I could get away with wiring some of the neutral wires directly into the fixtures, but that didn&amp;rsquo;t work at all after trying most of them. I have a lot to learn about house wiring still! Also it was painful separating the neutral wires from each other due to the stiffness.
&lt;img src="https://www.mikeschweitzer.com/posts/vacancy-humidity-sensors/assets/2D521E48-1F0C-4C11-9F6B-AA1B45B28F16.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/vacancy-humidity-sensors/assets/A3F51698-EAC3-44D6-9727-3BA74E92FB15.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/vacancy-humidity-sensors/assets/F1630EE6-C9F5-484A-808C-497F5A88FACF.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>This &amp;ldquo;experiment&amp;rdquo; added an hour to my time because of going back and forth to the breaker to test.&lt;/p>
&lt;p>&lt;img src="https://www.mikeschweitzer.com/posts/vacancy-humidity-sensors/assets/5948481F-2966-4EDE-9FF4-6BAEA3F6BD21.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Time for some jumper wires. Had to get out the 14/3 Romex and cut out the white wires. Kind of a waste of the other wiring, but I really want a consistent jacket color.
&lt;img src="https://www.mikeschweitzer.com/posts/vacancy-humidity-sensors/assets/C86A488B-6FBB-43FF-A769-E326D36D287E.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/vacancy-humidity-sensors/assets/C176ECAD-995A-49B3-B368-8576FB95AA4F.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/vacancy-humidity-sensors/assets/E7BC2AC9-EF43-4D12-8BA6-95A3C79605FB.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/vacancy-humidity-sensors/assets/AA31345E-7D4F-44F3-94CB-2F52F62EC689.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/vacancy-humidity-sensors/assets/36B5C836-215C-4A20-9093-00E5FB4D50AF.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/vacancy-humidity-sensors/assets/F3481F53-749A-4235-ADA3-F5FDB87BBE92.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Turned the breaker back on and&amp;hellip;success!
&lt;img src="https://www.mikeschweitzer.com/posts/vacancy-humidity-sensors/assets/8E2C17DA-BE73-4030-ABB7-992D70A7FD59.JPG" alt="" width="2049" height="1536" loading="lazy" decoding="async">
&lt;/p>
&lt;p>This is one of the hardest parts that I love to complain about&amp;hellip;aligning switches on the wall. So chonky.
&lt;img src="https://www.mikeschweitzer.com/posts/vacancy-humidity-sensors/assets/524795E4-68C1-43F6-B192-D52A7307EF3E.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Did some setting adjustment and cleanup
&lt;img src="https://www.mikeschweitzer.com/posts/vacancy-humidity-sensors/assets/7905379B-7117-465E-9DB1-8B15E63174C2.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/vacancy-humidity-sensors/assets/E751CD2D-F82E-4AC1-839C-28DC0001FE48.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/vacancy-humidity-sensors/assets/52CFCE86-4CE4-4F4C-AA45-45FC75D715D6.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Put the fancy new Lutron wallplate on&amp;hellip;and kind of a big gap behind the fan switch 😕
&lt;img src="https://www.mikeschweitzer.com/posts/vacancy-humidity-sensors/assets/7B60CCEB-5755-4344-ACE0-8535F7C24DFD.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/vacancy-humidity-sensors/assets/A235DAD2-A90D-4DDF-8792-9B905ACAAE32.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>I basically had to redo the alignment on the fan switch to close the gap a bit more
&lt;img src="https://www.mikeschweitzer.com/posts/vacancy-humidity-sensors/assets/BB8A7336-C49A-4524-AA16-41C896C5106F.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/vacancy-humidity-sensors/assets/DEBEDD74-70B1-4BA8-B194-91FF875B4C2D.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Good enough!
&lt;img src="https://www.mikeschweitzer.com/posts/vacancy-humidity-sensors/assets/621D1617-3FF6-4C36-91FF-E7571A61ECDA.JPG" alt="" width="2049" height="1536" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Replicated this setup in the master bathroom
&lt;img src="https://www.mikeschweitzer.com/posts/vacancy-humidity-sensors/assets/0F3D1268-67FE-4A14-8D0E-29528DC985D1.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/vacancy-humidity-sensors/assets/BCA2E667-B02E-4709-A6B6-B716852F8EE8.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p></content:encoded></item><item><title>Occupancy Sensor Switch</title><link>https://www.mikeschweitzer.com/posts/occupancy-sensor/</link><pubDate>Tue, 13 Apr 2021 00:00:00 +0000</pubDate><guid>https://www.mikeschweitzer.com/posts/occupancy-sensor/</guid><description>We have a walk in closet, and we constantly forget to turn the light switch off. Time to solve this problem with automation!
There are 2 types of motion-sensing light switches: Occupancy sensors activate with motion and automatically shut off Vacancy sensors require manual activation but also automatically shut off</description><content:encoded>&lt;p>We have a walk in closet, and we constantly forget to turn the light switch off. Time to solve this problem with automation!&lt;/p>
&lt;p>There are 2 types of motion-sensing light switches:
Occupancy sensors activate with motion and automatically shut off
Vacancy sensors require manual activation but also automatically shut off&lt;/p>
&lt;p>I accidentally bought an occupancy sensor, thinking it was a vacancy sensor. That&amp;rsquo;s how I learned about this! Luckily since this is a closet, we didn&amp;rsquo;t mind the auto-on thing.&lt;/p>
&lt;p>Here&amp;rsquo;s the original switch
&lt;img src="https://www.mikeschweitzer.com/posts/occupancy-sensor/assets/74B2E590-E13B-4D7C-9222-4BA9661956BD.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>The occupancy sensor
&lt;img src="https://www.mikeschweitzer.com/posts/occupancy-sensor/assets/A1E880D7-EFEA-49C5-9150-EF1C0B6CA3E8.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/occupancy-sensor/assets/7F121BC9-B7E7-413D-8AF4-9EE1BAA4417C.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/occupancy-sensor/assets/B10D8130-D583-4BD6-8A4E-7AFCBB49CD5D.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Gettin to work!
&lt;img src="https://www.mikeschweitzer.com/posts/occupancy-sensor/assets/0C7B4E2E-DD5C-4FE4-87E7-46D9082EB3F2.JPG" alt="" width="2049" height="1536" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/occupancy-sensor/assets/34934132-984D-44DE-AECE-F3109B99E353.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/occupancy-sensor/assets/B3580CF4-8795-46CA-81EA-50EE036FDE91.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Inspecting wiring
&lt;img src="https://www.mikeschweitzer.com/posts/occupancy-sensor/assets/E1F29831-9075-4D90-BF53-E969894CBCD4.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/occupancy-sensor/assets/CFBA3CD4-1964-49B3-BA1A-BCD646A6C38F.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Turned off the breaker switch before proceeding.&lt;/p>
&lt;p>Mini screw drivers are key for releasing pushed wiring
&lt;img src="https://www.mikeschweitzer.com/posts/occupancy-sensor/assets/698965CA-12CA-44B4-86AD-CEDD747FBB90.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/occupancy-sensor/assets/EC0DAC97-994F-4C43-9506-F21D15253915.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/occupancy-sensor/assets/0E112DB2-A01F-4A81-B623-49487E1C1253.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Briefly turned the breaker back on to identify the hot wire with a contactless voltage tester and tag it with electrical tape
&lt;img src="https://www.mikeschweitzer.com/posts/occupancy-sensor/assets/BE99B21F-C34D-4F69-A636-244A0B643AD8.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;video width=100% controls>
 &lt;source src="assets/5632EB05-767D-4EE2-8EC0-05A5200F9820.mp4" type="video/mp4">
 Your browser does not support the video tag.
&lt;/video>
&lt;p>Smooshing wires into a box is surprisingly more difficult than it looks. It&amp;rsquo;s actually enough to make me not want to replace more switches hahaha.
&lt;img src="https://www.mikeschweitzer.com/posts/occupancy-sensor/assets/C3BAA59D-4F9F-4593-A21D-46270BA5E4AD.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/occupancy-sensor/assets/218B0C5E-A6DD-4D65-8029-52ADD9C3F50A.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Turned the breaker back on and tuned the knobs.&lt;/p>
&lt;p>Took this opportunity to swap out the old wall plate for a fancier Lutron plate.
&lt;img src="https://www.mikeschweitzer.com/posts/occupancy-sensor/assets/531D6C0A-AB1E-4898-8868-964551FC10D2.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/occupancy-sensor/assets/4430AE92-E422-4154-B998-44AE24A03AF0.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/occupancy-sensor/assets/D4980B00-00FF-4877-BBAF-BCC26D96BE00.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>This always happens after doing work on switches&amp;hellip;didn&amp;rsquo;t get a picture but trust me I vacuumed! Also apparently my base boards need repainting.
&lt;img src="https://www.mikeschweitzer.com/posts/occupancy-sensor/assets/2C44B86E-4A97-4648-8D76-99B0289B10E7.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">
&lt;/p>
&lt;p>Final result
&lt;video width=100% controls>
&lt;source src="assets/2AF38968-DC2C-4276-AF96-E2139CD16D21.mp4" type="video/mp4">
Your browser does not support the video tag.
&lt;/video>&lt;/p></content:encoded></item><item><title>Nest Thermostat</title><link>https://www.mikeschweitzer.com/posts/nest-thermostat/</link><pubDate>Mon, 12 Apr 2021 00:00:00 +0000</pubDate><guid>https://www.mikeschweitzer.com/posts/nest-thermostat/</guid><description>So this is a fun one - installing everyone&amp;rsquo;s favorite thermostat, the Nest.
I was a bit crunched for time so I didn&amp;rsquo;t end up getting as many progress photos as I wanted. This project also ended up being a bit more DIY than my last couple Nest installations, which were pretty straightforward.</description><content:encoded>&lt;p>So this is a fun one - installing everyone&amp;rsquo;s favorite thermostat, the Nest.&lt;/p>
&lt;p>I was a bit crunched for time so I didn&amp;rsquo;t end up getting as many progress photos as I wanted. This project also ended up being a bit more DIY than my last couple Nest installations, which were pretty straightforward.&lt;/p>
&lt;p>First, removing the old thermostats. This has a ton of battery backup power for some reason.&lt;/p>
&lt;img style="float:left" width="50%" src="assets/D3D42DED-61F4-48CE-9CB6-081A47BD3D02.JPG">
&lt;img style="float:left" width="50%" src="assets/7A2F9986-155B-4281-8868-8B3C7DF7FCE2.JPG">
&lt;p>Pictures of the wiring to tag stuff later for the Nest&lt;/p>
&lt;figure>&lt;img src="https://www.mikeschweitzer.com/posts/nest-thermostat/assets/IMG_6418.jpeg">
&lt;/figure>

&lt;figure>&lt;img src="https://www.mikeschweitzer.com/posts/nest-thermostat/assets/IMG_6421.jpeg">
&lt;/figure>

&lt;p>Time to turn the breaker off. Typically, &amp;ldquo;FAU,&amp;rdquo; meaning Forced Air Unit, is the one you want. This switch controls the furnace/fan and thermostat wall units. The AC switch is for the AC unit and doesn&amp;rsquo;t need to be shut off.&lt;/p>
&lt;p>Labeling wires&lt;/p>
&lt;img style="float:none" width="33%" src="assets/IMG_6422.PNG">
&lt;img style="float:none" width="33%" src="assets/IMG_6423.PNG">
&lt;img style="float:none" width="33%" src="assets/IMG_6424.jpeg">
&lt;p>This is where it gets complicated&lt;/p>
&lt;figure>&lt;img src="https://www.mikeschweitzer.com/posts/nest-thermostat/assets/51BE62A1-DD32-404A-9CE8-5A531CF6D03A.JPG"
 alt="Behold this mess" width="50%">&lt;figcaption>
 &lt;p>Behold this mess&lt;/p>
 &lt;/figcaption>
&lt;/figure>

&lt;p>Couple things going on here:&lt;/p>
&lt;p>This is the wrong type of outlet box for this fixture. This box is for a single pole light switch, not a thermostat. That&amp;rsquo;s the biggest reason this turned more DIY than I expected.
The old thermostat wasn&amp;rsquo;t actually using any of the screw holes from the box. There are 2 unused top holes and 2 in the center for the old thermostat.&lt;/p>
&lt;p>I panicked a bit to try to figure out what to do since I was already over time, but decided that I&amp;rsquo;ll try using just the top screw hole in the box and see if that works.&lt;/p>
&lt;p>Luckily I bought a third party trim plate large enough to cover up all the wall blemishes, otherwise I would&amp;rsquo;ve needed to spackle and maybe even paint (I hate painting).
&lt;img src="https://www.mikeschweitzer.com/posts/nest-thermostat/assets/86F297A1-FC46-47A7-81CB-BB1F7310BABA.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

Carrying on&amp;hellip; Needle nose pliers (pictured) and wire cutters (not pictured) are your best friends for wiring work.
&lt;img src="https://www.mikeschweitzer.com/posts/nest-thermostat/assets/E3CD7D35-3757-4F1F-808E-926CBB6A353A.JPG" alt="" width="1125" height="2436" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/nest-thermostat/assets/1ACDA2C3-6636-4675-BC60-B011E6BF755D.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/nest-thermostat/assets/5E87E232-8156-4545-8845-931C5FAAF057.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

At this point I tried putting the screen on the base and the whole thing felt pretty wobbly against the trim plate as well as misaligned despite the level being in the center.&lt;/p>
&lt;p>Panic again! 😖&lt;/p>
&lt;p>I decided to take a crack at adding a nut to the back of the bottom screw hole of the trim plate.
&lt;img src="https://www.mikeschweitzer.com/posts/nest-thermostat/assets/041AB5CC-328C-4135-A919-4256953BE386.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/nest-thermostat/assets/5BC4BC09-4517-4F08-A168-EBCEF0F9EE23.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/nest-thermostat/assets/21D0CE26-9345-4042-84DB-01BE0B6F5140.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

No more wobble. Crisis averted!&lt;/p>
&lt;p>Went back to the breaker, turned the FAU back on, and&amp;hellip;
&lt;img src="https://www.mikeschweitzer.com/posts/nest-thermostat/assets/ECDDBA83-CD5C-4E68-8D1E-56135AE23700.JPG" alt="" width="1536" height="2049" loading="lazy" decoding="async">

&lt;img src="https://www.mikeschweitzer.com/posts/nest-thermostat/assets/3EC028C1-52C0-45A4-9458-D9144AC0CE05.JPG" alt="" width="1125" height="2436" loading="lazy" decoding="async">

Success!&lt;/p>
&lt;p>Weirdly, I had to adjust the screws and trim plate quite a bit to get the screen to level despite the bubble being in the center. Oh well.&lt;/p>
&lt;p>No photos for the next part, but I pretty much repeated the same thing for the other thermostat. Similar situation except I had to use the bottom screw hole to get the trim plate to be flush with the wall.&lt;/p></content:encoded></item></channel></rss>