<?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>Note on Kristoffer Opsahl</title><link>https://kristofferopsahl.com/tags/note/</link><description>Recent content in Note on Kristoffer Opsahl</description><image><title>Kristoffer Opsahl</title><url>https://kristofferopsahl.com/images/og-default.jpg</url><link>https://kristofferopsahl.com/images/og-default.jpg</link></image><generator>Hugo -- 0.160.1</generator><language>en-us</language><lastBuildDate>Fri, 03 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://kristofferopsahl.com/tags/note/index.xml" rel="self" type="application/rss+xml"/><item><title>How to Securely Erase a Hard-Disk Drive</title><link>https://kristofferopsahl.com/posts/securely-erase-hard-disk-drive/</link><pubDate>Fri, 03 Apr 2026 00:00:00 +0000</pubDate><guid>https://kristofferopsahl.com/posts/securely-erase-hard-disk-drive/</guid><description>&lt;p&gt;Hard-disk drives (HDDs) should be securely erased before being sold or recycled. This is a public note-to-self on how to achieve this in a simple and timely manner.&lt;/p&gt;
&lt;h2 id="prerequisites"&gt;Prerequisites&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;shred&lt;/code&gt; binary, which to my knowledge is included in all major Linux distributions. Moreover, you need a HDD which will be subject to secure erasure.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;You can NOT use &lt;code&gt;shred&lt;/code&gt; to SECURELY erase solid-state drives (SSDs) or so-called non-volatile memory express (NVMe) devices.&lt;/strong&gt; This is due to physical differences in the mechanism used to store information.&lt;/p&gt;</description></item><item><title>Using dd to Write an .iso to a USB Drive</title><link>https://kristofferopsahl.com/posts/using-dd-to-write-an-iso-to-a-usb-drive/</link><pubDate>Sun, 14 Sep 2025 17:16:05 +0000</pubDate><guid>https://kristofferopsahl.com/posts/using-dd-to-write-an-iso-to-a-usb-drive/</guid><description>&lt;p&gt;&lt;code&gt;dd&lt;/code&gt; is one of those commands for which I have to look up proper usage every usage because I use it regularly but not often. As such, this is a public note-to-self, which may or may not be useful to the reader.&lt;/p&gt;
&lt;h2 id="prerequisites"&gt;Prerequisites&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;dd&lt;/code&gt; binary is, to my knowledge, included on macOS and all major Linux distributions.&lt;/p&gt;
&lt;h2 id="writing-the-file"&gt;Writing the File&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dd &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;of&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;status&lt;/span&gt;&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;progress
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;The &lt;strong&gt;if&lt;/strong&gt; option tells &lt;code&gt;dd&lt;/code&gt; to read from the provided path instead of stdin.&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;of&lt;/strong&gt; option tells &lt;code&gt;dd&lt;/code&gt; to write to the provided path instead of stdout.&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;status&lt;/strong&gt; option tells &lt;code&gt;dd&lt;/code&gt; to show periodic transfer statistics.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The status option is primarily included because the program can otherwise seem unresponsive upon writing large .iso files, as the transfer to disk can take several minutes to complete.&lt;/p&gt;</description></item><item><title>My Alacritty, Zellij, and Helix Development Setup</title><link>https://kristofferopsahl.com/posts/my-alacritty-zellij-and-helix-development-setup/</link><pubDate>Mon, 07 Jul 2025 00:20:15 +0000</pubDate><guid>https://kristofferopsahl.com/posts/my-alacritty-zellij-and-helix-development-setup/</guid><description>&lt;p&gt;This article is a public note-to-self where I&amp;rsquo;ll go through the basic configuration I use to get new computers ready for programming in just a couple of minutes. It is centered around the following pieces of software:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://alacritty.org/"&gt;Alacritty&lt;/a&gt;, a terminal.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://zellij.dev/"&gt;Zellij&lt;/a&gt;, a terminal multiplexer.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://helix-editor.com/"&gt;Helix&lt;/a&gt;, a text-editor with support for &lt;a href="https://en.wikipedia.org/wiki/Language_Server_Protocol"&gt;LSP&lt;/a&gt;, and &lt;a href="https://tree-sitter.github.io/tree-sitter/"&gt;tree-sitter&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In my selection process, I heavily emphasized performance, as I strongly dislike when my IDE can&amp;rsquo;t keep up with my thoughts. I also favored software with sane defaults, such that almost zero configuration is required for great usability. The programs are free, cross-platform, open-source, and they all happen to be written in Rust.&lt;/p&gt;</description></item></channel></rss>