<?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>Writings on Institute of Ineptitude</title><link>https://ineptitude.ca/writing/</link><description>Recent content in Writings on Institute of Ineptitude</description><generator>Hugo -- 0.153.1</generator><language>en</language><lastBuildDate>Sat, 10 Jan 2026 23:07:02 -0700</lastBuildDate><atom:link href="https://ineptitude.ca/writing/index.xml" rel="self" type="application/rss+xml"/><item><title>Hello, World</title><link>https://ineptitude.ca/writing/hello/</link><pubDate>Fri, 28 Nov 2025 00:00:00 +0000</pubDate><guid>https://ineptitude.ca/writing/hello/</guid><description>&lt;p&gt;Here is where I write going forward. My little place of what is
supposed to be a decentralized web.&lt;/p&gt;
&lt;p&gt;Little experiments in computer science, debugging, code, infrastructure.
Whatever I feel like.&lt;/p&gt;
&lt;p&gt;If it ever evolves into something good. I&amp;rsquo;ll write my name on it.
For now, it&amp;rsquo;s just ineptitude.&lt;/p&gt;</description></item><item><title>Quick Pods</title><link>https://ineptitude.ca/writing/quick-pods/</link><pubDate>Sat, 10 Jan 2026 23:07:02 -0700</pubDate><guid>https://ineptitude.ca/writing/quick-pods/</guid><description>&lt;p&gt;Sometimes you just need a quick pod of a given Linux flavour to test a quick scenario:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh-session" data-lang="sh-session"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;kubectl run debian-container -n default --rm -it --image=debian:stable -- bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh-session" data-lang="sh-session"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;kubectl run circle-container -n default --rm -it --image=cimg/base:2026.01 -- bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh-session" data-lang="sh-session"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;kubectl run go-container -n default --rm -it --image=cimg/go:1.25.5 -- bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh-session" data-lang="sh-session"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;kubectl run ubuntu-container -n default --rm -it --image=ubuntu:26.04 -- bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Also, the CLI to get just load balancers is annoying:&lt;/p&gt;</description></item><item><title>macOS: Flush the DNS cache</title><link>https://ineptitude.ca/writing/macos-flush-dns/</link><pubDate>Wed, 10 Dec 2025 18:56:22 -0700</pubDate><guid>https://ineptitude.ca/writing/macos-flush-dns/</guid><description>&lt;p&gt;This is common knowledge&amp;hellip; but I don&amp;rsquo;t need to do it enough to
have it memorized&amp;hellip; and I&amp;rsquo;m tired of looking it up!&lt;/p&gt;
&lt;p&gt;So I&amp;rsquo;m writing it down here:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh-session" data-lang="sh-session"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;There! Now it&amp;rsquo;s written down on the web in &lt;em&gt;one&lt;/em&gt; more place&amp;hellip; 🙄&lt;/p&gt;</description></item><item><title>Condition Evaluation Utility</title><link>https://ineptitude.ca/writing/condition-evaluation-utility/</link><pubDate>Sat, 06 Dec 2025 21:41:18 -0700</pubDate><guid>https://ineptitude.ca/writing/condition-evaluation-utility/</guid><description>&lt;p&gt;After you run a command in UNIX shell (bourne, bash, etc), &lt;code&gt;$?&lt;/code&gt; has
the exit code (return value) of the prior run command:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh-session" data-lang="sh-session"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; $? Expands to the exit status of the most recent pipeline.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Shell scripting is a bit &lt;em&gt;weird&lt;/em&gt; in that the return value of a program
is evaluated as &lt;code&gt;true&lt;/code&gt; if it&amp;rsquo;s &lt;code&gt;0&lt;/code&gt; and &lt;code&gt;false&lt;/code&gt; if it&amp;rsquo;s &lt;code&gt;non-zero.&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This is useful as by convention unix commands return &lt;code&gt;0&lt;/code&gt; on success
or any other integer code to map to specific error conditions.&lt;/p&gt;</description></item><item><title>Upgrading FreeBSD Bastille Jails</title><link>https://ineptitude.ca/writing/upgrade-jails-pkg-static/</link><pubDate>Fri, 05 Dec 2025 15:02:16 -0700</pubDate><guid>https://ineptitude.ca/writing/upgrade-jails-pkg-static/</guid><description>&lt;p&gt;Upgrading &lt;a href="https://bastillebsd.org"&gt;BastilleBSD&lt;/a&gt; jails&amp;hellip;&lt;/p&gt;
&lt;p&gt;Mostly uneventful&amp;hellip; I did need a rescue from
&lt;a href="https://man.freebsd.org/cgi/man.cgi?query=pkg-static"&gt;pkg-static&lt;/a&gt; before
&lt;code&gt;pkg update/upgrade&lt;/code&gt; would work.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh-session" data-lang="sh-session"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;root@bastille-host:/ # bastille list
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; JID Name Boot Prio State Type IP Address Published Ports Release Tags
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; 1 random-jail on 99 Up thin 192.168.27.10 - 14.3-RELEASE-p6 -
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;root@bastille-host:/ # bastille stop random-jail
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;[random-jail]:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;random-jail: removed
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;root@bastille-host:/ # vi /usr/local/bastille/jails/random-jail/fstab
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;root@bastille-host:/usr/local/bastille/jails/random-jail # bastille start random-jail
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;[random-jail]:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;random-jail: created
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;root@bastille-host:/usr/local/bastille/jails/random-jail #
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;root@bastille-host:/ # bastille list
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; JID Name Boot Prio State Type IP Address Published Ports Release Tags
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; 1 random-jail on 99 Up thin 192.168.27.10 - 15.0-RELEASE -
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;root@bastille-host:/ # bastille console random-jail
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;[random-jail]:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;root@random-jail:~ # pkg update
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;ld-elf.so.1: Shared object &amp;#34;libutil.so.9&amp;#34; not found, required by &amp;#34;pkg&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;root@random-jail:~ # pkg-static bootstrap
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;pkg-static: Warning: Major OS version upgrade detected. Running &amp;#34;pkg bootstrap -f&amp;#34; recommended
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;pkg(8) already installed, use -f to force.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;root@random-jail:~ # pkg-static bootstrap -f
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;pkg-static: Warning: Major OS version upgrade detected. Running &amp;#34;pkg bootstrap -f&amp;#34; recommended
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;pkg(8) is already installed. Forcing reinstallation through pkg(7).
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;The package management tool is not yet installed on your system.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;Do you want to fetch and install it now? [y/N]: y
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;Bootstrapping pkg from pkg+http://pkg.FreeBSD.org/FreeBSD:15:amd64/quarterly, please wait...
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;Verifying signature with trusted certificate pkg.freebsd.org.2013102301... done
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;[random-jail] Installing pkg-2.4.2...
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;package pkg is already installed, forced install
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;[random-jail] Extracting pkg-2.4.2: 100%
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Then out with the old base:&lt;/p&gt;</description></item><item><title>1Password ssh agent config...</title><link>https://ineptitude.ca/writing/1password-agent-config/</link><pubDate>Wed, 03 Dec 2025 16:48:43 -0700</pubDate><guid>https://ineptitude.ca/writing/1password-agent-config/</guid><description>&lt;p&gt;If you&amp;rsquo;re doing SSH keys right&amp;hellip; they tend to &lt;em&gt;accumulate&amp;hellip;&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Keys unique to various environments or even specific hosts&lt;/li&gt;
&lt;li&gt;Rotation (new keys generated, old keys deprecated and phased out)&lt;/li&gt;
&lt;li&gt;They just &lt;em&gt;pile-up&lt;/em&gt; and &lt;em&gt;quickly&lt;/em&gt;!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This leads to eventual sadness:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh-session" data-lang="sh-session"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;sign_and_send_pubkey: signing failed for ED25519 &amp;#34;key-abc&amp;#34; from agent: agent refused operation
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;Received disconnect from 10.x.x.1 port 22:2: Too many authentication failures
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;I&amp;rsquo;ve mentioned this problem to ChatGPT from time to time and it has
historically hallucinated promising but ultimately disapointingly
nonsense &amp;ldquo;solutions.&amp;rdquo;&lt;/p&gt;</description></item><item><title>FreeBSD 15.0-RELEASE</title><link>https://ineptitude.ca/writing/freebsd-15-release/</link><pubDate>Mon, 01 Dec 2025 20:44:41 -0700</pubDate><guid>https://ineptitude.ca/writing/freebsd-15-release/</guid><description>&lt;p&gt;Upgraded my FreeBSD system to 15.0-RELEASE&lt;/p&gt;
&lt;p&gt;Watch out for that second run of freebsd-update that removes the
prior libs&amp;hellip; Seems that broke &lt;code&gt;sudo&lt;/code&gt; as the pkg didn&amp;rsquo;t get
upgraded (yet).&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh-session" data-lang="sh-session"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;FreeBSD 15.0-RELEASE (GENERIC) releng/15.0-n280995-7aedc8de6446
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gp"&gt;%&lt;/span&gt; uptime
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; 8:42PM up 54 mins, 4 users, load averages: 0.65, 0.96, 1.33
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gp"&gt;%&lt;/span&gt; sudo bastille list
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;ld-elf.so.1: Shared object &amp;#34;libutil.so.9&amp;#34; not found, required by &amp;#34;sudo&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gp"&gt;%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Deleting and re-installing pulled in the compatibility packages and got things sorted:&lt;/p&gt;</description></item><item><title>Automation, I dig it!</title><link>https://ineptitude.ca/writing/i-dig-it/</link><pubDate>Sat, 29 Nov 2025 00:00:00 +0000</pubDate><guid>https://ineptitude.ca/writing/i-dig-it/</guid><description>&lt;p&gt;&amp;hellip;and just like that, we&amp;rsquo;re live with automated publishing. I commit to git and a CICD pipeline authenticates over OIDC and deploys to an S3 bucket that serves as an origin for CloudFront. The domain is hosted on Route53 using DNS records created and maintained by Terraform.&lt;/p&gt;
&lt;p&gt;I push&amp;hellip; content gets published. What more can you want? I think this is going to work out just fine, indeed!&lt;/p&gt;</description></item><item><title>Assemble an MS-DOS .COM binary with DEBUG.EXE</title><link>https://ineptitude.ca/writing/assemble-dos-com/</link><pubDate>Tue, 11 Nov 2025 14:57:43 -0700</pubDate><guid>https://ineptitude.ca/writing/assemble-dos-com/</guid><description>&lt;p&gt;&lt;a href="https://www.youtube.com/The8BitGuy"&gt;The 8-Bit Guy&lt;/a&gt; has a video
where he &lt;a href="https://www.youtube.com/watch?v=HWpi9n2H3kE"&gt;demonstrates the assembler built right into the monitor
ROM on a C64&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This fascinated me and made me wonder&amp;hellip; If I was stuck on an old MS-DOS machine and wanted to assemble a binary&amp;hellip; Could I do it? Byte by byte? With what tool? Those of us stuck with &amp;ldquo;IBM compatible&amp;rdquo; PCs didn&amp;rsquo;t have no fancy monitor ROMs.&lt;/p&gt;
&lt;p&gt;Turns out MS-DOS&amp;rsquo; &lt;code&gt;DEBUG.EXE&lt;/code&gt; is and was entirely up for the job.&lt;/p&gt;</description></item><item><title>ARM code for IPv4 Subnetting</title><link>https://ineptitude.ca/writing/arm-subnet/</link><pubDate>Mon, 30 Dec 2024 00:00:00 +0000</pubDate><guid>https://ineptitude.ca/writing/arm-subnet/</guid><description>&lt;p&gt;ARM ASM code to find the network of an IP&lt;/p&gt;</description></item><item><title>ASCII case bit twiddling</title><link>https://ineptitude.ca/writing/ascii-case-bit-twiddling/</link><pubDate>Tue, 10 Dec 2024 21:49:28 -0700</pubDate><guid>https://ineptitude.ca/writing/ascii-case-bit-twiddling/</guid><description>&lt;p&gt;If you pay a special sort of attention, you may notice that the
upper-case and lower-case alphabet characters on the ASCII table
are always exactly offset from each other by 32.&lt;/p&gt;
&lt;p&gt;For example, upper-case &lt;code&gt;A&lt;/code&gt; is &lt;code&gt;65&lt;/code&gt;, while the lowercase &lt;code&gt;a&lt;/code&gt; is &lt;code&gt;97&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;As such the way the binary place value works out, you can manipulate
the case of a character by setting or clearing the sixth bit&amp;hellip;
(2^5 = 32, we start counting bits and everything at 0, we&amp;rsquo;re
programmers!)&lt;/p&gt;
&lt;p&gt;Decimal &lt;code&gt;32&lt;/code&gt; expressed as hexadecimal is &lt;code&gt;0x20&lt;/code&gt; and expressed as
binary is &lt;code&gt;00100000&lt;/code&gt;&lt;/p&gt;</description></item><item><title>Environment variables</title><link>https://ineptitude.ca/writing/env-vars/</link><pubDate>Wed, 27 Nov 2024 23:29:21 -0700</pubDate><guid>https://ineptitude.ca/writing/env-vars/</guid><description>&lt;p&gt;I had the sudden realization that I didn’t &lt;em&gt;really&lt;/em&gt; know how environment
variables work. I think We &lt;em&gt;all&lt;/em&gt; take them for granted, regardless of OS&amp;hellip;&lt;/p&gt;
&lt;p&gt;Some high level details about some such variables and their purpose
can be found in the &lt;a href="https://docs.freebsd.org/en/books/handbook/book/"&gt;FreeBSD
Handbook&lt;/a&gt; section
&lt;a href="https://docs.freebsd.org/en/books/handbook/book/#shells"&gt;3.9. Shells&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;You can view such variables in your shell using the
&lt;a href="https://man.freebsd.org/cgi/man.cgi?env"&gt;env&lt;/a&gt; command:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh-session" data-lang="sh-session"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;root@freebsd:~ # env
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;PAGER=less
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;LANG=C.UTF-8
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;MAIL=/var/mail/root
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;ENV=/root/.shrc
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;OLDPWD=/
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;PWD=/root
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;TERM=xterm-256color
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;USER=root
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;HOME=/root
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;SHELL=/bin/sh
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;MM_CHARSET=UTF-8
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;BLOCKSIZE=K
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;root@freebsd:~ #
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&amp;hellip;but what are all the low level specifics that nobody bothers to ask?&lt;/p&gt;</description></item><item><title>Initialize your variables</title><link>https://ineptitude.ca/writing/init-your-vars/</link><pubDate>Sat, 17 Aug 2024 15:51:13 -0700</pubDate><guid>https://ineptitude.ca/writing/init-your-vars/</guid><description>&lt;p&gt;There&amp;rsquo;s no shortage of material that explains variables in C should
be initialized&amp;hellip; but I&amp;rsquo;ve often found the explanation of &lt;em&gt;why&lt;/em&gt; to
be somewhat lacking.&lt;/p&gt;
&lt;p&gt;Where do the initial values of a variable come from if you don&amp;rsquo;t
explicitly initialize?&lt;/p&gt;</description></item><item><title>Guess the number...</title><link>https://ineptitude.ca/writing/guess-the-number/</link><pubDate>Fri, 05 Apr 2024 00:00:00 +0000</pubDate><guid>https://ineptitude.ca/writing/guess-the-number/</guid><description>&lt;p&gt;A quick demonstration of how one can use a debugger to interactively inspect variables in a running program&amp;hellip;&lt;/p&gt;</description></item><item><title>Patching Binaries</title><link>https://ineptitude.ca/writing/patching-binaries/</link><pubDate>Sat, 13 Mar 2021 11:19:00 -0600</pubDate><guid>https://ineptitude.ca/writing/patching-binaries/</guid><description>&lt;h2 id="exercise-summary"&gt;Exercise Summary&lt;/h2&gt;
&lt;p&gt;The idea of this self-inflicted exercise was to see if I could
inspect and patch a binary to change the outcome of some conditional
code. In days of long past up I had found tutorials on how to patch
a binary to bypass copyright protection schemes. The type that would
ask a random question, where the answer found in a manual.&lt;/p&gt;
&lt;p&gt;You know, the one you would have had if the game wasn&amp;rsquo;t recieved
on bootleg floppy diskettes.&lt;/p&gt;</description></item></channel></rss>