<?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: jdrch</title>
    <description>The latest articles on DEV Community by jdrch (@jdrch).</description>
    <link>https://dev.to/jdrch</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%2F302887%2Fc04c9bd3-828d-43d9-b265-c188c6545e84.jpg</url>
      <title>DEV Community: jdrch</title>
      <link>https://dev.to/jdrch</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jdrch"/>
    <language>en</language>
    <item>
      <title>How to set up Stash as a Windows service</title>
      <dc:creator>jdrch</dc:creator>
      <pubDate>Fri, 02 Jan 2026 00:55:19 +0000</pubDate>
      <link>https://dev.to/jdrch/how-to-set-up-stash-as-a-windows-service-ifd</link>
      <guid>https://dev.to/jdrch/how-to-set-up-stash-as-a-windows-service-ifd</guid>
      <description>&lt;h1&gt;
  
  
  Note
&lt;/h1&gt;

&lt;p&gt;There are quite a few packages out there called Stash. This guide is for this &lt;a href="https://stashapp.cc/" rel="noopener noreferrer"&gt;Stash&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Stash is provided as a standalone executable. Here's how to turn it into a Windows service that launches automatically when you login to Windows (and possibly before?)&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 1: &lt;a href="https://github.com/stashapp/stash/releases" rel="noopener noreferrer"&gt;Download&lt;/a&gt; Stash
&lt;/h1&gt;

&lt;p&gt;Download the latest &lt;code&gt;stash-win.exe&lt;/code&gt; to &lt;code&gt;C:\Program Files\stash&lt;/code&gt;. You can use other locations, but that one gives the executable max protection from non-admin actions.&lt;/p&gt;

&lt;p&gt;As Windows generally doesn't give browsers access to &lt;code&gt;Program Files&lt;/code&gt;, you'll likely have to download Stash to an intermediate folder and then use a file manager to move it to its final destination.&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 2: &lt;a href="https://github.com/aelassas/servy/releases" rel="noopener noreferrer"&gt;Install&lt;/a&gt; Servy
&lt;/h1&gt;

&lt;p&gt;I suggest using the non-&lt;code&gt;net&lt;/code&gt; installer.&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 3: Perform initial Stash service setup
&lt;/h1&gt;

&lt;p&gt;Launch Servy.&lt;/p&gt;

&lt;p&gt;Go to the &lt;code&gt;Main&lt;/code&gt; tab. Technically, the only things you need to fill out here are &lt;code&gt;Service Name *&lt;/code&gt; and &lt;code&gt;Process Path *&lt;/code&gt;. Personally, I suggest using explicit &lt;code&gt;Service Name *&lt;/code&gt;, &lt;code&gt;Display Name&lt;/code&gt;, and &lt;code&gt;Service Description&lt;/code&gt; inputs so you can remember exactly what the service does later on and don't delete or edit it by mistake. All those fields accept any value except for &lt;code&gt;Process Path&lt;/code&gt;, which is &lt;code&gt;stash-win.exe&lt;/code&gt;'s final destination in Step 1.&lt;/p&gt;

&lt;p&gt;Stash will run just fine with those settings, but it will also run as SYSTEM (highest Windows permissions), which is unsafe if the app becomes compromised. Click the &lt;code&gt;Log On&lt;/code&gt; tab and enable the &lt;code&gt;User Account&lt;/code&gt; radio button. In the corresponding field, enter your Windows username as described, then enter your Windows password in &lt;code&gt;Password&lt;/code&gt; and &lt;code&gt;Confirm Password&lt;/code&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 4: Grant &lt;code&gt;%ProgramData%\Servy&lt;/code&gt; permissions to your Windows user account
&lt;/h1&gt;

&lt;p&gt;In File Explorer, enter &lt;code&gt;%ProgramData%&lt;/code&gt; in the address bar and hit &lt;code&gt;Enter&lt;/code&gt;. Find the &lt;code&gt;Servy&lt;/code&gt; folder and right-click it. Click &lt;code&gt;Properties&lt;/code&gt; -&amp;gt; &lt;code&gt;Security&lt;/code&gt; -&amp;gt; &lt;code&gt;Edit...&lt;/code&gt;. In the &lt;code&gt;Permissions for Servy&lt;/code&gt; window that pops up, click &lt;code&gt;Add...&lt;/code&gt;. In the window that pops up, enter your Windows username in the &lt;code&gt;Enter the object names to select (examples):&lt;/code&gt; field. Click &lt;code&gt;OK&lt;/code&gt;. This will add your Windows user account to the &lt;code&gt;Group or user names&lt;/code&gt; list in the &lt;code&gt;Permissions for Servy&lt;/code&gt; window. Highlight your user account and ensure &lt;code&gt;Read &amp;amp; execute&lt;/code&gt;, &lt;code&gt;List folder contents&lt;/code&gt;, &lt;code&gt;Read&lt;/code&gt;, and &lt;code&gt;Write&lt;/code&gt; are selected in the &lt;code&gt;Allow&lt;/code&gt; column. Click &lt;code&gt;Apply&lt;/code&gt; and &lt;code&gt;OK&lt;/code&gt; and then &lt;code&gt;OK&lt;/code&gt; to exit the &lt;code&gt;Servy Properties&lt;/code&gt; window.&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 5: Finalize Stash service setup
&lt;/h1&gt;

&lt;p&gt;Switch back to the Servy window. Click &lt;code&gt;Install&lt;/code&gt; and wait for confirmation that that is complete&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 6: Check that the service installed correctly
&lt;/h1&gt;

&lt;p&gt;Open Windows Services via Start -&amp;gt; type &lt;code&gt;services&lt;/code&gt; -&amp;gt; click on the &lt;code&gt;Services&lt;/code&gt; &lt;code&gt;System&lt;/code&gt; result with the gears icon. In the window that pops up, look for an entry matching what you set up Step 3. Click on it and then click &lt;code&gt;Start&lt;/code&gt; on the left. Wait for the service to start, then go to &lt;a href="http://localhost:9999" rel="noopener noreferrer"&gt;http://localhost:9999&lt;/a&gt; in a web browser. The Stash UI should show up.&lt;/p&gt;

&lt;p&gt;If you make a mistake and need to start over again, open an elevated PowerShell prompt: Start -&amp;gt; type &lt;code&gt;PowerShell&lt;/code&gt; -&amp;gt; select the latest version -&amp;gt; Click &lt;code&gt;Run as administrator&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;In the window that pops up, run&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Remove-Service -Name "ServiceNameYouChoseInStep3"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will delete the service from Windows so you can start all over again.&lt;/p&gt;

&lt;h1&gt;
  
  
  Credits
&lt;/h1&gt;

&lt;p&gt;Thanks &lt;a href="https://github.com/zimanninetynine" rel="noopener noreferrer"&gt;zimanninetynine&lt;/a&gt; for the &lt;a href="https://github.com/stashapp/stash/issues/6080#issuecomment-3676078383" rel="noopener noreferrer"&gt;initial setup instructions&lt;/a&gt;!&lt;/p&gt;

</description>
      <category>stash</category>
      <category>microsoft</category>
    </item>
    <item>
      <title>How to configure unattended-upgrades on openSUSE Leap</title>
      <dc:creator>jdrch</dc:creator>
      <pubDate>Sun, 28 Dec 2025 01:08:21 +0000</pubDate>
      <link>https://dev.to/jdrch/how-to-configure-unattended-upgrades-on-opensuse-leap-5hb7</link>
      <guid>https://dev.to/jdrch/how-to-configure-unattended-upgrades-on-opensuse-leap-5hb7</guid>
      <description>&lt;p&gt;Hi friends, welcome to another episode of Shitty Linux Documentation, in which I blog about something whose developers never bothered to fully describe the setup of and no one else in the world could be arsed to write about after they managed to figure out.&lt;/p&gt;

&lt;p&gt;I use the term &lt;code&gt;unattended-upgrades&lt;/code&gt; in the title not because that package exists or works on openSUSE, but because it's the most functional and reliable automatic update system in the non-Windows world. And no, macOS doesn't count as it doesn't allow you to install OS updates automatically.&lt;/p&gt;

&lt;p&gt;So anyway let's get into it:&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 0: Read the &lt;a href="https://manpages.opensuse.org/Leap-16.0/os-update/os-update.8.en.html" rel="noopener noreferrer"&gt;docs&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;Yeah I hate this step too, but the documentation is minimal and reading it is necessary to understand what follows.&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 1: Install &lt;code&gt;os-update&lt;/code&gt;
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# zypper install os-update
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Step 2: Configure &lt;code&gt;os-update&lt;/code&gt;
&lt;/h1&gt;

&lt;p&gt;Open the &lt;code&gt;/usr/share/os-update/os-update.conf&lt;/code&gt; file. If you agree with the settings shown there, skip to the next step. &lt;/p&gt;

&lt;p&gt;If you want to change any of the settings, edit the &lt;code&gt;/etc/os-update.conf&lt;/code&gt; file to include your desired changed lines only. So, for example, &lt;code&gt;/etc/os-update.conf&lt;/code&gt; should contain&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#UPDATE_CMD=dup
#REBOOT_CMD=reboot
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;if those are the &lt;code&gt;/usr/share/os-update/os-update.conf&lt;/code&gt; values you want. &lt;/p&gt;

&lt;h1&gt;
  
  
  Step 3: Configure &lt;code&gt;os-update.timer&lt;/code&gt;
&lt;/h1&gt;

&lt;p&gt;If you'd rather just start the service and have &lt;code&gt;os-update&lt;/code&gt; set its own schedule, skip to the next step.&lt;/p&gt;

&lt;p&gt;This is where you determine when you want &lt;code&gt;os-update&lt;/code&gt; to run. Edit &lt;code&gt;/etc/systemd/system/os-update.timer&lt;/code&gt;. Customize the content based on &lt;a href="https://documentation.suse.com/smart/systems-management/html/systemd-working-with-timers/index.html" rel="noopener noreferrer"&gt;this documentation&lt;/a&gt;. Mine looks like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[Unit]
Description="Run os-update daily at 0300 even if machine was offline for previous attempt"

[Timer]
OnCalendar=Mon..Sun *-*-* 03:00:00
Persistent=true
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Step 4: Reload &lt;code&gt;systemd&lt;/code&gt; config
&lt;/h1&gt;

&lt;p&gt;If you skipped the previous step, skip to the next step.&lt;/p&gt;

&lt;p&gt;This will force systemd to pick up any &lt;code&gt;/etc/systemd/system/os-update.timer&lt;/code&gt; change made in the previous step:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# systemctl daemon-reload
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Step 5: Enable and start &lt;code&gt;os-update.timer&lt;/code&gt;
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# systemctl enable os-update.timer
# systemctl start os-update.timer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Step 6: Check the &lt;code&gt;os-update.timer&lt;/code&gt; config
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# systemctl list-timers os-update.timer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The value in the &lt;code&gt;NEXT&lt;/code&gt; column should match the intent in &lt;code&gt;/etc/systemd/system/os-update.timer&lt;/code&gt;.&lt;/p&gt;

</description>
      <category>opensuse</category>
      <category>homelab</category>
      <category>linux</category>
    </item>
    <item>
      <title>How to restore the classic Adobe Acrobat "Single Page" view feature</title>
      <dc:creator>jdrch</dc:creator>
      <pubDate>Sat, 13 Apr 2024 22:28:40 +0000</pubDate>
      <link>https://dev.to/jdrch/how-to-restore-the-classic-adobe-acrobat-single-page-view-feature-3812</link>
      <guid>https://dev.to/jdrch/how-to-restore-the-classic-adobe-acrobat-single-page-view-feature-3812</guid>
      <description>&lt;p&gt;Adobe Reader and previous versions of Acrobat DC had a Single Page view feature in which the mousewheel and arrow keys turned the document page instead of scrolling.&lt;/p&gt;

&lt;p&gt;To restore it in newer versions of the above, click the highlighted icon shown below at the bottom of the right side panel of the Adobe application window and ensure you have the same options checked:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuaj8ui0z2hm80dgwqhgs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuaj8ui0z2hm80dgwqhgs.png" alt="Screenshot of Adobe Acrobat DC right sidebar menu, showing  raw `Singe-page view` endraw  and  raw `Fit height` endraw  options checked  raw `Enable scrolling` endraw  unchecked" width="279" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Specifically, check &lt;code&gt;Singe-page view&lt;/code&gt; and &lt;code&gt;Fit height&lt;/code&gt; and uncheck &lt;code&gt;Enable scrolling&lt;/code&gt;.&lt;/p&gt;

</description>
      <category>adobe</category>
      <category>acrobat</category>
      <category>productivity</category>
      <category>protip</category>
    </item>
    <item>
      <title>How to view all the SharePoint files you have access to</title>
      <dc:creator>jdrch</dc:creator>
      <pubDate>Thu, 01 Feb 2024 17:18:15 +0000</pubDate>
      <link>https://dev.to/jdrch/how-to-view-all-the-sharepoint-files-you-have-access-to-281</link>
      <guid>https://dev.to/jdrch/how-to-view-all-the-sharepoint-files-you-have-access-to-281</guid>
      <description>&lt;p&gt;SharePoint site URLs usually take the following format:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://companyname.sharepoint.com/sites/SharePointSiteName/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To view all the files you have access to, add the following to the above URL:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Shared%20Documents/Forms/AllItems.aspx?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The final URL should look like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://companyname.sharepoint.com/sites/SharePointSiteName/Shared%20Documents/Forms/AllItems.aspx?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Entering that URL into a web browser - Edge works best, for obvious reasons - should give you a listing of all the SharePoint files you have access to. From there you can add a shortcut to your OneDrive, which then makes all those files easily accessible from your OneDrive folder in File Explorer! Note that the initial listing will be the main &lt;code&gt;Documents&lt;/code&gt; library. To access other libraries, click the book icon to the right of &lt;code&gt;Documents&lt;/code&gt; and select from the dropdown menu.&lt;/p&gt;

&lt;p&gt;Note that this will work only for sites whose files you have permissions to view. If you don't have said permissions, this method won't work. The instructions also assume you're not a member of the SharePoint site or corresponding Team.&lt;/p&gt;

&lt;p&gt;If you are a member, then you should be able to access all the libraries via conventional means. My preferred way of doing that is to open Microsoft Teams -&amp;gt; Click &lt;code&gt;Teams&lt;/code&gt; -&amp;gt; Click on the Team corresponding to the SharePoint -&amp;gt; Click the &lt;code&gt;Files&lt;/code&gt; tab -&amp;gt; Click &lt;code&gt;Documents&lt;/code&gt; below that.&lt;/p&gt;

</description>
      <category>sharepoint</category>
      <category>microsoft365</category>
      <category>microsoft</category>
      <category>cloud</category>
    </item>
    <item>
      <title>How to install &amp; enable OLED Color Scheme in Sublime Text</title>
      <dc:creator>jdrch</dc:creator>
      <pubDate>Fri, 05 Jan 2024 01:20:03 +0000</pubDate>
      <link>https://dev.to/jdrch/how-to-install-enable-oled-color-scheme-in-sublime-text-2lhe</link>
      <guid>https://dev.to/jdrch/how-to-install-enable-oled-color-scheme-in-sublime-text-2lhe</guid>
      <description>&lt;p&gt;Here's how to do the above:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://packagecontrol.io/installation" rel="noopener noreferrer"&gt;Install Package Control&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;In Sublime Text, press &lt;code&gt;Ctrl&lt;/code&gt; + &lt;code&gt;Shift&lt;/code&gt; + &lt;code&gt;p&lt;/code&gt; (or &lt;code&gt;Cmd&lt;/code&gt; + &lt;code&gt;Shift&lt;/code&gt; + &lt;code&gt;p&lt;/code&gt; on macOS) to bring up the command palette&lt;/li&gt;
&lt;li&gt;In the command palette, search for &lt;code&gt;install&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Highlight &lt;code&gt;Package Control: Install Package&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Press &lt;code&gt;Enter&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;In the dialog that pops up, search for &lt;code&gt;oled color scheme&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Highlight the matching result&lt;/li&gt;
&lt;li&gt;Press &lt;code&gt;Enter&lt;/code&gt;. OLED Color Scheme is now installed! To enable it:&lt;/li&gt;
&lt;li&gt;Go to &lt;code&gt;Preferences&lt;/code&gt; -&amp;gt; &lt;code&gt;Select Color Scheme...&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Highlight &lt;code&gt;OLED Color Scheme&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Press &lt;code&gt;Enter&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
    <item>
      <title>How to adjust camera settings for any Windows webcam without admin rights</title>
      <dc:creator>jdrch</dc:creator>
      <pubDate>Sat, 23 Dec 2023 06:17:15 +0000</pubDate>
      <link>https://dev.to/jdrch/how-to-adjust-camera-settings-for-any-windows-webcam-without-admin-rights-5a6l</link>
      <guid>https://dev.to/jdrch/how-to-adjust-camera-settings-for-any-windows-webcam-without-admin-rights-5a6l</guid>
      <description>&lt;p&gt;&lt;a href="https://answers.microsoft.com/en-us/msteams/forum/all/new-teams-camera-settings-gone/838f3db3-ca31-46a5-9f06-bca5762459ab?page=1" rel="noopener noreferrer"&gt;Camera settings is missing&lt;/a&gt; from &lt;a href="https://adoption.microsoft.com/en-us/new-microsoft-teams/" rel="noopener noreferrer"&gt;Microsoft's New Teams&lt;/a&gt; client. Although 1st party camera apps (e.g. use &lt;a href="https://www.logitech.com/en-us/video-collaboration/software/logi-tune-software.html" rel="noopener noreferrer"&gt;LogiTune&lt;/a&gt; for Logitech webcams) offer access to their corresponding device settings, many enterprise users don't have admin rights on their own PCs and so can't install them.&lt;/p&gt;

&lt;p&gt;Here's how to get around that.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Download &lt;code&gt;ffmpeg&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;Download the latest &lt;code&gt;fmpeg-master-latest-win64-gpl.zip&lt;/code&gt; &lt;a href="https://github.com/BtbN/FFmpeg-Builds/releases" rel="noopener noreferrer"&gt;release&lt;/a&gt;. &lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Decompress the &lt;code&gt;ffmpeg&lt;/code&gt; download
&lt;/h2&gt;

&lt;p&gt;Extract the zip file to a location of your choosing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Find the name of the webcam whose settings you need to access
&lt;/h2&gt;

&lt;p&gt;On Windows 10: &lt;code&gt;Start&lt;/code&gt; -&amp;gt; &lt;code&gt;Settings&lt;/code&gt; -&amp;gt; &lt;code&gt;Devices&lt;/code&gt;. Look for a &lt;code&gt;Cameras&lt;/code&gt; section in the left menu. If you don't see one, click on &lt;code&gt;Bluetooth &amp;amp; other devices&lt;/code&gt;. External webcams, which typically have a microphone, should be listed under &lt;code&gt;Audio&lt;/code&gt; with a webcam icon beside them, as depicted below:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa072bv76tymjg7l6f8f3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa072bv76tymjg7l6f8f3.png" alt=" " width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note the name of the camera, which we'll call &lt;code&gt;Camera Name&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Create a batch file that opens the camera settings
&lt;/h2&gt;

&lt;p&gt;Open a text editor, and insert the following lines:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd "Full\Path\to\ffmpeg\bin\folder"
.\ffmpeg -f dshow -show_video_device_dialog true -i video="Camera Name"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For example, if you extracted the &lt;code&gt;ffmpeg&lt;/code&gt; archive to &lt;code&gt;C:\Users\YourUsername\ffmpeg&lt;/code&gt; and your &lt;code&gt;Camera Name&lt;/code&gt; is &lt;code&gt;Logitech BRIO&lt;/code&gt;, the above lines would be:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd "C:\Users\YourUsername\ffmpeg\bin"
.\ffmpeg -f dshow -show_video_device_dialog true -i video="Logitech BRIO"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Save the text file with a &lt;code&gt;.bat&lt;/code&gt; extension and close the text editor.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5: Open the camera settings
&lt;/h2&gt;

&lt;p&gt;Find the batch file from Step 4 above and double-click it. The camera settings dialog, which looks like the below, should appear:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr9el5bkzsnc0szg7pak5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr9el5bkzsnc0szg7pak5.png" alt=" " width="436" height="361"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>windows</category>
      <category>howto</category>
      <category>teams</category>
      <category>newteams</category>
    </item>
    <item>
      <title>Can't find Process Explorer after installing it via winget? Do this</title>
      <dc:creator>jdrch</dc:creator>
      <pubDate>Tue, 05 Dec 2023 16:30:40 +0000</pubDate>
      <link>https://dev.to/jdrch/cant-find-process-explorer-after-installing-it-via-winget-do-this-3cf9</link>
      <guid>https://dev.to/jdrch/cant-find-process-explorer-after-installing-it-via-winget-do-this-3cf9</guid>
      <description>&lt;p&gt;First of all, Process Explorer should be located at &lt;code&gt;C:\Program Files\WinGet\Packages\Microsoft.Sysinternals.ProcessExplorer*&lt;/code&gt;. If it's not there, that means it wasn't installed in the right context.&lt;/p&gt;

&lt;p&gt;To fix this:&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1
&lt;/h2&gt;

&lt;p&gt;Uninstall Process Explorer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2
&lt;/h2&gt;

&lt;p&gt;Reinstall Process Explorer with the &lt;code&gt;Run as admin&lt;/code&gt;, &lt;code&gt;Latest&lt;/code&gt;, &lt;code&gt;x64&lt;/code&gt;, &amp;amp; &lt;code&gt;Local machine&lt;/code&gt; options set. You can set these manually in &lt;a href="https://github.com/marticliment/WingetUI" rel="noopener noreferrer"&gt;WingetUI&lt;/a&gt; or you can run the following command in an elevated PowerShell prompt: &lt;code&gt;winget install --id Microsoft.Sysinternals.ProcessExplorer --exact --accept-source-agreements --architecture x64 --scope machine --disable-interactivity --accept-source-agreements --force&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Once that completes, Process Explorer should be available at the path in the 1st paragraph above.&lt;/p&gt;

</description>
      <category>windows</category>
      <category>winget</category>
      <category>wingetui</category>
      <category>packages</category>
    </item>
    <item>
      <title>Why you should not use WireGuard</title>
      <dc:creator>jdrch</dc:creator>
      <pubDate>Tue, 14 Nov 2023 18:14:52 +0000</pubDate>
      <link>https://dev.to/jdrch/why-should-not-use-wireguard-20fb</link>
      <guid>https://dev.to/jdrch/why-should-not-use-wireguard-20fb</guid>
      <description>&lt;p&gt;I'll keep this simple: &lt;/p&gt;

&lt;h1&gt;
  
  
  WireGuard &lt;a href="https://www.reddit.com/r/WireGuard/comments/eok87j/comment/fed95k1/?utm_source=reddit&amp;amp;utm_medium=web2x&amp;amp;context=3" rel="noopener noreferrer"&gt;doesn't support private hostname resolution&lt;/a&gt; out of the box 🤯🥴🤡
&lt;/h1&gt;

&lt;p&gt;Supporting it - if possible at all - is pretty involved if you already have a working Pi-hole DNS + DHCP setup.&lt;/p&gt;

&lt;p&gt;What this means is WireGuard forces you to use IP addresses, e.g. &lt;code&gt;192.168.0.25&lt;/code&gt; to reach machines on the network you're VPNing into instead of being able to use the hostname, e.g. &lt;code&gt;DellOptiPlex&lt;/code&gt;. This is a significant UX regression (vs. other solutions such as OpenVPN, which support private hostname resolution out of the box), as the entire point of hostnames is to avoid the need to remember IP addresses or keep track of which corresponds to which machine. &lt;/p&gt;

&lt;p&gt;While I don't doubt WireGuard's value for P2P VPN setups, I strongly believe the above limitation makes it poorly suited for conventional centralized setups.&lt;/p&gt;

&lt;p&gt;Unfortunately, this doesn't seem to have dampened the spirits of WireGuard's numerous self-anointed online evangelists who think it's the 2nd coming of the remote access Messiah and recommend it for every VPN use case.&lt;/p&gt;

&lt;p&gt;Unless your bandwidth requirements are super high, OpenVPN works just fine out of the box. WireGuard is one of the rare times I agree with the &lt;a href="https://unixgraybeard.com/" rel="noopener noreferrer"&gt;Unix graybeard&lt;/a&gt; wariness of &lt;a href="https://en.wikipedia.org/wiki/Shiny_object_syndrome" rel="noopener noreferrer"&gt;technological shiny object syndrome&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>wireguard</category>
      <category>openvpn</category>
      <category>wpn</category>
      <category>networking</category>
    </item>
    <item>
      <title>How to Migrate UniFi Controller from a Debian 11 on a Raspberry Pi 3B+ to Debian 12 on a 4B</title>
      <dc:creator>jdrch</dc:creator>
      <pubDate>Mon, 13 Nov 2023 01:39:58 +0000</pubDate>
      <link>https://dev.to/jdrch/how-to-migrate-unifi-controller-from-a-debian-11-on-a-raspberry-pi-3b-to-debian-12-on-a-4b-2mg4</link>
      <guid>https://dev.to/jdrch/how-to-migrate-unifi-controller-from-a-debian-11-on-a-raspberry-pi-3b-to-debian-12-on-a-4b-2mg4</guid>
      <description>&lt;p&gt;Glossary:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;4B = 4 Model B&lt;/li&gt;
&lt;li&gt;3B+ = 3 Model B+&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 1
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Set up the Raspberry Pi 4B
&lt;/h3&gt;

&lt;p&gt;Follow these &lt;a href="https://projects.raspberrypi.org/en/projects/raspberry-pi-setting-up" rel="noopener noreferrer"&gt;instructions&lt;/a&gt;. I highly recommend doing as much &lt;a href="https://projects.raspberrypi.org/en/projects/raspberry-pi-setting-up/2" rel="noopener noreferrer"&gt;preconfiguration in the Raspberry Pi Imager&lt;/a&gt; as you can. &lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Install UniFi Controller
&lt;/h3&gt;

&lt;p&gt;Follow these &lt;a href="https://pimylifeup.com/rasberry-pi-unifi/" rel="noopener noreferrer"&gt;instructions&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Export your UniFi Controller settings on the Raspberry Pi 3B+
&lt;/h3&gt;

&lt;h2&gt;
  
  
  Step 4
&lt;/h2&gt;

&lt;h3&gt;
  
  
  (If you have a Site set up) Export your Site(s) from UniFi Controller on the Raspberry Pi 3B+
&lt;/h3&gt;

&lt;p&gt;Be sure to follow the onscreen instructions. Do &lt;em&gt;NOT&lt;/em&gt; migrate your UniFi devices until they have imported correctly in the new UniFi Controller instance.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5
&lt;/h2&gt;

&lt;h3&gt;
  
  
  (If you have a Site set up) enable multi-site in the new UniFi Controller instance
&lt;/h3&gt;

&lt;h2&gt;
  
  
  Step 6
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Import the Site you exported in Step 4
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://community.ui.com/questions/Create-new-site-on-CloudKey-controller/ad6d66bc-9a64-4967-8816-674fa5a9da2c" rel="noopener noreferrer"&gt;Pointers&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 7
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Migrate your existing UniFi devices to the new Controller instance
&lt;/h3&gt;

&lt;p&gt;Repeat Step 4, but instead of exporting the site again, migrate your desired devices. Wait for the UniFi devices from your 3B+ instance to show up in the new instance.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 7
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Import the settings you backed up in Step 3 into the new Controller instance
&lt;/h3&gt;

&lt;h2&gt;
  
  
  Step 8
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Forget the migrated devices in the 3B+'s Controller instance
&lt;/h3&gt;

&lt;p&gt;Repeat Step 4, by pass the site export and device migration, and then click &lt;code&gt;Forget&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 9
&lt;/h2&gt;

&lt;h3&gt;
  
  
  (For convenience) link your local UniFi credentials with your UniFi cloud SSO
&lt;/h3&gt;

&lt;h2&gt;
  
  
  Step 10
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Connect the new instance to the mobile app
&lt;/h3&gt;

&lt;p&gt;Use your cloud SSO credentials to login to the mobile app. Your new installation should show up there.&lt;/p&gt;

</description>
      <category>unifi</category>
      <category>ubiquiti</category>
      <category>migration</category>
      <category>raspberrypi</category>
    </item>
    <item>
      <title>How to set up Syncthing with a tray icon on a Windows PC you don't have admin rights to</title>
      <dc:creator>jdrch</dc:creator>
      <pubDate>Thu, 15 Dec 2022 23:23:24 +0000</pubDate>
      <link>https://dev.to/jdrch/how-to-set-up-syncthing-with-a-tray-icon-on-a-windows-pc-you-dont-have-admin-rights-to-4ih8</link>
      <guid>https://dev.to/jdrch/how-to-set-up-syncthing-with-a-tray-icon-on-a-windows-pc-you-dont-have-admin-rights-to-4ih8</guid>
      <description>&lt;p&gt;First things first: I do not recommend SyncTrayzor as it bundles the Syncthing binary. As such, it does not have the latest build of the latter. As a longtime user of various sync software, I absolutely assure you that you will always want to be running the latest build as the very nature of syncing makes it more vulnerable to bugs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Download &lt;a href="https://syncthing.net/downloads/" rel="noopener noreferrer"&gt;Syncthing&lt;/a&gt; &amp;amp; &lt;a href="https://github.com/Martchus/syncthingtray/releases" rel="noopener noreferrer"&gt;Syncthing Tray&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;While downloading Syncthing should be straightforward (just choose the build matching your platform), Syncthing Tray is a bit trickier. Download the highest &lt;code&gt;*x86_64-w64-mingw32.exe.zip&lt;/code&gt; version number.&lt;/p&gt;

&lt;p&gt;Neither app has a Windows installer in 2022(!!!) so you'll have to extract the archives to your desired locations. I recommend &lt;code&gt;C:\Users\YourUsername\Syncthing&lt;/code&gt; for Syncthing and &lt;code&gt;C:\Users\YourUsername\Syncthing Tray&lt;/code&gt; for Syncthing Tray.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Start and configure Syncthing
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Double-click on the corresponding executable from Step 1. A console window should open up and the web UI should open in your default browser&lt;/li&gt;
&lt;li&gt;Note the URL (should be &lt;code&gt;http://127.0.0.1:8384&lt;/code&gt;) as you'll have to use it later&lt;/li&gt;
&lt;li&gt;Click &lt;code&gt;Actions&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Click &lt;code&gt;Settings&lt;/code&gt; &lt;/li&gt;
&lt;li&gt;Click the &lt;code&gt;GUI&lt;/code&gt; tab&lt;/li&gt;
&lt;li&gt;Enter your desired username in &lt;code&gt;GUI Authentication User&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Enter your desired password in &lt;code&gt;GUI Authentication Password&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Click &lt;code&gt;Save&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The browser will show a login dialog. Login using the username and password you just set.&lt;/p&gt;

&lt;p&gt;Note that if you don't set a username and password for Syncthing, any account on the host machine will be able to access the web UI.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Exit Syncthing
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Close the web UI browser tab&lt;/li&gt;
&lt;li&gt;Close the console window&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 4: Start and configure Syncthing Tray
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Double-click on the corresponding executable from Step 1&lt;/li&gt;
&lt;li&gt;Right-click the corresponding system tray icon&lt;/li&gt;
&lt;li&gt;Click &lt;code&gt;Settings&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Click &lt;code&gt;Startup&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;In the &lt;code&gt;Autostart&lt;/code&gt; tab, check the &lt;code&gt;Start the tray icon when the desktop environment launches&lt;/code&gt; box&lt;/li&gt;
&lt;li&gt;In the &lt;code&gt;Syncthing launcher&lt;/code&gt; tab, check the &lt;code&gt;Launch Syncthing when starting the tray icon&lt;/code&gt; box&lt;/li&gt;
&lt;li&gt;In the &lt;code&gt;Syncthing executable&lt;/code&gt; field, enter &lt;code&gt;C:/Users/YourUsername/Syncthing/syncthing.exe&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Click &lt;code&gt;Apply&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Click &lt;code&gt;Tray&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Enter the URL from Step 2 in the &lt;code&gt;Syncthing URL&lt;/code&gt; field&lt;/li&gt;
&lt;li&gt;Check the &lt;code&gt;Authentication&lt;/code&gt; box&lt;/li&gt;
&lt;li&gt;Enter the username from Step 2 in the &lt;code&gt;User&lt;/code&gt; field&lt;/li&gt;
&lt;li&gt;Enter the password from Step 2 in the &lt;code&gt;Password&lt;/code&gt; field&lt;/li&gt;
&lt;li&gt;Click &lt;code&gt;Insert values from local Syncthing configuration&lt;/code&gt; to populate the &lt;code&gt;API key&lt;/code&gt; field&lt;/li&gt;
&lt;li&gt;Ensure the &lt;code&gt;Connect automatically on startup&lt;/code&gt; box is checked&lt;/li&gt;
&lt;li&gt;Click &lt;code&gt;Apply&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Click &lt;code&gt;OK&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 5: Exit Syncthing Tray
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Right-click on the tray icon&lt;/li&gt;
&lt;li&gt;Click &lt;code&gt;Close&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 6: Start Syncthing Tray
&lt;/h2&gt;

&lt;p&gt;Start Syncthing Tray as before. The icon should turn green shortly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 7: Set up a 2nd PC
&lt;/h2&gt;

&lt;p&gt;Repeat Steps 1 to 6. We'll call this PC2 and the 1st machine PC1.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 8: Connect PC1 and PC2
&lt;/h2&gt;

&lt;p&gt;Follow &lt;a href="https://docs.syncthing.net/intro/getting-started.html" rel="noopener noreferrer"&gt;these instructions&lt;/a&gt;. To share a folder that resides outside the default folder (&lt;code&gt;C:\Users\YourUsername\Sync&lt;/code&gt;):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;On PC1, right-click the Syncthing Tray tray icon &lt;/li&gt;
&lt;li&gt;Click &lt;code&gt;Open Syncthing&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;In the ensuing web UI, click &lt;code&gt;Add Folder&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Enter a folder label under &lt;code&gt;Folder Label&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Enter your desired path under &lt;code&gt;Folder Path&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Click the &lt;code&gt;Sharing&lt;/code&gt; tab&lt;/li&gt;
&lt;li&gt;Check the box next to the hostname of the machine you want to share this folder with&lt;/li&gt;
&lt;li&gt;Click &lt;code&gt;Save&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;On PC2, right-click the Syncthing Tray tray icon &lt;/li&gt;
&lt;li&gt;Click &lt;code&gt;Open Syncthing&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Click &lt;code&gt;Add&lt;/code&gt; in the folder notification at the top of the page&lt;/li&gt;
&lt;li&gt;Set the desired folder label and path as above&lt;/li&gt;
&lt;li&gt;Click the &lt;code&gt;Sharing&lt;/code&gt; tab&lt;/li&gt;
&lt;li&gt;Ensure the box for PC1 is selected
&lt;/li&gt;
&lt;li&gt;Click &lt;code&gt;Save&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your folders should now sync.&lt;/p&gt;

&lt;p&gt;The above instructions should be very useful for limited privilege users in corporate/enterprise environments. A couple things to remember:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Syncthing is P2P and does not use cloud resources. As such, it's good for data that's not allowed to be in the cloud. This is especially the case for VPN overlay environments such as Zscaler, etc: as peer devices are &lt;em&gt;always&lt;/em&gt; on the same network, transmitted data never "exits" the organization.&lt;/li&gt;
&lt;li&gt;Because Syncthing is P2P, all data exists on the peer devices themselves. People who travel - especially internationally - with client devices should be very mindful and aware of statutory and regulatory data location/export restrictions.&lt;/li&gt;
&lt;li&gt;If you have admin rights or are using your own machines, I strongly suggest &lt;a href="https://github.com/jdrch/Hardware/wiki/Why-I-Use-Resilio-Sync-Instead-of-Syncthing" rel="noopener noreferrer"&gt;using Resilio Sync instead&lt;/a&gt; unless you're absolutely insistent on FLOSS solutons. Resilio is overall more polished, easier to setup, and has much better mobile client support.&lt;/li&gt;
&lt;li&gt;1 major advantage of Syncthing being portable is you can move an entire installation between machines just via copying the application folder from 1 to the other. Note that you may have to edit folder paths, delete and recreate the Default Folder entry in the web GUI on the new machine, etc. to get everything set up again.&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>syncthing</category>
      <category>windows</category>
      <category>enterprise</category>
      <category>hacks</category>
    </item>
    <item>
      <title>How to Afford the Latest New Apple Products</title>
      <dc:creator>jdrch</dc:creator>
      <pubDate>Sun, 04 Dec 2022 19:20:17 +0000</pubDate>
      <link>https://dev.to/jdrch/how-to-afford-the-latest-new-apple-products-46dk</link>
      <guid>https://dev.to/jdrch/how-to-afford-the-latest-new-apple-products-46dk</guid>
      <description>&lt;h1&gt;
  
  
  TL,DR: Buy discounted Apple gift cards with rewards credit cards
&lt;/h1&gt;

&lt;p&gt;(Also, this plan can take years to pull off)&lt;/p&gt;

&lt;p&gt;I used the method below to buy a Mac Mini A2348 with 1 TB SSD and 16 GB RAM.&lt;/p&gt;

&lt;p&gt;If you think the iPad, iPhone, MacBook, MacBook Pro, MacBook Air, Mac Studio, iMac, Mac Mini, and Mac Pro are all too expensive and/or poor values for money relative to their competition, you're not alone. It certainly doesn't help that Apple's own 0% interest financing tops out at 12 months for Macs.&lt;/p&gt;

&lt;p&gt;But what if you still want one of the above? How do you do so affordably?&lt;/p&gt;

&lt;p&gt;The overarching answer to this problem is to use Apple gift cards to &lt;em&gt;prepay&lt;/em&gt; for Apple products over time at your own pace at a discount, up to $2000.&lt;/p&gt;

&lt;p&gt;This works because Apple tends not to the increase price for the same product post launch, giving you a static savings target. It also works best if you live in the US or have a US based credit card and can shop at US based retailers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 0: Identify your desired product
&lt;/h2&gt;

&lt;p&gt;This not only tells you how much in gift cards you have to buy, it tells you the maximum you should spend per month on gift cards if you want to pay less than what Apple charges. To find that latter number, click the &lt;code&gt;Buy&lt;/code&gt; link for any product and look at the financing monthly payment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Get the following credit/rewards services
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://www.bestbuy.com/site/financing-rewards/my-best-buy-visa/pcmcat748300389631.c?id=pcmcat748300389631" rel="noopener noreferrer"&gt;Best Buy Visa Card&lt;/a&gt; (5% store credit rewards on non-payment plan Best Buy purchases)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.target.com/redcard" rel="noopener noreferrer"&gt;Target RedCard&lt;/a&gt; (instant 5% off all Target purchases)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.amazon.com/Credit-Cards/b?ie=UTF8&amp;amp;node=1266766011" rel="noopener noreferrer"&gt;Amazon Prime Store or Rewards Visa Card&lt;/a&gt; (5% store credit on all non-payment plan Amazon purchases)&lt;/li&gt;
&lt;li&gt;A rewards credit card - called RewardsCreditCard for ease of reference going forward - that allows those rewards to be redeemed on Apple gift cards on sale. An example is &lt;a href="https://creditcards.chase.com/cash-back-credit-cards/freedom/unlimited" rel="noopener noreferrer"&gt;Chase Freedom Unlimited&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;PayPal (Use PayPal's Pay in 4 where they are accepted, e.g. Best Buy, to reduce your effective monthly payments for gift card purchases)&lt;/li&gt;
&lt;li&gt;PayPal Credit (Use PayPal Credit's 6 months 0% interest on &amp;gt;= $99 where it's accepted, e.g. Best Buy, to reduce your effective monthly payments for gift card purchases)&lt;/li&gt;
&lt;li&gt;(Optional)

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.apple.com/apple-card/" rel="noopener noreferrer"&gt;Apple Card&lt;/a&gt; (3% cash back at Apple.com. Can use if account balance insufficient to cover entire purchase. Note that the rewards percentage is lower than that of Options 1 to 3 above)&lt;/li&gt;
&lt;li&gt;Inviation only:

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.e-rewards.com/" rel="noopener noreferrer"&gt;e-Rewards&lt;/a&gt; (choose Apple gift card as for your payout option)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.bofaadvisorypanel.ipsos-forum.com/" rel="noopener noreferrer"&gt;The Bank of America Advisory Panel&lt;/a&gt; (choose Apple gift card as your payout option)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you buy more than &lt;code&gt;20 x [Amazon Prime Annual Membership Fee]&lt;/code&gt; from Amazon per year, the Prime card will pay for itself in rewards. Not to mention you also get Prime Video included for free.&lt;/p&gt;

&lt;p&gt;You'll notice a tradeoff with the above that you can either spread your purchase over monthly payments OR get cash back. It's theoretically possible to get cash back via Rakuten, Slickdeals, etc. but AFAIK most retailers do not offer cash back on gift card purchases. It's always worth a shot, though.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Check for discounted Apple gift cards at each RewardsCreditCard statement
&lt;/h2&gt;

&lt;p&gt;These should be located in RewardsCreditCard's online account. Some such credit cards rotate which gift cards are discounted monthly, so stock up on rewards points until the Apple gift cards are discounted. For example, Chase Freedom Rewards gift card sales are 10% off. This means that you can turn 1.5% cash back rewards into 1.65% Apple gift card rewards.&lt;/p&gt;

&lt;h3&gt;
  
  
  Once you have received &lt;em&gt;any&lt;/em&gt; gift card, redeem (&lt;a href="https://support.apple.com/en-us/HT201209" rel="noopener noreferrer"&gt;Apple instructions&lt;/a&gt;) it &lt;em&gt;immediately&lt;/em&gt;, otherwise the number may be compromised and the funds drained.
&lt;/h3&gt;

&lt;h2&gt;
  
  
  Step 3: Create a &lt;a href="https://slickdeals.net/deal-alerts/" rel="noopener noreferrer"&gt;Slickdeals alert&lt;/a&gt; for Apple gift cards
&lt;/h2&gt;

&lt;p&gt;I use the following settings:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Keyword&lt;/code&gt;: &lt;code&gt;apple gift card&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Target Forum&lt;/code&gt;: &lt;code&gt;Freebies&lt;/code&gt;, &lt;code&gt;Rebates&lt;/code&gt;, &lt;code&gt;Hot Deals&lt;/code&gt;, &lt;code&gt;Coupons&lt;/code&gt;, &lt;code&gt;Free Magazines&lt;/code&gt;, &lt;code&gt;Contests &amp;amp; Sweepstakes&lt;/code&gt;, &lt;code&gt;Drugstore/Grocery B&amp;amp;M Deals + Discussion&lt;/code&gt;, &lt;code&gt;Black Friday Deals&lt;/code&gt;, &lt;code&gt;Local Deals&lt;/code&gt;, &lt;code&gt;Free Digital Goods&lt;/code&gt;, &lt;code&gt;Cyber Monday Deals&lt;/code&gt;, &lt;code&gt;Circulars Deals&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 4: Watch your Slickdeals alerts
&lt;/h2&gt;

&lt;p&gt;You'll want to look for deals that offer at least 10% off or 10% in rewards for Apple gift cards. Typical deals are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Best Buy: $10 reward certificate with &amp;gt;=$100 Apple gift card&lt;/li&gt;
&lt;li&gt;Target: $10 gift card with &amp;gt;=$100 Apple gift card&lt;/li&gt;
&lt;li&gt;Amazon: Varies, but don't buy anything that gives less than 10% rewards&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 5: Buy Apple gift card from Slickdeals alert
&lt;/h2&gt;

&lt;p&gt;Complete each transaction with the payment method from Step 1 that works best for your financial situation. &lt;/p&gt;

&lt;p&gt;For the Amazon Prime Card specifically, you might want to choose the &lt;a href="https://www.bankrate.com/finance/credit-cards/amazon-financing-and-payment-plans-guide/" rel="noopener noreferrer"&gt;0% interest or equal payments plan&lt;/a&gt; (in that order) if your purchase total is eligible, as this can lower your monthly cash outflow. However, doing so removes the 5% rewards on the purchase.&lt;/p&gt;

&lt;p&gt;For Best Buy Visa you'll want to combine the gift card purchase with enough other items to qualify for 1 of their &lt;a href="https://www.bestbuy.com/site/misc/financing-rewards/pcmcat102500050032.c?id=pcmcat102500050032" rel="noopener noreferrer"&gt;0% interest payment plans&lt;/a&gt;. The card sometimes has an Apple Sales Event between Thanksgiving and Christmas during which storewide purchases of $499 or more are eligible for 18 months no interest. As with the Amazon Prime Card, choosing a payment plan eliminates the 5% rewards.&lt;/p&gt;

&lt;p&gt;Target doesn't do payment plans, but unlike Best Buy and Amazon the 5% discount is applied at the point of sale, so you save money instantly. As with the Apple gift card, redeem the included Target gift card immediately. You can do so by adding it to your Target account from any web browser.&lt;/p&gt;

&lt;p&gt;As mentioned before, redeem the Apple gift card immediately.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 6: Set up a &lt;a href="https://www.rakuten.com/" rel="noopener noreferrer"&gt;Rakuten&lt;/a&gt; account
&lt;/h2&gt;

&lt;p&gt;This can give you cash back on some Apple purchases. Slickdeals, Honey, etc. also have similar programs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 7: Buy your Apple product with your account balance
&lt;/h2&gt;

&lt;h3&gt;
  
  
  If buying a Mac: due to Apple's &lt;a href="https://arstechnica.com/gadgets/2022/07/some-macs-are-getting-fewer-updates-than-they-used-to-heres-why-its-a-problem/" rel="noopener noreferrer"&gt;artificially short product update support periods&lt;/a&gt;, choose a current generation Mac only. Previous gen Macs &lt;em&gt;at Apple retail prices&lt;/em&gt; are exceptionally poor values for money for this reason.
&lt;/h3&gt;

&lt;p&gt;Be sure to activate your Rakuten savings &lt;em&gt;before checking out&lt;/em&gt;!&lt;/p&gt;

&lt;p&gt;Check &lt;a href="https://www.apple.com/shop/refurbished" rel="noopener noreferrer"&gt;Apple's Certified Refurbished Products&lt;/a&gt; first. My experience with refurbished machines is they're just as reliable as brand new machines. &lt;/p&gt;

&lt;p&gt;If you can't find a refurb you like, wait for Apple's Black Friday/Cyber Monday deals. Typically (it varies) these include a discount on the product + a gift card with the purchase. As before, you'll want to apply the gift card immediately.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 8: Keep the product box and packaging
&lt;/h2&gt;

&lt;p&gt;That's right, you're not done yet! A major aspect of Apple hardware is their &lt;a href="https://swappa.com/" rel="noopener noreferrer"&gt;resale value&lt;/a&gt; as well as the &lt;a href="https://www.apple.com/shop/trade-in" rel="noopener noreferrer"&gt;Apple Trade In&lt;/a&gt; program.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 9: Don't forget to redeem the offers that come with the purchases
&lt;/h2&gt;

&lt;p&gt;Some, like Apple TV+, are both stackable and &lt;a href="https://www.reddit.com/r/tvPlus/comments/z0jwmg/the_3_months_free_apple_tv_trials_that_come_with/" rel="noopener noreferrer"&gt;usable by returning users&lt;/a&gt;. This means that if you already have a free trial going, you can use a separate free trial obtained from another purchase to extend the existing free trial.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 10: Repeat Steps 0 to 9
&lt;/h2&gt;

&lt;p&gt;Because of the short product support periods, Apple iDevices and Macs have dates beyond which they are insecure for use. As such, you'll want to start preparing for your replacement product as soon as you get your new one. If this sounds like a hardware subscription without a name, congratulations, you've discovered Apple's business model.&lt;/p&gt;




&lt;p&gt;By using this method you'll eventually you'll have enough of an Apple account balance + trade in/Swappa sale value to afford the latest Apple device when Apple drops support for the one you currently have.&lt;/p&gt;

&lt;p&gt;You should also save anywhere from 10 (minimum) to ~25% (theoretical maximum) overall on the purchase via the cumulative discounts. This almost certainly more than the interest you'd get from simply saving the same money in a bank account. Yes, there are other investment vehicles that might pay more, but I'm betting if you have those then buying a Mac outright probably isn't an issue for you in the first place ;)&lt;/p&gt;

&lt;h1&gt;
  
  
  Due to Apple's pricing structure, which includes keeping prices static despite inflation, don't waste time looking for single discounts of over 15% or cumulative discounts of over 25% as they pretty much don't exist.
&lt;/h1&gt;

&lt;p&gt;In fact, I'd go far as to say any brand new Apple listing for more than 25% off is most likely fraudulent unless it's from large reputable retailer.&lt;/p&gt;

</description>
      <category>apple</category>
      <category>ipad</category>
      <category>iphone</category>
      <category>mac</category>
    </item>
    <item>
      <title>How to restore the People Pane in Outlook 365</title>
      <dc:creator>jdrch</dc:creator>
      <pubDate>Tue, 19 Jul 2022 15:08:19 +0000</pubDate>
      <link>https://dev.to/jdrch/how-to-restore-the-people-pane-in-outlook-365-35be</link>
      <guid>https://dev.to/jdrch/how-to-restore-the-people-pane-in-outlook-365-35be</guid>
      <description>&lt;p&gt;Microsoft has retired the People Pane, but you can still get it back ... albeit not in the Outlook desktop app itself. &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Log in to the corresponding Outlook web app. You can find this via &lt;code&gt;File&lt;/code&gt; -&amp;gt; &lt;code&gt;Info&lt;/code&gt; -&amp;gt; &lt;code&gt;Account Information&lt;/code&gt; -&amp;gt; &lt;code&gt;Account Settings&lt;/code&gt; -&amp;gt; below &lt;code&gt;Access this account on the web.&lt;/code&gt; If you do not have a corresponding Outlook web app, this method will not work&lt;/li&gt;
&lt;li&gt;In the Outlook web app, find the message you want to see people details for&lt;/li&gt;
&lt;li&gt;Mouseover the name of the person of interest in the email header&lt;/li&gt;
&lt;li&gt;To the right of the &lt;code&gt;Call&lt;/code&gt; icon, mouseover the &lt;code&gt;V&lt;/code&gt; icon&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The ensuing dropdown menu provides much of the People Pane's functionality, including finding previous emails, attachments, and more.&lt;/p&gt;

</description>
      <category>outlook</category>
      <category>microsoft365</category>
      <category>office365</category>
      <category>msoffice</category>
    </item>
  </channel>
</rss>
