<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Rocasta Dot Com</title><link>https://www.rocasta.com/</link><description>Recent content on Rocasta Dot Com</description><generator>Hugo</generator><language>en</language><lastBuildDate>Tue, 07 Jul 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://www.rocasta.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Architecture Overview</title><link>https://www.rocasta.com/arch/architecture/</link><pubDate>Tue, 07 Jul 2026 00:00:00 +0000</pubDate><guid>https://www.rocasta.com/arch/architecture/</guid><description>&lt;div class="paragraph"&gt;
&lt;p&gt;This document describes the architecture of the rocasta.com static site.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="sect1"&gt;
&lt;h2 id="_technology_stack"&gt;&lt;a class="anchor" href="#_technology_stack"&gt;&lt;/a&gt;Technology Stack&lt;/h2&gt;
&lt;div class="sectionbody"&gt;
&lt;div class="ulist"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Static Site Generator:&lt;/strong&gt; Hugo (Extended) v0.164+&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Theme:&lt;/strong&gt; PaperMod&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Content Format:&lt;/strong&gt; AsciiDoc (processed by Asciidoctor)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Deployment:&lt;/strong&gt; GitHub Pages via GitHub Actions&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Local Development:&lt;/strong&gt; Hugo development server with live reload&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="sect1"&gt;
&lt;h2 id="_directory_structure"&gt;&lt;a class="anchor" href="#_directory_structure"&gt;&lt;/a&gt;Directory Structure&lt;/h2&gt;
&lt;div class="sectionbody"&gt;
&lt;table class="tableblock frame-all grid-all stretch"&gt;
&lt;colgroup&gt;
&lt;col style="width: 50%;"/&gt;
&lt;col style="width: 50%;"/&gt;
&lt;/colgroup&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Path&lt;/th&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;code&gt;content/posts/&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;Blog posts in AsciiDoc&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;code&gt;content/arch/&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;Architecture and build documentation&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;code&gt;content/about.md&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;About page&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;code&gt;static/images/&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;Static images served at &lt;code&gt;/images/&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;code&gt;themes/PaperMod/&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;Git submodule for theme&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;code&gt;public/&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;Built site output (gitignored)&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</description></item><item><title>Design Guide</title><link>https://www.rocasta.com/arch/design-guide/</link><pubDate>Tue, 07 Jul 2026 00:00:00 +0000</pubDate><guid>https://www.rocasta.com/arch/design-guide/</guid><description>&lt;div class="paragraph"&gt;
&lt;p&gt;This document explains the design decisions behind the site.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="sect1"&gt;
&lt;h2 id="_why_hugo_over_jekyll"&gt;&lt;a class="anchor" href="#_why_hugo_over_jekyll"&gt;&lt;/a&gt;Why Hugo over Jekyll&lt;/h2&gt;
&lt;div class="sectionbody"&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;The site was originally built with Jekyll 4.4.1 + Chirpy theme. It was migrated to Hugo + PaperMod for the following reasons:&lt;/p&gt;
&lt;/div&gt;
&lt;div class="sect2"&gt;
&lt;h3 id="_ruby_version_incompatibility"&gt;&lt;a class="anchor" href="#_ruby_version_incompatibility"&gt;&lt;/a&gt;Ruby Version Incompatibility&lt;/h3&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;Jekyll’s dependency chain (specifically the &lt;code&gt;jekyll-theme-chirpy&lt;/code&gt; gem) requires Ruby &lt;code&gt;~&amp;gt; 3.1&lt;/code&gt;. Modern systems ship with Ruby 4.x, requiring a version manager (&lt;code&gt;chruby&lt;/code&gt;, &lt;code&gt;rbenv&lt;/code&gt;) to build locally. Hugo is a single Go binary with no runtime dependencies.&lt;/p&gt;
&lt;/div&gt;</description></item><item><title>Build Guide</title><link>https://www.rocasta.com/arch/build-guide/</link><pubDate>Tue, 07 Jul 2026 00:00:00 +0000</pubDate><guid>https://www.rocasta.com/arch/build-guide/</guid><description>&lt;div class="paragraph"&gt;
&lt;p&gt;Step-by-step instructions to build and maintain a Hugo + PaperMod + AsciiDoc static site on GitHub Pages.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="sect1"&gt;
&lt;h2 id="_prerequisites"&gt;&lt;a class="anchor" href="#_prerequisites"&gt;&lt;/a&gt;Prerequisites&lt;/h2&gt;
&lt;div class="sectionbody"&gt;
&lt;div class="ulist"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Homebrew (macOS) or equivalent package manager&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Git&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Hugo Extended (installed via Homebrew)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="listingblock"&gt;
&lt;div class="content"&gt;
&lt;pre class="rouge highlight"&gt;&lt;code data-lang="sh"&gt;brew &lt;span class="nb"&gt;install &lt;/span&gt;hugo
hugo version&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;Verify the output includes &lt;code&gt;extended&lt;/code&gt;:&lt;/p&gt;
&lt;/div&gt;
&lt;div class="literalblock"&gt;
&lt;div class="content"&gt;
&lt;pre&gt;hugo v0.164.0+extended ...&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="sect1"&gt;
&lt;h2 id="_asciidoctor"&gt;&lt;a class="anchor" href="#_asciidoctor"&gt;&lt;/a&gt;Asciidoctor&lt;/h2&gt;
&lt;div class="sectionbody"&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;Hugo requires &lt;code&gt;asciidoctor&lt;/code&gt; to process &lt;code&gt;.adoc&lt;/code&gt; files:&lt;/p&gt;
&lt;/div&gt;
&lt;div class="listingblock"&gt;
&lt;div class="content"&gt;
&lt;pre class="rouge highlight"&gt;&lt;code data-lang="sh"&gt;brew &lt;span class="nb"&gt;install &lt;/span&gt;asciidoctor
gem &lt;span class="nb"&gt;install &lt;/span&gt;asciidoctor&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;Verify:&lt;/p&gt;
&lt;/div&gt;
&lt;div class="literalblock"&gt;
&lt;div class="content"&gt;
&lt;pre&gt;asciidoctor --version&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="sect1"&gt;
&lt;h2 id="_project_setup"&gt;&lt;a class="anchor" href="#_project_setup"&gt;&lt;/a&gt;Project Setup&lt;/h2&gt;
&lt;div class="sectionbody"&gt;
&lt;div class="sect2"&gt;
&lt;h3 id="_create_a_new_site"&gt;&lt;a class="anchor" href="#_create_a_new_site"&gt;&lt;/a&gt;Create a New Site&lt;/h3&gt;
&lt;div class="listingblock"&gt;
&lt;div class="content"&gt;
&lt;pre class="rouge highlight"&gt;&lt;code data-lang="sh"&gt;hugo new site my-site
&lt;span class="nb"&gt;cd &lt;/span&gt;my-site&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;</description></item><item><title>The Adventure of the Engineer's Thumb — Story Guide</title><link>https://www.rocasta.com/posts/2026-07-07-engineers-thumb-story-guide/</link><pubDate>Tue, 07 Jul 2026 00:00:00 +0000</pubDate><guid>https://www.rocasta.com/posts/2026-07-07-engineers-thumb-story-guide/</guid><description>&lt;div class="sect1"&gt;
&lt;h2 id="_story_guide"&gt;&lt;a class="anchor" href="#_story_guide"&gt;&lt;/a&gt;1. Story Guide&lt;/h2&gt;
&lt;div class="sectionbody"&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;The original story runs approximately 6,000 words. For a 32-page picture book
(13-14 double-page spreads after front matter), target text is ~600 words,
roughly 40-50 words per spread.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;This guide lists every spread with its scene, text, and the cats&amp;#39; involvement.&lt;/p&gt;
&lt;/div&gt;
&lt;hr/&gt;
&lt;div class="sect2"&gt;
&lt;h3 id="_page_credits"&gt;&lt;a class="anchor" href="#_page_credits"&gt;&lt;/a&gt;1.1. Page Credits&lt;/h3&gt;
&lt;div class="ulist"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Pages 1-3: Front matter (half-title, title, copyright)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Pages 4-31: Story content (14 spreads)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Page 32: Back matter / colophon&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;hr/&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="sect1"&gt;
&lt;h2 id="_spread_1_the_clock_strikes_seven"&gt;&lt;a class="anchor" href="#_spread_1_the_clock_strikes_seven"&gt;&lt;/a&gt;2. Spread 1 — The Clock Strikes Seven&lt;/h2&gt;
&lt;div class="sectionbody"&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;&lt;strong&gt;Page 4 — Full-page illustration&lt;/strong&gt;&lt;/p&gt;
&lt;/div&gt;</description></item><item><title>Bash Operator Cheatsheet</title><link>https://www.rocasta.com/posts/2025-03-26-bash-operator-cheatsheet/</link><pubDate>Wed, 26 Mar 2025 00:00:00 +0000</pubDate><guid>https://www.rocasta.com/posts/2025-03-26-bash-operator-cheatsheet/</guid><description>&lt;div class="paragraph"&gt;
&lt;p&gt;This cheat sheet covers Bash operators including file tests, string comparisons, logical operations, and arithmetic evaluations.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="sect1"&gt;
&lt;h2 id="_file_test_operators"&gt;&lt;a class="anchor" href="#_file_test_operators"&gt;&lt;/a&gt;1. File Test Operators&lt;/h2&gt;
&lt;div class="sectionbody"&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;File test operators check the status of files.&lt;/p&gt;
&lt;/div&gt;
&lt;table class="tableblock frame-all grid-all stretch"&gt;
&lt;colgroup&gt;
&lt;col style="width: 33.3333%;"/&gt;
&lt;col style="width: 33.3333%;"/&gt;
&lt;col style="width: 33.3334%;"/&gt;
&lt;/colgroup&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Operator&lt;/th&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Description&lt;/th&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;code&gt;-e&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;File exists (any type)&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;code&gt;[[ -e file.txt ]]&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;code&gt;-f&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;File exists and is a regular file&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;code&gt;[[ -f script.sh ]]&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;code&gt;-d&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;File exists and is a directory&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;code&gt;[[ -d myfolder ]]&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;code&gt;-r&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;File is readable&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;code&gt;[[ -r data.txt ]]&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;code&gt;-w&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;File is writable&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;code&gt;[[ -w output.log ]]&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;code&gt;-x&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;File is executable&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;code&gt;[[ -x script.sh ]]&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;code&gt;-s&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;File exists and is not empty&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;code&gt;[[ -s nonempty.txt ]]&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;code&gt;-L&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;File is a symbolic link&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;code&gt;[[ -L shortcut ]]&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;code&gt;-b&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;File is a block device&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;code&gt;[[ -b /dev/sda1 ]]&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;code&gt;-c&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;File is a character device&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;code&gt;[[ -c /dev/ttyS0 ]]&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;code&gt;-p&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;File is a named pipe (FIFO)&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;code&gt;[[ -p pipefile ]]&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;code&gt;-S&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;File is a socket&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;code&gt;[[ -S /var/run/docker.sock ]]&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</description></item><item><title>Diagnosing SMB Latency</title><link>https://www.rocasta.com/posts/2025-03-26-diagnose-smb-latency/</link><pubDate>Wed, 26 Mar 2025 00:00:00 +0000</pubDate><guid>https://www.rocasta.com/posts/2025-03-26-diagnose-smb-latency/</guid><description>&lt;div class="sect1"&gt;
&lt;h2 id="_diagnosing_the_problem"&gt;&lt;a class="anchor" href="#_diagnosing_the_problem"&gt;&lt;/a&gt;1. Diagnosing the Problem&lt;/h2&gt;
&lt;div class="sectionbody"&gt;
&lt;div class="olist arabic"&gt;
&lt;ol class="arabic"&gt;
&lt;li&gt;
&lt;p&gt;Check Network Speed&lt;/p&gt;
&lt;div class="ulist"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Use &lt;code&gt;iperf3&lt;/code&gt; to measure network throughput between the two Macs.&lt;/p&gt;
&lt;div class="listingblock"&gt;
&lt;div class="content"&gt;
&lt;pre class="rouge highlight"&gt;&lt;code data-lang="shell"&gt;&lt;span class="c"&gt;# On Mac B (SMB Server)&lt;/span&gt;
iperf3 &lt;span class="nt"&gt;-s&lt;/span&gt;
&lt;span class="c"&gt;# On Mac A (Client)&lt;/span&gt;
iperf3 &lt;span class="nt"&gt;-c&lt;/span&gt; &amp;lt;Mac B&lt;span class="s1"&gt;&amp;#39;s IP&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If the speed is close to 1Gbps, the network is performing as expected.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If it’s significantly lower (e.g., below 500 Mbps), there may be a bottleneck in the network hardware or cabling.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Check Latency with &lt;code&gt;ping&lt;/code&gt;&lt;/p&gt;
&lt;div class="ulist"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Use &lt;code&gt;ping&lt;/code&gt; to measure round-trip time between Mac A and Mac B.&lt;/p&gt;
&lt;div class="listingblock"&gt;
&lt;div class="content"&gt;
&lt;pre class="rouge highlight"&gt;&lt;code data-lang="shell"&gt;ping &lt;span class="nt"&gt;-c&lt;/span&gt; 10 &amp;lt;Mac B&lt;span class="s1"&gt;&amp;#39;s IP&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;</description></item><item><title>About</title><link>https://www.rocasta.com/about/</link><pubDate>Wed, 01 Jan 2025 00:00:00 +0000</pubDate><guid>https://www.rocasta.com/about/</guid><description>&lt;p&gt;Hi, I&amp;rsquo;m &lt;strong&gt;Charles Webster&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;This is my personal site — a collection of technical notes, project write-ups, and creative works.&lt;/p&gt;
&lt;p&gt;I write about Unix systems, networking, Bash, and whatever else I&amp;rsquo;m tinkering with. I&amp;rsquo;m also working on a steampunk retelling of the Sherlock Holmes stories, featuring Catticus Finch and Lollipop: two ordinary-looking cats with extraordinary enhancements.&lt;/p&gt;</description></item><item><title>Building a Gigabyte Brix SUSE Distro</title><link>https://www.rocasta.com/posts/2024-07-09-building-a-gigabyte-brix-suse-distro/</link><pubDate>Tue, 09 Jul 2024 00:00:00 +0000</pubDate><guid>https://www.rocasta.com/posts/2024-07-09-building-a-gigabyte-brix-suse-distro/</guid><description>&lt;div class="olist arabic"&gt;
&lt;ol class="arabic"&gt;
&lt;li&gt;
&lt;p&gt;Download the latest copy of SUSE &lt;a href="https://get.opensuse.org/tumbleweed"&gt;tumbleweed&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Burn this ISO image to thumb drive&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div class="listingblock"&gt;
&lt;div class="content"&gt;
&lt;pre class="rouge highlight"&gt;&lt;code data-lang="sh"&gt;&lt;span class="nb"&gt;dd &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&amp;lt;location_of_iso&amp;gt; &lt;span class="nv"&gt;of&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/dev/rdisk&amp;lt;thumbdrive_disk_number&amp;gt; &lt;span class="nv"&gt;bs&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;1m&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="olist arabic"&gt;
&lt;ol class="arabic"&gt;
&lt;li&gt;
&lt;p&gt;Put this in the front USB slot of the Brix&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Power off and power on (a hard reboot is important)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Press the delete key repeatedly to get to Brix BIOS&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Change boot order in boot section to specify USB drive as 1st boot&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Save and Exit (reboot on thumb drive)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run installer&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item></channel></rss>