<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Posts on James Kupke</title>
    <link>https://www.jameskupke.com/posts/</link>
    <description>Recent content in Posts on James Kupke</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <copyright>James Kupke</copyright>
    <lastBuildDate>Sun, 03 Mar 2024 00:00:00 +0000</lastBuildDate><atom:link href="https://www.jameskupke.com/posts/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Homelab Updates: VPN &amp; Wireguard</title>
      <link>https://www.jameskupke.com/posts/homelab-updates-part-1/</link>
      <pubDate>Sun, 03 Mar 2024 00:00:00 +0000</pubDate>
      
      <guid>https://www.jameskupke.com/posts/homelab-updates-part-1/</guid>
      <description>&lt;p&gt;It&amp;rsquo;s been a slow and complicated journey to remove my reliance on Google products. I&amp;rsquo;ll be documenting what products that I&amp;rsquo;m using and how they are set up. But first, the fundamentals of what my home lab environment is.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ubiquiti Dream Machine gateway and switch&lt;/li&gt;
&lt;li&gt;Synology DS920+ NAS&lt;/li&gt;
&lt;li&gt;Raspberry Pi 3B&lt;/li&gt;
&lt;li&gt;Dell R720 (recently acquired to my home lab)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I will be saving a discussion on the Dell, as it&amp;rsquo;s my first foray into enterprise grade hardware and will require a lot of reconfiguring.&lt;/p&gt;
&lt;p&gt;A logical layout of my applications looks like this:
&lt;img src=&#34;https://www.jameskupke.com/img/homelab1.png&#34; alt=&#34;Homelab Before Changes&#34; title=&#34;Homelab diagram showing applications and VPN&#34;&gt;&lt;/p&gt;
&lt;p&gt;This was created with &lt;a href=&#34;https://plantuml.com/&#34;&gt;PlantUML&lt;/a&gt;, which is a great diagramming tool for those that don&amp;rsquo;t like to actually draw.&lt;/p&gt;
&lt;p&gt;The only access to applications, such as photo storage, Nextcloud calendars and contacts, etc. requires VPN access. This is a conscientious choice for security as I don&amp;rsquo;t want to harden every single application for Internet access.&lt;/p&gt;
&lt;h2 id=&#34;switch-from-openvpn-to-wireguard&#34;&gt;Switch from OpenVPN to WireGuard&lt;/h2&gt;
&lt;p&gt;I previously used &lt;a href=&#34;https://openvpn.net/&#34;&gt;OpenVPN&lt;/a&gt; for my VPN access for my phones and laptop, and that allowed me remote access. It previously was configured directly on my previous Asus router.&lt;/p&gt;
&lt;p&gt;Reading online (I don&amp;rsquo;t remember where), I&amp;rsquo;ve discovered that &lt;a href=&#34;https://www.wireguard.com/&#34;&gt;WireGuard&lt;/a&gt; is a performant and mostly straightforward replacement for OpenVPN. I repurposed a Raspberry Pi that was running &lt;a href=&#34;https://pi-hole.net/&#34;&gt;Pi-hole&lt;/a&gt; and replaced it with &lt;a href=&#34;https://www.pivpn.io/&#34;&gt;PiVPN&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Since I already had a dynamic DNS record for my VPN, the only change needed on my home network was to open the firewall for the WireGuard port to the Pi. Adding clients is neat as PiVPN will create a configuration file or QR code to configure the VPN client.&lt;/p&gt;
&lt;h2 id=&#34;removing-the-pi-from-the-equation&#34;&gt;Removing the Pi from the Equation&lt;/h2&gt;
&lt;p&gt;The Pi has been working reliably for half a year this way. However, I had a few concerns:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The Raspberry Pi 3B has limited CPU capabilities and only 300 Mbps ethernet&lt;/li&gt;
&lt;li&gt;Although the PiVPN never failed, I had previous experiences with Raspberry Pis stopped working, usually due to corrupted SD cards.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I contemplated moving WireGuard to the Synology NAS, but I felt uncomfortable opening up a port with direct Internet access, even if it was only for WireGuard. Ubiquiti&amp;rsquo;s offerings up until recently were OpenVPN and L2TP. However, checking in the last month:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://www.jameskupke.com/img/ubiquiti_vpn_options.png&#34; alt=&#34;Ubiquiti Screenshot&#34; title=&#34;Screenshot of Ubiquiti interface with WireGuard as an option&#34;&gt;&lt;/p&gt;
&lt;p&gt;Great! With the gateway offering the WireGuard service, this cleans up a lot of small things:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No need for a Raspberry Pi running for a single service&lt;/li&gt;
&lt;li&gt;Reduced network hops and gigabit ports for throughput&lt;/li&gt;
&lt;li&gt;Removal of port forwarding firewall rule for WireGuard as it&amp;rsquo;s now on the gateway itself&lt;/li&gt;
&lt;li&gt;Web UI to add/remove new VPN clients, instead of having to SSH into the PiVPN server and do it via terminal&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&#34;https://www.jameskupke.com/img/homelab2.png&#34; alt=&#34;Homelab After  Changes&#34; title=&#34;Homelab after VPN changes&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;whats-next&#34;&gt;What&amp;rsquo;s Next?&lt;/h2&gt;
&lt;p&gt;&lt;img src=&#34;https://www.jameskupke.com/img/dell_r720_off.jpg&#34; alt=&#34;Dell R720&#34; title=&#34;Dell R720 in rack, powered off&#34;&gt;&lt;/p&gt;
&lt;p&gt;I mentioned that I recently acquired a Dell R720. During this month, I ordered some SAS hard drives and drive caddies on eBay. Next steps is to add it to the network and set up the operating system to move items off the Synology NAS. When I get a stable environment, I&amp;rsquo;ll share the progress.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>My Defalt Apps 2023</title>
      <link>https://www.jameskupke.com/posts/my-default-apps-2023/</link>
      <pubDate>Fri, 10 Nov 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.jameskupke.com/posts/my-default-apps-2023/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been going through my personal journey to reduce my Google footprint and planned on documenting the tools that I&amp;rsquo;ve replaced. I&amp;rsquo;ve lately enjoyed reading everyone&amp;rsquo;s blog posts on Default Apps &lt;a href=&#34;https://defaults.rknight.me&#34;&gt;(full collection here)&lt;/a&gt;, and decided to join the bandwagon.&lt;/p&gt;
&lt;p&gt;I added links to the apps that I feel a bit lesser known:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;📨 &lt;strong&gt;Mail Client&lt;/strong&gt;: Thunderbird, &lt;a href=&#34;https://www.9folders.com/en/index.html&#34;&gt;Nine&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;📮 &lt;strong&gt;Mail Server&lt;/strong&gt;: &lt;a href=&#34;https://www.migadu.com&#34;&gt;Migadu&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;📝 &lt;strong&gt;Notes&lt;/strong&gt;: &lt;a href=&#34;https://joplinapp.org&#34;&gt;Joplin&lt;/a&gt;, Signal (Note to Self)&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;To-Do&lt;/strong&gt;: &lt;a href=&#34;https://jtx.techbee.at&#34;&gt;jtx Board&lt;/a&gt;, &lt;a href=&#34;https://www.davx5.com&#34;&gt;DAVx⁵&lt;/a&gt;, Nextcloud&lt;/li&gt;
&lt;li&gt;📷 &lt;strong&gt;Photo Shooting&lt;/strong&gt;: Google Camera&lt;/li&gt;
&lt;li&gt;🟦 &lt;strong&gt;Photo Management&lt;/strong&gt;: Synology Photos&lt;/li&gt;
&lt;li&gt;📆 &lt;strong&gt;Calendar&lt;/strong&gt;: Thunderbird, &lt;a href=&#34;https://www.appgenix-software.com&#34;&gt;Business Calendar 2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;📆 &lt;strong&gt;Calendar Backend&lt;/strong&gt;: Nextcloud&lt;/li&gt;
&lt;li&gt;📁 &lt;strong&gt;Cloud File Storage&lt;/strong&gt;: Syncthing (to my local NAS)&lt;/li&gt;
&lt;li&gt;📖 &lt;strong&gt;RSS&lt;/strong&gt;: &lt;a href=&#34;https://github.com/Ashinch/ReadYou&#34;&gt;Read You&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;🙍🏻‍♂️ &lt;strong&gt;Contacts&lt;/strong&gt;: DAVx⁵, Nextcloud&lt;/li&gt;
&lt;li&gt;🌐 &lt;strong&gt;Browser&lt;/strong&gt;: Firefox, &lt;a href=&#34;https://github.com/Divested-Mobile/mull-fenix&#34;&gt;Mull&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;💬 &lt;strong&gt;Chat&lt;/strong&gt;: Signal, weechat&lt;/li&gt;
&lt;li&gt;🔖 &lt;strong&gt;Bookmarks&lt;/strong&gt;: Firefox sync&lt;/li&gt;
&lt;li&gt;📈 &lt;strong&gt;Spreadsheets and Office Documents&lt;/strong&gt;: LibreOffice&lt;/li&gt;
&lt;li&gt;🎵 &lt;strong&gt;Music&lt;/strong&gt;: Youtube Music&lt;/li&gt;
&lt;li&gt;🎤 &lt;strong&gt;Podcasts&lt;/strong&gt;: &lt;a href=&#34;https://antennapod.org&#34;&gt;AntennaPod&lt;/a&gt; with &lt;a href=&#34;https://github.com/thrillfall/nextcloud-gpodder&#34;&gt;gPodder Sync&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;🔐 &lt;strong&gt;Password Management&lt;/strong&gt;: Bitwarden&lt;/li&gt;
&lt;li&gt;🗺️ &lt;strong&gt;Maps&lt;/strong&gt;: Google Maps, OSMAnd (for biking)&lt;/li&gt;
&lt;li&gt;🌡️ &lt;strong&gt;Weather&lt;/strong&gt;: &lt;a href=&#34;https://github.com/WangDaYeeeeee/GeometricWeather&#34;&gt;Geometric Weather&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;🔎 &lt;strong&gt;Search&lt;/strong&gt;: DuckDuckGo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I still have more to write about how I got here, which will be a future post.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Changing my Theme</title>
      <link>https://www.jameskupke.com/posts/changing-my-theme/</link>
      <pubDate>Fri, 06 Oct 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.jameskupke.com/posts/changing-my-theme/</guid>
      <description>&lt;p&gt;Hello! Long time no see. Although it may look like a big overhaul, I decided to leverage Kev Quirk&amp;rsquo;s &lt;a href=&#34;https://simplecss.org/&#34;&gt;Simple.css Framework&lt;/a&gt; to update the UI design. All the content is still around, just formatted (I hope!) cleaner than before.&lt;/p&gt;
&lt;p&gt;Reasons why I&amp;rsquo;m switching:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;No javascript:&lt;/strong&gt; This is not a fancy web app. I don&amp;rsquo;t need any type of dynamic content modifications. The goal is to present information clearly to the broadest audience. 20% of the content delivered on this site was for javascript, which I don&amp;rsquo;t think is worth it in my opinion.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No external fonts:&lt;/strong&gt; Although there are some very neat nerd font icons to show Github, LinkedIn, etc, that ultimately reduces readability and adds more overhead to the site. Again, like the javascript, fonts was nearly 20% of the bandwidth on the last GTmetrix score I ran.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Better performance:&lt;/strong&gt; It&amp;rsquo;s funny, a website that pops up instantly is a rarity on the web nowadays. Having instant responsiveness just gives me a warm fuzzy feeling inside.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Since the styling is light, this gives me an opportunity to modify the Hugo templates, and make some edits and cleanup.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Moving to Sourcehut</title>
      <link>https://www.jameskupke.com/posts/moving-to-sourcehut/</link>
      <pubDate>Fri, 02 Dec 2022 07:06:42 -0600</pubDate>
      
      <guid>https://www.jameskupke.com/posts/moving-to-sourcehut/</guid>
      <description>&lt;p&gt;For quite some time I have been leveraging Gitlab and Netlify for the site hosting. It was pretty convenient as it allows me to write up a post, commit, and then push it to the repository and deploy automatically with a CDN. Netlify had a great tutorial for site hosting that guided me down the path of using Hugo to begin with.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve been using Sourcehut off and on for hosting some small repositories, and I recently noticed they released &lt;a href=&#34;https://srht.site/&#34;&gt;sourcehut pages&lt;/a&gt;, a static website host. What an excellent opportunity to reduce my account footprint!&lt;/p&gt;
&lt;p&gt;Migrating git repositories in general is pretty straightforward. However, I decided that I didn&amp;rsquo;t really need any history on the website so I just copied the current files and pushed to a new repository on Sourcehut.&lt;/p&gt;
&lt;p&gt;I also deleted tons of files and subfolders that were originally used for Netlify build scripts and an admin portal that never really worked well. For packing and deployments, there was decent documentation on how to &lt;a href=&#34;https://srht.site/automating-deployments&#34;&gt;automate deployments with build.sr.ht&lt;/a&gt; with even a Hugo example!&lt;/p&gt;
&lt;p&gt;I think overall my GTmetrix score went down by a point or two due to some optimizations that Netlify performed (providing a CDN and some compression), but in general everything is running buttery smooth! Paying attention to the payload, I have noticed that this website seems to have an excessively large amount of javascript for how minimal it is.&lt;/p&gt;
&lt;p&gt;Updating the theme will be my next project. Maybe &lt;a href=&#34;https://simplecss.org/&#34;&gt;Simple.css?&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Day #20 of #100DaystoOffload&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Using Framework With Fedora</title>
      <link>https://www.jameskupke.com/posts/using-framework-with-fedora/</link>
      <pubDate>Sun, 05 Dec 2021 17:25:00 -0500</pubDate>
      
      <guid>https://www.jameskupke.com/posts/using-framework-with-fedora/</guid>
      <description>&lt;p&gt;&lt;em&gt;Edit 2022/01/02:&lt;/em&gt; I erroneously said that I created the &lt;code&gt;/etc/tlp.conf&lt;/code&gt; file, where I actually modified the file after downloading the &lt;code&gt;tlp&lt;/code&gt; package.&lt;/p&gt;
&lt;p&gt;On my previous post, I chose the &lt;a href=&#34;https://www.jameskupke.com/posts/linux-laptops-choice-made/&#34;&gt;Framework laptop&lt;/a&gt; as my new daily driver.&lt;/p&gt;
&lt;p&gt;Well, it&amp;rsquo;s been a few weeks now, and I wanted to give an update getting it set up. There has been many improvements since the framework laptop launched, I imagine some of these items may no longer be necessary as Linux support naturally improves.&lt;/p&gt;
&lt;h3 id=&#34;hardware-setup&#34;&gt;Hardware Setup&lt;/h3&gt;
&lt;p&gt;The DIY framework laptop came much more assembled than I oiginally thought. I originally thought that I would have to connect the motherboard, battery, monitor, etc. together, but the only piece not already installed was the Wi-Fi card.&lt;/p&gt;
&lt;p&gt;I plugged in NVMe SSD and RAM, and I was good to go!&lt;/p&gt;
&lt;h3 id=&#34;operating-system-setup&#34;&gt;Operating System Setup&lt;/h3&gt;
&lt;p&gt;After all the hardware installed, I powered up the laptop and launched into my pre-installed Fedora from my AMD laptop. Unfortunately, there was some error for detecting the boot system. I believe this has something to do with changes with UUID, but I didn&amp;rsquo;t investigate in too much detail.&lt;/p&gt;
&lt;p&gt;I created a Fedora 34 bootable USB drive (35 wasn&amp;rsquo;t released at the time) and reinstalled fedora over my old root partition.&lt;/p&gt;
&lt;p&gt;Although I did retain all my essential files from the home drive, I did lose all the installed packages and some of the files saved to the &lt;code&gt;/etc&lt;/code&gt; drives.&lt;/p&gt;
&lt;p&gt;My older Windows 10 partition booted without issue. Small kudos to Microsoft for getting it right.&lt;/p&gt;
&lt;p&gt;Most of fedora worked out of the box. I&amp;rsquo;m going to highlight a collection the tips I from the &lt;a href=&#34;https://community.frame.work/t/fedora-linux-35-on-the-framework-laptop/6613&#34;&gt;Community Framework on Fedora 35 post&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;power-saving-settings&#34;&gt;Power Saving Settings&lt;/h3&gt;
&lt;p&gt;There wasn&amp;rsquo;t much to tweak for power savings. I downloaded and enabled TLP.&lt;/p&gt;
&lt;p&gt;I modified the config file &lt;code&gt;/etc/tlp.conf&lt;/code&gt; with 1 line:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;PCIE_ASPM_ON_BAT=powersupersave
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I also installed powertop, but I used it only to monitor power utilization. Tunables can be tweaked with powertop, but I&amp;rsquo;ve read that most of the time it ends up conflicting with TLP&amp;rsquo;s power savings settings.&lt;/p&gt;
&lt;h3 id=&#34;enabling-hibernation&#34;&gt;Enabling Hibernation&lt;/h3&gt;
&lt;p&gt;There are two power saving sleep modes on the framework laptop, s2idle and deep. According to the Framework community, there are a few issues with the deep sleep on the intel chipset of the framework latop. Currently the best recommendation is to set up s2idle suspend and then hibernate.&lt;/p&gt;
&lt;p&gt;Part of the sleep then hibernate configuration process is to actually enable hibernate within Fedora. Hibernate will move all the RAM to disk to fully power of the system. The disk typically used is the &lt;code&gt;/swap&lt;/code&gt; partition. Unfortunately, the swap size I had set to was 8 GB, and the recommended size was &lt;em&gt;at least&lt;/em&gt; the same amount of RAM. I needed to increase the swap partition size.&lt;/p&gt;
&lt;p&gt;I reached out for some help on the #fedora chatroom within IRC. Here&amp;rsquo;s the list of steps I did to change my swap partition:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;shrink &lt;code&gt;/home&lt;/code&gt; (this had the most available free space on my hard drive, I used GParted)&lt;/li&gt;
&lt;li&gt;swapoff (disable swap on fedora)&lt;/li&gt;
&lt;li&gt;wipefs swap partition  (remove swap partition)&lt;/li&gt;
&lt;li&gt;Create swap partition, I used GParted&lt;/li&gt;
&lt;li&gt;reboot&lt;/li&gt;
&lt;li&gt;mkswap&lt;/li&gt;
&lt;li&gt;swapon&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Fedora is a bit unique where by default it creates a ZRAM file as the swap. This is fine for normal OS use, but creates an issue with hibernation as the operating system needs to mount the file to create the swap space. The last step was to mount the swap space upon boot up:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Use &lt;code&gt;blkid&lt;/code&gt; to find the UUID of the newly created swap partition&lt;/li&gt;
&lt;li&gt;Edit fstab  at &lt;code&gt;/etc/fstab&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Add the swap mount: &lt;code&gt;UUID=&amp;lt;&amp;lt;Your UUID for swap&amp;gt;&amp;gt; none                    swap   defaults     0 0&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;After that, I followed the instructions to update GRUB located in this &lt;a href=&#34;https://www.ctrl.blog/entry/fedora-hibernate.html&#34;&gt;Ctrl blog&lt;/a&gt; post.&lt;/p&gt;
&lt;p&gt;A lot of work, but success! I was able to hibernate by typing &lt;code&gt;systemctl hibernate&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;enable-suspend-then-hibernate&#34;&gt;Enable Suspend then Hibernate&lt;/h3&gt;
&lt;p&gt;Now that I was able to hibernate reliably, I needed to change the sleep profile to suspend then hibernate.&lt;/p&gt;
&lt;p&gt;This was a couple of config file edits:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Edited &lt;code&gt;/etc/systemd/logind.conf&lt;/code&gt; &lt;code&gt;HandleLidSwitch=suspend-then-hibernate&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Edited &lt;code&gt;/etc/systemd/sleep.conf&lt;/code&gt; and changed the following:&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;AllowSuspendThenHibernate=yes
HibernateDelaySec=45min
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This configured the framework to suspend for the first 45 minutes, and then hibernate afterwards. This lets me boot up quickly if I&amp;rsquo;m planning on closing the lid and moving around while not having to worry about draining the battery if I close the lid and leave it alone for extended periods of time.&lt;/p&gt;
&lt;h3 id=&#34;other-tweaks&#34;&gt;Other tweaks&lt;/h3&gt;
&lt;p&gt;The following tweaks weren&amp;rsquo;t listed on the Framework Community forums, but I decided to change them in hopes of additional power savings:&lt;/p&gt;
&lt;p&gt;Audio:
&lt;a href=&#34;https://wiki.archlinux.org/title/Power_management#Audio&#34;&gt;From the archi wiki on power management&lt;/a&gt; - Enabled audio power saving. Powertop was reporting a fairly consistent 2W usage even when there was no audio playing, and this appears to have fixed it.&lt;/p&gt;
&lt;p&gt;Wi-Fi:
Edit &lt;code&gt;/etc/modprobe.d/iwlwifi.conf&lt;/code&gt; with the following:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;options iwlwifi power_save=1
options iwlmvm power_scheme=3
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I have not noticed any difference in power savings on these settings, so I may reverse them later.&lt;/p&gt;
&lt;h3 id=&#34;fixing-grub-slowness&#34;&gt;Fixing GRUB Slowness&lt;/h3&gt;
&lt;p&gt;This was a persistent problem even on my previous AMD laptop; I would get a scrolling cursor running through the grub selection menu before the timer started.&lt;/p&gt;
&lt;p&gt;I didn&amp;rsquo;t find the root cause, but various people reported that it fixed itself by rebuilding the GRUB configuration. This is the command for using updating UEFI (vs. legacy BIOS) GRUB:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;Despite some tradeoffs I made with purchasing a framework laptop, I am very happy with it. With the following tweaks done above, I have decent battery life and I don&amp;rsquo;t have to worry about my battery completely draining from closing the lid. I do hope that framework is able to continue it&amp;rsquo;s commitment to open source and implement coreboot in the future to further enhance security and performance.&lt;/p&gt;
&lt;p&gt;Day #19 of #100DaystoOffload&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Linux Laptops Part 2: Choice Made</title>
      <link>https://www.jameskupke.com/posts/linux-laptops-choice-made/</link>
      <pubDate>Mon, 27 Sep 2021 21:30:00 -0400</pubDate>
      
      <guid>https://www.jameskupke.com/posts/linux-laptops-choice-made/</guid>
      <description>&lt;p&gt;This is the follow-up post on &lt;a href=&#34;https://www.jameskupke.com/posts/window-shopping-linux-laptops/&#34;&gt;Window Shopping for Linux Laptops&lt;/a&gt;. I recieved several excellent recommendations from the &lt;a href=&#34;https://fosstodon.org/&#34;&gt;Fosstodon community&lt;/a&gt; that I missed in my original post:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://shop.nitrokey.com/shop/product/nitropad-t430-119&#34;&gt;Nitrokey NitroPad&lt;/a&gt;: A hardened Lenovo ThinkPad that focuses on open source and security. Based in Germany.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://slimbook.es/en/store/slimbook-pro-x/pro-x-amd-comprar&#34;&gt;Slimbook Pro X AMD&lt;/a&gt;: 14&amp;quot; aluminum Ryzen processor that nearly checked everything I was looking for. Based in Spain.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When it comes to technology, sometimes I suffer from analysis paralysis. However, after missing a few keystrokes from my faulty laptop keyboard, a decision was made:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://www.jameskupke.com/img/framework_order.png&#34; alt=&#34;Screenshot of Framework Laptop Order&#34; title=&#34;Some details removed to protect the innocent.&#34;&gt;&lt;/p&gt;
&lt;p&gt;As you can see above, I ordered the DIY version of the framework laptop, choosing to skip the hard drive, RAM, and operating system.&lt;/p&gt;
&lt;p&gt;Some considerations on choosing this laptop over the others:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Company is in the USA; I don&amp;rsquo;t doubt that all the companies I looked into provide excellent support, but I don&amp;rsquo;t want to deal with international shipping, import duties, and long distance support for my primary laptop. I&amp;rsquo;m sure this consideration would be the inverse for those living over the Europe. You guys should be lucky with the abundant of choices over there.&lt;/li&gt;
&lt;li&gt;Repairability and Upgradeability; I had many good memories of building and upgrading my tower PC back in high school, and this gives me the chance (hopefully) to do the same on a laptop form factor&lt;/li&gt;
&lt;li&gt;Less waste; I am only buying the parts that I need; no tossing away the small RAM chip or hard drive immediately upon purchase. If I decide to upgrade the screen or CPU later on, I hope that there&amp;rsquo;s a viable reseller community of framework users.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That being said, here&amp;rsquo;s the cons I am accepting from choosing this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pricing; I could have purchased a complete Dell or even possibly a System76 laptop that came with the hard drive and memory that I chose to skip out.&lt;/li&gt;
&lt;li&gt;Small ecosystem; outside of a DisplayPort adapter, I picked up pretty much all the available modules available for the framework laptop. There is no ethernet module. The company has announced more modules coming up, and is open sourcing the design so that others can make their own modules.&lt;/li&gt;
&lt;li&gt;Brand new company; the benefit of this design is banking on future upgradeability, but this is only feasible if the company stays solvent long enough. Otherwise I&amp;rsquo;m stuck with a boutique computer manufacturer.&lt;/li&gt;
&lt;li&gt;Not AMD nor Coreboot; I root for the underdog which is why I&amp;rsquo;ve been an AMD fan. Although there is the promise from the framework development team to implement Coreboot, I doubt this is a priority for them.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;should-you-get-a-framework-laptop&#34;&gt;Should you get a framework laptop?&lt;/h2&gt;
&lt;p&gt;I normally stick to proven solutions instead of cutting edge or kickstarter type projects. I used the work &amp;ldquo;hope&amp;rdquo; quite a bit on the positives of the system. In essence, this solution seems good enough with what is currently available that I&amp;rsquo;m willing to take a risk and support a company with values that I relate to.&lt;/p&gt;
&lt;p&gt;Not everyone has this luxury; if you are looking for a company with more stability and support I would go with my backup choice of System76. If you&amp;rsquo;re not in a rush, I would wait for Framework to prove itself and see if everyone is still feeling positive after owning this for 6 months.&lt;/p&gt;
&lt;p&gt;That being said, I really do hope to be praising the successes of Framework next year. :-)&lt;/p&gt;
&lt;p&gt;Day #18 of #100DaystoOffload&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Window Shopping Linux Laptops</title>
      <link>https://www.jameskupke.com/posts/window-shopping-linux-laptops/</link>
      <pubDate>Wed, 22 Sep 2021 21:30:00 -0400</pubDate>
      
      <guid>https://www.jameskupke.com/posts/window-shopping-linux-laptops/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m typing on a Lenovo IdeaPad Flex. I love it, but it&amp;rsquo;s getting a bit beat up.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://www.jameskupke.com/img/lenovo_laptop.jpg&#34; alt=&#34;Laptop with webcam, mouse, and headphones on a stand&#34; title=&#34;Transformer mode&#34;&gt;&lt;/p&gt;
&lt;p&gt;I originally thought that I had cracked the frame from a drop, but I noticed that they are stress cracks from the hinges. More recently, several of the keys on the keyboard are intermittently unresponsive. I went to a local repair shop (ubreakiFix) for an estimate to fix, and the parts alone was approximately $200. No thank you, I&amp;rsquo;m not paying for Lenovo&amp;rsquo;s poor design.&lt;/p&gt;
&lt;p&gt;Typically I look for sale laptops whenever I have the urge to upgrade, but this time I wanted to actually choose my own specs rather than search by price. These are the factors I&amp;rsquo;m considering for my next laptop:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Linux Support&lt;/li&gt;
&lt;li&gt;AMD processor (although a Coreboot supported Intel is pretty good too)&lt;/li&gt;
&lt;li&gt;Contributes back to open source&lt;/li&gt;
&lt;li&gt;14&amp;quot; screen&lt;/li&gt;
&lt;li&gt;Touch screen and active pen&lt;/li&gt;
&lt;li&gt;Durability&lt;/li&gt;
&lt;li&gt;Upgradeable RAM&lt;/li&gt;
&lt;li&gt;Play some modern games in low quality settings&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It&amp;rsquo;s impossible to find something that matches everything above. Although I do play PC games, I preordered a &lt;a href=&#34;https://www.steamdeck.com/en/tech&#34;&gt;Steam Deck&lt;/a&gt;, and I think I can safely rule out needing something with an external graphics card. I&amp;rsquo;d rather have longer battery life and less weight. I also have a Nintendo Switch which is where I purchase most of my games.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s the PCs that I am considering:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://system76.com/laptops/pangolin&#34;&gt;System76 Pangolin&lt;/a&gt;: Linux first, AMD, and developers of Pop_OS! 15&amp;quot; though&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://frame.work/&#34;&gt;Framework Laptop&lt;/a&gt;: 13.5&amp;quot;, durable and completely repairable and modular. Fairly cheap since I can reuse my SSD and potentially the RAM. Intel with no Coreboot, but the developers said they may consider it.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://junocomputers.com/us/product/nyx-15-amd-v2/&#34;&gt;Juno Nyx 15 AMD&lt;/a&gt;: Linux first, looks very similar to System75&amp;rsquo;s offering, but a bit cheaper.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.tuxedocomputers.com/en/Linux-Hardware/Linux-Notebooks/10-14-inch/TUXEDO-Pulse-14-Gen1.tuxedo#!#configurator&#34;&gt;Tuxedo Pulse 14&lt;/a&gt;: Linux first, metallic body, and nice looking screen. Unfortunately has an older Ryzen chip and it&amp;rsquo;s located in Europe, so will probably have import duties.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.dell.com/en-us/work/shop/dell-laptops-and-notebooks/new-inspiron-14-2-in-1-laptop/spd/inspiron-14-7415-2-in-1-laptop/cai1472n1w10p1c2101#carousel-example-with-caption&#34;&gt;Dell Inspiron 14&amp;quot; 2 in 1&lt;/a&gt;: Closest to what I currently have as far as feature including touchscreen and active stylus. Comes with Windows and the only option that doesn&amp;rsquo;t contribute back to open source&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://starlabs.systems/pages/starbook&#34;&gt;Starlabs Starbook&lt;/a&gt;: 14&amp;quot;, coreboot, a variety of distibutions to come preinstalled (although I use Fedora). From Europe, so I have some concerns about import duties and this is the company I&amp;rsquo;ve heard the least about.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If there are any other companies that I may have missed, drop me a line on &lt;a href=&#34;https://fosstodon.org/@jameskupke&#34;&gt;Fosstodon&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Day 17 of #100DaystoOffload&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Koss Porta Pro</title>
      <link>https://www.jameskupke.com/posts/koss-porta-pro/</link>
      <pubDate>Tue, 17 Aug 2021 20:49:57 -0400</pubDate>
      
      <guid>https://www.jameskupke.com/posts/koss-porta-pro/</guid>
      <description>&lt;p&gt;Amatuer audiophile time! Like most people, I&amp;rsquo;m a fan of &amp;ldquo;music.&amp;rdquo; I will readily admit that I usually listen to mp3s and streaming music due to convenience. Recently, I felt like upgrading my sound setup a little bit.&lt;/p&gt;
&lt;h2 id=&#34;the-headphones&#34;&gt;The Headphones&lt;/h2&gt;
&lt;p&gt;I purchased my pair of Koss Porta Pro Xs from &lt;a href=&#34;https://drop.com/buy/massdrop-x-koss-porta-pro-x-headphones&#34;&gt;Drop.com&lt;/a&gt; (formerly MassDrop) a while back with a $20 off sign up coupon. The final price was under $20 and included a microphone, which was an excellent deal!&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve been using these headphones on and off for a few years, and have a love/hate relationship with the fact that they&amp;rsquo;re open headphones. In most cases, I enjoy the ability to hear the outside world when necessary.&lt;/p&gt;
&lt;h2 id=&#34;the-earpads&#34;&gt;The Earpads&lt;/h2&gt;
&lt;p&gt;A lot of the forums mention upgrading the earpads from a Japanese company called &lt;a href=&#34;https://www.yaxi.jp/product-gallery/porta-pro/&#34;&gt;Yaxi&lt;/a&gt;. It&amp;rsquo;s rather impressive to believe that there&amp;rsquo;s a small boutique Japanese company making earpads for a sub $50 headphone. These earpads can be ordered directly through them, but I went through Amazon due to shipping costs. However, they do throw in a free poster for ordering directly, which was tempting.&lt;/p&gt;
&lt;p&gt;I bought 2 pairs: orange and purple. I decided to mix and match them to give the headphones a bit more pop.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://www.jameskupke.com/img/porta_pro_1.jpg&#34; alt=&#34;Stock Porta Pro with Yaxi earpads&#34; title=&#34;Stating Point&#34;&gt;&lt;/p&gt;
&lt;p&gt;Installing earpads was very easy, and as soon as I replaced them, I could notice the additional padding. This made the Porta Pros much more comfortable to wear. The audiophiles also claim that it improves the sound by minimizing the bass a bit, which I could slightly tell, but it was not very perceptible.&lt;/p&gt;
&lt;h2 id=&#34;the-dac&#34;&gt;The DAC&lt;/h2&gt;
&lt;p&gt;Probably from reading too many reddit posts and audiophile forums, I thought that I could get better sound quality if I used a higher quality DAC than the one that comes with my phone. This &lt;a href=&#34;https://www.amazon.com/gp/product/B0832HHR1J/ref=ppx_yo_dt_b_asin_title_o02_s00?ie=UTF8&amp;amp;psc=1&#34;&gt;CLIPTHAT USB-C DAC from Amazon&lt;/a&gt; was mentioned a couple of times, so I decided to try it out since it had free returns. Lucky me! There was a single used model left for sale from the Amazon Warehouse.&lt;/p&gt;
&lt;h2 id=&#34;final-product&#34;&gt;Final Product&lt;/h2&gt;
&lt;p&gt;&lt;img src=&#34;https://www.jameskupke.com/img/porta_pro_2.jpg&#34; alt=&#34;Porta Pro with orange/purple pads and CLIPTHAT USB-C DAC&#34; title=&#34;Endgame&#34;&gt;&lt;/p&gt;
&lt;p&gt;There is definitely a visual upgrade from the headphones, and they still remain portable enough to toss in my bag and go. Here&amp;rsquo;s the price breakdown of all the components:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Item&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Price&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Porta Pro X&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$18.00&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Yaxi Earpads&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$20.54&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;CLIPTHAT DAC&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;$9.62&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Total&lt;/strong&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;&lt;strong&gt;$48.16&lt;/strong&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The irony of spending more on earpads than the actual headphones is not lost on me, but I have been enjoying the Porta Pros for a while, and even used the lifetime warranty once due to a bent headphone jack. I now have a spare set of earpads if these wear down or if I decide to get another pair of Porta Pros.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s my thoughts of what made the most impact on the sound (in order):&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Souce audio file&lt;/li&gt;
&lt;li&gt;Earpads&lt;/li&gt;
&lt;li&gt;DAC&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;While there was some slight improvement and comfort from the earpads, the most notable difference was from comparing a FLAC copy of a song that I was used to listening to the mp3. If you haven&amp;rsquo;t done so, I would recommend finding a lossless version of your favorite song and you may pick up some nuanced sounds you may have forgotten.&lt;/p&gt;
&lt;p&gt;I don&amp;rsquo;t have any plans for upgrading to more expensive headsphones any time in the future, so I feel pretty happy with the end product.&lt;/p&gt;
&lt;p&gt;Day 16 of #100DaystoOffload&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Scott Pilgrim Complete Edition on Nintendo Switch</title>
      <link>https://www.jameskupke.com/posts/scott-pilgrim-switch-complete-edition/</link>
      <pubDate>Mon, 09 Aug 2021 20:58:14 -0400</pubDate>
      
      <guid>https://www.jameskupke.com/posts/scott-pilgrim-switch-complete-edition/</guid>
      <description>&lt;p&gt;Wow! It finally took long enough, but I finally received my Scott Pilgrim vs. the World Complete Edition from &lt;a href=&#34;https://limitedrungames.com/products/switch-limited-run-94-scott-pilgrim-vs-the-world-the-game-classic-edition?_pos=11&amp;amp;_sid=41ed48478&amp;amp;_ss=r&#34;&gt;Limited Run Games&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I purchased this all the way back on Janurary 15th, and it just arrived today on August 9th. I can say that the wait was worth it.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://www.jameskupke.com/img/scott_pilgrim1.jpg&#34; alt=&#34;Game Case with Trading Card&#34; title=&#34;Game Case with Trading Card&#34;&gt;&lt;/p&gt;
&lt;p&gt;I had originally purchased this game on my Xbox 360, and I recall playing all the way through until the end with 4 players. I had a group of friends that powered through a lot of these co-op games, like Castle Crashers.  This version includes some of the DLC that I didn&amp;rsquo;t pick up, such as Knives and Wallace.&lt;/p&gt;
&lt;p&gt;Scott Pilgrim vs. The World pay a great deal of homage to the classic video games, and this set definitely proves it.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://www.jameskupke.com/img/scott_pilgrim2.jpg&#34; alt=&#34;Contents of the Compete Edition&#34; title=&#34;All the goodies!&#34;&gt;&lt;/p&gt;
&lt;p&gt;The holographic trading card slipped out of the box and was the only item that was shipped outside the contents of the main game case.&lt;/p&gt;
&lt;p&gt;The game had a slip cover with a variation of the Nintendo Switch clamshell that was stylized like the &lt;a href=&#34;https://en.wikipedia.org/wiki/Sonic_Adventure#/media/File:Sonic_Adventure.PNG&#34;&gt;cover of Sonic Adventure&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The plastic case is similar to an old Sega Genesis game and inside had a set of stickers, a world map, the soundtrack featuring tracks from &lt;a href=&#34;http://anamanaguchi.com/&#34;&gt;Anamanaguchi&lt;/a&gt;. On the back-side I could tell they even reused the 1 to 4 players graphic on the older Genesis cases.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://www.jameskupke.com/img/scott_pilgrim3.jpg&#34; alt=&#34;Inner Game Case Contents&#34; title=&#34;Inside goodies&#34;&gt;&lt;/p&gt;
&lt;p&gt;Inside the main game case, there&amp;rsquo;s still a few extras! There&amp;rsquo;s a ticket for The Clash at Demonhead, and a Super Nintendo style instruction booklet. I&amp;rsquo;m not sure what over people&amp;rsquo;s experiences were, but some of my favorite memories were ravenously reading the manuals on the car ride back home until I could pop in the Super Nintendo cartridge. Flipping through this book puts a smile on my face.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://www.jameskupke.com/img/scott_pilgrim4.jpg&#34; alt=&#34;World Map&#34; title=&#34;Super Mario World-esque World Map&#34;&gt;&lt;/p&gt;
&lt;p&gt;Another childhood memory was taping up posters that came packed in with the game. There&amp;rsquo;s a decent glossy folded world map that reminds me of Super Mario World. Another nice small touch that completes the package.&lt;/p&gt;
&lt;p&gt;Enough admiring; on to beat some evil exes.&lt;/p&gt;
&lt;p&gt;Day 15 of #100DaystoOffload&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Adding Kernel Arguments for My AMD Laptop</title>
      <link>https://www.jameskupke.com/posts/adding-kernel-arguments-amd-laptop/</link>
      <pubDate>Mon, 02 Aug 2021 19:14:14 -0400</pubDate>
      
      <guid>https://www.jameskupke.com/posts/adding-kernel-arguments-amd-laptop/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been using Fedora for a while, and enjoying it for the most part. I did a clean install for Fedora 34 so that I could try out moving from EXT4 to ButterFS.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve also been using the &lt;a href=&#34;https://swaywm.org/&#34;&gt;Sway Window Manager&lt;/a&gt; for a while, and been enjoying adapting to the new workflow.&lt;/p&gt;
&lt;p&gt;One issue I&amp;rsquo;ve been having recently is random freezes while playing video games or watching videos through Firefox. I jumped on the IRC channel on Libera Chat for suggestions, and the folks there said it looked like it was more of a kernel issue rather than a Sway issue. They recommended that I revert back to a working kernel.&lt;/p&gt;
&lt;p&gt;Uh oh. With a rolling release, I haven&amp;rsquo;t been paying attention to version numbers as the kernel gets updated probably every week. I wasn&amp;rsquo;t even too sure how to pick a specific kernel and roll back to it. I let it go for a while, as it happened only sporadicalliy.&lt;/p&gt;
&lt;p&gt;After getting fed up with another freeze, I decided to search for &amp;ldquo;linux ryzen 3500U randomly freezes&amp;rdquo; on DuckDuckGo. This led to an Arch forums where someone suggested to look through the logs with:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;journalctl |grep -i &amp;quot;hardware err&amp;quot;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Grep results came up blank&amp;hellip; I thought to be less restrictive and search for just &lt;code&gt;err&lt;/code&gt; instead.&lt;/p&gt;
&lt;p&gt;A lot of errors came up, but since I recently froze up, I looked near the bottom of the list. I saw this:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;kernel: [drm:amdgpu_job_timedout [amdgpu]] *ERROR* ring gfx timeout, but soft recovered&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This does look like it! So, doing &lt;em&gt;another&lt;/em&gt; DuckDuckGo search with that resulted in &lt;em&gt;another&lt;/em&gt; &lt;a href=&#34;https://bbs.archlinux.org/viewtopic.php?id=251159&#34;&gt;Arch forums link&lt;/a&gt; that recommended a fix by adding a kernel parameter &lt;code&gt;iommu=pt&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;It was worth a shot! Now, how do I add kernel parameters? More searching yielded a &lt;a href=&#34;https://fedoramagazine.org/setting-kernel-command-line-arguments-with-fedora-30/&#34;&gt;helpful article on Fedora Magazine&lt;/a&gt;. Essentially you use grubby to add the parameters needed. Simple enough. To identify the kernel I was using, I used &lt;code&gt;sudo grubby --default-kernel&lt;/code&gt;. After that, the command to commit the change was:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo grubby --update-kernel=/boot/vmlinuz-5.13.5-200.fc34.x86_64 --args=&amp;quot;iommu=pt&amp;quot;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;I rebooted and hoped for the best. I was personally a bit glad that it did boot up as normal and that I didn&amp;rsquo;t horribly botch up my system modifying kernel arguments. I gave it a test run by running some Civilization VI on Steam. After a few hours, no lock up. I&amp;rsquo;m cautiously optimistic that this is a success.&lt;/p&gt;
&lt;p&gt;Day 14 of 100 of #100DaystoOffload&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Goodbye Twitter</title>
      <link>https://www.jameskupke.com/posts/goodbye-twitter/</link>
      <pubDate>Sat, 17 Apr 2021 10:22:05 -0400</pubDate>
      
      <guid>https://www.jameskupke.com/posts/goodbye-twitter/</guid>
      <description>&lt;p&gt;Twitter has been something that I&amp;rsquo;ve been debating on removing for a while.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve read that you should delete all the individual tweets as well, so I used this service: &lt;a href=&#34;https://tweetdelete.net&#34;&gt;TweetDelete&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It takes your Twitter login information  and will run a batch job to delete up to 3200 tweets at a time.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://www.jameskupke.com/img/tweetdelete.png&#34; alt=&#34;Screenshot of TweetDelete&#34; title=&#34;All tweets gone!&#34;&gt;&lt;/p&gt;
&lt;p&gt;You can&amp;rsquo;t follow me on Twitter anymore, but you can on &lt;a href=&#34;https://fosstodon.org/@jameskupke&#34;&gt;Fosstodon&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Day 13 of #100DaysToOffload&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Theme Update</title>
      <link>https://www.jameskupke.com/posts/theme-update/</link>
      <pubDate>Sat, 27 Mar 2021 09:18:23 -0400</pubDate>
      
      <guid>https://www.jameskupke.com/posts/theme-update/</guid>
      <description>&lt;p&gt;Short post! The focus today is less on content, but a lot of visual flair on the site. Since I mentioned about less reliance on &lt;a href=&#34;https://www.jameskupke.com/posts/computer-glasses/&#34;&gt;Dark Mode&lt;/a&gt;, I wanted to update the dull coloring to something more bright.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m contemplating using Kev Quirk&amp;rsquo;s &lt;a href=&#34;https://simplecss.org/&#34;&gt;Simple.css&lt;/a&gt;, but I will have to create a theme by scratch for Hugo to incorporate it to my current site.&lt;/p&gt;
&lt;p&gt;I currently picked a decent minimal theme called &lt;a href=&#34;https://themes.gohugo.io/hugo-theme-cactus/&#34;&gt;Cactus&lt;/a&gt;. I made a few modifications on the footer to include theme and licensing info, which I will try out a pull request to see if the author is interested in incorporating.&lt;/p&gt;
&lt;p&gt;Day 12 of #100DaysToOffload&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Terminal Tuesday - The Beginning</title>
      <link>https://www.jameskupke.com/posts/terminal-tuesday/</link>
      <pubDate>Tue, 22 Dec 2020 21:15:00 -0500</pubDate>
      
      <guid>https://www.jameskupke.com/posts/terminal-tuesday/</guid>
      <description>&lt;p&gt;When I first started using Linux over Windows, I was looking for a flexible working environment that also respected privacy and celebrated open source software and community. Most people I run into who use Linux (which isn&amp;rsquo;t a whole lot) seem to start for similar reasons.&lt;/p&gt;
&lt;p&gt;Like most beginners, I avoided the terminal as much as possible for fear of messing things up to an unrecoverable state. I was I was interested in keeping my workflow closer to a drop-in replacement for Windows.&lt;/p&gt;
&lt;p&gt;However, the longer I use Linux the more I find that the GUI interfaces are obtrusive, stealing valuable screen real estate from my laptop screen. I decided to start migrating heavier unecessary GUI based apps with terminal based ones and share the journey.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m calling this &lt;strong&gt;#TerminalTuesday&lt;/strong&gt;. Every Tuesday I&amp;rsquo;ll talk about an application that I&amp;rsquo;ve moved over from a GUI equivalent I was using previously.&lt;/p&gt;
&lt;h2 id=&#34;why-havent-i-done-this-sooner&#34;&gt;Why haven&amp;rsquo;t I done this sooner?&lt;/h2&gt;
&lt;p&gt;For me, moving to a more terminal based workflow means that I already know what I want to do. GUI applications are a great entry point to figure out what I&amp;rsquo;m doing, and ultimately, may be the best way to solve my workflow.&lt;/p&gt;
&lt;p&gt;Once I have a good idea of what I&amp;rsquo;m trying to do, instead of trying a different GUI application and going through a bunch of configurations that it may or may not do, I am experiementing with a terminal equivalent. My focus is &lt;strong&gt;content, not interface.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;some-general-setup&#34;&gt;Some general setup&lt;/h2&gt;
&lt;p&gt;I mentioned a few setup tweaks I made in my &lt;a href=&#34;https://www.jameskupke.com/posts/moving-from-ubuntu-to-fedora/&#34;&gt;Fedora post&lt;/a&gt;, but here&amp;rsquo;s a few more that I&amp;rsquo;ve used to navigate around the desktop:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;Action&lt;/th&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;Keyboard Shortcut&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;Navigating Workspaces&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;Super + PgUp or PgDown&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;Moving Apps to Workspaces&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;Shift + Super + PgUp or PgDown&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;Splitting App to Left or Right of Screen&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;Super + Left or Right&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;Opening a New Terminal Tab&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;Ctrl + Shift + T&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;Navigating Terminals&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;Ctrl + PgUp or PgDown, or Alt + Num&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;These are for Fedora, but I usually these shortcuts are pretty universal. Looking forward to sharing more!&lt;/p&gt;
&lt;p&gt;#TerminalTuesday&lt;/p&gt;
&lt;p&gt;Day 11 of #100DaysToOffload&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Regarding OBS, Plugins, and Flatpak</title>
      <link>https://www.jameskupke.com/posts/regarding-obs-plugins-flatpak/</link>
      <pubDate>Sat, 19 Dec 2020 21:15:00 -0500</pubDate>
      
      <guid>https://www.jameskupke.com/posts/regarding-obs-plugins-flatpak/</guid>
      <description>&lt;p&gt;From a spur of the moment idea with the Mrs., I am prepping for a family game night with Jackbox 7. I bought a prevous version of it on the Nintendo Switch as it was the most portable way to play it with friends and family.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.jackboxgames.com/how-to-play-jackbox-games-with-friends-and-family-remotely/&#34;&gt;Jackbox has suggestions on how to play remotely&lt;/a&gt; most likely due to COVID-19. They have setup instructions for Google Hangouts and Zoom. Curiously, Jitsi, an open source alternative is not represented.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve decided to try out different online conferencing software to determine which one works the best, while giving open source solutions preference in my testing.&lt;/p&gt;
&lt;p&gt;My first test was on Jitsi. I discovered a few interesting quirks while testing it out with a friend. Jitsi does share the game screen, but it will disable my camera as soon as I start a screen sharing. There isn&amp;rsquo;t an option to share the audio of the application within Jitsi, but the microphone picked up my PC&amp;rsquo;s audio. Also, both the screen sharing and application sharing only showed a few frames every second on my friend&amp;rsquo;s screen. Not great. Maybe that&amp;rsquo;s why Jackbox didn&amp;rsquo;t list them?&lt;/p&gt;
&lt;p&gt;I then tried Zoom. Zoom at least displays the video and the webcam at the same time. There&amp;rsquo;s a checkbox on application sharing for sharing application audio, and to optimize for full-screen videos. This ended up being much closer to the desired experience for my friend than Jitsi, but the overall framerate of the game was slow (maybe around 5 to 10 frames per second) while my webcam looked fine.&lt;/p&gt;
&lt;p&gt;What else to do?&lt;/p&gt;
&lt;p&gt;I assumed for bandwidth reasons that these video conferencing applications don&amp;rsquo;t prioritize the video for application sharing as high as the web camera, so if I could send &lt;em&gt;both&lt;/em&gt; the camera and screen feeds together, perhaps I can increase the framerate.&lt;/p&gt;
&lt;p&gt;Using OBS a bit in the past, I figured this was the best place to start.&lt;/p&gt;
&lt;h2 id=&#34;obs-studio&#34;&gt;OBS Studio&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;ve used OBS in Windows for screen recording, so I was pretty familiar with the interface. I won&amp;rsquo;t go into any major details on setting up the view in this post, as I think the configuration is the more interesting part anyways.&lt;/p&gt;
&lt;p&gt;Using the Fedora Software manager, OBS Studio is available in the RPM Free repository and Flathub. I started with the RPM Free version, but the application had major issues capturing any screen display. I assume that it has something to do with a combination of Wayland and some downline dependency.&lt;/p&gt;
&lt;p&gt;The flatpak version at least worked out of the box. I was able to start screen sharing and inserting my camera on the feed.&lt;/p&gt;
&lt;p&gt;I also played around with streaming on Twitch, but I thought that would be too confusing to have people join in a video conference and a Twitch stream at the same time. I found the video quality was excellent, but there was approximately a 9 second delay with the stream even with low-latency settings enabled in Twitch.&lt;/p&gt;
&lt;p&gt;Ok, all the inputs are good! The last part is to redirect this video out to a camera, and then I could use any conferencing application I want!&lt;/p&gt;
&lt;h2 id=&#34;v4l2loopback&#34;&gt;V4l2loopback&lt;/h2&gt;
&lt;p&gt;Some quick searching yielded a plugin on the OBS website to do exactly what I needed, &lt;a href=&#34;https://obsproject.com/forum/resources/obs-virtualcam.949/&#34;&gt;but on Windows&amp;hellip;&lt;/a&gt; The Linux plugin is called v4l2sink. It required V4l2loopback.&lt;/p&gt;
&lt;p&gt;V4l2loopback lets you create &amp;ldquo;dummy cameras.&amp;rdquo; You then can feed whatever to the camera souces for downline applications. Cameras can be found in the file system under &lt;code&gt;/dev/camera*&lt;/code&gt; when v4l2loopback is set up properly, you should see an additional camera listed.&lt;/p&gt;
&lt;p&gt;Fedora doesn&amp;rsquo;t have a package for it in DNF, so I built it straight from source:
&lt;a href=&#34;https://github.com/umlaeute/v4l2loopback&#34;&gt;https://github.com/umlaeute/v4l2loopback&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Building was pretty easy, the only additional step outside of the instructions that I had to do was install the kernel headers:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo dnf install kernel-headers
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo dnf install kernel-devel
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Doing another check under &lt;code&gt;/dev/camera*&lt;/code&gt; showed the new camera. Success!&lt;/p&gt;
&lt;h2 id=&#34;obs-v4l2sink-plugin&#34;&gt;obs-v4l2sink Plugin&lt;/h2&gt;
&lt;p&gt;Now I have a dummy camera, but it doesn&amp;rsquo;t output anything. The final piece is to have OBS feed it video with the &lt;a href=&#34;https://github.com/CatxFish/obs-v4l2sink&#34;&gt;v4l2sink plugin.&lt;/a&gt; This ended up being the most difficult step in the whole process.&lt;/p&gt;
&lt;p&gt;The instructions for v4l2sink on their GitHub page are pretty straightforward, but were for building on an Ubuntu/Debian platform; Fedora didn&amp;rsquo;t have a package called &lt;code&gt;libops-dev&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Since I couldn&amp;rsquo;t find the package, I thought if I downloaded all the dependencies to build OBS that may install the required dependencies for the plugin. Depencies for OBS listed are conveniently located on their &lt;a href=&#34;https://github.com/obsproject/obs-studio/wiki/Install-Instructions#red-hatfedora-based-build-directions&#34;&gt;GitHub page.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;libspeexdsp-devel&lt;/code&gt; package wasn&amp;rsquo;t found and the link to their source code is dead, so I decided to skip it. Unfortunately, this did not fix my plugin depencies. Oh well, time to try something else!&lt;/p&gt;
&lt;p&gt;After a bit of guesswork browsing the available packages on DNF, I &lt;em&gt;did&lt;/em&gt; find the equivalent to &lt;code&gt;libobs-dev&lt;/code&gt; and was able to install it with this:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo dnf install obs-studio-devel
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo dnf install obs-studio-libs
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;getting-it-all-to-work-together&#34;&gt;Getting It All to Work Together&lt;/h2&gt;
&lt;p&gt;With dependencies installed and plugin built, I eagerly launched OBS again to set up v4l2sink. It didn&amp;rsquo;t show up. I figured that it may have something to do with Flatpak, since I know it runs in a sandbox environment for security purposes.&lt;/p&gt;
&lt;p&gt;There aren&amp;rsquo;t many articles about Flatpak OBS plugins; I first tried the suggestions from &lt;a href=&#34;https://imsean.me/how-to-install-obs-studio-plugins-on/&#34;&gt;this article&lt;/a&gt;, but didn&amp;rsquo;t work. Ugh! The only clue I received was from the OBS console mentioning that it cannot find the files for it. I also tried dumping the plugin within my &lt;code&gt;.config&lt;/code&gt;, &lt;code&gt;.app&lt;/code&gt;, and &lt;code&gt;/usr&lt;/code&gt; folders to no luck.&lt;/p&gt;
&lt;p&gt;The ultimate fix was located within a &lt;em&gt;still open&lt;/em&gt;&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; &lt;a href=&#34;https://github.com/flathub/com.obsproject.Studio/issues/65&#34;&gt;bug report for OBS.&lt;/a&gt; Essentially, you need to build a flatpak package for the plugin to use for the flatpack version of OBS. I didn&amp;rsquo;t quite understand what&amp;rsquo;s happening behind the scenes, but I followed all the steps and voilà! The plugin is finally visible in OBS!&lt;/p&gt;
&lt;p&gt;The dummy camera was available within Zoom, but not within Jitsi or Signal. One final tweak was needed on the v4l2loopback that was mentioned on their Github page:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo modprobe v4l2loopback exclusive_caps&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;outcome&#34;&gt;Outcome&lt;/h2&gt;
&lt;p&gt;After all that work I &lt;em&gt;would&lt;/em&gt; have liked to say that it was a complete success. I did manage to screenshare my dummy camera feed within Jitsi and even Signal video calls, but when I started to alt-tab into other applications, my desktop feed turned black.&lt;/p&gt;
&lt;p&gt;I also forgot to consider that the audio feed from conferencing was not combined with the microphone on my webcam. I&amp;rsquo;m sure that there&amp;rsquo;s probably a way to mix in the audio as well, but this seems like way too much effort at this point.&lt;/p&gt;
&lt;p&gt;I did see that there is a screen sharing capability with &amp;ldquo;Steam Play with Friends.&amp;rdquo; I will test that out to see if the performance is any better. If not, I will probably stick to Zoom for this time and figure out an alternative later.&lt;/p&gt;
&lt;p&gt;Regardless, it was a good learning experience to understand how Linux controls webcams, and I even managed to learn a few new tricks within OBS, so it definitely wasn&amp;rsquo;t a total loss!&lt;/p&gt;
&lt;p&gt;Day 10 of #100DaysToOffload&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;It&amp;rsquo;s been open since May, and it&amp;rsquo;s still an issue as of this article (December 19).&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>Moving From Ubuntu to Fedora</title>
      <link>https://www.jameskupke.com/posts/moving-from-ubuntu-to-fedora/</link>
      <pubDate>Thu, 22 Oct 2020 11:29:16 -0400</pubDate>
      
      <guid>https://www.jameskupke.com/posts/moving-from-ubuntu-to-fedora/</guid>
      <description>&lt;p&gt;This post took a little longer than expected, as I inadvertently deleted my draft copy with several notes while migrating.&lt;/p&gt;
&lt;p&gt;Ubuntu has been my recent distro of choice and I even upgraded from 18.04 to 20.04. Since then, I&amp;rsquo;ve read so many nice things on &lt;a href=&#34;https://fosstodon.org/web/timelines/tag/Fedora32&#34;&gt;Fosstodon about Fedora 32&lt;/a&gt;, I decided to give it another try. I&amp;rsquo;ve tried Fedora in the past and I had a couple concerns about moving away from Ubuntu:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Touchscreen support&lt;/li&gt;
&lt;li&gt;Game support&lt;/li&gt;
&lt;li&gt;Not using deb packages&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I&amp;rsquo;ll address all of these and things I learned along the way from moving from Ubuntu to Fedora.&lt;/p&gt;
&lt;h2 id=&#34;initial-impressions&#34;&gt;Initial Impressions&lt;/h2&gt;
&lt;p&gt;Coming from base Ubuntu with GNOME, the general Fedora interface is nearly identical. Accessing applications, using workspaces, and general OS navigation are roughly the same. Here&amp;rsquo;s some observations that I could tell right away:&lt;/p&gt;
&lt;h3 id=&#34;pros&#34;&gt;Pros&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Less leg burning; I don&amp;rsquo;t experience random CPU heat ups while doing normal things like surfing the internet or typing posts.&lt;/li&gt;
&lt;li&gt;No dock displayed - this is a personal preference as I&amp;rsquo;m running on a laptop and prefer more  screen real estate for my applications.&lt;/li&gt;
&lt;li&gt;Firefox doesn&amp;rsquo;t need a special environment variable to enable touch screen scrolling.&lt;/li&gt;
&lt;li&gt;No snap store running continuously in the background.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;cons&#34;&gt;Cons&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;No desktop files displayed on the desktop even though there is a &amp;ldquo;Desktop&amp;rdquo; folder.&lt;/li&gt;
&lt;li&gt;No system tray for applications displayed by default.&lt;/li&gt;
&lt;li&gt;Not all software is available in RPM (but flatpacks help).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The cons can be addressed by additional configuration. I decided to leave the Desktop alone as I have a bad habit of cluttering up my desktop with files and icons I ultimately don&amp;rsquo;t use.&lt;/p&gt;
&lt;p&gt;Ubuntu enables a lot of these quality of life experiences out of the box, but with a little work I was able to achieve an equivalent experience with Fedora.&lt;/p&gt;
&lt;h2 id=&#34;setup&#34;&gt;Setup&lt;/h2&gt;
&lt;h3 id=&#34;rpm-fusion&#34;&gt;RPM Fusion&lt;/h3&gt;
&lt;p&gt;Fedora by default only presents open-source software. In order to get the non-free software, you need to enable RPM Fusion. While you can turn on the repositories for Fusion in Software Manager, &lt;strong&gt;this does not enable it on dnf automatically&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Therefore, it&amp;rsquo;s best to follow all the instructions to enable it both on the Graphical Setup and Command Line Setup here: &lt;a href=&#34;https://rpmfusion.org/Configuration&#34;&gt;https://rpmfusion.org/Configuration&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Another thing to note is to enable both &lt;strong&gt;free&lt;/strong&gt; and &lt;strong&gt;nonfree&lt;/strong&gt; repositories. I enabled the nonfree repositories initially, and found out that I was having package dependencies issues installing standard software like VLC.&lt;/p&gt;
&lt;h3 id=&#34;flathub&#34;&gt;Flathub&lt;/h3&gt;
&lt;p&gt;There is a lot of overlap of software available between RPM Fusion and Flathub. Flathub, however, had more software available that I normally use outside of standard repositories, such as &lt;a href=&#34;https://flathub.org/apps/details/org.signal.Signal&#34;&gt;Signal&lt;/a&gt; and the &lt;a href=&#34;https://flathub.org/apps/details/com.synology.SynologyDrive&#34;&gt;Synology Drive client&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Instructions to set it up are here: &lt;a href=&#34;https://flatpak.org/setup/Fedora/&#34;&gt;https://flatpak.org/setup/Fedora/&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;gnome-tweaks-and-extensions&#34;&gt;Gnome Tweaks and Extensions&lt;/h3&gt;
&lt;p&gt;Gnome-Tweaks can be found in standard repositories and installed via &lt;code&gt;sudo dnf install gnome-tweaks&lt;/code&gt;. Personal settings I enjoy:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Show battery percentage&lt;/li&gt;
&lt;li&gt;Show day of week&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I haven&amp;rsquo;t played around with many extensions yet, but these are the base ones I use:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://extensions.gnome.org/extension/1319/gsconnect/&#34;&gt;GSConnect&lt;/a&gt; - Phone notifications via KDE Connect app.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://extensions.gnome.org/extension/615/appindicator-support/&#34;&gt;AppIndicator and KStatusNotifierItem Support&lt;/a&gt; - Allows display of tray icons for Steam, Synology Drive, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;One difference I learned is that you can&amp;rsquo;t just restart Gnome Shell in Wayland like you can in X11/Ubuntu; any changes require you to log out and log back in.&lt;/p&gt;
&lt;h3 id=&#34;other-stuff&#34;&gt;Other Stuff&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Tap to click isn&amp;rsquo;t enabled by default on the touchpad; quick change in touchpad settings&lt;/li&gt;
&lt;li&gt;No keyboard shortcut for the Terminal; added Ctrl+Alt+T back in&lt;/li&gt;
&lt;li&gt;Alt-tabbing - by default both Alt-Tab and Super+Tab are set to the same setting of &amp;ldquo;Switch applications.&amp;rdquo; This will annoyingly display all applications and make you jump around from workspace to workspace, ultimately defeating the point of workspaces. I set Switch windows to Alt+Tab and Switch applications to Super+Tab, which is more in line with the Ubuntu defaults.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;gaming&#34;&gt;Gaming&lt;/h2&gt;
&lt;p&gt;After all this, I was able to install Steam through the Software Manager and play Civilization: Beyond Earth without issues.&lt;/p&gt;
&lt;p&gt;I also tested out a few games from Itch.io, which I discussed &lt;a href=&#34;https://www.jameskupke.com/posts/short-game-reviews-itchio-bundle-part-1/&#34;&gt;on my previous post&lt;/a&gt;. Although a few of them had some issues in Fedora, I tried the same games in Ubuntu and experienced the same behavior.&lt;/p&gt;
&lt;p&gt;I was concerned about the ability to play games due to Wayland, but it seems unfounded. So gaming appears to be a non-issue.&lt;/p&gt;
&lt;h2 id=&#34;final-thoughts&#34;&gt;Final Thoughts&lt;/h2&gt;
&lt;p&gt;Fedora is a nice mix between cutting-edge and stability, and although I wouldn&amp;rsquo;t recommend it for people new to Linux, it&amp;rsquo;s a decent intermediate distro for those that are more open-source centric.&lt;/p&gt;
&lt;p&gt;After adding all the repositories in, most of the software is available in Fedora. I&amp;rsquo;m still missing some Synology apps that I may attempt converting the deb packages into rpm, which would be another fun post to share.&lt;/p&gt;
&lt;p&gt;Barring any severe compatibility issues, I&amp;rsquo;ll be sticking with it for a while.&lt;/p&gt;
&lt;p&gt;Day 9 of #100DaysToOffload&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Short Game Reviews: Itch.io Bundle, Part 1</title>
      <link>https://www.jameskupke.com/posts/short-game-reviews-itchio-bundle-part-1/</link>
      <pubDate>Mon, 19 Oct 2020 20:37:41 -0400</pubDate>
      
      <guid>https://www.jameskupke.com/posts/short-game-reviews-itchio-bundle-part-1/</guid>
      <description>&lt;p&gt;What seems like an eternity ago, I picked up the &lt;a href=&#34;https://itch.io/b/520/bundle-for-racial-justice-and-equality&#34;&gt;Racial Justice and Equality bundle that was hosted on Itch.io&lt;/a&gt;. I was initially attracted to the big name titles that were included, but now that I&amp;rsquo;ve had a bit of extra free time I&amp;rsquo;ve been able to peruse and try out a few more.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m listing out the ones that I think are worth giving a try. Games are sorted alphabetically. I&amp;rsquo;m only on page 6 of 59, so I will probably have a few more of these posts as I continue through the backlog.&lt;/p&gt;
&lt;h2 id=&#34;celeste&#34;&gt;Celeste&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://mattmakesgames.itch.io/celeste&#34;&gt;Link&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Installation: Easy&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Probably one of the most popular games included in the bundle. Platformer that requires specific button input timings. I got decently far until the later stages where it gets a bit overbearing. I can definitely see why there was a lot of hype when this was released.&lt;/p&gt;
&lt;h2 id=&#34;lennas-inception&#34;&gt;Lenna&amp;rsquo;s Inception&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://tccoxon.itch.io/lennas-inception&#34;&gt;Link&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Installation: Easy&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Personally, this was one of the games that I was most interested when browsing through the bundle, as I&amp;rsquo;m a big fan of the traditional Legend of Zelda games. However, I&amp;rsquo;ve had little success getting this game to run properly. It crashes when switching or running in fullscreen. In windowed mode, it slows down randomly. It&amp;rsquo;s a shame because this looks very interesting.&lt;/p&gt;
&lt;h2 id=&#34;mable-and-the-wood&#34;&gt;Mable and the Wood&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://graffiti-games.itch.io/mable-and-the-wood&#34;&gt;Link&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Installation: Difficult&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A few weird things about this one, there was a zip within a zip file that needed extracted.
Also thanks to the forum posts, I found instructions to get this working in Fedora:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sudo dnf install compat-openssl10
cd /usr/lib64
sudo ln -s libcrypto.so.10 libcrypto.so.1.0.0
sudo ln -s libcurl.so.4 libcurl-gnutls.so.4
sudo ln -s libssl.so.10 libssl.so.1.0.0
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Initial gameplay is fun, it took a few seconds for my controller to register after starting the game. There are only a few buttons to control Mable, and gliding around is an interesting alternative to regular jumping from a platformer. Unfortunately, my controller (8BitDo SN30 pro+) didn&amp;rsquo;t map to the transform ability correctly on the right analog stick and I got stuck. I&amp;rsquo;ll probably use a different controller or switch to keyboard and mouse.&lt;/p&gt;
&lt;h2 id=&#34;pikuniku&#34;&gt;Pikuniku&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://devolverdigital.itch.io/pikuniku&#34;&gt;Link&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Installation: Easy&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;An interesting and quicky side-scrolling adventure game.  Controller worked without any issues. Lots of good humor, and enjoying it so far.&lt;/p&gt;
&lt;h2 id=&#34;pyre&#34;&gt;Pyre&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://supergiant-games.itch.io/pyre&#34;&gt;Link&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Installation: Medium&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I actually started this one on my Ubuntu instance, and I had to modify the startup script with an export to get it working:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;else

export TERM=xterm

if [ &amp;#34;$ARCH&amp;#34; == &amp;#34;x86_64&amp;#34; ]; then
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This game has beautiful artwork and an interesting storyline. The main gameply is 3 vs 3 soccer-ish game where you set up characters with unique traits to score goals. Between matches are the RPG elements that lets you customize your characters equipment and choose different paths to travel along. Although I could appreciate the gameplay, it just wasn&amp;rsquo;t my style.&lt;/p&gt;
&lt;h2 id=&#34;quadrilateral-cowboy&#34;&gt;Quadrilateral Cowboy&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://blendogames.itch.io/quadrilateralcowboy&#34;&gt;Link&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Installation: Easy&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A fun little 3d puzzle game that has an 80s retro feel where you have to type in terminal commands to activate doors, gates, lasers, cameras, etc. Another interesting part is the classical music or old timey songs from the 40s (I recognized Auld Lang Syne).&lt;/p&gt;
&lt;h2 id=&#34;shipwreck&#34;&gt;Shipwreck&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://brushfiregames.itch.io/shipwreck&#34;&gt;Link&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Installation: Easy&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Plays extremely similar to Link&amp;rsquo;s Awakening on the original GameBoy; it&amp;rsquo;s a top-down adventure game that you map items to your two primary buttons. Doesn&amp;rsquo;t support a gamepad, which is the only complaint I had so far.&lt;/p&gt;
&lt;h2 id=&#34;super-win-the-game&#34;&gt;Super Win the Game&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://piratehearts.itch.io/super-win-the-game&#34;&gt;Link&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Installation: Easy&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is a side-scrolling platformer that has an overhead world map. It&amp;rsquo;s designed essentially like Zelda II: Adventure of Link for the NES. The main difference is that the protagonist doesn&amp;rsquo;t attack, so the focus is purely on platforming. There is even CRT filters that further give it a retro look.&lt;/p&gt;
&lt;h2 id=&#34;underhero&#34;&gt;Underhero&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://papercastlegames.itch.io/underhero&#34;&gt;Link&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Installation: Easy&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The first thing I noticed was the pixel art is &lt;strong&gt;amazing&lt;/strong&gt;. This is a side scrolling platformer with a timed RPG battle. Really digging the beginning parts, and the story of playing an low level bad guy is amusing so far.&lt;/p&gt;
&lt;p&gt;Day 8 of #100DaysToOffload&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Starting With Mycroft</title>
      <link>https://www.jameskupke.com/posts/starting-with-mycroft/</link>
      <pubDate>Sat, 13 Jun 2020 10:09:09 -0400</pubDate>
      
      <guid>https://www.jameskupke.com/posts/starting-with-mycroft/</guid>
      <description>&lt;p&gt;This post was inspired by &lt;a href=&#34;https://mikestone.me/mycroft-without-the-audio&#34;&gt;Mike Stone&amp;rsquo;s post on using Mycroft&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Setting up my personal Mycroft instance looked like a fun experiment to try out on my Raspberry Pi, which is mostly idle from &lt;a href=&#34;https://pi-hole.net/&#34;&gt;Pi-hole&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Mycroft isn&amp;rsquo;t a package that comes directly from the Raspbian (or Debian for that matter) repository, so you have two options to get it:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Download source from Git and compile&lt;/li&gt;
&lt;li&gt;Grab a docker image and run&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Since the Raspberry Pi isn&amp;rsquo;t a high powered device, I decided to go with trying Docker instead of sitting around waiting for compilations to finish. I actually haven&amp;rsquo;t played around with Docker before, so this was a good way to try out multiple new things!&lt;/p&gt;
&lt;h2 id=&#34;using-docker&#34;&gt;Using Docker&lt;/h2&gt;
&lt;p&gt;There are all sorts of website to guide people through docker, but I used &lt;a href=&#34;https://www.freecodecamp.org/news/the-easy-way-to-set-up-docker-on-a-raspberry-pi-7d24ced073ef/&#34;&gt;this one from freeCodeCamp&lt;/a&gt;. The instructions varied slightly on granting the user the correct group access, but for the most part I was able to run the hello world docker in about 15 minutes.&lt;/p&gt;
&lt;p&gt;Mycroft&amp;rsquo;s official docker instructions can be found &lt;a href=&#34;https://mycroft-ai.gitbook.io/docs/using-mycroft-ai/get-mycroft/docker&#34;&gt;here&lt;/a&gt;. After downloading and attempting to run, I kept getting this message:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;standard_init_linux.go:211: exec user process caused &amp;quot;exec format error&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;My searches had mostly generic answers, but ultimately I discovered that this error is due to the official docker image for Mycroft is for x86 architecture (Intel/AMD), and not ARM (Pi).&lt;/p&gt;
&lt;p&gt;All was not lost! &lt;a href=&#34;https://hub.docker.com/&#34;&gt;Docker Hub&lt;/a&gt; has a very straightforward search and yielded a compatible ARM based image for Mycroft! I am using &lt;a href=&#34;https://hub.docker.com/r/mjkaye/mycroft-debian-slim&#34;&gt;this one from mjkaye&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;testing-it-out&#34;&gt;Testing it Out&lt;/h2&gt;
&lt;p&gt;Now that it&amp;rsquo;s running, it&amp;rsquo;s time to play! The official Docker instructions show how to pull up a bash terminal and start the CLI:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;docker exec -it mycroft /bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;./start-mycroft.sh cli
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;My first test was something simple and make sure it behaves appropriately:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://www.jameskupke.com/img/mycroft_cli.png&#34; alt=&#34;Screenshot of Mycroft CLI&#34; title=&#34;Test conversation with Mycroft&#34;&gt;&lt;/p&gt;
&lt;p&gt;Success! I was able to also install a few other skills such as jokes and an Alice chatbot.&lt;/p&gt;
&lt;p&gt;Since there isn&amp;rsquo;t any microphone or speaker to Pi, I need a simpler interface besides the terminal. I started playing around with the Android app, which I will talk about in a later post.&lt;/p&gt;
&lt;p&gt;Day 7 of #100DaysToOffload&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Testing Migadu for Emails</title>
      <link>https://www.jameskupke.com/posts/testing-migadu/</link>
      <pubDate>Tue, 26 May 2020 22:55:00 -0400</pubDate>
      
      <guid>https://www.jameskupke.com/posts/testing-migadu/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been playing around with &lt;a href=&#34;https://tutanota.com/&#34;&gt;Tutanota&lt;/a&gt; as an alterantive to GMail for a few months.&lt;/p&gt;
&lt;p&gt;Although it has a discrete email client with calendar that&amp;rsquo;s privacy focused, I never could get enough traction to get it to stick. It felt like additional maintenance instead of a viable alternative. I&amp;rsquo;m sure that it works for certain workflows, just not mine.&lt;/p&gt;
&lt;p&gt;I recently installed &lt;a href=&#34;https://yunohost.org/&#34;&gt;Yunohost&lt;/a&gt; for a private Pleroma and WordPress instance, and it came with email hosting for the domains as well. I&amp;rsquo;ve played around with various A records, CNAMES, and redirects in my DNS registrar, but I typically never touch the MX section until recently.&lt;/p&gt;
&lt;p&gt;I quickly learned a few things from this experiment:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&#34;https://www.xfinity.com/support/articles/email-port-25-no-longer-supported&#34;&gt;Comcast doesn&amp;rsquo;t open port 25 for email.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Private email servers will typically be flagged as spam, making your email undeliverable.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Really enjoying some custom emails available to me, I went to go look for an alternative.&lt;/p&gt;
&lt;p&gt;I recall a post from &lt;a href=&#34;https://drewdevault.com/&#34;&gt;Drew Devault&lt;/a&gt; on &lt;a href=&#34;https://fosstodon.org/&#34;&gt;Fosstodon&lt;/a&gt; recommending &lt;a href=&#34;https://www.migadu.com/&#34;&gt;Migadu&lt;/a&gt;. I can&amp;rsquo;t find the exact post, but I recall most Migadu users echoing the same sentiments. I decided to give it another try. Lucky for me, there&amp;rsquo;s a free tier to test this out!&lt;/p&gt;
&lt;h2 id=&#34;setup-was-rather-painless&#34;&gt;Setup was rather painless.&lt;/h2&gt;
&lt;p&gt;&lt;img src=&#34;https://www.jameskupke.com/img/migadu-dns-configuration.png&#34; alt=&#34;migadu dns setup page&#34; title=&#34;DNS setup for migadu&#34;&gt;&lt;/p&gt;
&lt;p&gt;After doing mailbox configuration for Yunohost, I felt pretty comfortable going into my DNS registrar and entering various MX commands. I will say that Migadu made it even easier to go through step by step, and their validator provided clear detail.&lt;/p&gt;
&lt;p&gt;There is even an option to have Migadu do the DNS configuration themselves, but I had already enough CNAMES within my domains where it would have been too much of a hassle.&lt;/p&gt;
&lt;h2 id=&#34;unlimited-email-addresses-and-email-domains&#34;&gt;Unlimited email addresses and email domains!&lt;/h2&gt;
&lt;p&gt;&lt;img src=&#34;https://www.jameskupke.com/img/migadu-domains.png&#34; alt=&#34;migadu domains interface&#34; title=&#34;3 domains, 1 login!&#34;&gt;&lt;/p&gt;
&lt;p&gt;After setting up the first domain, I fired up Thunderbird and configured it through the guide. Success! I was able to send a &lt;a href=&#34;https://useplaintext.email/&#34;&gt;plaintext email&lt;/a&gt; to my GMail account!&lt;/p&gt;
&lt;p&gt;For fun, I went through the same process for a different domain, and it plugged right in the list of domains. As you can see, the interface is pretty clean and straightforward.&lt;/p&gt;
&lt;p&gt;Within each domain, I can create unlimited different emails. So far the process has impressed me. I really like having a consolidated email management interface. This is off to a great start, and then I found the alias options.&lt;/p&gt;
&lt;h2 id=&#34;wildcard-aliases-are-awesome&#34;&gt;Wildcard aliases are awesome.&lt;/h2&gt;
&lt;p&gt;GMail power users may be familiar with creating instant aliases with the &lt;code&gt;username+whatever@gmail.com&lt;/code&gt; trick. I use it consistently for creating accounts and signing up for newsletters. It provides a nice way to apply inboud filters and determine if an email got sold to a 3rd party.&lt;/p&gt;
&lt;p&gt;With Migadu, you get the flexiblity of creating any type of alias and sending to any email inbox you like. I created a new rule for &lt;code&gt;account-*@domain.tld&lt;/code&gt; and direct it to my primary email so that I can create &amp;ldquo;unique&amp;rdquo; email usernames for all my accounts. If an email gets too much junk? Delete the mailbox and it will become instantly undeliverable.&lt;/p&gt;
&lt;h2 id=&#34;why-didnt-i-do-this-sooner&#34;&gt;Why didn&amp;rsquo;t I do this sooner?&lt;/h2&gt;
&lt;p&gt;I can say that I am hooked. I&amp;rsquo;ve been playing around with getting a few vanity domains and now I&amp;rsquo;m starting to host email addresses for family. I can tack on additional emails at no additional cost with Migadu. I haven&amp;rsquo;t hit the send limits to transition into a paid account, but at $4 a month, it&amp;rsquo;s an excellent value for the functionality I get.&lt;/p&gt;
&lt;p&gt;I still have a few things to tackle in order to transition off GMail completely:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Calendar&lt;/li&gt;
&lt;li&gt;Ability to search my years of emails&lt;/li&gt;
&lt;li&gt;All major accounts still tied there&lt;/li&gt;
&lt;li&gt;All my contacts use know my GMail address&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Unlike my journey with Tutanota, I will continue to transition off my GMail depdency, and so far I&amp;rsquo;m having fun doing it.&lt;/p&gt;
&lt;p&gt;Day 6 of #100DaysToOffload&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>GSConnect on Ubuntu</title>
      <link>https://www.jameskupke.com/posts/gsconnect-on-ubuntu/</link>
      <pubDate>Sun, 17 May 2020 21:30:00 +0000</pubDate>
      
      <guid>https://www.jameskupke.com/posts/gsconnect-on-ubuntu/</guid>
      <description>&lt;p&gt;Ever since &lt;a href=&#34;https://googleblog.blogspot.com/2013/03/a-second-spring-of-cleaning.html&#34;&gt;Google Reader was shut down&lt;/a&gt;, I have been progressively reducing my reliance on Google. My recent focus has been to stop using Google Messages for my SMS client on my phone.&lt;/p&gt;
&lt;p&gt;Google Messages has been very convenient to allow me to read and reply to SMS on my PC. Setup time only involves scanning a QR code on the browser to start messaging. I keep a tab pinned on all my PCs for Messages.&lt;/p&gt;
&lt;p&gt;I remembered trying &lt;a href=&#34;https://kdeconnect.kde.org/&#34;&gt;KDE Connect&lt;/a&gt; a long time ago and not having a positive experience, but I decided try it out again.&lt;/p&gt;
&lt;p&gt;A few searches exposed the existence of GSConnect, which is the equivalent of KDE Connect for those that use Gnome. My first step was go to the &lt;a href=&#34;https://extensions.gnome.org/extension/1319/gsconnect/&#34;&gt;GSConnect extension site&lt;/a&gt; and download it.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://www.jameskupke.com/img/gsconnect-no-extension.png&#34; alt=&#34;GSConnect Page on initial load&#34; title=&#34;GSConnect page, no enable button, I should have read the top&#34;&gt;&lt;/p&gt;
&lt;p&gt;I selected the latest version on Download, but I didn&amp;rsquo;t know what to do with the zip. This also didn&amp;rsquo;t line up with the general guides online for setting it up.&lt;/p&gt;
&lt;p&gt;Turns out I didn&amp;rsquo;t read the big purple box on the top of the screen and download the Firefox add-on.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://www.jameskupke.com/img/gsconnect-with-extension.png&#34; alt=&#34;GSConnect Page with add-on installed&#34; title=&#34;Ah, much better!&#34;&gt;&lt;/p&gt;
&lt;p&gt;Much better! Sliding it on launched GSConnect, and I was able to pair my phone to the PC. However, as soon as I closed the window, I couldn&amp;rsquo;t find it on my notification bar and relaunching the website showed it as off. What gives?&lt;/p&gt;
&lt;p&gt;A few more searches later, I found that Gnome extensions are disabled by default, and the only way to enable them is with Gnome Tweaks. This can be done easily enough with:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo apt install gnome-tweak-tool&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://www.jameskupke.com/img/gnome-tweaks-extension.png&#34; alt=&#34;Gnome Tweaks interface&#34; title=&#34;The final piece of the puzzle&#34;&gt;&lt;/p&gt;
&lt;p&gt;Sliding on the Extensions on the top right finally made the extension stick. And now my GSConnect fires up at every session. Success!&lt;/p&gt;
&lt;p&gt;After a day of using it, here&amp;rsquo;s some observations of KDE Connect vs Google Messages:&lt;/p&gt;
&lt;p&gt;Pluses of KDE Connect:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I receive all notifications on my Desktop. Not just SMS.&lt;/li&gt;
&lt;li&gt;I can quickly push files to my PC on my phone.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Shortcomings of KDE Connect:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Must be on the same network; I have to VPN frequently, and my connection to the phone breaks&lt;/li&gt;
&lt;li&gt;Different interface per environment. There&amp;rsquo;s KDE Connect for KDE environments, and GSConnect for Gnome environments. I downloaded the Windows binary, and it would crash after the first notification. Google Messages just works.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Also, my GSConnect doesn&amp;rsquo;t seem to mount my phones storage or SD card, but I think this is some setting I may have missed.&lt;/p&gt;
&lt;p&gt;Ultimately though, my Google Messages tab closed on Ubuntu. Maybe with a bit more experimenting I will have it closed on my Windows PC soon too.&lt;/p&gt;
&lt;p&gt;Day 5 of #100DaysToOffload&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Computer Glasses</title>
      <link>https://www.jameskupke.com/posts/computer-glasses/</link>
      <pubDate>Sat, 16 May 2020 19:40:00 -0400</pubDate>
      
      <guid>https://www.jameskupke.com/posts/computer-glasses/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been mulling over &lt;a href=&#34;https://kevq.uk/is-dark-mode-such-a-good-idea/&#34;&gt;Kev&amp;rsquo;s opinion of Dark Mode&lt;/a&gt;, and wanted to share my perspective.&lt;/p&gt;
&lt;p&gt;I am constantly staring at a plethora of different screens: TV, laptops, mobile phones, and various Nintendo handhelds over the years. After staring at something for hours on end, yes, I do get eye strain. I try to step away and take a break, but sometimes you get in your &lt;a href=&#34;https://en.wikipedia.org/wiki/Flow_(psychology)&#34;&gt;flow state&lt;/a&gt; and it&amp;rsquo;s hard or undesirable to break free.&lt;/p&gt;
&lt;p&gt;A few years ago I made a strong effort to use dark mode and blue light filters as much as possible:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://justgetflux.com/&#34;&gt;f.lux&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;dark mode Firefox plugins&lt;/li&gt;
&lt;li&gt;AMOLED black mode on mobile apps that had it available.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As time goes on, I find myself leaving the defaults on most of my applications and desktops from either re-installs or reformatting hard drives. Sometimes I&amp;rsquo;m on equipment without administrative permission or have limited display controls such as my Nintendo 3DS (now replaced with a Switch). Nothing to tweak there.&lt;/p&gt;
&lt;p&gt;So I bought gamer glasses.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://www.jameskupke.com/img/computer-glasses.jpg&#34; alt=&#34;Gunnar Axial Onyx&#34; title=&#34;My cool shades, ignore the smudges&#34;&gt;&lt;/p&gt;
&lt;p&gt;I am in agreement with Kev that there isn&amp;rsquo;t strong research on the claims on &amp;ldquo;saving your eyes&amp;rdquo; that&amp;rsquo;s hyped up by the marketing. I bought them at my local Best Buy so I could return them just in case it was all bunk. That was 4 years ago.&lt;/p&gt;
&lt;p&gt;From my anecdotal experience, I have less eye strain while wearing them. This model has a slight magnification which is a personal preference I enjoy. I move my head from my laptop to the TV and I get the same filter. I take them off, no more blue light mode; no settings to change, no configurations to modify.&lt;/p&gt;
&lt;p&gt;I am fortunate that I don&amp;rsquo;t need glasses (yet!). But, it has always been a lingering thought that I should do my best to maintain my vision. When the time comes, I&amp;rsquo;ll probably reevaluate if I will buy a dedicated pair of computer glasses.&lt;/p&gt;
&lt;p&gt;Time to stare at something else besides a glowing screen for a while.&lt;/p&gt;
&lt;p&gt;Day 4 of #100DaysToOffload&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>My First Pull Request Part 2</title>
      <link>https://www.jameskupke.com/posts/first-pull-request-part-2/</link>
      <pubDate>Sun, 10 May 2020 23:05:01 -0400</pubDate>
      
      <guid>https://www.jameskupke.com/posts/first-pull-request-part-2/</guid>
      <description>&lt;p&gt;It&amp;rsquo;s official, I contributed to a open source project! This is a continuation of &lt;a href=&#34;https://www.jameskupke.com/posts/first-pull-request/&#34;&gt;my first pull request for DDclient&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I actually didn&amp;rsquo;t think I would be posting anything today, considering it&amp;rsquo;s been Mother&amp;rsquo;s Day and I haven&amp;rsquo;t been on the PC all that much.&lt;/p&gt;
&lt;p&gt;Requesting the pull request was pretty straightforward within GitHub. It starts a dedicated conversation for the changes. For the most part, there was back and forth with me and one of the maintainers to understand how NameCheap works. Also, the maintainer asked me to change some of the naming to follow his updated conventions. Easy stuff to address.&lt;/p&gt;
&lt;p&gt;That being said, I&amp;rsquo;m not a big fan of the layout of GitHub for pull requests though. Perhaps since I&amp;rsquo;m not using a dedicated IDE (just working off a local copy with vim), it was confusing trying to keep track of the edits requested. I basically flipped back and forth from the web browser and vim making sure that I lined up the suggestions.&lt;/p&gt;
&lt;p&gt;Ultimately the final round of reviews just had lines of code changes within the PR where I could mark them as &amp;ldquo;accept&amp;rdquo; and it placed a commit for me. It kinda felt like &amp;ldquo;cheating&amp;rdquo;, but it got the job done.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://www.jameskupke.com/img/github_pull_request.png&#34; alt=&#34;Pull Request on Github&#34; title=&#34;Success! Pull Request Closed&#34;&gt;&lt;/p&gt;
&lt;p&gt;Beautiful! My small contribution went to the main codebase!&lt;/p&gt;
&lt;p&gt;Prior to this, I&amp;rsquo;ve understood the basics of a pull request, but it was definitely enlightening going through the process myself. I&amp;rsquo;m super thankful to SuperSandro2000 for being patient and working with me on the review to get it closed. I think I&amp;rsquo;ll be doing some more reading or tutorials on pull requests on GitHub to make sure I didn&amp;rsquo;t miss something obvious that made this more difficult than it needed to be. On the other hand, perhaps with enough practice it will come more naturally to me.&lt;/p&gt;
&lt;p&gt;Day 3 of #100DaysToOffload&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>NetlifyCMS Part 2: Removing Extra Javascript</title>
      <link>https://www.jameskupke.com/posts/netlifycms-part-2-removing-extra-javascript/</link>
      <pubDate>Sat, 09 May 2020 13:20:00 -0400</pubDate>
      
      <guid>https://www.jameskupke.com/posts/netlifycms-part-2-removing-extra-javascript/</guid>
      <description>&lt;p&gt;I was very tempted to give a subtitle of &amp;ldquo;Electric Boogaloo.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;I ran a &lt;a href=&#34;https://www.webpagetest.org/&#34;&gt;WebPageTest&lt;/a&gt; on one of my posts, and I was quickly reminded of the &lt;a href=&#34;https://www.jameskupke.com/posts/updating-netlify-from-template/&#34;&gt;janky workaround I made for NetlifyCMS&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://www.jameskupke.com/img/Screenshot_2020-05-09-WebPageTest-Content-Breakdown_1.png&#34; alt=&#34;Content Size Breakdown&#34; title=&#34;50KB of javascript&#34;&gt;&lt;/p&gt;
&lt;p&gt;Yikes! 50KB of javascript which is 47% of the payload. Additionally, I&amp;rsquo;m sure this is driving up extra processing time before rendering the page.&lt;/p&gt;
&lt;p&gt;Time to go back to the partial that was loaded into the header:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;!-- NOTE: Netlify Identity script is only needed on main page, will need to change this to not fire on every page --&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;script&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;src&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;https://identity.netlify.com/v1/netlify-identity-widget.js&amp;#34;&lt;/span&gt;&amp;gt;&amp;lt;/&lt;span style=&#34;color:#f92672&#34;&gt;script&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;At least I took good notes. With some fresh eyes perusing the Hugo documentation, I was rewarded with the answer I was looking for: &lt;code&gt;.IsHome&lt;/code&gt;! So all I need to do is add a conditional homepage check to my partial:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;!-- NOTE: Netlify Identity script is only needed on main page --&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{{ if .IsHome }}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;script&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;src&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;https://identity.netlify.com/v1/netlify-identity-widget.js&amp;#34;&lt;/span&gt;&amp;gt;&amp;lt;/&lt;span style=&#34;color:#f92672&#34;&gt;script&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{{ end }}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Let&amp;rsquo;s test it out again, shall we?&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://www.jameskupke.com/img/Screenshot_2020-05-09-WebPageTest-Content-Breakdown_2.png&#34; alt=&#34;Content Size Breakdown&#34; title=&#34;1KB of javascript&#34;&gt;&lt;/p&gt;
&lt;p&gt;Much better! In reality every page loads in under 1 second, but in my experience it always pays off to address some technical debt as you move along.&lt;/p&gt;
&lt;p&gt;Day 2 of #100DaysToOffload&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>My First Pull Request</title>
      <link>https://www.jameskupke.com/posts/first-pull-request/</link>
      <pubDate>Fri, 08 May 2020 22:30:00 +0000</pubDate>
      
      <guid>https://www.jameskupke.com/posts/first-pull-request/</guid>
      <description>&lt;p&gt;From the countless posts I&amp;rsquo;ve seen from &lt;a href=&#34;https://100daystooffload.com/&#34;&gt;#100DaysToOffload&lt;/a&gt;, I finally decided to partake as well.&lt;/p&gt;
&lt;p&gt;Well, even though I did get &lt;a href=&#34;https://www.jameskupke.com/posts/updating-netlify-from-template/&#34;&gt;NetlifyCMS up and running to post online&lt;/a&gt;, I&amp;rsquo;m still writing this post on a Vim terminal.&lt;/p&gt;
&lt;p&gt;Over the week, I&amp;rsquo;ve been playing around with self-hosting an instance of &lt;a href=&#34;https://pleroma.social&#34;&gt;Pleroma&lt;/a&gt; on one of my spare Rasberry Pis with &lt;a href=&#34;https://yunohost.org&#34;&gt;YunoHost&lt;/a&gt;. I&amp;rsquo;ll probably make a separate post on this when I get it to a much more stable state.&lt;/p&gt;
&lt;p&gt;After testing out the web server locally by IP address, it was time to associate it with a domain name and get a certificate from Let&amp;rsquo;s Encrypt.&lt;/p&gt;
&lt;p&gt;I currently use NameCheap for my domain names, and I picked up an acceptable one for $2. I added a CNAME to redirect to a domain that my router already handles by DDNS, and it redirected to my pi!&lt;/p&gt;
&lt;p&gt;All is good, right? Not quite.&lt;/p&gt;
&lt;p&gt;To get rid of the ugly warning pages while accessing HTTPS, I tried clicking the 1 click install of a Let&amp;rsquo;s Encypt certificate. All I get is a fail message. After some trial and error installing it from the command line, I realized that the verification was failing due to recognizing a different IP address than my network. What is this mysterious IP address?&lt;/p&gt;
&lt;p&gt;After a bit of detective work, I discovered the IP actually belonged to NameCheap! Even though I placed a CNAME redirect to my DDNS domain, the IP resolved to their server before redirecting to my IP.&lt;/p&gt;
&lt;p&gt;At this point, I decided to implement a DDNS client on my pi to directly talk to NameCheap, and found &lt;a href=&#34;https://ddclient.net/&#34;&gt;DDclient&lt;/a&gt;. After reading through their documentation and sample files, I installed and configured it on my pi, but kept running into authentication issues updating my IP. After finding &lt;a href=&#34;https://www.namecheap.com/support/knowledgebase/article.aspx/583/11/how-do-i-configure-ddclient&#34;&gt;NameCheap&amp;rsquo;s Knowledgebase Article&lt;/a&gt;, I found that the login name and domain entries were different than the DDclient documentation. A few edits, and voila! Up and running.&lt;/p&gt;
&lt;p&gt;Apparently NameCheap is not as popular as the other DDNS providers that DDclient uses, as it took quite a bit of digging around to find the right answer. Taking a look at &lt;a href=&#34;https://github.com/ddclient/ddclient&#34;&gt;DDclient&amp;rsquo;s source code&lt;/a&gt;, the comment section describing a sample configuration for NameCheap was pretty easy to find within the perl script. I could fix this myself!&lt;/p&gt;
&lt;p&gt;I have a rudimentary understanding of Git from playing around locally on my PC, and I&amp;rsquo;ve heard the term Pull Request thrown around quite frequently to take in changes. How hard could this be? Turns out, not too terrible.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve been only using GitLab before, so I had to make an account over at GitHub. They offer 2 ways to submit a pull request:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create a branch, and then submit your branch for a pull request. This requires write access, which would be too much to ask for a one off request from a stranger.&lt;/li&gt;
&lt;li&gt;Fork the project, and submit the fork for pull request.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&#34;https://www.jameskupke.com/img/github_fork_button.png&#34; alt=&#34;Github Fork Button&#34; title=&#34;Fork, where the magic happens&#34;&gt;&lt;/p&gt;
&lt;p&gt;Initially I didn&amp;rsquo;t see the tiny magic button on the top right corner and cloned the existing repo trying to figure out how to fork. After finding the error of my ways, simply pressing the fork button automates cloning the repository over to my account and links it up. Nice!&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://www.jameskupke.com/img/github_commit.png&#34; alt=&#34;My commit&#34; title=&#34;My first contribution to open source!&#34;&gt;&lt;/p&gt;
&lt;p&gt;I was familiar at least with cloning repositories and pushing my own changes back upstream. After pushing, I created a new pull request and selected my fork from master to compare against. It&amp;rsquo;s now up to the maintainers to see if they liked the changes. Considering it&amp;rsquo;s only comments and not functionality, it should be pretty quick to review when they get around to it.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m hoping it gets approved!&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Updating NetlifyCMS</title>
      <link>https://www.jameskupke.com/posts/updating-netlify-from-template/</link>
      <pubDate>Fri, 24 Apr 2020 00:50:00 +0000</pubDate>
      
      <guid>https://www.jameskupke.com/posts/updating-netlify-from-template/</guid>
      <description>&lt;p&gt;Ok! I felt pretty bad neglecting the webpage, considering that I do enjoy the Hermit theme and the overall Hugo structure.&lt;/p&gt;
&lt;p&gt;One of my major issues was that I set this up with a 1-click deployment within Netlify. This was nice for a couple of reasons:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Download a sample hugo website with some posts&lt;/li&gt;
&lt;li&gt;Download and auto-setup NetlifyCMS, a web interface that will publish posts or page updates to git behind the scenes&lt;/li&gt;
&lt;li&gt;Incorporate scripts for a CI/CD process to deploy this via Netlify, which is where the site is currently hosted&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I managed to initially hack around the files enough to change the theme and add my own content, but there was tons of sprinklings of placeholder formats, posts, and silly things like shopping cart items.&lt;/p&gt;
&lt;p&gt;The project also had a bunch of javascript files that I had no idea what they did.&lt;/p&gt;
&lt;p&gt;So! To safely make some changes, I created a new branch in my repo.&lt;/p&gt;
&lt;p&gt;Then to test it out without affecting the site, I decided to add the branch as part of the pipeline in Netlify settings:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Go to Build &amp;amp; deploy&lt;/li&gt;
&lt;li&gt;Continous Deployment&lt;/li&gt;
&lt;li&gt;Deploy contexts&lt;/li&gt;
&lt;li&gt;Branch deploys: (branch name)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;After carefully reading the docs for &lt;a href=&#34;https://www.netlifycms.org/docs/add-to-your-site/&#34;&gt;NetlifyCMS&lt;/a&gt;, I started incorporating all the instructions on the page, with only the minor adjustment to the page was to add the Netlify Identity widget within my page with the &lt;code&gt;layouts/partials/extra-head.html&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;This meets the requirements of adding it to the head of my main page, but it also has an unfortunate effect of adding it to every single head throughout the site. I think due to caching it won&amp;rsquo;t affect performance, but I should clean it up more elegantly in the future.&lt;/p&gt;
&lt;p&gt;The fact that this post is here means that my short lived branch was successful and now merged back to the master.&lt;/p&gt;
&lt;p&gt;With that being said, hopefully I&amp;rsquo;ll be posting from my web interface moving forward!!!&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Playing with DNS &amp; IPv6 at Home</title>
      <link>https://www.jameskupke.com/posts/playing-with-ipv6/</link>
      <pubDate>Mon, 28 Oct 2019 00:50:00 +0000</pubDate>
      
      <guid>https://www.jameskupke.com/posts/playing-with-ipv6/</guid>
      <description>&lt;p&gt;Lesson learned today; if it ain&amp;rsquo;t broke, don&amp;rsquo;t fix it.&lt;/p&gt;
&lt;p&gt;As part of attempting to take general ownership of my own data, I&amp;rsquo;ve been trying to lessen my reliance on Google. I&amp;rsquo;ve been playing around with a few alternative email sources (&lt;a href=&#34;https://tutanota.com&#34;&gt;Tutanota&lt;/a&gt; and &lt;a href=&#34;https://protonmail.com&#34;&gt;Proton Mail&lt;/a&gt;), which I&amp;rsquo;ll probably discuss at a later date. Anyways, my recent goal was to set up &lt;a href=&#34;https://nextcloud.com&#34;&gt;NextCloud&lt;/a&gt;, specifically &lt;a href=&#34;https://ownyourbits.com/nextcloudpi/&#34;&gt;NextCloud Pi&lt;/a&gt; since I have a fairly idle Raspberry Pi that only does &lt;a href=&#34;https://pi-hole.net&#34;&gt;Ad-blocking via DNS&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve had my Pi-Hole set up for a few years, and it&amp;rsquo;s been rock solid. It&amp;rsquo;s been so long, actually that when I tried to run through the NextCloud Pi setup that I was on an old unsupported version of Raspbian.&lt;/p&gt;
&lt;p&gt;So step one was getting a new image of Raspbian and flashing the SD card; this was fairly straightforward except for the part of needing to create a ssh file on the boot partition in order to SSH into a headless machine.&lt;/p&gt;
&lt;p&gt;Reinstalling Pi-Hole was also equally as easy by using their one line command to install. On setup, I noticed that IPv6 ad-blocking was offered, so I thought, &amp;ldquo;Why not?&amp;rdquo; and turned it on and proceeded to turn IPv6 on my router as well, since my ISP (ATT) supports IPv6 natively.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s where I run into my first problem. My router has fairly straightforward LAN settings to specify my DNS server, which is typically where the Pi-Hole&amp;rsquo;s IP address goes. After a few test runs, I still notice that ads are still coming through&amp;hellip; Oops, IPv6 hosts are looking at the router&amp;rsquo;s IPv6 DNS address presented whch is different than the value I entered for my IPv4 DNS server. Actually, it&amp;rsquo;s just the default gateway (router) and my ISP&amp;rsquo;s DNS. Only devices that only run in IPv4 will get ads blocked; suprisingly most of my devices support IPv6, so my Pi-Hole was idle.&lt;/p&gt;
&lt;p&gt;All my router&amp;rsquo;s IPv6 settings are in it&amp;rsquo;s own menu, and it has a field for 2 DNS server settings. I pull up my Pi&amp;rsquo;s IPv6 and enter it there, restart, and see what happens. Success! Well, sort of:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://www.jameskupke.com/img/Screenshot_2019-10-27-Pi-hole-Admin-Console.png&#34; alt=&#34;DNS Query Graph&#34; title=&#34;Pi-Hole Query Graph with Explosion of DNS Queries&#34;&gt;&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s not good&amp;hellip; Turns out the IPv6 DNS setting is for both for the WAN and the LAN, and it&amp;rsquo;s creating some sort of crazy loopbacks. DNS lookups are slowing down to a crawl.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Hello</title>
      <link>https://www.jameskupke.com/posts/hello/</link>
      <pubDate>Mon, 26 Aug 2019 00:50:00 +0000</pubDate>
      
      <guid>https://www.jameskupke.com/posts/hello/</guid>
      <description>&lt;p&gt;Hello! I&amp;rsquo;ve been out of the personal website making business for a while, but I felt a bit compelled to start practicing again ever since I&amp;rsquo;ve been reading up on posts on &lt;a href=&#34;https://fosstodon.org/&#34;&gt;Fosstodon&lt;/a&gt; Mastodon instance.&lt;/p&gt;
&lt;p&gt;It took some thinking to figure out what I wanted to build, but essentially I&amp;rsquo;m making:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;GitLab&lt;/li&gt;
&lt;li&gt;Hugo&lt;/li&gt;
&lt;li&gt;Netlify CMS&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;There may be some major changes going on, but I&amp;rsquo;ll try to share my discoveries as I go along. Later!&lt;/p&gt;
</description>
    </item>
    
  </channel>
</rss>
