<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ben Weller</title>
    <description>The latest articles on DEV Community by Ben Weller (@bweller).</description>
    <link>https://dev.to/bweller</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4114852%2Fcda90d98-2d44-4fda-a725-56ad2d38916d.png</url>
      <title>DEV Community: Ben Weller</title>
      <link>https://dev.to/bweller</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bweller"/>
    <language>en</language>
    <item>
      <title>Terminal on Android</title>
      <dc:creator>Ben Weller</dc:creator>
      <pubDate>Sat, 24 Oct 2026 17:23:13 +0000</pubDate>
      <link>https://dev.to/bweller/terminal-on-android-403e</link>
      <guid>https://dev.to/bweller/terminal-on-android-403e</guid>
      <description>&lt;h1&gt;
  
  
  Terminal on Android
&lt;/h1&gt;

&lt;p&gt;I want to have a functional terminal on my phone (you never know when you're going to need it). I opted for Termux.&lt;/p&gt;

&lt;p&gt;Bear in mind that this setup was greatly aided &lt;a href="https://bweller.me/android-keyboard-shortcuts/" rel="noopener noreferrer"&gt;by using a keyboard and mouse&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Setup
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://wiki.termux.com/wiki/ZSH" rel="noopener noreferrer"&gt;Install ZSH + Oh-My-ZSH&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Generate SSH key for dotfiles repo: &lt;code&gt;ssh-keygen -t rsa -b 4096&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Add the key to the SSH agent by running this in &lt;code&gt;.zshrc&lt;/code&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="o"&gt;{&lt;/span&gt; &lt;span class="nb"&gt;eval&lt;/span&gt; &lt;span class="sb"&gt;`&lt;/span&gt;ssh-agent&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; ssh-add&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="o"&gt;}&lt;/span&gt; &amp;amp;&amp;gt;/dev/null
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Re-source &lt;code&gt;.zshrc&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Copy out the public key value via: &lt;code&gt;cat &amp;lt;keyfile.pub&amp;gt;&lt;/code&gt; and share it to my home computer with Google Drive&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account#adding-a-new-ssh-key-to-your-account" rel="noopener noreferrer"&gt;Add the key file to Github&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Pull the dotfiles&lt;/li&gt;
&lt;li&gt;Manually edit &lt;code&gt;.zshrc&lt;/code&gt; to add:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;source&lt;/span&gt; ~/dotfiles/commonzshrc
&lt;span class="nb"&gt;source&lt;/span&gt; ~/dotfiles/linuxspecific
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Re-source &lt;code&gt;.zshrc&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Cleanup
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Remove the SSH agent business from &lt;code&gt;.zshrc&lt;/code&gt; (it's all taken care of in the &lt;code&gt;commonzshrc&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>android</category>
      <category>termux</category>
      <category>terminal</category>
      <category>zsh</category>
    </item>
    <item>
      <title>Convert Markdown to Anki Cards with VS Code and AnkiConnect</title>
      <dc:creator>Ben Weller</dc:creator>
      <pubDate>Sat, 24 Oct 2026 17:22:12 +0000</pubDate>
      <link>https://dev.to/bweller/convert-markdown-to-anki-cards-with-vs-code-and-ankiconnect-38p1</link>
      <guid>https://dev.to/bweller/convert-markdown-to-anki-cards-with-vs-code-and-ankiconnect-38p1</guid>
      <description>&lt;h1&gt;
  
  
  Convert Markdown to Anki Cards with VS Code and AnkiConnect
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Setup
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Install &lt;a href="https://ankiweb.net/shared/info/2055492159" rel="noopener noreferrer"&gt;AnkiConnect&lt;/a&gt; in Anki.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Install the &lt;a href="https://marketplace.visualstudio.com/items?itemName=jasew.anki" rel="noopener noreferrer"&gt;Anki extension&lt;/a&gt; in VS Code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Update the VS Code &lt;code&gt;settings.json&lt;/code&gt; file to include:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"anki.md.insertNewCardID"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nl"&gt;"anki.md.updateCards"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Usage
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Creating/Updating Cards
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Open Anki.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In VS Code, navigate to any Markdown file from which you'd like to create Anki cards.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Note:&lt;/strong&gt; The optimal format for this workflow is:
&lt;/li&gt;
&lt;/ul&gt;

&lt;pre class="highlight plaintext"&gt;&lt;code&gt;## Card Front

Card back
&lt;/code&gt;&lt;/pre&gt;


&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run one of the VS Code commands to send the content to a deck:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/jasonwilliams/anki?tab=readme-ov-file#send-to-deck" rel="noopener noreferrer"&gt;&lt;code&gt;Anki: Send To Deck&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/jasonwilliams/anki?tab=readme-ov-file#send-to-own-deck" rel="noopener noreferrer"&gt;&lt;code&gt;Anki: Send To Own Deck&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/jasonwilliams/anki?tab=readme-ov-file#send-to-dirname-deck" rel="noopener noreferrer"&gt;&lt;code&gt;Anki: Send to DirName Deck&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Your notes will now be up to date in Anki!&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;*I implemented these features: &lt;a href="https://github.com/jasonwilliams/anki/pull/92" rel="noopener noreferrer"&gt;create&lt;/a&gt;, &lt;a href="https://github.com/jasonwilliams/anki/pull/106" rel="noopener noreferrer"&gt;update&lt;/a&gt;&lt;/p&gt;

</description>
      <category>anki</category>
      <category>vscode</category>
      <category>markdown</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Ultimate Dotfiles</title>
      <dc:creator>Ben Weller</dc:creator>
      <pubDate>Sat, 24 Oct 2026 17:21:11 +0000</pubDate>
      <link>https://dev.to/bweller/ultimate-dotfiles-53no</link>
      <guid>https://dev.to/bweller/ultimate-dotfiles-53no</guid>
      <description>&lt;h1&gt;
  
  
  Ultimate Dotfiles
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Auto-sync, and Auto-symlink Dotfiles for Multiple OS with System Specific Values
&lt;/h2&gt;

&lt;p&gt;There are more than a few systems to manage dotfiles (examples &lt;a href="https://alexpearce.me/2016/02/managing-dotfiles-with-stow/" rel="noopener noreferrer"&gt;1&lt;/a&gt;, &lt;a href="https://www.reddit.com/r/zsh/comments/gvkuor/auto_update_dotfiles_just_like_ohmyzsh_from_git/" rel="noopener noreferrer"&gt;2&lt;/a&gt;, and &lt;a href="https://helloerika.medium.com/easy-and-beautiful-method-to-automate-dotfiles-6dc169db34f8" rel="noopener noreferrer"&gt;3&lt;/a&gt;).&lt;br&gt;
I needed a system that would be compatible with Windows (WSL), Mac, and Linux.&lt;br&gt;
I wanted to share some of the functionality between all OSes/systems, but I also wanted to keep some configurations/aliases to be OS specific and system specific.&lt;br&gt;
Unlike the above solutions, I didn't want to install extra software just for this task.&lt;br&gt;
I wanted to automatically have my my most recent changes on any machine, and I didn't want to manually copy (&lt;code&gt;cp&lt;/code&gt;) files to the expected destination directories.&lt;br&gt;
I settled on a simple private git repo + symlink solution.&lt;br&gt;
Below I've individually outlined how I implemented each feature of my system in the hope that others can pull each feature they want in ad-hoc.&lt;/p&gt;
&lt;h2&gt;
  
  
  Splitting files between OS/System
&lt;/h2&gt;

&lt;p&gt;I put individual system configurations in a named file (ex: &lt;code&gt;personal_wsl&lt;/code&gt;), while keeping OS specific configurations in separate files (&lt;code&gt;windowsspecific&lt;/code&gt;, &lt;code&gt;macspecific&lt;/code&gt;, and &lt;code&gt;linuxspecific&lt;/code&gt;).&lt;br&gt;
Then for any aliases I wanted to share across all OSes/systems I would place them in a &lt;code&gt;commonzshrc&lt;/code&gt; file.&lt;br&gt;
At shell startup my &lt;code&gt;.zshrc&lt;/code&gt; file would be sourced, so I use that as a simple entry point for a specific machine, and as such I don't include each individual &lt;code&gt;.zshrc&lt;/code&gt; file in my dotfiles repo.&lt;/p&gt;

&lt;p&gt;Thus for a Windows, Mac and Linux system the &lt;code&gt;.zshrc&lt;/code&gt; would respectively be:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# System specific source ...&lt;/span&gt;
&lt;span class="nb"&gt;source&lt;/span&gt; ~/dotfiles/windowsspecific
&lt;span class="nb"&gt;source&lt;/span&gt; ~/dotfiles/commonzshrc
&lt;span class="c"&gt;# source ~/dotfiles/machinespecific&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# System specific source ...&lt;/span&gt;
&lt;span class="nb"&gt;source&lt;/span&gt; ~/dotfiles/macspecific
&lt;span class="nb"&gt;source&lt;/span&gt; ~/dotfiles/commonzshrc
&lt;span class="c"&gt;# source ~/dotfiles/machinespecific&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# System specific source ...&lt;/span&gt;
&lt;span class="nb"&gt;source&lt;/span&gt; ~/dotfiles/linuxspecific
&lt;span class="nb"&gt;source&lt;/span&gt; ~/dotfiles/commonzshrc
&lt;span class="c"&gt;# source ~/dotfiles/machinespecific&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Auto-pull
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;commonzshrc&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;alias &lt;/span&gt;&lt;span class="nv"&gt;dotpull&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"git -C ~/dotfiles pull"&lt;/span&gt;
&lt;span class="nb"&gt;alias &lt;/span&gt;&lt;span class="nv"&gt;dotpush&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"git -C ~/dotfiles push"&lt;/span&gt;
&lt;span class="nb"&gt;alias &lt;/span&gt;&lt;span class="nv"&gt;dotcommit&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"git -C ~/dotfiles add -A &amp;amp;&amp;amp; git -C ~/dotfiles commit -m &lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;Default common commit message&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;span class="nb"&gt;alias &lt;/span&gt;&lt;span class="nv"&gt;dotcommitandpush&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"dotcommit &amp;amp;&amp;amp; dotpush"&lt;/span&gt;
&lt;span class="nb"&gt;alias &lt;/span&gt;&lt;span class="nv"&gt;dotcap&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"dotcommit &amp;amp;&amp;amp; dotpush"&lt;/span&gt;

&lt;span class="c"&gt;# SSH agent initialize&lt;/span&gt;
&lt;span class="o"&gt;{&lt;/span&gt; &lt;span class="nb"&gt;eval&lt;/span&gt; &lt;span class="sb"&gt;`&lt;/span&gt;ssh-agent&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; ssh-add&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="o"&gt;}&lt;/span&gt; &amp;amp;&amp;gt;/dev/null

&lt;span class="c"&gt;# Try and pull the most recent version of the files&lt;/span&gt;
&lt;span class="c"&gt;# This should give errors if it hits a merge conflict&lt;/span&gt;
&lt;span class="o"&gt;{&lt;/span&gt; git &lt;span class="nt"&gt;-C&lt;/span&gt; ~/dotfiles pull &lt;span class="o"&gt;}&lt;/span&gt; 1&amp;gt;/dev/null
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I still have to manually push any changes (&lt;code&gt;dotcap&lt;/code&gt;), but in practice that hasn't been a big issue.&lt;/p&gt;

&lt;h2&gt;
  
  
  Auto-symlink
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;commonzshrc&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Pull logic ...&lt;/span&gt;

&lt;span class="o"&gt;{&lt;/span&gt;&lt;span class="nb"&gt;ln&lt;/span&gt; &lt;span class="nt"&gt;-s&lt;/span&gt; ~/dotfiles/.tmux.conf ~/.tmux.conf&lt;span class="o"&gt;}&lt;/span&gt; &amp;amp;&amp;gt;/dev/null
&lt;span class="o"&gt;{&lt;/span&gt;&lt;span class="nb"&gt;ln&lt;/span&gt; &lt;span class="nt"&gt;-s&lt;/span&gt; ~/dotfiles/.gitconfig ~/.gitconfig&lt;span class="o"&gt;}&lt;/span&gt; &amp;amp;&amp;gt;/dev/null
&lt;span class="o"&gt;{&lt;/span&gt;&lt;span class="nb"&gt;ln&lt;/span&gt; &lt;span class="nt"&gt;-s&lt;/span&gt; ~/dotfiles/.vimrc ~/.vimrc&lt;span class="o"&gt;}&lt;/span&gt; &amp;amp;&amp;gt;/dev/null
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>dotfiles</category>
      <category>git</category>
      <category>zsh</category>
      <category>linux</category>
    </item>
    <item>
      <title>Terminal Batch Web Search</title>
      <dc:creator>Ben Weller</dc:creator>
      <pubDate>Sat, 24 Oct 2026 17:20:11 +0000</pubDate>
      <link>https://dev.to/bweller/terminal-batch-web-search-ll6</link>
      <guid>https://dev.to/bweller/terminal-batch-web-search-ll6</guid>
      <description>&lt;h1&gt;
  
  
  Terminal Batch Web Search
&lt;/h1&gt;

&lt;p&gt;We've all been there, Google doesn't one shot your search query and so you have to add "hackernews", "reddit" or "stackoverflow" to your query to find the relevant results.&lt;/p&gt;

&lt;p&gt;Most of the time you know even prior to sending that search if it'll be in this camp, so why not send multiple searches at once?&lt;/p&gt;

&lt;p&gt;In the spirit of the relevant &lt;a href="https://xkcd.com/1654/" rel="noopener noreferrer"&gt;XKCD&lt;/a&gt; and &lt;a href="https://github.com/devflowinc/uzi" rel="noopener noreferrer"&gt;uzi&lt;/a&gt; I've created a batch search function you can use from the terminal, pull the trigger once and you've covered your bases.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pre-reqs
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Oh my ZSH

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/web-search" rel="noopener noreferrer"&gt;Web search plugin&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Default web browser&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Implementation
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;plugins&lt;/span&gt;&lt;span class="o"&gt;=(&lt;/span&gt; ... web-search&lt;span class="o"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;function &lt;/span&gt;shotgun &lt;span class="o"&gt;{&lt;/span&gt;
    web_search google &lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; web_search google site:news.ycombinator.com &lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; web_search reddit &lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; web_search stackoverflow &lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>zsh</category>
      <category>terminal</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Scheduling ad hoc commands</title>
      <dc:creator>Ben Weller</dc:creator>
      <pubDate>Sat, 24 Oct 2026 17:19:10 +0000</pubDate>
      <link>https://dev.to/bweller/scheduling-ad-hoc-commands-50j8</link>
      <guid>https://dev.to/bweller/scheduling-ad-hoc-commands-50j8</guid>
      <description>&lt;h1&gt;
  
  
  Scheduling ad hoc commands
&lt;/h1&gt;

&lt;p&gt;The most common scheduler on Linux is, by far, &lt;strong&gt;Cron&lt;/strong&gt;.&lt;br&gt;
That said, it is not the only scheduler available on Linux.&lt;/p&gt;

&lt;p&gt;While &lt;strong&gt;Cron&lt;/strong&gt; has many advantages, it is relatively weak for one-off, ad-hoc commands that need to be run at a specific time in the future.&lt;/p&gt;

&lt;p&gt;I love &lt;strong&gt;Cron&lt;/strong&gt;, but it doesn't address the full use case that I need.&lt;/p&gt;

&lt;h3&gt;
  
  
  Enter the &lt;strong&gt;at&lt;/strong&gt; command.
&lt;/h3&gt;

&lt;p&gt;You can easily schedule a command to run at a specific time.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Need to send code out for review first thing in the morning for that coworker who only skims their inbox? The &lt;strong&gt;at&lt;/strong&gt; command can do that for you.&lt;/li&gt;
&lt;li&gt;Your company requires you to restart your machine, but the suggested time is inconvenient? The &lt;strong&gt;at&lt;/strong&gt; command lets you restart on your terms.&lt;/li&gt;
&lt;li&gt;Want to check the status of a website in another time zone, like the European version of Reddit or Hacker News? The &lt;strong&gt;at&lt;/strong&gt; command can handle that too.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;However, one thing the &lt;strong&gt;at&lt;/strong&gt; command doesn't do—and isn't designed to do—is run in full interactive mode.&lt;/p&gt;

&lt;p&gt;The problem arises if you've built up a large collection of aliases that are crucial for your development work. Most of these aliases are likely stored in your interactive shell's &lt;strong&gt;rc&lt;/strong&gt; files.&lt;/p&gt;

&lt;p&gt;While the &lt;strong&gt;at&lt;/strong&gt; command isn’t meant to run in interactive mode, I’ve chosen to bend the rules. I run it in full interactive mode so that I have access to all my aliases without any extra setup.&lt;/p&gt;

&lt;p&gt;To ensure full interactive mode works seamlessly, I’ve created a system that generates scripts for each new invocation of the &lt;strong&gt;at&lt;/strong&gt; command.&lt;/p&gt;

&lt;p&gt;This setup allows me to version control every script I’ve ever run with &lt;strong&gt;at&lt;/strong&gt; and provides a simple, organized script management system.&lt;/p&gt;

&lt;h2&gt;
  
  
  One-time setup:
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;alias &lt;/span&gt;&lt;span class="nv"&gt;atcommandonetimesetup&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'mkdir -p ~/at_scripts &amp;amp;&amp;amp; touch ~/at_scripts/golden &amp;amp;&amp;amp; echo "#!/bin/zsh -i" &amp;gt;&amp;gt; ~/at_scripts/golden'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Script creation:
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;alias &lt;/span&gt;&lt;span class="nv"&gt;atsetup&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'CURRENT_TIME=`date +%s`; cp ~/at_scripts/golden ~/at_scripts/$CURRENT_TIME &amp;amp;&amp;amp; chmod +x ~/at_scripts/$CURRENT_TIME &amp;amp;&amp;amp; vim ~/at_scripts/$CURRENT_TIME &amp;amp;&amp;amp; echo ~/at_scripts/$CURRENT_TIME'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Sample workflow:
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;➜  / atsetup
&lt;span class="c"&gt;#!/bin/zsh -i&lt;/span&gt;
&lt;span class="c"&gt;#sudo touch /yolo&lt;/span&gt;
/home/&lt;span class="nv"&gt;$USER&lt;/span&gt;/at_scripts/1741579525
➜  / at now + 2 minutes
warning: commands will be executed using /bin/sh
at Mon Mar 10 04:48:00 2025
at&amp;gt; /home/&lt;span class="nv"&gt;$USER&lt;/span&gt;/at_scripts/1741579525
at&amp;gt; &amp;lt;EOT&amp;gt;
job 3 at Mon Mar 10 04:48:00 2025
➜  / atq
3       Mon Mar 10 04:48:00 2025 a &lt;span class="nv"&gt;$USER&lt;/span&gt;
➜  / atq
➜  / &lt;span class="nb"&gt;ls &lt;/span&gt;yolo
yolo
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>linux</category>
      <category>bash</category>
      <category>cli</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Android Keyboard Shortcuts</title>
      <dc:creator>Ben Weller</dc:creator>
      <pubDate>Sat, 24 Oct 2026 17:18:09 +0000</pubDate>
      <link>https://dev.to/bweller/android-keyboard-shortcuts-2phd</link>
      <guid>https://dev.to/bweller/android-keyboard-shortcuts-2phd</guid>
      <description>&lt;h1&gt;
  
  
  Android Keyboard Shortcuts
&lt;/h1&gt;

&lt;p&gt;On &lt;a href="https://amzn.to/41RpR3K" rel="noopener noreferrer"&gt;my keyboard&lt;/a&gt;, there's three different stored Bluetooth connections, so why not use all of them? I already have stored settings for my work laptop and my personal laptop, but I use my phone every day, so why can't I use a non-touchscreen-based interface on the phone? Needless to say, I connected a mouse and keyboard to my Android phone.&lt;/p&gt;

&lt;p&gt;Despite the interfaces not being designed for mouse/keyboard at all, it worked shockingly well, and I think this might become part of my regular usage if there's something process-heavy I need to do on my phone.&lt;/p&gt;

&lt;p&gt;While kicking the tires, I was shocked at the lack of easily searchable blogs writing about this topic, see the main exception &lt;a href="https://journal.paoloamoroso.com/using-a-bluetooth-keyboard-on-android" rel="noopener noreferrer"&gt;to this trend&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Notable shortcuts:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Action&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Command + E&lt;/td&gt;
&lt;td&gt;Mail&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Command + Y&lt;/td&gt;
&lt;td&gt;YouTube&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Command + I&lt;/td&gt;
&lt;td&gt;Settings&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Command + P&lt;/td&gt;
&lt;td&gt;Music&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Command + A&lt;/td&gt;
&lt;td&gt;Calculator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Command + G&lt;/td&gt;
&lt;td&gt;Mail&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Command + H&lt;/td&gt;
&lt;td&gt;Home&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Command + L&lt;/td&gt;
&lt;td&gt;Calendar&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Command + C&lt;/td&gt;
&lt;td&gt;Contacts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Command + B&lt;/td&gt;
&lt;td&gt;Chrome (even despite the fact I have Firefox as the default)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Command + N&lt;/td&gt;
&lt;td&gt;Notification shade&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Command + M&lt;/td&gt;
&lt;td&gt;Maps&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Alt + Tab&lt;/td&gt;
&lt;td&gt;Quickly opens the recent apps&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Super + Tab&lt;/td&gt;
&lt;td&gt;Opens up recent apps but stays open&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

</description>
      <category>android</category>
      <category>productivity</category>
      <category>keyboard</category>
    </item>
    <item>
      <title>AGI Prepping</title>
      <dc:creator>Ben Weller</dc:creator>
      <pubDate>Sat, 24 Oct 2026 17:15:40 +0000</pubDate>
      <link>https://dev.to/bweller/agi-prepping-1l4o</link>
      <guid>https://dev.to/bweller/agi-prepping-1l4o</guid>
      <description>&lt;h1&gt;
  
  
  AGI Prepping
&lt;/h1&gt;

&lt;p&gt;The massive growth of LLMs has been shocking to witness, especially considering my first experience with ChatGPT. A coworker gained beta access, and I used it to generate poems in the voices of various celebrities. It repeated words excessively and had a low word limit on its output. At the time, I saw it as nothing more than a cool toy. I would have never predicted how powerful these models would become.&lt;/p&gt;

&lt;p&gt;There was certainly skepticism in online communities like Hacker News and Reddit, where many doubted the long-term viability of LLMs. However, using these models for daily tasks and interacting with them at Google has left me with little doubt—they are here to stay. I find it highly unlikely that they will have no impact, or even a net positive effect, on the software engineering job market.&lt;/p&gt;

&lt;p&gt;There is a lot of angst among software engineers, even within Google, about the trajectory of LLMs and how to plan for an uncertain future. In an effort to foster a more productive conversation, I want to share my thoughts on these risks and potential strategies to mitigate or navigate them.&lt;/p&gt;

&lt;h2&gt;
  
  
  AGI Properties
&lt;/h2&gt;

&lt;p&gt;When considering AGI and job automation, I find two key dimensions particularly interesting:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The time horizon&lt;/strong&gt;—how soon AGI will emerge.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The strength of AGI&lt;/strong&gt;—how capable it will be.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I define &lt;strong&gt;slow AGI&lt;/strong&gt; as any system that takes more than five years to develop. This threshold feels appropriate because a five-year lead time, even for a major life change, allows for solid risk mitigation strategies to be put in place. If AGI arrives more quickly, protecting oneself and ensuring a comfortable future becomes significantly harder.&lt;/p&gt;

&lt;p&gt;I define &lt;strong&gt;weak AGI&lt;/strong&gt; as any system advanced enough to eliminate my ability to find work as a software engineer. While some might argue about whether such a system qualifies as true AGI, that distinction is irrelevant to me. What matters is its impact on my employment and life—not whether it meets a philosophical definition.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Strong AGI&lt;/strong&gt;, on the other hand, is a system capable of fully automating all human jobs essential to sustaining human life.&lt;/p&gt;

&lt;h3&gt;
  
  
  Overall Approach
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Slow AGI&lt;/th&gt;
&lt;th&gt;Fast AGI&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Weak AGI&lt;/td&gt;
&lt;td&gt;&lt;a href="https://bweller.me/agi-prepping#stay-the-course-software-engineer" rel="noopener noreferrer"&gt;⌨&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://bweller.me/agi-prepping#weakfast-agi-financial-manager" rel="noopener noreferrer"&gt;🤑&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Strong AGI&lt;/td&gt;
&lt;td&gt;&lt;a href="https://bweller.me/agi-prepping#slowstrong-agi-registered-nurses" rel="noopener noreferrer"&gt;🏥&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://bweller.me/agi-prepping#prepping-doomsayer" rel="noopener noreferrer"&gt;🫨&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  General Scenarios
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Stay the Course: Software Engineer
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;Don't do something! Stand there!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Continue as a software engineer. Keep an eye on the ML space, but understand that you'll likely be employed long enough to carve out a decent living.&lt;/p&gt;

&lt;p&gt;When the time comes, there will be a very large number of unemployed people. At that point, cultural shifts may make unemployment more palatable.&lt;/p&gt;

&lt;p&gt;If cultural shifts don’t occur, there will at least be more information about the remaining playing field—what's left unconquered by AGI. You'll be able to plan better and find a more defensible position.&lt;/p&gt;

&lt;h3&gt;
  
  
  Find Alternative Employment
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;Never let a perfectly good crisis go to waste.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Choosing the right field to enter next involves many factors, but I’m drawing inspiration from the sources of monopoly power that businesses rely on to identify the most favorable characteristics.&lt;/p&gt;

&lt;p&gt;Key Barriers to Entry:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Legal Barriers&lt;/strong&gt; – Does the government restrict entry into this industry, keeping wages high?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Capital Requirements&lt;/strong&gt; – How much money would a new competitor need to enter this field?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Physical Location Barriers&lt;/strong&gt; – Is this job "text to text" (text input for text output), or does it require a strong physical component, making it accessible only to those in a specific location?

&lt;ul&gt;
&lt;li&gt;Thomas Friedman, in &lt;em&gt;The World is Flat&lt;/em&gt;, refers to these jobs as "anchored."&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;While I’m open to some additional education, I don’t want to spend an extensive amount of time retraining. Ideally, I’d reach a $100K salary within five years. However, I also want a field with a high earning ceiling, allowing me to continue retraining while employed to further increase my income potential.&lt;/p&gt;

&lt;p&gt;I’ll use data from the U.S. Bureau of Labor Statistics to refine my search and explain my reasoning for favoring or rejecting specific paths.&lt;/p&gt;

&lt;p&gt;Relevant list of occupations (see appendix for full data):&lt;/p&gt;

&lt;h4&gt;
  
  
  Unfavored
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/math/actuaries.htm" rel="noopener noreferrer"&gt;Actuaries&lt;/a&gt;&lt;/strong&gt; – Likely requires reeducation in statistics. While LLMs are currently weak at math, effective tool integration could eventually dominate this field.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/computer-and-information-technology/computer-and-information-research-scientists.htm" rel="noopener noreferrer"&gt;Computer and Information Research Scientists&lt;/a&gt;&lt;/strong&gt; – Likely requires an MS in CS, a field I believe will become significantly less valuable.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/computer-and-information-technology/information-security-analysts.htm" rel="noopener noreferrer"&gt;Information Security Analysts&lt;/a&gt;&lt;/strong&gt; – CS-adjacent and potentially vulnerable to automation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/computer-and-information-technology/software-developers.htm" rel="noopener noreferrer"&gt;Software Developers&lt;/a&gt;&lt;/strong&gt; – My current field, which I expect to decline in value.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/math/data-scientists.htm" rel="noopener noreferrer"&gt;Data Scientists&lt;/a&gt;&lt;/strong&gt; – CS-adjacent and requires significant retraining in statistics.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Semi-Favored
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/management/top-executives.htm" rel="noopener noreferrer"&gt;General and Operations Managers&lt;/a&gt;&lt;/strong&gt; – Unlikely to land a C-level job anytime soon, making it a poor backup plan.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/management/medical-and-health-services-managers.htm" rel="noopener noreferrer"&gt;Medical and Health Services Managers&lt;/a&gt;&lt;/strong&gt; – The healthcare system has significant inefficiencies, particularly in administration and management (&lt;a href="https://respiratory-therapy.com/public-health/healthcare-policy/34-percent-us-healthcare-spending/#:~:text=According%20to%20a%20study%20in,2017%2C%20or%20%242%2C500%20per%20American." rel="noopener noreferrer"&gt;source&lt;/a&gt;). While this makes the field lucrative in the short term, long-term structural reforms could disrupt it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/business-and-financial/management-analysts.htm" rel="noopener noreferrer"&gt;Management Analysts&lt;/a&gt;&lt;/strong&gt; – These roles are typically filled by prestigious university graduates. While I would enjoy solving business problems, landing one of these jobs may not be realistic.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/management/computer-and-information-systems-managers.htm" rel="noopener noreferrer"&gt;Computer and Information Systems Managers&lt;/a&gt;&lt;/strong&gt; – CS-adjacent but involves a more human-focused, deal-making component. I may be able to slot into one of these roles early on in a transition and then later transition away as I feel the field will continue to shrink&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/healthcare/veterinarians.htm" rel="noopener noreferrer"&gt;Veterinarians&lt;/a&gt;&lt;/strong&gt; – Requires extensive training and, in my opinion, is more challenging than nursing (with a higher risk of being bitten by an animal than a human). It meets all three key barriers to entry, but for personal reasons, I don't favor this route.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Highly Favored
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/management/financial-managers.htm" rel="noopener noreferrer"&gt;Financial Managers&lt;/a&gt;&lt;/strong&gt; – A field I’m passionate about. It’s highly transactional but relatively insulated from overseas competition due to legal barriers. I’ve considered this my informal backup plan, though I may need additional finance training. This training could come in the form of further education, which would also serve as an additional barrier to entry. However, I believe LLMs could eventually handle financial analysis, making this a potentially short-term option.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/healthcare/registered-nurses.htm" rel="noopener noreferrer"&gt;Registered Nurses&lt;/a&gt;&lt;/strong&gt; – Pays slightly under $100K but offers growth potential into higher-paying roles like nurse practitioner or physician assistant. This profession aligns with all three barriers I’m optimizing for: it has licensing requirements (legal barriers), requires a significant financial investment in education (capital barriers), and is physically anchored.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/healthcare/nurse-anesthetists-nurse-midwives-and-nurse-practitioners.htm" rel="noopener noreferrer"&gt;Nurse Practitioners&lt;/a&gt;&lt;/strong&gt; – Requires a master’s degree but can be pursued as an advancement from an RN role, offering the same advantages.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/healthcare/physician-assistants.htm" rel="noopener noreferrer"&gt;Physician Assistants&lt;/a&gt;&lt;/strong&gt; – Requires a master’s degree but provides strong compensation. This role could be pursued as a follow-up to an RN and carries the same advantages.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Weak/Fast AGI: Financial Manager
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;Money, money, money, money, moonnnnnaayyyyyyyyyy&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I've already passed the Series 65 exam, and I believe I could establish myself in this industry relatively easily.&lt;/p&gt;

&lt;p&gt;With a strong passion for economics and finance, this seems like the natural path if I get laid off and software engineering opportunities start to dwindle.&lt;/p&gt;

&lt;p&gt;This field also offers the potential for a stable 9-to-5 job, which could give me the flexibility to study on the side if I decide to transition into nursing.&lt;/p&gt;

&lt;h3&gt;
  
  
  Slow/Strong AGI: Registered nurses
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;Sana sana&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Returning to a two-year institution to earn an associate's degree in nursing is a viable option.&lt;/p&gt;

&lt;p&gt;I can steadily increase my pay by continuing to take additional training. The stability and low likelihood of automation or an influx of new entrants make this field attractive. If the world moves toward fast but weak AGI, the resulting chaos will make a stable career even more valuable.&lt;/p&gt;

&lt;p&gt;One significant tail risk is another pandemic, which could increase personal risk in this field. However, that remains a low-probability event in the grand scheme of things.&lt;/p&gt;

&lt;p&gt;While there has been increasing discussion about robotics, I find it unlikely that automation will replace nurses in the near future. When people are in pain, human touch is essential—something robots won’t replicate effectively anytime soon. In the long term, I expect robotics to take over complex surgeries first, leaving lower-level nursing roles relatively untouched.&lt;/p&gt;

&lt;p&gt;Even if robots advance to the point of automating nursing tasks, nurses form a large voting bloc and are legally protected through boards and licensing regulations. I find it unlikely that they would passively accept widespread automation without resistance.&lt;/p&gt;

&lt;h3&gt;
  
  
  Prepping: Doomsayer
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;Ahhhhh!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;True strong AGI or ASI is on the horizon, leaving little time to worry about trivial matters like making money.&lt;/p&gt;

&lt;p&gt;The very existence of the human species may be at stake, making it crucial to prepare for what were once considered tail-risk scenarios. Ensuring readiness for these potential disruptions is now a paramount priority.&lt;/p&gt;

&lt;p&gt;While I’m not rushing to the nearest bunker with an emergency supply kit for the next few years, I will be taking some simple, common-sense measures to hedge against this potential outcome.&lt;/p&gt;

&lt;h2&gt;
  
  
  Appendix
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.bls.gov/ooh/fastest-growing.htm" rel="noopener noreferrer"&gt;Highest projected percentage growth&lt;/a&gt;
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;OCCUPATION&lt;/th&gt;
&lt;th&gt;GROWTH RATE, 2023-33&lt;/th&gt;
&lt;th&gt;2023 MEDIAN PAY&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/computer-and-information-technology/computer-and-information-research-scientists.htm" rel="noopener noreferrer"&gt;Computer and information research scientists&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;26%&lt;/td&gt;
&lt;td&gt;$145,080 per year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/healthcare/physician-assistants.htm" rel="noopener noreferrer"&gt;Physician assistants&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;28%&lt;/td&gt;
&lt;td&gt;$130,020 per year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/healthcare/nurse-anesthetists-nurse-midwives-and-nurse-practitioners.htm" rel="noopener noreferrer"&gt;Nurse practitioners&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;46%&lt;/td&gt;
&lt;td&gt;$126,260 per year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/computer-and-information-technology/information-security-analysts.htm" rel="noopener noreferrer"&gt;Information security analysts&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;33%&lt;/td&gt;
&lt;td&gt;$120,360 per year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/math/actuaries.htm" rel="noopener noreferrer"&gt;Actuaries&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;22%&lt;/td&gt;
&lt;td&gt;$120,000 per year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/healthcare/veterinarians.htm" rel="noopener noreferrer"&gt;Veterinarians&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;19%&lt;/td&gt;
&lt;td&gt;$119,100 per year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/management/medical-and-health-services-managers.htm" rel="noopener noreferrer"&gt;Medical and health services managers&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;29%&lt;/td&gt;
&lt;td&gt;$110,680 per year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/math/data-scientists.htm" rel="noopener noreferrer"&gt;Data scientists&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;36%&lt;/td&gt;
&lt;td&gt;$108,020 per year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/business-and-financial/financial-examiners.htm" rel="noopener noreferrer"&gt;Financial examiners&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;21%&lt;/td&gt;
&lt;td&gt;$84,300 per year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/math/operations-research-analysts.htm" rel="noopener noreferrer"&gt;Operations research analysts&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;23%&lt;/td&gt;
&lt;td&gt;$83,640 per year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/life-physical-and-social-science/epidemiologists.htm" rel="noopener noreferrer"&gt;Epidemiologists&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;19%&lt;/td&gt;
&lt;td&gt;$81,390 per year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/business-and-financial/logisticians.htm" rel="noopener noreferrer"&gt;Logisticians&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;19%&lt;/td&gt;
&lt;td&gt;$79,400 per year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/healthcare/occupational-therapy-assistants-and-aides.htm" rel="noopener noreferrer"&gt;Occupational therapy assistants&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;22%&lt;/td&gt;
&lt;td&gt;$67,010 per year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/healthcare/physical-therapist-assistants-and-aides.htm" rel="noopener noreferrer"&gt;Physical therapist assistants&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;25%&lt;/td&gt;
&lt;td&gt;$64,080 per year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/installation-maintenance-and-repair/wind-turbine-technicians.htm" rel="noopener noreferrer"&gt;Wind turbine service technicians&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;60%&lt;/td&gt;
&lt;td&gt;$61,770 per year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/community-and-social-service/substance-abuse-behavioral-disorder-and-mental-health-counselors.htm" rel="noopener noreferrer"&gt;Substance abuse, behavioral disorder, and mental health counselors&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;19%&lt;/td&gt;
&lt;td&gt;$53,710 per year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/construction-and-extraction/solar-photovoltaic-installers.htm" rel="noopener noreferrer"&gt;Solar photovoltaic installers&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;48%&lt;/td&gt;
&lt;td&gt;$48,800 per year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/healthcare/veterinary-technologists-and-technicians.htm" rel="noopener noreferrer"&gt;Veterinary technologists and technicians&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;19%&lt;/td&gt;
&lt;td&gt;$43,740 per year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/healthcare/veterinary-assistants-and-laboratory-animal-caretakers.htm" rel="noopener noreferrer"&gt;Veterinary assistants and laboratory animal caretakers&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;19%&lt;/td&gt;
&lt;td&gt;$36,440 per year&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.bls.gov/ooh/most-new-jobs.htm" rel="noopener noreferrer"&gt;Most new jobs&lt;/a&gt;
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Occupation&lt;/th&gt;
&lt;th&gt;Number Of New Jobs (Projected), 2023-33&lt;/th&gt;
&lt;th&gt;2023 Median Pay&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/management/computer-and-information-systems-managers.htm" rel="noopener noreferrer"&gt;Computer and information systems managers&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;106,900&lt;/td&gt;
&lt;td&gt;$169,510 per year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/management/financial-managers.htm" rel="noopener noreferrer"&gt;Financial managers&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;138,300&lt;/td&gt;
&lt;td&gt;$156,100 per year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/computer-and-information-technology/software-developers.htm" rel="noopener noreferrer"&gt;Software developers&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;303,700&lt;/td&gt;
&lt;td&gt;$132,270 per year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/healthcare/nurse-anesthetists-nurse-midwives-and-nurse-practitioners.htm" rel="noopener noreferrer"&gt;Nurse practitioners&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;135,500&lt;/td&gt;
&lt;td&gt;$126,260 per year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/management/medical-and-health-services-managers.htm" rel="noopener noreferrer"&gt;Medical and health services managers&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;160,600&lt;/td&gt;
&lt;td&gt;$110,680 per year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/management/top-executives.htm" rel="noopener noreferrer"&gt;General and operations managers&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;210,400&lt;/td&gt;
&lt;td&gt;$101,280 per year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/business-and-financial/management-analysts.htm" rel="noopener noreferrer"&gt;Management analysts&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;107,900&lt;/td&gt;
&lt;td&gt;$99,410 per year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/healthcare/registered-nurses.htm" rel="noopener noreferrer"&gt;Registered nurses&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;197,200&lt;/td&gt;
&lt;td&gt;$86,070 per year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/business-and-financial/accountants-and-auditors.htm" rel="noopener noreferrer"&gt;Accountants and auditors&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;91,400&lt;/td&gt;
&lt;td&gt;$79,880 per year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/construction-and-extraction/electricians.htm" rel="noopener noreferrer"&gt;Electricians&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;84,300&lt;/td&gt;
&lt;td&gt;$61,590 per year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/transportation-and-material-moving/heavy-and-tractor-trailer-truck-drivers.htm" rel="noopener noreferrer"&gt;Heavy and tractor-trailer truck drivers&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;102,000&lt;/td&gt;
&lt;td&gt;$54,320 per year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/community-and-social-service/substance-abuse-behavioral-disorder-and-mental-health-counselors.htm" rel="noopener noreferrer"&gt;Substance abuse, behavioral disorder, and mental health counselors&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;84,500&lt;/td&gt;
&lt;td&gt;$53,710 per year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/construction-and-extraction/construction-laborers-and-helpers.htm" rel="noopener noreferrer"&gt;Construction laborers&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;115,400&lt;/td&gt;
&lt;td&gt;$45,300 per year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/transportation-and-material-moving/delivery-truck-drivers-and-driver-sales-workers.htm" rel="noopener noreferrer"&gt;Light truck drivers&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;96,300&lt;/td&gt;
&lt;td&gt;$42,470 per year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/healthcare/medical-assistants.htm" rel="noopener noreferrer"&gt;Medical assistants&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;118,000&lt;/td&gt;
&lt;td&gt;$42,000 per year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/transportation-and-material-moving/hand-laborers-and-material-movers.htm" rel="noopener noreferrer"&gt;Laborers and freight, stock, and material movers, hand&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;125,700&lt;/td&gt;
&lt;td&gt;$37,660 per year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/transportation-and-material-moving/hand-laborers-and-material-movers.htm" rel="noopener noreferrer"&gt;Stockers and order fillers&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;168,600&lt;/td&gt;
&lt;td&gt;$36,390 per year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/food-preparation-and-serving/cooks.htm" rel="noopener noreferrer"&gt;Cooks, restaurant&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;244,500&lt;/td&gt;
&lt;td&gt;$35,780 per year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/healthcare/home-health-aides-and-personal-care-aides.htm" rel="noopener noreferrer"&gt;Home health and personal care aides&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;820,500&lt;/td&gt;
&lt;td&gt;$33,530 per year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="https://www.bls.gov/ooh/food-preparation-and-serving/food-and-beverage-serving-and-related-workers.htm" rel="noopener noreferrer"&gt;Fast food and counter workers&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;212,500&lt;/td&gt;
&lt;td&gt;$29,540 per year&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

</description>
      <category>ai</category>
      <category>career</category>
      <category>programming</category>
    </item>
    <item>
      <title>Ultimate YouTube Enhancement</title>
      <dc:creator>Ben Weller</dc:creator>
      <pubDate>Sat, 24 Oct 2026 17:15:39 +0000</pubDate>
      <link>https://dev.to/bweller/ultimate-youtube-enhancement-3c7c</link>
      <guid>https://dev.to/bweller/ultimate-youtube-enhancement-3c7c</guid>
      <description>&lt;h1&gt;
  
  
  Ultimate YouTube Enhancement
&lt;/h1&gt;

&lt;p&gt;For better or worse, YouTube hosts some of the best content on the web.&lt;/p&gt;

&lt;p&gt;One of YouTube’s major downsides is that it’s optimized for stealing your attention.&lt;/p&gt;

&lt;p&gt;To help mitigate this, I've added a few tools to ensure I stay on task when watching YouTube.&lt;/p&gt;




&lt;h2&gt;
  
  
  Ads
&lt;/h2&gt;

&lt;p&gt;To block ads and improve the overall viewing experience, I use &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/" rel="noopener noreferrer"&gt;uBlock Origin&lt;/a&gt;.&lt;br&gt;
Additionally, I block ads at the DNS level using &lt;a href="https://nextdns.io/" rel="noopener noreferrer"&gt;NextDNS&lt;/a&gt;.&lt;/p&gt;


&lt;h2&gt;
  
  
  Sponsors
&lt;/h2&gt;

&lt;p&gt;To avoid sitting through sponsored segments, I use &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/sponsorblock/" rel="noopener noreferrer"&gt;SponsorBlock&lt;/a&gt;.&lt;/p&gt;


&lt;h2&gt;
  
  
  General Distractions
&lt;/h2&gt;

&lt;p&gt;To avoid getting sucked into doomscrolling loops through repeated usage, I use the &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/cookie-autodelete/" rel="noopener noreferrer"&gt;Cookie AutoDelete&lt;/a&gt; extension.&lt;/p&gt;

&lt;p&gt;To hide recommended videos in the sidebar, I added the following filter to uBlock Origin:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;! Jan 1, 1970 https://www.youtube.com
www.youtube.com###secondary
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To eliminate distractions from comments and other UI clutter, I use the &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/youtube-enhancer-vc/" rel="noopener noreferrer"&gt;YouTube Enhancer extension&lt;/a&gt; to automatically enter theater mode and hide YouTube Shorts.&lt;/p&gt;

&lt;p&gt;Enhancer extension config:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"button_placements"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"copyTimestampUrlButton"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"player_controls_right"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"decreasePlaybackSpeedButton"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"player_controls_left"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"forwardButton"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"player_controls_right"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"hideEndScreenCardsButton"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"player_controls_right"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"increasePlaybackSpeedButton"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"player_controls_left"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"loopButton"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"feature_menu"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"maximizePlayerButton"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"feature_menu"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"openTranscriptButton"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"feature_menu"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"rewindButton"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"player_controls_right"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"screenshotButton"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"feature_menu"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"volumeBoostButton"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"feature_menu"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"custom_css_code"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"deep_dark_custom_theme_colors"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"colorShadow"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"#383c4a4d"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"dimmerText"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"#cccccc"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"hoverBackground"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"#4e5467"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"mainBackground"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"#22242d"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"mainColor"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"#367bf0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"mainText"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"#eeeeee"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"secondBackground"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"#242730"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"deep_dark_preset"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Deep-Dark"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"enable_automatic_theater_mode"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"enable_automatically_set_quality"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"enable_copy_timestamp_url_button"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"enable_custom_css"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"enable_deep_dark_theme"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"enable_hide_official_artist_videos_from_home_page"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"enable_forced_playback_speed"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"enable_forward_rewind_buttons"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"enable_hide_end_screen_cards"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"enable_hide_end_screen_cards_button"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"enable_hide_live_stream_chat"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"enable_hide_paid_promotion_banner"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"enable_hide_scrollbar"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"enable_hide_shorts"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"enable_hide_translate_comment"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"enable_loop_button"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"enable_maximize_player_button"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"enable_open_transcript_button"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"enable_open_youtube_settings_on_hover"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"enable_pausing_background_players"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"enable_playback_speed_buttons"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"enable_playlist_length"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"enable_redirect_remover"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"enable_remaining_time"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"enable_remember_last_volume"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"enable_screenshot_button"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"enable_scroll_wheel_speed_control"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"enable_scroll_wheel_volume_control"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"enable_scroll_wheel_volume_control_hold_modifier_key"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"enable_scroll_wheel_volume_control_hold_right_click"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"enable_share_shortener"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"enable_shorts_auto_scroll"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"enable_skip_continue_watching"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"enable_video_history"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"enable_volume_boost"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"feature_menu_open_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"hover"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"forward_rewind_buttons_time"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"language"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"en-US"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"osd_display_color"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"white"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"osd_display_hide_time"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;750&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"osd_display_opacity"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;75&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"osd_display_padding"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"osd_display_position"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"center"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"osd_display_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"text"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"playback_buttons_speed"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0.25&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"player_quality"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"auto"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"player_quality_fallback_strategy"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"lower"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"player_speed"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"playlist_length_get_method"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"api"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"playlist_watch_time_get_method"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"youtube"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"remembered_volumes"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"shortsPageVolume"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"watchPageVolume"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"screenshot_format"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"png"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"screenshot_save_as"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"file"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"scroll_wheel_speed_control_modifier_key"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"altKey"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"scroll_wheel_volume_control_modifier_key"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ctrlKey"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"speed_adjustment_steps"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0.25&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"video_history_resume_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"prompt"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"volume_adjustment_steps"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"volume_boost_amount"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"volume_boost_mode"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"global"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"youtube_data_api_v3_key"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"enable_automatically_disable_closed_captions"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>youtube</category>
      <category>productivity</category>
      <category>browser</category>
    </item>
    <item>
      <title>Poor Man's Claude Pro</title>
      <dc:creator>Ben Weller</dc:creator>
      <pubDate>Sat, 24 Oct 2026 15:52:51 +0000</pubDate>
      <link>https://dev.to/bweller/poor-mans-claude-pro-2pn0</link>
      <guid>https://dev.to/bweller/poor-mans-claude-pro-2pn0</guid>
      <description>&lt;h1&gt;
  
  
  Poor Man's Claude Pro
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Write all the code you'll ever need from your phone for $20 per month
&lt;/h2&gt;

&lt;p&gt;A &lt;a href="https://www.yeti.com/drinkware/hydration/21071504096.html" rel="noopener noreferrer"&gt;Yeti water bottle&lt;/a&gt; + &lt;a href="https://www.nike.com/t/sportswear-club-mens-t-shirt-ShrJfX/AR4997-014" rel="noopener noreferrer"&gt;a Nike T-shirt&lt;/a&gt; + &lt;a href="https://www.cvs.com/shop/irish-spring-5-in-1-body-wash-sea-salt-cedarwood-20-oz-prodid-472435" rel="noopener noreferrer"&gt;Irish Spring 5 in 1: Body, Face, Shampoo, Conditioner, and 24 Hour Deodorant&lt;/a&gt;, or &lt;a href="https://www.amazon.com/AeroPress-Portable-Travel-Coffee-Press/dp/B07YVL8SF3?th=1" rel="noopener noreferrer"&gt;an AeroPress Go Portable Coffee Maker&lt;/a&gt; + &lt;a href="https://www.amazon.com/Victorinox-Swiss-Classic-Various-Colors/dp/B092DZCM42" rel="noopener noreferrer"&gt;a three-pack of the Field Notes memo books&lt;/a&gt; + the classic &lt;a href="https://www.amazon.com/Field-Notes-Kraft-Ruled-3-Pack/dp/B0034KDEMO" rel="noopener noreferrer"&gt;Swiss Army Knife&lt;/a&gt;, or &lt;a href="https://www.amazon.com/Power-Broker-Robert-Moses-Fall/dp/0394720245" rel="noopener noreferrer"&gt;&lt;em&gt;The Power Broker&lt;/em&gt;&lt;/a&gt; + &lt;a href="https://www.amazon.com/Graza-Drizzle-Extra-Virgin-Olive-Oil-Finishing-High-Polyphenol/dp/B09WTZRV6Z?th=1" rel="noopener noreferrer"&gt;Graza Drizzle Extra Virgin Olive Oil&lt;/a&gt; + &lt;a href="https://www.patagonia.com/product/p-6-logo-lopro-trucker-hat/38283.html" rel="noopener noreferrer"&gt;a Patagonia snapback&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;That's how much more you're missing out &lt;strong&gt;per month&lt;/strong&gt; by spending on the Claude Max plan vs. &lt;em&gt;just&lt;/em&gt; the Pro plan.&lt;/p&gt;

&lt;p&gt;My coworkers bragged about how much they could code on the go via the Claude Max plan that allows them to run Claude remotely on a server Anthropic provides and push to a GitHub repo by default....jokes on them, I can now attempt to carry around my three Yeti water bottles while layered under three layers of shirts, but I don't have to worry about any BO from sweat because I used my Irish Spring 5 in 1 magic serum today; all while doing the &lt;strong&gt;&lt;em&gt;same exact thing&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;To get started with using Claude to write code/research/design documents on the go:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Set up your web server, &lt;a href="https://sive.rs/ti" rel="noopener noreferrer"&gt;I used Derek Sivers guide as inspiration&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://bweller.me/terminal-on-android/" rel="noopener noreferrer"&gt;Set up a decent terminal on your phone&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Include this alias in your phone's local dotfiles (&lt;a href="https://bweller.me/ultimate-dotfiles/" rel="noopener noreferrer"&gt;you do have dotfiles set up.....right?&lt;/a&gt;):
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="k"&gt;function &lt;/span&gt;claudeonserver&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
  &lt;span class="nb"&gt;local &lt;/span&gt;ts
  &lt;span class="nv"&gt;ts&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;date&lt;/span&gt; +%Y%m%d-%H%M%S&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
  ssh &amp;lt;username@server&amp;gt; &lt;span class="nt"&gt;-i&lt;/span&gt; &amp;lt;keyfile&amp;gt; &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="s2"&gt;"mkdir -p ~/&amp;lt;project_path&amp;gt;/&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;ts&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; &amp;amp;&amp;amp; tmux new-session -d -s claude-&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;ts&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; -c ~/&amp;lt;project_path&amp;gt;/&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;ts&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; '/home/&amp;lt;username&amp;gt;/.local/bin/claude --remote-control'"&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then it's as simple as opening your terminal and launching a new Claude session per project. If you want Claude to have the ability to create repositories to host these projects in, you could install/set up the &lt;a href="https://cli.github.com/" rel="noopener noreferrer"&gt;GitHub CLI&lt;/a&gt; and ask it to push (or just do it manually, you animals).&lt;/p&gt;

&lt;p&gt;Now enjoy your coffee while staring at the blank pages of your Field Notes memo book while playing five-finger fillet with your Swiss Army knife; or whatever else you're into.&lt;/p&gt;

</description>
      <category>ai</category>
    </item>
  </channel>
</rss>
