<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>My New Hugo Project</title>
    <link>https://shawnsv.com/</link>
    <description>Recent content on My New Hugo Project</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Tue, 16 Jan 2024 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://shawnsv.com/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Backing up Raspberry Pi</title>
      <link>https://shawnsv.com/posts/backing-up-raspberry-pi/</link>
      <pubDate>Tue, 16 Jan 2024 00:00:00 +0000</pubDate>
      <guid>https://shawnsv.com/posts/backing-up-raspberry-pi/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;images/image-19.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;why&#34;&gt;&#xA;  Why!?!?&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#why&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;Link to heading&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;Link to heading&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&amp;ldquo;Why!?!?&amp;rdquo; That&amp;rsquo;s what I was asking when my pi stopped working. After days of configuration and tinkering it just wouldn&amp;rsquo;t connect to the network anymore. I said to myself &amp;ldquo;Welp, I guess I&amp;rsquo;ll reinstall from scratch&amp;rdquo; and spent the next few hours installing and setting everything back up again.&lt;/p&gt;&#xA;&lt;h2 id=&#34;solution-make-a-backup-using-a-mac&#34;&gt;&#xA;  Solution? Make a Backup using a Mac&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#solution-make-a-backup-using-a-mac&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;Link to heading&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;Link to heading&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Obviously this is what I should have done from the beginning. Now what&amp;rsquo;s the &amp;ldquo;right&amp;rdquo; backup solution?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Installing OMV on Raspberry Pi</title>
      <link>https://shawnsv.com/posts/installing-omv-on-raspberry-pi/</link>
      <pubDate>Tue, 16 Jan 2024 00:00:00 +0000</pubDate>
      <guid>https://shawnsv.com/posts/installing-omv-on-raspberry-pi/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;images/image-20.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Open media vault allows you to run a NAS server on your raspberry pi. the easiest way to install it on your pi is to install the default &amp;ldquo;lite&amp;rdquo; version of the OS. That is the one with no &amp;ldquo;Desktop&amp;rdquo; and then run the following script:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;wget -O - https://github.com/OpenMediaVault-Plugin-Developers/installScript/raw/master/install | sudo bash&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;After that completes, you&amp;rsquo;ll also want to run this one:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;wget -O - https://github.com/OpenMediaVault-Plugin-Developers/packages/raw/master/install | sudo bash&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Give it a few minutes to run, and it should be accessible through the website at it&amp;rsquo;s ip address. You will then use the default username and password to log in. The default username is &amp;ldquo;admin&amp;rdquo; and the default password is &amp;ldquo;openmediavault&amp;rdquo;&lt;br&gt;&#xA;Source: &lt;a href=&#34;https://www.reddit.com/r/OpenMediaVault/comments/16qcny4/guide_for_setting_up_omv_on_raspberry_pi/&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://www.reddit.com/r/OpenMediaVault/comments/16qcny4/guide_for_setting_up_omv_on_raspberry_pi/&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Using Kotlin multi-platform for Android and iOS with firebase</title>
      <link>https://shawnsv.com/posts/using-kotlin-multi-platform-for-android-and-ios-with-firebase/</link>
      <pubDate>Fri, 08 Dec 2023 00:00:00 +0000</pubDate>
      <guid>https://shawnsv.com/posts/using-kotlin-multi-platform-for-android-and-ios-with-firebase/</guid>
      <description>&lt;p&gt;So I just started a new app that is being built for Android and iOS. I&amp;rsquo;m building it using kotlin multi-platform (KMP). I started it by following a guide on jetbrains&amp;rsquo; website. I started it by following &lt;a href=&#34;https://www.jetbrains.com/help/kotlin-multiplatform-dev/multiplatform-getting-started.html#next-step&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;this guide&lt;/a&gt;. &lt;a href=&#34;https://www.jetbrains.com/help/kotlin-multiplatform-dev/multiplatform-getting-started.html#next-step&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://www.jetbrains.com/help/kotlin-multiplatform-dev/multiplatform-getting-started.html#next-step&lt;/a&gt; after kdoctor said that my machine was ready for cross platform compilation I moved on to cloning &lt;a href=&#34;https://github.com/JetBrains/compose-multiplatform-ios-android-template&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;this repo&lt;/a&gt;. &lt;a href=&#34;https://github.com/JetBrains/compose-multiplatform-ios-android-template&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://github.com/JetBrains/compose-multiplatform-ios-android-template&lt;/a&gt; This app is using firebase so I had to integrate it into the app. I found &lt;a href=&#34;https://github.com/GitLiveApp/firebase-kotlin-sdk&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;this library&lt;/a&gt; which is a cross platform firebase library. &lt;a href=&#34;https://github.com/GitLiveApp/firebase-kotlin-sdk&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://github.com/GitLiveApp/firebase-kotlin-sdk&lt;/a&gt; Getting it set up was a bit difficult as the app kept crashing everytime I tried to use firebase for anything. I later found &lt;a href=&#34;https://medium.com/@carlosgub/how-to-implement-firebase-firestore-in-kotlin-multiplatform-mobile-with-compose-multiplatform-32b66cdba9f7&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;this guide&lt;/a&gt; but as it is the only one online, and seems to miss a few pain points that I found. &lt;a href=&#34;https://medium.com/@carlosgub/how-to-implement-firebase-firestore-in-kotlin-multiplatform-mobile-with-compose-multiplatform-32b66cdba9f7&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://medium.com/@carlosgub/how-to-implement-firebase-firestore-in-kotlin-multiplatform-mobile-with-compose-multiplatform-32b66cdba9f7&lt;/a&gt; So I&amp;rsquo;m writing this to document my process and and pain points so that if anyone else wants to do this they can. Also, it should be noted that I started with the Authentication library.&lt;/p&gt;</description>
    </item>
    <item>
      <title>QR codes</title>
      <link>https://shawnsv.com/posts/qr-codes/</link>
      <pubDate>Wed, 25 Jan 2023 00:00:00 +0000</pubDate>
      <guid>https://shawnsv.com/posts/qr-codes/</guid>
      <description>&lt;h2 id=&#34;qr-code-text-data-formats&#34;&gt;&#xA;  QR code text data formats&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#qr-code-text-data-formats&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;Link to heading&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;Link to heading&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;So I&amp;rsquo;ve been playing around with QR codes. I wanted to know how to generate different data that can be read by a phone. I found the following page that describes how to format the data using text only.&lt;br&gt;&#xA;&lt;a href=&#34;https://github.com/zxing/zxing/wiki/Barcode-Contents&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://github.com/zxing/zxing/wiki/Barcode-Contents&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;save-space-using-all-caps&#34;&gt;&#xA;  Save space using all caps&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#save-space-using-all-caps&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;Link to heading&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;Link to heading&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;QR codes have a special format for data that is in all caps and if you use it, the QR code will use less data. My understanding is that all you have to do to use it is to write the text in all caps (can include numbers and these symbols $, %, *, +, -, ., /, :, and space) and the QR code generator should automatically figure out how to represent it using less data. The downside is that some urls are case sensitive, so make sure to test the url before you print it.&lt;br&gt;&#xA;&amp;ldquo;&lt;strong&gt;Alphanumeric mode&lt;/strong&gt; is for the decimal digits 0 through 9, as well as uppercase letters (not lowercase!), and the symbols $, %, *, +, -, ., /, and : as well as a space.&amp;rdquo; Source: &lt;a href=&#34;https://www.thonky.com/qr-code-tutorial/data-analysis&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://www.thonky.com/qr-code-tutorial/data-analysis&lt;/a&gt;&lt;br&gt;&#xA;Further reading here &lt;a href=&#34;https://www.thonky.com/qr-code-tutorial/introduction&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://www.thonky.com/qr-code-tutorial/introduction&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Installing Docker and Portainer</title>
      <link>https://shawnsv.com/posts/installing-docker-and-portainer/</link>
      <pubDate>Mon, 18 Jul 2022 00:00:00 +0000</pubDate>
      <guid>https://shawnsv.com/posts/installing-docker-and-portainer/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;images/image-18.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;So I recently needed to install docker and portainer so that I could run a few services on my server.&lt;/p&gt;&#xA;&lt;h2 id=&#34;installing-docker&#34;&gt;&#xA;  Installing docker&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#installing-docker&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;Link to heading&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;Link to heading&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;This is just helpful links for installing docker on ubuntu or lubuntu for me on lubuntu 22.04.&#xA;the most important commands on that were:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sudo apt update &amp;amp;&amp;amp; sudo apt upgrade -y&#xA;sudo apt install docker.io&#xA;docker --version&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;After that you should be able to to test that your installation is installed and running.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ubuntu has a firewall enabled by default</title>
      <link>https://shawnsv.com/posts/ubuntu-has-a-firewall-enabled-by-default/</link>
      <pubDate>Mon, 18 Jul 2022 00:00:00 +0000</pubDate>
      <guid>https://shawnsv.com/posts/ubuntu-has-a-firewall-enabled-by-default/</guid>
      <description>&lt;p&gt;So when setting up my ubuntu server. I was running into issues connecting from different machines on my local network. I ran a port scan using nmap to see that many ports were filtered. I tried many things, but in the end one simple command fixed it.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sudo ufw disable&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>Upgrading portainer</title>
      <link>https://shawnsv.com/posts/upgrading-portainer/</link>
      <pubDate>Mon, 18 Jul 2022 00:00:00 +0000</pubDate>
      <guid>https://shawnsv.com/posts/upgrading-portainer/</guid>
      <description>&lt;p&gt;To make this, I followed the guide posted here. &lt;a href=&#34;https://docs.portainer.io/v/ce-2.9/start/upgrade/docker&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://docs.portainer.io/v/ce-2.9/start/upgrade/docker&lt;/a&gt; The latest portainer at the time of writing is portainer version 2.14.1 please replace that string with the latest version when using the following commands.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sudo docker stop portainer&#xA;sudo docker rm portainer&#xA;sudo docker pull portainer/portainer-ce:2.14.1&#xA;sudo docker run -d -p 8000:8000 -p 9000:9000 -p 9443:9443 \&#xA;    --name=portainer --restart=always \&#xA;    -v /var/run/docker.sock:/var/run/docker.sock \&#xA;    -v portainer_data:/data \&#xA;    portainer/portainer-ce:2.14.1&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
  </channel>
</rss>
