<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="/feed.xsl" type="text/xsl"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>Oscar Marion (Notes only)</title><description>Notes from Oscar Marion: short fixes and things I learned. For everything including articles, use /feed.xml.</description><link>https://osr.im</link><language>en</language><atom:link href="https://osr.im/notes/feed.xml" rel="self" type="application/rss+xml"/><image><url>https://osr.im/_astro/og-profile.DuVv9CWN_ZU5VL3.png</url><title>Oscar Marion (Notes only)</title><link>https://osr.im/</link></image><item><title>Upgrade all Homebrew casks with --greedy</title><link>https://osr.im/notes/brew-greedy</link><guid isPermaLink="true">https://osr.im/notes/brew-greedy</guid><description>brew upgrade skips casks that update themselves, like VS Code, Zed or Raycast. Add --greedy to make Homebrew upgrade them too.</description><pubDate>Mon, 19 Oct 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;code&gt;brew upgrade&lt;/code&gt; skips casks that update themselves, like VS Code, Zed or Raycast. Add &lt;code&gt;--greedy&lt;/code&gt; to make &lt;a href=&quot;https://brew.sh/&quot;&gt;Homebrew&lt;/a&gt; upgrade them too.&lt;/p&gt;
&lt;p&gt;These casks are set to &lt;code&gt;auto_updates true&lt;/code&gt;, and Homebrew leaves them to the app’s own updater (&lt;a href=&quot;https://docs.brew.sh/FAQ&quot;&gt;Homebrew FAQ&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;To see which casks &lt;code&gt;--greedy&lt;/code&gt; adds:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light-high-contrast&quot; style=&quot;background-color:#ffffff;color:#0e1116; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;sh&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#702C00&quot;&gt;brew&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt; outdated&lt;/span&gt;&lt;span style=&quot;color:#023B95&quot;&gt; --cask&lt;/span&gt;&lt;span style=&quot;color:#023B95&quot;&gt; --greedy&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then upgrade them. The flag also picks up casks with &lt;code&gt;version :latest&lt;/code&gt;:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light-high-contrast&quot; style=&quot;background-color:#ffffff;color:#0e1116; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;sh&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#702C00&quot;&gt;brew&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt; upgrade&lt;/span&gt;&lt;span style=&quot;color:#023B95&quot;&gt; --cask&lt;/span&gt;&lt;span style=&quot;color:#023B95&quot;&gt; --greedy&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;To make it the default, add this to &lt;code&gt;~/.zshrc&lt;/code&gt;:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light-high-contrast&quot; style=&quot;background-color:#ffffff;color:#0e1116; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;sh&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#A0111F&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;color:#0E1116&quot;&gt; HOMEBREW_UPGRADE_GREEDY&lt;/span&gt;&lt;span style=&quot;color:#A0111F&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#023B95&quot;&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;--greedy&lt;/code&gt; compares the cask with Homebrew’s install record, not with the installed app. If an app already updated itself, Homebrew reinstalls the cask’s version anyway.&lt;/p&gt;
&lt;/blockquote&gt;
</content:encoded><dc:creator>Oscar Marion</dc:creator><media:content url="https://osr.im/og/note/brew-greedy.png" medium="image" type="image/png" width="1200" height="630"/><category>note</category><category>tooling</category></item><item><title>Tailscale HTTPS certificates on TrueNAS</title><link>https://osr.im/notes/tailscale-truenas</link><guid isPermaLink="true">https://osr.im/notes/tailscale-truenas</guid><description>Replace the Not Secure warning on TrueNAS’ web UI with a Let’s Encrypt certificate from tailscale cert.</description><pubDate>Sun, 11 Oct 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I have been using Tailscale in my homelab for over two years at this point, and I use their &lt;a href=&quot;https://tailscale.com/docs/features/magicdns&quot;&gt;MagicDNS&lt;/a&gt; feature to access my TrueNAS server on the go: &lt;code&gt;https://truenas.tail123456.ts.net&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;After adding TrueNAS to a tailnet (&lt;a href=&quot;https://tailscale.com/docs/integrations/truenas&quot;&gt;official guide&lt;/a&gt;), the browser flags its web UI as not secure, since TrueNAS has no certificate for its &lt;code&gt;ts.net&lt;/code&gt; name. Let’s fix that.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Chrome flags the TrueNAS sign-in page on its ts.net name as Not Secure&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;1280&quot; height=&quot;691&quot; src=&quot;https://osr.im/_astro/tailscale-truenas.RtEdjymY_q6WXK.webp&quot;&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In reality, the certificate warning matters less on a tailnet, since WireGuard encrypts the traffic between your devices. So in my case, this is more of a “cosmetic” endeavor.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;requirements&quot;&gt;Requirements&lt;a class=&quot;heading-anchor&quot; href=&quot;#requirements&quot; aria-label=&quot;Link to this section&quot;&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;MagicDNS and HTTPS Certificates enabled in the Tailscale admin console: &lt;strong&gt;Network → DNS&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;The TrueNAS Tailscale app is installed and connected.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;get-the-certificate-and-key&quot;&gt;Get the certificate and key&lt;a class=&quot;heading-anchor&quot; href=&quot;#get-the-certificate-and-key&quot; aria-label=&quot;Link to this section&quot;&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;You can run the commands below from the Tailscale container shell. From the TrueNAS shell, prefix each command with &lt;code&gt;docker exec ix-tailscale-tailscale-1&lt;/code&gt; (run &lt;code&gt;docker ps&lt;/code&gt; if you’re unsure of the container name).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;1-get-the-certificate&quot;&gt;1. Get the certificate&lt;/h3&gt;
&lt;p&gt;Tailscale asks &lt;em&gt;Let’s Encrypt&lt;/em&gt; for a certificate for the NAS’s tailnet name. Use the exact name shown on the &lt;strong&gt;Machines&lt;/strong&gt; page of the admin console.&lt;/p&gt;
&lt;p&gt;You get four PEM blocks: your certificate, then &lt;a href=&quot;https://letsencrypt.org/certificates/&quot;&gt;&lt;em&gt;Let’s Encrypt&lt;/em&gt;’s chain of trust&lt;/a&gt;. Copy all four.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light-high-contrast&quot; style=&quot;background-color:#ffffff;color:#0e1116; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;sh&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#702C00&quot;&gt;tailscale&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt; cert&lt;/span&gt;&lt;span style=&quot;color:#023B95&quot;&gt; --cert-file&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt; -&lt;/span&gt;&lt;span style=&quot;color:#A0111F&quot;&gt; &amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt;hos&lt;/span&gt;&lt;span style=&quot;color:#0E1116&quot;&gt;t&lt;/span&gt;&lt;span style=&quot;color:#A0111F&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#A0111F&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt;tailne&lt;/span&gt;&lt;span style=&quot;color:#0E1116&quot;&gt;t&lt;/span&gt;&lt;span style=&quot;color:#A0111F&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt;.ts.net&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;2-get-the-private-key&quot;&gt;2. Get the private key&lt;/h3&gt;
&lt;p&gt;This prints the private key that matches the certificate. Paste it into TrueNAS, &lt;strong&gt;nowhere else&lt;/strong&gt;.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light-high-contrast&quot; style=&quot;background-color:#ffffff;color:#0e1116; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;sh&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#702C00&quot;&gt;tailscale&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt; cert&lt;/span&gt;&lt;span style=&quot;color:#023B95&quot;&gt; --key-file&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt; -&lt;/span&gt;&lt;span style=&quot;color:#A0111F&quot;&gt; &amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt;hos&lt;/span&gt;&lt;span style=&quot;color:#0E1116&quot;&gt;t&lt;/span&gt;&lt;span style=&quot;color:#A0111F&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#A0111F&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt;tailne&lt;/span&gt;&lt;span style=&quot;color:#0E1116&quot;&gt;t&lt;/span&gt;&lt;span style=&quot;color:#A0111F&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt;.ts.net&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;import-the-certificate&quot;&gt;Import the certificate&lt;a class=&quot;heading-anchor&quot; href=&quot;#import-the-certificate&quot; aria-label=&quot;Link to this section&quot;&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;In TrueNAS: &lt;strong&gt;Credentials → Certificates → Import&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Name&lt;/strong&gt;: anything, but include today’s date so you can tell certificates apart at the next renewal&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Add to Trusted Store&lt;/strong&gt;: &lt;code&gt;off&lt;/code&gt;. The trusted store holds the certificates TrueNAS trusts when it connects to other servers. Your own certificate doesn’t belong there.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Certificate&lt;/strong&gt;: all four PEM blocks from &lt;em&gt;step 1&lt;/em&gt;, in order&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Private Key&lt;/strong&gt;: the private key from &lt;em&gt;step 2&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Passphrase&lt;/strong&gt;: leave empty&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Then select &lt;strong&gt;Import&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&quot;apply-it-to-the-truenas-gui&quot;&gt;Apply it to the TrueNAS GUI&lt;a class=&quot;heading-anchor&quot; href=&quot;#apply-it-to-the-truenas-gui&quot; aria-label=&quot;Link to this section&quot;&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;System → General Settings → GUI → Settings → GUI SSL Certificate.&lt;/strong&gt; Save and wait for the web service to restart.&lt;/p&gt;
&lt;h2 id=&quot;cleanup&quot;&gt;Cleanup&lt;a class=&quot;heading-anchor&quot; href=&quot;#cleanup&quot; aria-label=&quot;Link to this section&quot;&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;You can now go back to &lt;strong&gt;Credentials → Certificates&lt;/strong&gt; and delete any expired Tailscale certificates.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;You now have a valid HTTPS connection every time you connect to your TrueNAS GUI using the &lt;code&gt;*.ts.net&lt;/code&gt; MagicDNS subdomain. Certificates have a 90-day expiry, so you’ll need to run these steps again. I will look into automating this process in the future, but for now that’s all I’ve got.&lt;/p&gt;
</content:encoded><dc:creator>Oscar Marion</dc:creator><media:content url="https://osr.im/og/note/tailscale-truenas.png" medium="image" type="image/png" width="1200" height="630"/><category>note</category><category>self-hosting</category></item><item><title>Bring back old Opus in Claude Code</title><link>https://osr.im/notes/claude-code-model-picker-older-opus</link><guid isPermaLink="true">https://osr.im/notes/claude-code-model-picker-older-opus</guid><description>I still use Opus 4.6 and 4.8 regularly, as I often find Opus 5 too verbose (and Fable too expensive). Here is how to add them back to the /model picker.</description><pubDate>Sat, 19 Sep 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I still use Opus 4.6 and 4.8 regularly, as I often find Opus 5 too verbose (and Fable too expensive). Here is how to add them back to the &lt;code&gt;/model&lt;/code&gt; picker.&lt;/p&gt;
&lt;p&gt;Add this to &lt;code&gt;~/.claude/settings.json&lt;/code&gt;. The rows appear after the built-in ones:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light-high-contrast&quot; style=&quot;background-color:#ffffff;color:#0e1116; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;json&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#032563&quot;&gt;&quot;modelPicker&quot;&lt;/span&gt;&lt;span style=&quot;color:#0E1116&quot;&gt;: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#024C1A&quot;&gt;  &quot;options&quot;&lt;/span&gt;&lt;span style=&quot;color:#0E1116&quot;&gt;: [&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#0E1116&quot;&gt;    { &lt;/span&gt;&lt;span style=&quot;color:#024C1A&quot;&gt;&quot;model&quot;&lt;/span&gt;&lt;span style=&quot;color:#0E1116&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt;&quot;claude-opus-4-8&quot;&lt;/span&gt;&lt;span style=&quot;color:#0E1116&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#024C1A&quot;&gt;&quot;label&quot;&lt;/span&gt;&lt;span style=&quot;color:#0E1116&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt;&quot;Opus 4.8&quot;&lt;/span&gt;&lt;span style=&quot;color:#0E1116&quot;&gt; },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#0E1116&quot;&gt;    { &lt;/span&gt;&lt;span style=&quot;color:#024C1A&quot;&gt;&quot;model&quot;&lt;/span&gt;&lt;span style=&quot;color:#0E1116&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt;&quot;claude-opus-4-6&quot;&lt;/span&gt;&lt;span style=&quot;color:#0E1116&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#024C1A&quot;&gt;&quot;label&quot;&lt;/span&gt;&lt;span style=&quot;color:#0E1116&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt;&quot;Opus 4.6&quot;&lt;/span&gt;&lt;span style=&quot;color:#0E1116&quot;&gt; },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#0E1116&quot;&gt;  ]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#0E1116&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;Set &lt;code&gt;modelPicker.replaceBuiltInOptions: true&lt;/code&gt; to show only these rows.&lt;/p&gt;
&lt;/blockquote&gt;
</content:encoded><dc:creator>Oscar Marion</dc:creator><media:content url="https://osr.im/og/note/claude-code-model-picker-older-opus.png" medium="image" type="image/png" width="1200" height="630"/><category>note</category><category>ai</category><category>tooling</category></item><item><title>How to resize logical volume in Proxmox</title><link>https://osr.im/notes/resize-ubuntu-volume-proxmox</link><guid isPermaLink="true">https://osr.im/notes/resize-ubuntu-volume-proxmox</guid><description>When an Ubuntu VM on Proxmox runs out of disk space: resize the disk in Proxmox, then extend the partition and the volume inside the VM.</description><pubDate>Sun, 06 Oct 2024 00:00:00 GMT</pubDate><content:encoded>&lt;h2 id=&quot;allocate-more-space-on-proxmox&quot;&gt;Allocate more space on Proxmox&lt;a class=&quot;heading-anchor&quot; href=&quot;#allocate-more-space-on-proxmox&quot; aria-label=&quot;Link to this section&quot;&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Go to your VM &amp;gt; &lt;strong&gt;Hardware tab&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Select the disk you want to resize&lt;/li&gt;
&lt;li&gt;Click on the &lt;strong&gt;Disk Action&lt;/strong&gt; dropdown in the menu bar, then &lt;strong&gt;Resize&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Resize the disk as much as you need:&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img alt=&quot;proxmox-resize-disk&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;739&quot; height=&quot;435&quot; src=&quot;https://osr.im/_astro/proxmox-resize-disk.DyADHxZ9_ZAez6b.webp&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;extend-the-partition-in-the-vm&quot;&gt;Extend the partition in the VM&lt;a class=&quot;heading-anchor&quot; href=&quot;#extend-the-partition-in-the-vm&quot; aria-label=&quot;Link to this section&quot;&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Make the partition see the space (&lt;code&gt;/dev/sda3&lt;/code&gt; in my case):&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light-high-contrast&quot; style=&quot;background-color:#ffffff;color:#0e1116; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#702C00&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt; cfdisk&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then, resize the partition within &lt;strong&gt;cfdisk&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Extend the Physical Volume (PV) from the partition:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light-high-contrast&quot; style=&quot;background-color:#ffffff;color:#0e1116; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#702C00&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt; pvresize&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt; /dev/sda3&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Extend the Logical Volume (LV) to use all the space in the Volume Group (VG):&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light-high-contrast&quot; style=&quot;background-color:#ffffff;color:#0e1116; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#702C00&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt; lvextend&lt;/span&gt;&lt;span style=&quot;color:#023B95&quot;&gt; -l&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt; +100%FREE&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt; /dev/ubuntu-vg/ubuntu-lv&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Resize the file system:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light-high-contrast&quot; style=&quot;background-color:#ffffff;color:#0e1116; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#702C00&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt; resize2fs&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt; /dev/ubuntu-vg/ubuntu-lv&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Check that the file system sees the new space:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light-high-contrast&quot; style=&quot;background-color:#ffffff;color:#0e1116; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#702C00&quot;&gt;df&lt;/span&gt;&lt;span style=&quot;color:#023B95&quot;&gt; -h&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;Source: &lt;a href=&quot;https://packetpushers.net/blog/ubuntu-extend-your-default-lvm-space&quot;&gt;https://packetpushers.net/blog/ubuntu-extend-your-default-lvm-space&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
</content:encoded><dc:creator>Oscar Marion</dc:creator><media:content url="https://osr.im/og/note/resize-ubuntu-volume-proxmox.png" medium="image" type="image/png" width="1200" height="630"/><category>note</category><category>self-hosting</category></item><item><title>Manually trigger DDNS update on a UDM Pro</title><link>https://osr.im/notes/how-to-manually-trigger-ddns-update-on-a-udm-pro</link><guid isPermaLink="true">https://osr.im/notes/how-to-manually-trigger-ddns-update-on-a-udm-pro</guid><description>To my surprise, there is no way to trigger a DDNS update from the Unifi Dashboard. Here is how to force one over SSH instead of restarting the console.</description><pubDate>Sat, 19 Aug 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I ran into this issue today, and to my surprise, there is no way of doing that from the Unifi Dashboard. While most of the responses you will find on Ubiquiti’s forums and on Reddit suggest restarting the console altogether, &lt;em&gt;u/TheFuer&lt;/em&gt; on Reddit &lt;a href=&quot;https://www.reddit.com/r/Ubiquiti/comments/gbppr9/comment/jqcn35m/?utm_source=share&amp;amp;utm_medium=web2x&amp;amp;context=3&quot;&gt;posted a much better way to do it&lt;/a&gt;, using the CLI.&lt;/p&gt;
&lt;p&gt;First, connect to your UDM Pro via SSH. You can follow &lt;a href=&quot;https://evanmccann.net/blog/2020/5/udm-ssh&quot;&gt;this guide&lt;/a&gt; if you don’t have it setup yet.&lt;/p&gt;
&lt;h2 id=&quot;1-determine-the-configcommand-that-the-udm-is-using-by-typing-this-command&quot;&gt;1. Determine the config/command that the UDM is using by typing this command:&lt;a class=&quot;heading-anchor&quot; href=&quot;#1-determine-the-configcommand-that-the-udm-is-using-by-typing-this-command&quot; aria-label=&quot;Link to this section&quot;&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-light-high-contrast&quot; style=&quot;background-color:#ffffff;color:#0e1116; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#702C00&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt; ps&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt; aux&lt;/span&gt;&lt;span style=&quot;color:#A0111F&quot;&gt; |&lt;/span&gt;&lt;span style=&quot;color:#702C00&quot;&gt; grep&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt; inadyn&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;It should return something similar to this:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light-high-contrast&quot; style=&quot;background-color:#ffffff;color:#0e1116; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#702C00&quot;&gt;root&lt;/span&gt;&lt;span style=&quot;color:#023B95&quot;&gt;        1432&lt;/span&gt;&lt;span style=&quot;color:#023B95&quot;&gt;  0.0&lt;/span&gt;&lt;span style=&quot;color:#023B95&quot;&gt;  0.0&lt;/span&gt;&lt;span style=&quot;color:#023B95&quot;&gt;   6336&lt;/span&gt;&lt;span style=&quot;color:#023B95&quot;&gt;  3256&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt; ?&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt;        S&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt;    00:49&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt;   0:00&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt; /usr/sbin/inadyn&lt;/span&gt;&lt;span style=&quot;color:#023B95&quot;&gt; -n&lt;/span&gt;&lt;span style=&quot;color:#023B95&quot;&gt; -s&lt;/span&gt;&lt;span style=&quot;color:#023B95&quot;&gt; -C&lt;/span&gt;&lt;span style=&quot;color:#023B95&quot;&gt; -f&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt; /run/ddns-eth8-inadyn.conf&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#702C00&quot;&gt;root&lt;/span&gt;&lt;span style=&quot;color:#023B95&quot;&gt;       24298&lt;/span&gt;&lt;span style=&quot;color:#023B95&quot;&gt;  0.0&lt;/span&gt;&lt;span style=&quot;color:#023B95&quot;&gt;  0.0&lt;/span&gt;&lt;span style=&quot;color:#023B95&quot;&gt;   4924&lt;/span&gt;&lt;span style=&quot;color:#023B95&quot;&gt;   680&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt; pts/0&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt;    S+&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt;   01:00&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt;   0:00&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt; grep&lt;/span&gt;&lt;span style=&quot;color:#023B95&quot;&gt; --color&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt; inadyn&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;2-run-inadyn-with-a-force-flag-to-force-the-update-replace-the-path-with-the-one-the-previous-command-returned&quot;&gt;2. Run inadyn with a force flag to force the update. Replace The path with the one the previous command returned:&lt;a class=&quot;heading-anchor&quot; href=&quot;#2-run-inadyn-with-a-force-flag-to-force-the-update-replace-the-path-with-the-one-the-previous-command-returned&quot; aria-label=&quot;Link to this section&quot;&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-light-high-contrast&quot; style=&quot;background-color:#ffffff;color:#0e1116; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#702C00&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt; inadyn&lt;/span&gt;&lt;span style=&quot;color:#023B95&quot;&gt; -n&lt;/span&gt;&lt;span style=&quot;color:#023B95&quot;&gt; -1&lt;/span&gt;&lt;span style=&quot;color:#023B95&quot;&gt; --force&lt;/span&gt;&lt;span style=&quot;color:#023B95&quot;&gt; -f&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt; /run/ddns-eth8-inadyn.conf&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You should get the following once the update is successful:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light-high-contrast&quot; style=&quot;background-color:#ffffff;color:#0e1116; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#702C00&quot;&gt;inadyn[25647]:&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt; In-a-dyn&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt; version&lt;/span&gt;&lt;span style=&quot;color:#023B95&quot;&gt; 2.9.1&lt;/span&gt;&lt;span style=&quot;color:#023B95&quot;&gt; --&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt; Dynamic&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt; DNS&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt; update&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt; client.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#702C00&quot;&gt;inadyn[25647]:&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt; Update&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt; forced&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt; for&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt; alias&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt; all.dnsomatic.com,&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt; new&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt; IP#&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt; XXX.XXX.XXX.XXX&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#702C00&quot;&gt;inadyn[25647]:&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt; Updating&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt; cache&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt; for&lt;/span&gt;&lt;span style=&quot;color:#032563&quot;&gt; all.dnsomatic.com&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
</content:encoded><dc:creator>Oscar Marion</dc:creator><media:content url="https://osr.im/og/note/how-to-manually-trigger-ddns-update-on-a-udm-pro.png" medium="image" type="image/png" width="1200" height="630"/><category>note</category><category>self-hosting</category></item><item><title>Blacklisting Google .mov and .zip TLDs</title><link>https://osr.im/notes/blacklisting-google-mov-and-zip-tlds</link><guid isPermaLink="true">https://osr.im/notes/blacklisting-google-mov-and-zip-tlds</guid><description>Google has made the .zip and .mov top-level domains available for public registration, and cybercriminals are already using them in phishing campaigns.</description><pubDate>Tue, 23 May 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Google has made the .zip and .mov top-level domains available for public registration, and cybercriminals are already using them in phishing campaigns. It might be a good idea to block them all together for now: here are the steps for PiHole users.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Log into your PiHole admin interface&lt;/li&gt;
&lt;li&gt;Click on the “ RegEx filter” tab&lt;/li&gt;
&lt;li&gt;In the “Regular Expression” field, write ^.*.(zip|mov)$&lt;/li&gt;
&lt;li&gt;Click on “Add to Blacklist”&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img alt=&quot;Add domain to blacklist&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;1002&quot; height=&quot;394&quot; src=&quot;https://osr.im/_astro/pihole-google-zip-mov-blocking.CYpsYi6N_Z26EbQ5.webp&quot;&gt;&lt;/p&gt;
&lt;p&gt;You can make sure the filtering is working by accessing &lt;strong&gt;somethingfishy.zip&lt;/strong&gt; or &lt;strong&gt;notamoviefile.mov&lt;/strong&gt;. If everything is setup correctly, you should get an ERR_ADDRESS_INVALID from your browser.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;ERR_ADDRESS_INVALID&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;723&quot; height=&quot;299&quot; src=&quot;https://osr.im/_astro/chrome-invalid-address.BzdUikZH_ZaCnrX.webp&quot;&gt;&lt;/p&gt;
&lt;p&gt;You should also see the following on your PiHole query logs:&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;pihole-logs-mov-zip&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;969&quot; height=&quot;232&quot; src=&quot;https://osr.im/_astro/pihole-logs-mov-zip.CEK0p3xe_Z2cEJpQ.webp&quot;&gt;&lt;/p&gt;
</content:encoded><dc:creator>Oscar Marion</dc:creator><media:content url="https://osr.im/og/note/blacklisting-google-mov-and-zip-tlds.png" medium="image" type="image/png" width="1200" height="630"/><category>note</category><category>self-hosting</category><category>security</category></item><item><title>Zoom TKL shortcuts (Bluetooth and RGB)</title><link>https://osr.im/notes/zoom-tkl-shortcuts-bluetooth-and-rgb</link><guid isPermaLink="true">https://osr.im/notes/zoom-tkl-shortcuts-bluetooth-and-rgb</guid><description>I gathered all the Zoom TKL shortcuts I could find on the web: Bluetooth pairing, function keys and RGB.</description><pubDate>Fri, 21 Apr 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Via customization web application: &lt;a href=&quot;https://usevia.app/&quot;&gt;usevia.app&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Zoom TKL JSON File &lt;a href=&quot;https://res.cloudinary.com/dbit9v7da/raw/upload/f_auto/q_auto/v1682340780/osr-dev/notes/zoom87_wireless_1_u1u8py.json&quot;&gt;can be found here&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;bluetooth&quot;&gt;Bluetooth&lt;a class=&quot;heading-anchor&quot; href=&quot;#bluetooth&quot; aria-label=&quot;Link to this section&quot;&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Action&lt;/th&gt;
&lt;th&gt;Shortcut&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Initiate bluetooth pairing (Device 1)&lt;/td&gt;
&lt;td&gt;FN + Z (Hold)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Initiate bluetooth pairing (Device 2)&lt;/td&gt;
&lt;td&gt;FN + X (Hold)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Initiate bluetooth pairing (Device 3)&lt;/td&gt;
&lt;td&gt;FN + C (Hold)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Connect to bluetooth device {1, 2, 3}&lt;/td&gt;
&lt;td&gt;FN + {Z, X, C}&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&quot;general&quot;&gt;General&lt;a class=&quot;heading-anchor&quot; href=&quot;#general&quot; aria-label=&quot;Link to this section&quot;&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Action&lt;/th&gt;
&lt;th&gt;Shortcut&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Restore to factory settings&lt;/td&gt;
&lt;td&gt;FN + Space + Backspace&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reset keyboard&lt;/td&gt;
&lt;td&gt;FN + Shift + R&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wired mode&lt;/td&gt;
&lt;td&gt;FN + Space&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Enter deep sleep mode&lt;/td&gt;
&lt;td&gt;FN + Tab (Hold)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&quot;function-keys&quot;&gt;Function keys&lt;a class=&quot;heading-anchor&quot; href=&quot;#function-keys&quot; aria-label=&quot;Link to this section&quot;&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Action&lt;/th&gt;
&lt;th&gt;Shortcut&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Increase brightness&lt;/td&gt;
&lt;td&gt;FN + F1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Decrease brightness&lt;/td&gt;
&lt;td&gt;FN + F2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Enter Mission Control&lt;/td&gt;
&lt;td&gt;FN + F3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Open home folder&lt;/td&gt;
&lt;td&gt;FN + F4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Refresh&lt;/td&gt;
&lt;td&gt;FN + F5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Previous track&lt;/td&gt;
&lt;td&gt;FN + F7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Play / pause song&lt;/td&gt;
&lt;td&gt;FN + F8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Next track&lt;/td&gt;
&lt;td&gt;FN + F9&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mute&lt;/td&gt;
&lt;td&gt;FN + F10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Volume up&lt;/td&gt;
&lt;td&gt;FN + F11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Volume down&lt;/td&gt;
&lt;td&gt;FN + F12&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&quot;rgb&quot;&gt;RGB&lt;a class=&quot;heading-anchor&quot; href=&quot;#rgb&quot; aria-label=&quot;Link to this section&quot;&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Action&lt;/th&gt;
&lt;th&gt;Shortcut&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Increase RGB brightness&lt;/td&gt;
&lt;td&gt;FN + ↑&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Decrease RGB brightness&lt;/td&gt;
&lt;td&gt;FN + ↓&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Increase RGB speed&lt;/td&gt;
&lt;td&gt;FN + →&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Decrease RGB speed&lt;/td&gt;
&lt;td&gt;FN + ←&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Toggle RGB&lt;/td&gt;
&lt;td&gt;FN + \&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Increase RGB hue&lt;/td&gt;
&lt;td&gt;FN + P&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Decrease RGB hue&lt;/td&gt;
&lt;td&gt;FN + ;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Increase RGB saturation&lt;/td&gt;
&lt;td&gt;FN + [&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Decrease RGB saturation&lt;/td&gt;
&lt;td&gt;FN + ’&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Change RGB mode&lt;/td&gt;
&lt;td&gt;FN + ]&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</content:encoded><dc:creator>Oscar Marion</dc:creator><media:content url="https://osr.im/og/note/zoom-tkl-shortcuts-bluetooth-and-rgb.png" medium="image" type="image/png" width="1200" height="630"/><category>note</category><category>hardware</category></item></channel></rss>