<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Zen Oh</title>
    <description>The latest articles on DEV Community by Zen Oh (@mss).</description>
    <link>https://dev.to/mss</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F687134%2Fed252f77-8fbd-4068-9db7-63ae17c35a45.jpg</url>
      <title>DEV Community: Zen Oh</title>
      <link>https://dev.to/mss</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mss"/>
    <language>en</language>
    <item>
      <title>How to Setup DNS Manager in Proxmox Using AdGuard Home</title>
      <dc:creator>Zen Oh</dc:creator>
      <pubDate>Sun, 15 Feb 2026 16:39:09 +0000</pubDate>
      <link>https://dev.to/mss/how-to-setup-dns-manager-in-proxmox-using-adguard-home-2jlo</link>
      <guid>https://dev.to/mss/how-to-setup-dns-manager-in-proxmox-using-adguard-home-2jlo</guid>
      <description>&lt;p&gt;First, make sure you have Ubuntu container template in Proxmox.&lt;br&gt;
Create container using Ubuntu container template&lt;/p&gt;
&lt;h1&gt;
  
  
  Setup the Container
&lt;/h1&gt;

&lt;p&gt;Do updates in container:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;apt update
apt upgrade
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Follow this documentation to install Docker inside your Ubuntu:&lt;br&gt;
&lt;a href="https://docs.docker.com/engine/install/ubuntu/" rel="noopener noreferrer"&gt;https://docs.docker.com/engine/install/ubuntu/&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;
  
  
  Remove the built in DNS service
&lt;/h1&gt;

&lt;p&gt;This is the command to remove the Ubuntu built in DNS service:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create the directory
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo mkdir&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; /etc/systemd/resolved.conf.d
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ol&gt;
&lt;li&gt;Create configuration file
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;nano /etc/systemd/resolved.conf.d/adguardhome.conf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ol&gt;
&lt;li&gt;Paste this into the file
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight toml"&gt;&lt;code&gt;&lt;span class="nn"&gt;[Resolve]&lt;/span&gt;
&lt;span class="py"&gt;DNS&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;127.0&lt;/span&gt;&lt;span class="err"&gt;.&lt;/span&gt;&lt;span class="mf"&gt;0.1&lt;/span&gt;
&lt;span class="py"&gt;DNSStubListener&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="err"&gt;no&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ol&gt;
&lt;li&gt;Create symbolic link
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo ln&lt;/span&gt; &lt;span class="nt"&gt;-sf&lt;/span&gt; /run/systemd/resolve/resolv.conf /etc/resolv.conf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ol&gt;
&lt;li&gt;Restart the service
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;systemctl reload-or-restart systemd-resolved
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h1&gt;
  
  
  Run AdGuard Home
&lt;/h1&gt;

&lt;p&gt;Create a directory where you want to store the docker compose file and AdGuard Home configurations, then move to that directory.&lt;/p&gt;

&lt;p&gt;Create docker-compose.yml file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;services&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;adguardhome&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;container_name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;adguardhome&lt;/span&gt;
    &lt;span class="na"&gt;image&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;adguard/adguardhome&lt;/span&gt;
    &lt;span class="na"&gt;restart&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;unless-stopped&lt;/span&gt;
    &lt;span class="na"&gt;network_mode&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;host&lt;/span&gt;
    &lt;span class="na"&gt;volumes&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;./work:/opt/adguardhome/work&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;./conf:/opt/adguardhome/conf&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Run the script:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker compose up &lt;span class="nt"&gt;-d&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The AdGuard Home management will run on port 3000.&lt;/p&gt;

&lt;p&gt;Make sure you set this container as DNS server for your future VM / Container inside Proxmox that want to use this custom DNS server.&lt;/p&gt;

</description>
      <category>docker</category>
      <category>networking</category>
      <category>tutorial</category>
      <category>ubuntu</category>
    </item>
    <item>
      <title>How To Change Default Screenshot Format in MacOS</title>
      <dc:creator>Zen Oh</dc:creator>
      <pubDate>Wed, 17 Sep 2025 14:32:44 +0000</pubDate>
      <link>https://dev.to/mss/how-to-change-default-screenshot-format-in-macos-5390</link>
      <guid>https://dev.to/mss/how-to-change-default-screenshot-format-in-macos-5390</guid>
      <description>&lt;p&gt;This is the terminal command I used to change default screenshot format to HEIC on my Mac. This is very useful to reduce the size of your screenshot.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;defaults write com.apple.screencapture &lt;span class="nb"&gt;type &lt;/span&gt;heic
&lt;span class="nv"&gt;$ &lt;/span&gt;killall SystemUIServer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>ncdu - NCurses Disk Usage</title>
      <dc:creator>Zen Oh</dc:creator>
      <pubDate>Fri, 18 Jul 2025 04:45:10 +0000</pubDate>
      <link>https://dev.to/mss/ncdu-ncurses-disk-usage-gg2</link>
      <guid>https://dev.to/mss/ncdu-ncurses-disk-usage-gg2</guid>
      <description>&lt;p&gt;If you need to find out which directories are using most storage on your mac / linux, this script is very useful.&lt;/p&gt;

&lt;p&gt;You can install it on Mac with this command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;brew install ncdu
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here is the website of this tool:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.yorhel.nl/ncdu" rel="noopener noreferrer"&gt;NCurses Disk Usage&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ncdu</category>
      <category>brew</category>
      <category>linux</category>
      <category>cli</category>
    </item>
    <item>
      <title>tmux Cheatsheet</title>
      <dc:creator>Zen Oh</dc:creator>
      <pubDate>Wed, 09 Jul 2025 12:13:23 +0000</pubDate>
      <link>https://dev.to/mss/tmux-cheatsheet-3m7k</link>
      <guid>https://dev.to/mss/tmux-cheatsheet-3m7k</guid>
      <description>&lt;p&gt;When you SSH into a server, sometimes you need to run a script that takes a long time to execute. You have to keep the connection open while the script is running—otherwise, it might fail (for example, if your internet connection gets disconnected).&lt;/p&gt;

&lt;p&gt;tmux is a terminal multiplexer. It lets you switch easily between several programs in one terminal, detach them (so they keep running in the background), and reattach them later.&lt;/p&gt;

&lt;p&gt;Here are the common commands I usually use with tmux:&lt;/p&gt;

&lt;h3&gt;
  
  
  New Session
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;tmux new -s s1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Detatch Session
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;Ctrl + b then d&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  List Session
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;tmux ls
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Attach Session
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;tmux attach -t s1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Kill Session
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;tmux kill-session -t s1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>tmux</category>
      <category>cli</category>
      <category>productivity</category>
      <category>networking</category>
    </item>
    <item>
      <title>Go to Folder: A Mac Shortcut You Need to Know</title>
      <dc:creator>Zen Oh</dc:creator>
      <pubDate>Tue, 22 Oct 2024 03:19:48 +0000</pubDate>
      <link>https://dev.to/mss/go-to-folder-a-mac-shortcut-you-need-to-know-5coo</link>
      <guid>https://dev.to/mss/go-to-folder-a-mac-shortcut-you-need-to-know-5coo</guid>
      <description>&lt;p&gt;Ever find yourself wishing you could instantly jump to a specific folder on your Mac without having to endlessly browse through your file system? Well, here's a handy shortcut that will save you time and effort: &lt;strong&gt;CMD + Shift + G&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This simple key combination opens a "Go to Folder" window, allowing you to directly input the path to your desired directory. No more clicking through countless folders!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3i2n9p8kjijwrno6j645.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3i2n9p8kjijwrno6j645.png" alt="Bypass the usual file browser! Use CMD + Shift + G to directly access any folder on your Mac." width="800" height="467"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Here's how it works:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Press &lt;strong&gt;CMD + Shift + G&lt;/strong&gt; simultaneously.&lt;/li&gt;
&lt;li&gt;A "Go to Folder" window will appear.&lt;/li&gt;
&lt;li&gt;Type in the full path of the folder you want to access.&lt;/li&gt;
&lt;li&gt;Press &lt;strong&gt;Enter&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This shortcut is a lifesaver when working with deeply nested folders or when you know the exact path to your destination. Give it a try and see how much time you can save!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to Check Your DNSSec Configuration is Valid</title>
      <dc:creator>Zen Oh</dc:creator>
      <pubDate>Fri, 18 Oct 2024 14:20:54 +0000</pubDate>
      <link>https://dev.to/mss/how-to-check-your-dnssec-configuration-is-valid-45bm</link>
      <guid>https://dev.to/mss/how-to-check-your-dnssec-configuration-is-valid-45bm</guid>
      <description>&lt;p&gt;You can use either of these tools (I only ever use the first one):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://cf.sjr.org.uk/tools/check" rel="noopener noreferrer"&gt;https://cf.sjr.org.uk/tools/check&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dnsviz.net/d/example.com/analyze/" rel="noopener noreferrer"&gt;https://dnsviz.net/d/example.com/analyze/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dnssec-debugger.verisignlabs.com/example.com" rel="noopener noreferrer"&gt;https://dnssec-debugger.verisignlabs.com/example.com&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Make sure to change example.com one with your domain.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>YubiKey Setup Tutorial for macOS</title>
      <dc:creator>Zen Oh</dc:creator>
      <pubDate>Mon, 14 Oct 2024 06:44:55 +0000</pubDate>
      <link>https://dev.to/mss/yubikey-setup-tutorial-for-macos-33n8</link>
      <guid>https://dev.to/mss/yubikey-setup-tutorial-for-macos-33n8</guid>
      <description>&lt;p&gt;How to setup multiple Yubikey as smartcard login for macOS&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Generate 2 certificates for 9A and 9D slot in YubiKey PIV. Here is the command to generate the certificate:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;openssl ecparam &lt;span class="nt"&gt;-name&lt;/span&gt; secp256r1 &lt;span class="nt"&gt;-genkey&lt;/span&gt; &lt;span class="nt"&gt;-out&lt;/span&gt; ec_key.pem  
openssl req &lt;span class="nt"&gt;-new&lt;/span&gt; &lt;span class="nt"&gt;-x509&lt;/span&gt; &lt;span class="nt"&gt;-key&lt;/span&gt; ec_key.pem &lt;span class="nt"&gt;-sha256&lt;/span&gt; &lt;span class="nt"&gt;-nodes&lt;/span&gt; &lt;span class="nt"&gt;-out&lt;/span&gt; ec_crt.crt &lt;span class="nt"&gt;-days&lt;/span&gt; 10950  
openssl pkcs12 &lt;span class="nt"&gt;-export&lt;/span&gt; &lt;span class="nt"&gt;-out&lt;/span&gt; enc.p12 &lt;span class="nt"&gt;-inkey&lt;/span&gt; ec_key.pem &lt;span class="nt"&gt;-in&lt;/span&gt; ec_crt.crt  
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Import the p12 files to &lt;strong&gt;both&lt;/strong&gt; of your YubiKeys by using YubiKey Manager App. &lt;strong&gt;DO NOT&lt;/strong&gt; click setup for macos button in your YubiKey Manager because it will replace your keys.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Unplug &amp;amp; Replug your YubiKeys, and when this notification appear click pair &amp;amp; enter your login password &amp;amp; YubiKeys PIV PIN.&lt;br&gt;&lt;br&gt;
    &lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqnzhb1m7u061nu7pc9fs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqnzhb1m7u061nu7pc9fs.png" alt="YubiKey Pair Prompt" width="728" height="202"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;How to add smartcard only authentication in Mac&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Create new .mobileconfig profile with this content (i.e. smartcard-only-login.mobileconfig):&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;/span&gt;
&lt;span class="cp"&gt;&amp;lt;!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"\&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;plist&lt;/span&gt; &lt;span class="na"&gt;version=&lt;/span&gt;&lt;span class="s"&gt;"1.0"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;dict&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;key&amp;gt;&lt;/span&gt;PayloadContent&lt;span class="nt"&gt;&amp;lt;/key&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;array&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;dict&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;key&amp;gt;&lt;/span&gt;PayloadDescription&lt;span class="nt"&gt;&amp;lt;/key&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;string&amp;gt;&lt;/span&gt;Configures smart card-only&lt;span class="nt"&gt;&amp;lt;/string&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;key&amp;gt;&lt;/span&gt;PayloadDisplayName&lt;span class="nt"&gt;&amp;lt;/key&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;string&amp;gt;&lt;/span&gt;Smart card-only&lt;span class="nt"&gt;&amp;lt;/string&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;key&amp;gt;&lt;/span&gt;PayloadIdentifier&lt;span class="nt"&gt;&amp;lt;/key&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;string&amp;gt;&lt;/span&gt;com.apple.configprofile.78.&lt;span class="nt"&gt;&amp;lt;/string&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;key&amp;gt;&lt;/span&gt;PayloadOrganization&lt;span class="nt"&gt;&amp;lt;/key&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;string&amp;gt;&lt;/span&gt;Apple&lt;span class="nt"&gt;&amp;lt;/string&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;key&amp;gt;&lt;/span&gt;PayloadType&lt;span class="nt"&gt;&amp;lt;/key&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;string&amp;gt;&lt;/span&gt;com.apple.security.smartcard&lt;span class="nt"&gt;&amp;lt;/string&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;key&amp;gt;&lt;/span&gt;PayloadUUID&lt;span class="nt"&gt;&amp;lt;/key&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;string&amp;gt;&lt;/span&gt;5A15247B-899C-474D-B1D7-DBD82BDE5678&lt;span class="nt"&gt;&amp;lt;/string&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;key&amp;gt;&lt;/span&gt;PayloadVersion&lt;span class="nt"&gt;&amp;lt;/key&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;integer&amp;gt;&lt;/span&gt;1&lt;span class="nt"&gt;&amp;lt;/integer&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;key&amp;gt;&lt;/span&gt;UserPairing&lt;span class="nt"&gt;&amp;lt;/key&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;false/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;key&amp;gt;&lt;/span&gt;allowSmartCard&lt;span class="nt"&gt;&amp;lt;/key&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;true/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;key&amp;gt;&lt;/span&gt;checkCertificateTrust&lt;span class="nt"&gt;&amp;lt;/key&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;false/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;key&amp;gt;&lt;/span&gt;enforceSmartCard&lt;span class="nt"&gt;&amp;lt;/key&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;true/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/dict&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/array&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;key&amp;gt;&lt;/span&gt;PayloadDescription&lt;span class="nt"&gt;&amp;lt;/key&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;string&amp;gt;&lt;/span&gt;Smartcard profile.&lt;span class="nt"&gt;&amp;lt;/string&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;key&amp;gt;&lt;/span&gt;PayloadDisplayName&lt;span class="nt"&gt;&amp;lt;/key&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;string&amp;gt;&lt;/span&gt;Smart card-only&lt;span class="nt"&gt;&amp;lt;/string&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;key&amp;gt;&lt;/span&gt;PayloadIdentifier&lt;span class="nt"&gt;&amp;lt;/key&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;string&amp;gt;&lt;/span&gt;com.apple.configprofile.77&lt;span class="nt"&gt;&amp;lt;/string&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;key&amp;gt;&lt;/span&gt;PayloadOrganization&lt;span class="nt"&gt;&amp;lt;/key&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;string&amp;gt;&amp;lt;/string&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;key&amp;gt;&lt;/span&gt;PayloadRemovalDisallowed&lt;span class="nt"&gt;&amp;lt;/key&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;false/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;key&amp;gt;&lt;/span&gt;PayloadType&lt;span class="nt"&gt;&amp;lt;/key&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;string&amp;gt;&lt;/span&gt;Configuration&lt;span class="nt"&gt;&amp;lt;/string&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;key&amp;gt;&lt;/span&gt;PayloadScope&lt;span class="nt"&gt;&amp;lt;/key&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;string&amp;gt;&lt;/span&gt;system&lt;span class="nt"&gt;&amp;lt;/string&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;key&amp;gt;&lt;/span&gt;PayloadUUID&lt;span class="nt"&gt;&amp;lt;/key&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;string&amp;gt;&lt;/span&gt;7D34CC86-C707-44D2-9A9F-C5F6E347BD77&lt;span class="nt"&gt;&amp;lt;/string&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;key&amp;gt;&lt;/span&gt;PayloadVersion&lt;span class="nt"&gt;&amp;lt;/key&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;integer&amp;gt;&lt;/span&gt;1&lt;span class="nt"&gt;&amp;lt;/integer&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/dict&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/plist&amp;gt;&lt;/span&gt;  
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Install by double click the created file.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Activate the profile by go to Settings - Generate - Device Management.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;How to unpair YubiKey.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Make sure you have not set your Mac does not install smartcard only authentication profile.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Use this command unpair based of user:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sc_auth unpair -u $USER  
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Reference:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://support.apple.com/en-us/101438" rel="noopener noreferrer"&gt;https://support.apple.com/en-us/101438&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.reddit.com/r/yubikey/comments/17rd7i0/comment/k8ifbjl" rel="noopener noreferrer"&gt;https://www.reddit.com/r/yubikey/comments/17rd7i0/comment/k8ifbjl&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>How to use git submodule</title>
      <dc:creator>Zen Oh</dc:creator>
      <pubDate>Wed, 14 Aug 2024 03:23:22 +0000</pubDate>
      <link>https://dev.to/mss/how-to-use-git-submodule-13e</link>
      <guid>https://dev.to/mss/how-to-use-git-submodule-13e</guid>
      <description>&lt;p&gt;Git submodule is useful when you need another git repository inside your git project. This repository should not be library managed by dependency manager. Here is useful command I used to manage git submodule.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to install/add new submodule to current repository
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git submodule add &amp;lt;git repository url&amp;gt; &amp;lt;destination folder&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  How setup existing submodule in cloned repository
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git submodule init
git submodule update
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  How to update submodule
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git submodule update
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you need to update the code inside of the submodule, you can just go to your submodule directory and update the code. After that point your cli to your submodule directory and do a commit &amp;amp; push like normal git repository. Make sure your update won't break another project that already use your submodule.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Example NFS configuration between Mac (Host) and Ubuntu VM (Client)</title>
      <dc:creator>Zen Oh</dc:creator>
      <pubDate>Thu, 04 Jul 2024 06:58:58 +0000</pubDate>
      <link>https://dev.to/mss/example-nfs-configuration-between-mac-host-and-ubuntu-vm-client-2hag</link>
      <guid>https://dev.to/mss/example-nfs-configuration-between-mac-host-and-ubuntu-vm-client-2hag</guid>
      <description>&lt;p&gt;Configure the nfs export configuration in this file for Mac with this value:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#file: /etc/exports

/&amp;lt;path-to-share&amp;gt; -mapall=501:20 192.168.1.2 192.168.1.3 192.168.1.4
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;501 should be your default user id in your Mac and 20 should be default group id (staff) in your Mac. The ip should be list of allowed ip to access the NFS.&lt;/p&gt;

&lt;p&gt;Configure the nfs mount configuration in this file for Ubuntu with this value:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#file: /etc/fstab

&amp;lt;host-ip&amp;gt;:/&amp;lt;path-to-share&amp;gt;    /&amp;lt;path-to-mount&amp;gt;    nfs    rw,tcp,nolock,noacl,async    0 0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Make sure you have created a directory for /.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to Expand Ubuntu Drive</title>
      <dc:creator>Zen Oh</dc:creator>
      <pubDate>Thu, 04 Jul 2024 03:16:24 +0000</pubDate>
      <link>https://dev.to/mss/how-to-expand-ubuntu-drive-3l6o</link>
      <guid>https://dev.to/mss/how-to-expand-ubuntu-drive-3l6o</guid>
      <description>&lt;p&gt;When you are using vmware to create Ubuntu Server VM, it will only use half of the assigned hard drive storage if you are not changing it in the installation process. Here is how to resize it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;root@util:~# vgdisplay
&amp;lt;snip&amp;gt;
root@util:~# lvextend &lt;span class="nt"&gt;-l&lt;/span&gt; +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
&amp;lt;snip&amp;gt;
root@util:~# resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
&amp;lt;snip&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This method still works in Ubuntu 24.04 as of today (2024-07-04)&lt;/p&gt;

&lt;p&gt;Reference:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://askubuntu.com/questions/1269493/how-to-make-lv-use-all-disk-space-in-pv" rel="noopener noreferrer"&gt;https://askubuntu.com/questions/1269493/how-to-make-lv-use-all-disk-space-in-pv&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://superuser.com/questions/1810230/how-to-expand-ubuntu-server-root-storage" rel="noopener noreferrer"&gt;https://superuser.com/questions/1810230/how-to-expand-ubuntu-server-root-storage&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Partition, format, and mount a drive on Ubuntu</title>
      <dc:creator>Zen Oh</dc:creator>
      <pubDate>Mon, 24 Jun 2024 03:13:49 +0000</pubDate>
      <link>https://dev.to/mss/partition-format-and-mount-a-drive-on-ubuntu-28h2</link>
      <guid>https://dev.to/mss/partition-format-and-mount-a-drive-on-ubuntu-28h2</guid>
      <description>&lt;p&gt;Reference:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.howtogeek.com/106873/how-to-use-fdisk-to-manage-partitions-on-linux/" rel="noopener noreferrer"&gt;https://www.howtogeek.com/106873/how-to-use-fdisk-to-manage-partitions-on-linux/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  List logical disks and partitions
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;sudo fdisk -l&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Partition the disk
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;sudo fdisk /dev/sdb&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Press &lt;code&gt;n&lt;/code&gt; to create a partition&lt;/li&gt;
&lt;li&gt;Press &lt;code&gt;p&lt;/code&gt; or &lt;code&gt;l&lt;/code&gt; to create primary or logical partitions&lt;/li&gt;
&lt;li&gt;Press &lt;code&gt;w&lt;/code&gt; to write your changes or &lt;code&gt;q&lt;/code&gt; to quit&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Format the partition
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;sudo mkfs -t ext4 /dev/sdb1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;sudo mkfs -t ext4 -N 2000000 /dev/sdb1&lt;/code&gt; - This will manually set the number of inodes to 2,000,000&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Mount disk
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;mount&lt;/code&gt; - Shows what is mounted&lt;/li&gt;
&lt;li&gt;&lt;code&gt;mkdir /mnt/mydrive&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;mount -t ext4 /dev/sdb1 /mnt/mydrive&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Get disk's UUID
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;ls -al /dev/disk/by-uuid/&lt;/code&gt;&lt;br&gt;&lt;br&gt;
or&lt;br&gt;&lt;br&gt;
&lt;code&gt;blkid&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Mount at boot
&lt;/h2&gt;

&lt;p&gt;Add the following line to your &lt;code&gt;/etc/fstab&lt;/code&gt; file adjusting the UUID to your device's id and the directory to where you want to mount:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;UUID=811d3de0-ca6b-4b61-9445-af2e306d9999 /mnt/mydrive    ext4    defaults 0 0&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;mount -a&lt;/code&gt; - remounts filesystems from &lt;code&gt;/etc/fstab&lt;/code&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How To Setup 1Password SSH For Windows</title>
      <dc:creator>Zen Oh</dc:creator>
      <pubDate>Fri, 14 Apr 2023 07:57:04 +0000</pubDate>
      <link>https://dev.to/mss/how-to-setup-1password-ssh-for-windows-34lh</link>
      <guid>https://dev.to/mss/how-to-setup-1password-ssh-for-windows-34lh</guid>
      <description>&lt;p&gt;Here is 3 articles useful for setting up 1Password SSH for Windows, WSL, and WinSCP Support via WinSSH-Pageant:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://developer.1password.com/docs/ssh/" rel="noopener noreferrer"&gt;https://developer.1password.com/docs/ssh/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/d4vsanchez/use-1password-ssh-agent-in-wsl-2j6m"&gt;https://dev.to/d4vsanchez/use-1password-ssh-agent-in-wsl-2j6m&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ndbeals/winssh-pageant" rel="noopener noreferrer"&gt;https://github.com/ndbeals/winssh-pageant&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The location of winssh-pageant installation when using winget is: &lt;/p&gt;

&lt;p&gt;&lt;code&gt;%userprofile%\AppData\Local\Programs\WinSSH-Pageant\winssh-pageant.exe&lt;/code&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
