<?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: Michael R. Taylor</title>
    <description>The latest articles on DEV Community by Michael R. Taylor (@michaeltaylor).</description>
    <link>https://dev.to/michaeltaylor</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F177495%2F3ee91ca2-142d-4e00-9eae-0e2584a08304.png</url>
      <title>DEV Community: Michael R. Taylor</title>
      <link>https://dev.to/michaeltaylor</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/michaeltaylor"/>
    <language>en</language>
    <item>
      <title>Making Snake Case More Convenient</title>
      <dc:creator>Michael R. Taylor</dc:creator>
      <pubDate>Sun, 27 Aug 2023 03:49:28 +0000</pubDate>
      <link>https://dev.to/michaeltaylor/making-snake-case-more-convenient-4db8</link>
      <guid>https://dev.to/michaeltaylor/making-snake-case-more-convenient-4db8</guid>
      <description>&lt;p&gt;One thing that I've always hated about snake_case naming style is that I've always found typing an underscore (_) to be an awkward keystroke. The best thing that I've done to make snake_case typing easier is to use &lt;a href="https://www.autohotkey.com/"&gt;AutoHotkey&lt;/a&gt; to create a hotkey to insert an underscore when typing Shift-Space. Here is the AutoHotkey script:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;; Make typing the underscore '_' easier for snake_case_names while programming (now Shift+SpaceBar)
+space::_
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After some practice, using Shift-Space to insert an underscore becomes natural.&lt;/p&gt;

&lt;p&gt;One minor issue is that I sometimes accidentally type an underscore when I type a capital letter before a space by leaving the shift key down a bit too long. This can be worked around by making the hotkey above only active when certain programming applications (Visual Studio Code, Vim, etc.) have focus.&lt;/p&gt;

&lt;p&gt;Here is an example that makes the hotkey active only if Visual Studio Code or Notepad has focus:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#HotIf WinActive("ahk_exe Code.exe") or WinActive("ahk_class Notepad")
+space::_
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I hope this tip is as valuable to others as it has been for me.&lt;/p&gt;

</description>
      <category>python</category>
      <category>c</category>
      <category>cpp</category>
      <category>autohotkey</category>
    </item>
    <item>
      <title>Making the Portable Toolkit More Portable</title>
      <dc:creator>Michael R. Taylor</dc:creator>
      <pubDate>Fri, 18 Aug 2023 06:44:00 +0000</pubDate>
      <link>https://dev.to/michaeltaylor/making-the-portable-toolkit-more-portable-3n2g</link>
      <guid>https://dev.to/michaeltaylor/making-the-portable-toolkit-more-portable-3n2g</guid>
      <description>&lt;p&gt;One problem that may appear when creating a toolkit with &lt;a href="https://scoop.sh"&gt;Scoop&lt;/a&gt; to be used between computers is the minor configuration differences necessary on different computers. For instance, your home directory may be different on a work computer vs your personal computer.&lt;/p&gt;

&lt;p&gt;A simple solution is to create template files with placeholders that can be replaced with proper values after cloning the Scoop persist directory.&lt;/p&gt;

&lt;h2&gt;
  
  
  Making template files
&lt;/h2&gt;

&lt;p&gt;For any configuration file in your persist directory that will need to be different on different computers, create a duplicate of that file with the suffix &lt;strong&gt;.template&lt;/strong&gt;. The original file should be added to the &lt;strong&gt;.gitignore&lt;/strong&gt; file, and the &lt;strong&gt;.template&lt;/strong&gt; file should be added to source control instead.&lt;/p&gt;

&lt;h2&gt;
  
  
  Scripting the customizations
&lt;/h2&gt;

&lt;p&gt;Two scripts can be created and then stored in the persist repository. One script will replace the machine-dependent values with some placeholder, and another script will expand the placeholder text with its proper value.&lt;/p&gt;

&lt;p&gt;The following examples will replace a hard-coded user profile directory with the placeholder &lt;strong&gt;%USERPROFILE%&lt;/strong&gt;. However, they can be expanded to cover more variables. I've chosen Powershell for the scripts because that is what Scoop already uses.&lt;/p&gt;

&lt;p&gt;I refer to the script that replaces the hard-coded values with placeholders as the &lt;strong&gt;compact&lt;/strong&gt; script, and the script that replaces the hard-coded values is the &lt;strong&gt;expand&lt;/strong&gt; script.&lt;/p&gt;

&lt;h3&gt;
  
  
  The compact script
&lt;/h3&gt;

&lt;p&gt;Here is an example of a compact script. It simply recursively finds all files with a &lt;strong&gt;.template&lt;/strong&gt; suffix. Then, it opens the original file (by removing the suffix) and scans for specific values that need to be replaced with placeholders.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$files&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Get-ChildItem&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Recurse&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Filter&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'*.template'&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="kr"&gt;foreach&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$f&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kr"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$files&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="nv"&gt;$config&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;System.Io.Path&lt;/span&gt;&lt;span class="p"&gt;]::&lt;/span&gt;&lt;span class="n"&gt;Join&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;System.Io.Path&lt;/span&gt;&lt;span class="p"&gt;]::&lt;/span&gt;&lt;span class="n"&gt;GetDirectoryName&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$f&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="n"&gt;System.Io.Path&lt;/span&gt;&lt;span class="p"&gt;]::&lt;/span&gt;&lt;span class="n"&gt;GetFileNameWithoutExtension&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$f&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="n"&gt;Write-Host&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$config&lt;/span&gt;&lt;span class="s2"&gt; -&amp;gt; &lt;/span&gt;&lt;span class="nv"&gt;$f&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nv"&gt;$winStyle&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$&lt;/span&gt;&lt;span class="nn"&gt;env&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;USERPROFILE&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nv"&gt;$unixStyle&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$&lt;/span&gt;&lt;span class="nn"&gt;env&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;USERPROFILE&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'\'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'/'&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="n"&gt;Get-Content&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$config&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$winStyle&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"%USERPROFILE%"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'OrdinalIgnoreCase'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$unixStyle&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"%USERPROFILE%"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'OrdinalIgnoreCase'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Set-Content&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$f&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;



&lt;p&gt;In this case, it uses the environment variable &lt;strong&gt;USERPROFILE&lt;/strong&gt; to determine the home directory, which is a string that should be genericized. These strings are replaced with the placeholder &lt;strong&gt;%USERPROFILE%&lt;/strong&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;It is important to remember that on Windows, both '/' and '\' can be used for directory path separators. That, along with case insensitivity, must be accounted for.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;When any configuration changes are made, re-run the compact script to update the template file and then commit the changes.&lt;/p&gt;

&lt;h3&gt;
  
  
  The expand script
&lt;/h3&gt;

&lt;p&gt;The expand script does the reverse of the compact script, but it's a bit simpler because differences in path separators and case insensitivity don't need to be accounted for. Here is an example to complement the above compact script.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$files&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Get-ChildItem&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Recurse&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Filter&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'*.template'&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="kr"&gt;foreach&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$f&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kr"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$files&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="nv"&gt;$config&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;System.Io.Path&lt;/span&gt;&lt;span class="p"&gt;]::&lt;/span&gt;&lt;span class="n"&gt;Join&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;System.Io.Path&lt;/span&gt;&lt;span class="p"&gt;]::&lt;/span&gt;&lt;span class="n"&gt;GetDirectoryName&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$f&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="n"&gt;System.Io.Path&lt;/span&gt;&lt;span class="p"&gt;]::&lt;/span&gt;&lt;span class="n"&gt;GetFileNameWithoutExtension&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$f&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="n"&gt;Write-Host&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$f&lt;/span&gt;&lt;span class="s2"&gt; -&amp;gt; &lt;/span&gt;&lt;span class="nv"&gt;$config&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nv"&gt;$unixStyle&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$&lt;/span&gt;&lt;span class="nn"&gt;env&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;USERPROFILE&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'\'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'/'&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="n"&gt;Get-Content&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$f&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"%USERPROFILE%"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$unixStyle&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Set-Content&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$config&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;



&lt;blockquote&gt;
&lt;p&gt;Note that Unix-style directory separators are used. I find that these cause fewer problems since they won't need to be escaped ever.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;Hopefully, a couple of scripts like these can make your Scoop persistent configuration files more versatile. The ability to use the same developer tools and configurations on each computer you work on will lead to better efficiency and productivity. Thus, reducing any friction in making this happen is very valuable.&lt;/p&gt;

</description>
      <category>scoop</category>
      <category>windows</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Using Scoop to Create a Portable Toolkit</title>
      <dc:creator>Michael R. Taylor</dc:creator>
      <pubDate>Tue, 15 Aug 2023 15:04:36 +0000</pubDate>
      <link>https://dev.to/michaeltaylor/using-scoop-to-create-a-portable-toolkit-35m4</link>
      <guid>https://dev.to/michaeltaylor/using-scoop-to-create-a-portable-toolkit-35m4</guid>
      <description>&lt;p&gt;&lt;a href="https://scoop.sh/"&gt;Scoop&lt;/a&gt; provides a wonderful foundation for creating a portable developer's toolkit on Windows systems.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Scoop?
&lt;/h2&gt;

&lt;p&gt;Scoop is a command-line installer for Windows. It is created from Powershell scripts, so it installs easily with few dependencies on Windows-powered systems. The premier benefit of Scoop over other Windows installers (e.g., Chocolaty, Winget, etc.) is that it installs everything to a single directory under the user profile.&lt;/p&gt;

&lt;p&gt;Scoop stores configuration data that should persist between software updates in a persistent data directory. This directory is an excellent candidate to store in a private repository somewhere. (Of course, this repository can be public. I tend to store license/registration keys in this directory, so I made mine private.)&lt;/p&gt;

&lt;h2&gt;
  
  
  Creating your toolkit
&lt;/h2&gt;

&lt;p&gt;To create your toolkit, first, install Scoop and then use it to install the utilities--development or otherwise--that you use.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zIHe1rxe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gj3gucytprqw61nuw7jv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zIHe1rxe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gj3gucytprqw61nuw7jv.png" alt="An example of what I have installed via Scoop" width="800" height="715"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once everything is installed and configured to your liking, create a Git repository in the Scoop persist directory. It should be located under &lt;strong&gt;scoop/persist&lt;/strong&gt; in your Windows home directory.&lt;/p&gt;

&lt;p&gt;This repository will allow you to back up your application configurations and import them on other machines, giving you an identical work environment across devices.&lt;/p&gt;

&lt;p&gt;Before pushing your Git repository to some remote server, save a list of all the apps installed in Scoop to make them easy to install on other machines. Do this by running &lt;code&gt;scoop export &amp;gt; scoopfile.json&lt;/code&gt; in the &lt;strong&gt;persist&lt;/strong&gt; directory. Make sure to commit the &lt;strong&gt;scoopfile.json&lt;/strong&gt; file. On other devices, you can install all your apps by running &lt;code&gt;scoop import scoopfile.json&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cloning your toolkit
&lt;/h2&gt;

&lt;p&gt;The process to create a copy of your work environment is as simple as the following steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Install Scoop&lt;/li&gt;
&lt;li&gt;Install Git via Scoop: &lt;code&gt;scoop install git&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Checkout your Scoop persist repository to &lt;strong&gt;$HOME/scoop/persist&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Install your Scoop packages: &lt;code&gt;scoop import $HOME\scoop\persist\scoopfile.json&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Enjoy!
&lt;/h2&gt;

&lt;p&gt;I find that using the same tools and configurations on any machine I work on allows me to become as efficient as possible with these tools. In my opinion, Scoop provides the easiest way to create an environment that can be easily synced across all of my development computers.&lt;/p&gt;

</description>
      <category>scoop</category>
      <category>windows</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
