aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--barf6
-rw-r--r--build/My_Text_Editor_Is_Not_Open_Source/index.html75
-rw-r--r--build/Switching_Things_Over_to_ikiwiki/index.html52
-rw-r--r--build/atom.xml521
-rw-r--r--build/index.html336
-rw-r--r--build/posts.tsv12
-rw-r--r--posts/My_Text_Editor_Is_Not_Open_Source.md59
-rw-r--r--posts/Switching_Things_Over_to_ikiwiki.md29
8 files changed, 688 insertions, 402 deletions
diff --git a/barf b/barf
index 1de61a1..e13b901 100644
--- a/barf
+++ b/barf
@@ -20,16 +20,16 @@ index_html() {
# Intro text
$MARKDOWN index.md
- echo "<ul>"
+ echo "<div>"
# Posts
while read -r f title created; do
link=$(echo "$f" | sed -E 's|.*/(.*).md|\1/|')
created=$(echo $(head -3 "$f" | tail -1))
- echo "<li>$created &middot; <a href=\"$link\">$title</a></li>"
+ echo "<span>$created &middot; <a href=\"$link\">$title</a></span><br>"
done < "$1" | sort -r
- echo "</ul>"
+ echo "</div>"
# Print footer after post list
cat footer.html
diff --git a/build/My_Text_Editor_Is_Not_Open_Source/index.html b/build/My_Text_Editor_Is_Not_Open_Source/index.html
new file mode 100644
index 0000000..9b0f0b2
--- /dev/null
+++ b/build/My_Text_Editor_Is_Not_Open_Source/index.html
@@ -0,0 +1,75 @@
+<!doctype html>
+<html lang="en" id="top">
+<head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="icon" href="data:,">
+ <title>My Text Edtior is Not Open Source</title>
+ <link href="https://bt.ht/atom.xml" type="application/atom+xml" rel="alternate" title="Atom feed for blog posts" />
+ <style>*{box-sizing:border-box;}body{font-family:sans-serif;margin:0 auto;max-width:650px;padding:1rem;}img{max-width:100%;}pre{overflow:auto;}table{text-align:left;width:100%;}</style>
+</head>
+
+<nav>
+ <a href="#menu">Menu &darr;</a>
+</nav>
+
+<main>
+<h1>My Text Edtior is Not Open Source</h1>
+<p>2024-01-02</p>
+<p>I've been using Sublime Text on and off for longer than I can remember. I think Sublime has been around since the start of my "real" career over 10 years ago, but I could be mistaken[^1]. It certainly <em>feels</em> that long. And in that time I have never gotten upset with Sublime. I've never rage quit or ran into an issue of Sublime not being able to <em>do the thing I wanted it to do</em>. As much of a cliche it may sound: it just works.</p>
+<p>Even when I switch editors (VSCode, Geany, kitty+vim etc.) for a period of time, I find myself always coming back to Sublime. The only reason I try other editors is simply that: to try them. Maybe that's why these editors don't click with me. Maybe I'm giving Sublime an unfair advantage since I'm simply "testing" other editors, rather than looking for a solid alternative.</p>
+<p>And don't get me wrong, I understand <em>why</em> editors like VSCode are extremely popular. VSCode has a massive ecosystem and new plugins are generally developed for that editor before all others. Finding solutions to problems online is very easy, since it is so popular. But best of all - it's open source[^2].</p>
+<p>So why am I using a <em>non</em>-open source editor? (Spoilers: because it's a great editor)</p>
+<h2>"A Proprietary Editor - How Could You?!"</h2>
+<p>I know, I know. If you're familiar with me or the things I write about it must seem odd that I would willingly use proprietary software over open source. This is something I struggle with constantly day-to-day in the realm of "personal tech". I find with age I become more open-minded to having a diverse range of software and hardware choices. Open source is best in <em>concept</em> but not always best in practice.</p>
+<p>The problem is that Sublime is just such a <em>great</em> editor. I can't ignore quality and refuse to use good software solely based on it's licensing. A few personal things I love about Sublime:</p>
+<ul>
+<li>Incredibly fast</li>
+<li>Handles massive files without breaking a sweat</li>
+<li>Minimal resource footprint (ex. uses &lt;0.1% CPU working on huge projects)</li>
+<li>Large ecosystem of plugins/themes</li>
+<li>No Electron</li>
+</ul>
+<p>Other editors can certainly check off a few of those boxes as well, but you'd be hard-pressed to find one that checks off them all.</p>
+<h2>Being a Cheapskate</h2>
+<p>I must confess something that I think most Sublime users are guilty of: I've never <a href="https://www.sublimehq.com/store/text">bought a license</a>. I've installed and used Sublime on countless machines, on multiple operating systems from Linux to Windows to MacOS. That <code>Unregistered</code> text in the top right application bar has been with me since the beginning. But that in no longer the case.</p>
+<p><strong>I finally purchased a license.</strong> I bundled it with <a href="https://www.sublimemerge.com/">Sublime Merge</a>, so it ended up costing me $168 USD. When I initially looked at that price tag I must admit I was tempted to close the browser tab and forget the whole thing. But then I realized I have been using this editor <em>free of charge</em> for over 10 years. (Not to mention using Sublime Merge for quite some time as well!)</p>
+<p>So I did a little math:</p>
+<pre><code>$168 / 10 years = $16.80
+</code></pre>
+<p>Looking at it in that perspective, it's actually a great deal. Not to mention they have very respectable terms for their licenses:</p>
+<blockquote><p>Personal licenses come with 3 years of updates. After 3 years, you'll be able to continue to use the last version released within 3 years of purchase (in other words, licenses do not expire). Any versions released 3 years or more after the purchase date will require a paid upgrade to use.</p>
+</blockquote>
+<blockquote><p>Individual licenses are valid for 3 years of updates, but do not expire after 3 years. Only if you wish to use newer versions will an upgrade fee be required. </p>
+</blockquote>
+<blockquote><p>Licenses are per-user, so you're welcome to use the one license on all computers and operating systems where you are the primary user.</p>
+</blockquote>
+<p>I won't copy everything from their main <a href="https://www.sublimehq.com/sales_faq">FAQ page</a> but as you can see it is very reasonable. I also get to feel decent for supporting developers who make very good software.</p>
+<h2>Final Notes</h2>
+<p>This post is not meant to convince you to switch or anything of that nature. Use what works for you! I just wanted to share my own personal preference when it came to my main text editor. Maybe this will also convince "hardcore" open source people (like me!) to realize it is <em>okay</em> to pay for software sometimes...</p>
+<hr />
+<p>I should be very clear about something: this post <em>is not an advertisement</em>. I have not received any money or "kick backs" to write about my happy times with Sublime. This is purely my own opinion that I wanted to share with the internet!</p>
+<p>BTW if anyone from SublimeHQ happens to come across this post: PLEASE look into building a "native" version of Sublime Text for FreeBSD/OpenBSD. I (and many others) would be forever grateful!</p>
+<p>[^1]: Sublime does mention copyright since 2006...</p>
+<p>[^2]: Not the pre-packaged Microsoft version</p>
+<footer role="contentinfo">
+ <h2>Menu Navigation</h2>
+ <ul id="menu">
+ <li><a href="/">Home</a></li>
+ <li><a href="/projects">Projects</a></li>
+ <li><a href="/uses">Uses</a></li>
+ <li><a href="/wiki">Wiki</a></li>
+ <li><a href="/resume">Resume</a></li>
+ <li><a href="/colophon">Colophon</a></li>
+ <li><a href="/now">Now</a></li>
+ <li><a href="/donate">Donate</a></li>
+ <li><a href="/atom.xml">RSS</a></li>
+ <li><a href="#top">&uarr; Top of the page</a></li>
+ </ul>
+ <small>
+ Built with <a href="https://git.sr.ht/~bt/barf">barf</a>. <br>
+ Maintained with ♥ for the web. <br>
+ Proud supporter of <a href="https://usefathom.com/ref/DKHJVX">Fathom</a> &amp; <a href="https://nextdns.io/?from=74d3p3h8">NextDNS</a>. <br>
+ The content for this site is <a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>.<br> The <a href="https://git.sr.ht/~bt/bt.ht">code for this site</a> is <a href="https://git.sr.ht/~bt/bt.ht/tree/master/item/LICENSE">MIT</a>.
+ </small>
+</footer> \ No newline at end of file
diff --git a/build/Switching_Things_Over_to_ikiwiki/index.html b/build/Switching_Things_Over_to_ikiwiki/index.html
new file mode 100644
index 0000000..d56a603
--- /dev/null
+++ b/build/Switching_Things_Over_to_ikiwiki/index.html
@@ -0,0 +1,52 @@
+<!doctype html>
+<html lang="en" id="top">
+<head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="icon" href="data:,">
+ <title>Switching Things Over to ikiwiki</title>
+ <link href="https://bt.ht/atom.xml" type="application/atom+xml" rel="alternate" title="Atom feed for blog posts" />
+ <style>*{box-sizing:border-box;}body{font-family:sans-serif;margin:0 auto;max-width:650px;padding:1rem;}img{max-width:100%;}pre{overflow:auto;}table{text-align:left;width:100%;}</style>
+</head>
+
+<nav>
+ <a href="#menu">Menu &darr;</a>
+</nav>
+
+<main>
+<h1>Switching Things Over to ikiwiki</h1>
+<p>2023-12-17</p>
+<p>I've done it again. My personal website is no longer generated with <a href="https://barf.btxx.org">barf</a> but is instead built on top of ikiwiki. The old RSS feed (<a href="https://btxx.org/atom.xml">btxx.org/atom.xml</a>) still exists but will no longer receive updates. The new feed can be found on the bottom of the homepage (<a href="/index.rss">index.rss</a>)</p>
+<h2>Why a Wiki?</h2>
+<p>I love the simplicity of a minimal blog, which is why I always gravitated towards purely "static" site builders. Over time though, I found two minor issues that slowly chipped away at me: ease-of-use and flexibility.</p>
+<p>I had a vision, back when I began tinkering with my own place on the web, of building out my own personal "resource center" or wiki. Often times through work or personal projects I stumble into little problems that I need to solve. Most times I find a solution and move on with my life. The problem with this approach is <em>lack of documentation</em>.</p>
+<p>What if I come across that issue at a later point in time? Will I even remember my old solution? Probably not. So, I've made the switch to a more flexible, personal wiki (which also happens to be a blog!)</p>
+<h2>Text Editors, Terminals, and Web UI - Oh My!</h2>
+<p>ikiwiki comes packed with multiple ways to publish pages and posts. Since it is built with ikiwiki and git version control in mind, you have the ability to push out changes directly to your server similar to that of pre-existing static site generators. It also gives you the choice to <code>ssh</code> directly into your server and publish content from your terminal if you so desire.</p>
+<p>Best of all, ikiwiki offers a web UI interface. This is something I have long missed since leaving "dynamic" websites behind.</p>
+<h2>But Wait, There's More!</h2>
+<p>Did I mention that this site now supports a built-in search form <em>and</em> a comment system? I've been wanting comments or discussions directly on my personal web space for the longest time and now I do! The search function is really an added bonus, mostly for my own personal use to find something I documented quickly.</p>
+<h2>Broken Links and Bugs</h2>
+<p>I've done my best to properly forward all original posts and pages to their new URLs - but I'm sure some things will be overlooked. So please feel free to reach out and let me know if anything seems broken.</p>
+<p>I look forward to growing out this "platform" and seeing how it impacts my workflow writing documentation / blog posts. I hope you'll come along for the ride!</p>
+<footer role="contentinfo">
+ <h2>Menu Navigation</h2>
+ <ul id="menu">
+ <li><a href="/">Home</a></li>
+ <li><a href="/projects">Projects</a></li>
+ <li><a href="/uses">Uses</a></li>
+ <li><a href="/wiki">Wiki</a></li>
+ <li><a href="/resume">Resume</a></li>
+ <li><a href="/colophon">Colophon</a></li>
+ <li><a href="/now">Now</a></li>
+ <li><a href="/donate">Donate</a></li>
+ <li><a href="/atom.xml">RSS</a></li>
+ <li><a href="#top">&uarr; Top of the page</a></li>
+ </ul>
+ <small>
+ Built with <a href="https://git.sr.ht/~bt/barf">barf</a>. <br>
+ Maintained with ♥ for the web. <br>
+ Proud supporter of <a href="https://usefathom.com/ref/DKHJVX">Fathom</a> &amp; <a href="https://nextdns.io/?from=74d3p3h8">NextDNS</a>. <br>
+ The content for this site is <a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>.<br> The <a href="https://git.sr.ht/~bt/bt.ht">code for this site</a> is <a href="https://git.sr.ht/~bt/bt.ht/tree/master/item/LICENSE">MIT</a>.
+ </small>
+</footer> \ No newline at end of file
diff --git a/build/atom.xml b/build/atom.xml
index e9c53e3..d00bd98 100644
--- a/build/atom.xml
+++ b/build/atom.xml
@@ -2,11 +2,11 @@
<feed xmlns="http://www.w3.org/2005/Atom">
<title>Making software better without sacrificing user experience.</title>
<link href="https://bt.ht/atom.xml" rel="self" />
- <updated>2023-11-02T14:09:39Z</updated>
+ <updated>2024-06-06T14:59:33Z</updated>
<author>
<name>Bradley Taunt</name>
</author>
- <id>https://bt.ht,2022-10-31:default-atom-feed/</id>
+ <id>https://bt.ht,2024-06-06:default-atom-feed/</id>
<entry>
<title>The X220 ThinkPad is the Best Laptop in the World</title>
<content type="html">&lt;h1&gt;The X220 ThinkPad is the Best Laptop in the World&lt;/h1&gt;
@@ -371,45 +371,6 @@ Once complete you can now run your Jekyll projects locally through WSL! Nothing
<published>2023-06-05T10:00:00Z</published>
</entry>
<entry>
- <title>Icons Should be Complementary - Text is Always Better</title>
- <content type="html">&lt;h1&gt;Icons Should be Complementary - Text is Always Better&lt;/h1&gt;
-&lt;p&gt;2021-12-17&lt;/p&gt;
-&lt;p&gt;Designing[^1] software is a complex thing. A great deal of real-world testing and user feedback is needed to create the best solution to the problem you are trying to fix. Obvious requirements are to keep things simple, make it easy to understand by &lt;em&gt;looking&lt;/em&gt; at it, and build it to be headache-resistant for future updates. All these things are easier said than done. This is the challenge of a designer&#39;s dat-to-day.&lt;/p&gt;
-&lt;p&gt;But with this term of &quot;simplicity&quot; modern designers tend to take this approach too much to heart. In my 12+ years involved in UI/UX software design, I have lost count how many initial iterations of interfaces suffer from the same &quot;dumbing down&quot; decision making:&lt;/p&gt;
-&lt;p&gt;&lt;strong&gt;Using icons to represent an action or function without textual information&lt;/strong&gt;.&lt;/p&gt;
-&lt;p&gt;If you decide to stop reading the rest of this article, at least take away this one important thing:&lt;/p&gt;
-&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;Always try to use text to convey your designs&lt;/em&gt;&lt;/p&gt;
-&lt;/blockquote&gt;
-&lt;p&gt;After achieving this, you should start reiterating those designs to include iconography. Even then, not all UI instances will require you to do that. Designers will find this process difficult, which is why it is important to get &lt;em&gt;right&lt;/em&gt;.&lt;/p&gt;
-&lt;h2&gt;Icons make an &lt;em&gt;ass&lt;/em&gt; out of &lt;em&gt;u&lt;/em&gt; and &lt;em&gt;me&lt;/em&gt;&lt;/h2&gt;
-&lt;p&gt;Icons make general assumptions about what the user may or may not understand. Leading with this in your designs will end &lt;em&gt;poorly for you&lt;/em&gt;. Trust me - I&#39;ve learned this through failed designs many times over. A certain visualization might be common knowledge to you, while differing greatly to someone else with a different set of experiences.&lt;/p&gt;
-&lt;p&gt;I&#39;ve found the only thing you should ever &lt;em&gt;assume&lt;/em&gt; is that the user knows nothing. Please note - I&#39;m not referring to their intelligence but instead their software literacy.&lt;/p&gt;
-&lt;p&gt;Take a look at our now &quot;famous&quot; save icon used in almost every piece of software; the floppy disk. Do any software users below the legal drinking age even understand the initial reasoning for using this icon? In all honesty, it was a terrible icon decision even when first introduced. No &quot;hard copy&quot; of the save action is taking place, software creates this save in a digital space[^2]. Yet, it was adopted and people (ie. designers) went along with it.&lt;/p&gt;
-&lt;p&gt;&lt;strong&gt;Quality is not measured by mass appeal.&lt;/strong&gt;&lt;/p&gt;
-&lt;p&gt;The argument could be made &quot;People learned to associate &quot;Save&quot; with a Floppy Disk icon...&quot; and my response would be &quot;But what alternatives were they given?&quot;&lt;/p&gt;
-&lt;p&gt;Original software designers (and developers) held all the power in early UI decision making. General users didn&#39;t &lt;em&gt;know&lt;/em&gt; any better. Things were new and fresh. Now our response is to shrug our collective shoulders and say, &quot;That&#39;s how the save icon has to be now!&quot;&lt;/p&gt;
-&lt;p&gt;Hogwash. Make it a button that says, &lt;code&gt;Save File&lt;/code&gt;. I&#39;m not kidding. Oh, it doesn&#39;t work with your current design? Then your initial design wasn&#39;t future-proof then, was it? I sound snarky here but many designers put up imaginary walls around their design systems, making them incredibly rigid and difficult to adapt.&lt;/p&gt;
-&lt;p&gt;Take the time to do even a small thought / wireframe experiment: redo the layout and flow of your application without using a single piece of iconography. If you can&#39;t achieve this with even limited success, something is wrong with the design.&lt;/p&gt;
-&lt;h2&gt;The hamburger menu is the 7th circle of Hell&lt;/h2&gt;
-&lt;p&gt;Normally, the inclusion of a hamburger menu is indicative of an overly complex application. Too many cooks and all that jazz. Enterprise applications don&#39;t get a pass here either, as they tend to be the worst culprits of pouring out everything on to the user as software vomit. Sweeping all this interaction under the hamburger &quot;rug&quot; does not make for a cleaner design.&lt;/p&gt;
-&lt;p&gt;New features are great, but stop dumping so much of it behind hidden, unintuitive sub-navigation. This design is such a &quot;quick fix&quot; and plagues far too many software apps[^3]. Both desktop computers and mobile devices allow users to &lt;em&gt;scroll&lt;/em&gt;, let them.&lt;/p&gt;
-&lt;p&gt;I&#39;ve discussed this in further detail here: &lt;a href=&quot;https://bt.ht/hamburger-menu-alternative/&quot;&gt;Using Hamburger Menus? Try Sausage Links&lt;/a&gt;&lt;/p&gt;
-&lt;h2&gt;But what of the &quot;advanced&quot; users?&lt;/h2&gt;
-&lt;p&gt;I understand applications will have advanced or &quot;pro&quot; users that have full knowledge of the product and wouldn&#39;t need things &lt;em&gt;spoon fed&lt;/em&gt; to them. This is a more difficult problem that I myself haven&#39;t been able to solve without approaching each one on a case-by-case basis. Unfortunately, there is no &quot;one size fits all&quot; method to this. But, although solving for advanced users proves difficult doesn&#39;t mean we should dismiss the merits of avoiding icons as a crutch.&lt;/p&gt;
-&lt;h2&gt;Try for yourself&lt;/h2&gt;
-&lt;p&gt;As I stated above, try doing a quick design experiment by replacing all your existing iconography in your application with simple text. I assure you that at least you&#39;ll discover interesting design flaws in your system.&lt;/p&gt;
-&lt;h2&gt;Refs&lt;/h2&gt;
-&lt;ol&gt;
-&lt;li&gt;By &quot;design&quot; I&#39;m referring to visuals not programming or system engineering&lt;/li&gt;
-&lt;li&gt;Early software programs did save to an external floppy disk. My point stands that many digital file storage applications copied this iconography blindly.&lt;/li&gt;
-&lt;li&gt;Not to mention how rampant it is on plain ol&#39; regular websites. If you&#39;re hiding five menu items behind a hamburger menu for &quot;mobile users&quot;, you&#39;re doing it wrong.&lt;/li&gt;
-&lt;/ol&gt;</content>
- <link href="https://bt.ht/use-text-not-icons"/>
- <id>https://bt.ht/use-text-not-icons</id>
- <updated>2021-12-17T10:00:00Z</updated>
- <published>2021-12-17T10:00:00Z</published>
- </entry>
- <entry>
<title>Using User-Select</title>
<content type="html">&lt;h1&gt;Using User-Select&lt;/h1&gt;
&lt;p&gt;2019-06-04&lt;/p&gt;
@@ -452,6 +413,45 @@ p.select-all {
<published>2019-06-04T10:00:00Z</published>
</entry>
<entry>
+ <title>Icons Should be Complementary - Text is Always Better</title>
+ <content type="html">&lt;h1&gt;Icons Should be Complementary - Text is Always Better&lt;/h1&gt;
+&lt;p&gt;2021-12-17&lt;/p&gt;
+&lt;p&gt;Designing[^1] software is a complex thing. A great deal of real-world testing and user feedback is needed to create the best solution to the problem you are trying to fix. Obvious requirements are to keep things simple, make it easy to understand by &lt;em&gt;looking&lt;/em&gt; at it, and build it to be headache-resistant for future updates. All these things are easier said than done. This is the challenge of a designer&#39;s dat-to-day.&lt;/p&gt;
+&lt;p&gt;But with this term of &quot;simplicity&quot; modern designers tend to take this approach too much to heart. In my 12+ years involved in UI/UX software design, I have lost count how many initial iterations of interfaces suffer from the same &quot;dumbing down&quot; decision making:&lt;/p&gt;
+&lt;p&gt;&lt;strong&gt;Using icons to represent an action or function without textual information&lt;/strong&gt;.&lt;/p&gt;
+&lt;p&gt;If you decide to stop reading the rest of this article, at least take away this one important thing:&lt;/p&gt;
+&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;Always try to use text to convey your designs&lt;/em&gt;&lt;/p&gt;
+&lt;/blockquote&gt;
+&lt;p&gt;After achieving this, you should start reiterating those designs to include iconography. Even then, not all UI instances will require you to do that. Designers will find this process difficult, which is why it is important to get &lt;em&gt;right&lt;/em&gt;.&lt;/p&gt;
+&lt;h2&gt;Icons make an &lt;em&gt;ass&lt;/em&gt; out of &lt;em&gt;u&lt;/em&gt; and &lt;em&gt;me&lt;/em&gt;&lt;/h2&gt;
+&lt;p&gt;Icons make general assumptions about what the user may or may not understand. Leading with this in your designs will end &lt;em&gt;poorly for you&lt;/em&gt;. Trust me - I&#39;ve learned this through failed designs many times over. A certain visualization might be common knowledge to you, while differing greatly to someone else with a different set of experiences.&lt;/p&gt;
+&lt;p&gt;I&#39;ve found the only thing you should ever &lt;em&gt;assume&lt;/em&gt; is that the user knows nothing. Please note - I&#39;m not referring to their intelligence but instead their software literacy.&lt;/p&gt;
+&lt;p&gt;Take a look at our now &quot;famous&quot; save icon used in almost every piece of software; the floppy disk. Do any software users below the legal drinking age even understand the initial reasoning for using this icon? In all honesty, it was a terrible icon decision even when first introduced. No &quot;hard copy&quot; of the save action is taking place, software creates this save in a digital space[^2]. Yet, it was adopted and people (ie. designers) went along with it.&lt;/p&gt;
+&lt;p&gt;&lt;strong&gt;Quality is not measured by mass appeal.&lt;/strong&gt;&lt;/p&gt;
+&lt;p&gt;The argument could be made &quot;People learned to associate &quot;Save&quot; with a Floppy Disk icon...&quot; and my response would be &quot;But what alternatives were they given?&quot;&lt;/p&gt;
+&lt;p&gt;Original software designers (and developers) held all the power in early UI decision making. General users didn&#39;t &lt;em&gt;know&lt;/em&gt; any better. Things were new and fresh. Now our response is to shrug our collective shoulders and say, &quot;That&#39;s how the save icon has to be now!&quot;&lt;/p&gt;
+&lt;p&gt;Hogwash. Make it a button that says, &lt;code&gt;Save File&lt;/code&gt;. I&#39;m not kidding. Oh, it doesn&#39;t work with your current design? Then your initial design wasn&#39;t future-proof then, was it? I sound snarky here but many designers put up imaginary walls around their design systems, making them incredibly rigid and difficult to adapt.&lt;/p&gt;
+&lt;p&gt;Take the time to do even a small thought / wireframe experiment: redo the layout and flow of your application without using a single piece of iconography. If you can&#39;t achieve this with even limited success, something is wrong with the design.&lt;/p&gt;
+&lt;h2&gt;The hamburger menu is the 7th circle of Hell&lt;/h2&gt;
+&lt;p&gt;Normally, the inclusion of a hamburger menu is indicative of an overly complex application. Too many cooks and all that jazz. Enterprise applications don&#39;t get a pass here either, as they tend to be the worst culprits of pouring out everything on to the user as software vomit. Sweeping all this interaction under the hamburger &quot;rug&quot; does not make for a cleaner design.&lt;/p&gt;
+&lt;p&gt;New features are great, but stop dumping so much of it behind hidden, unintuitive sub-navigation. This design is such a &quot;quick fix&quot; and plagues far too many software apps[^3]. Both desktop computers and mobile devices allow users to &lt;em&gt;scroll&lt;/em&gt;, let them.&lt;/p&gt;
+&lt;p&gt;I&#39;ve discussed this in further detail here: &lt;a href=&quot;https://bt.ht/hamburger-menu-alternative/&quot;&gt;Using Hamburger Menus? Try Sausage Links&lt;/a&gt;&lt;/p&gt;
+&lt;h2&gt;But what of the &quot;advanced&quot; users?&lt;/h2&gt;
+&lt;p&gt;I understand applications will have advanced or &quot;pro&quot; users that have full knowledge of the product and wouldn&#39;t need things &lt;em&gt;spoon fed&lt;/em&gt; to them. This is a more difficult problem that I myself haven&#39;t been able to solve without approaching each one on a case-by-case basis. Unfortunately, there is no &quot;one size fits all&quot; method to this. But, although solving for advanced users proves difficult doesn&#39;t mean we should dismiss the merits of avoiding icons as a crutch.&lt;/p&gt;
+&lt;h2&gt;Try for yourself&lt;/h2&gt;
+&lt;p&gt;As I stated above, try doing a quick design experiment by replacing all your existing iconography in your application with simple text. I assure you that at least you&#39;ll discover interesting design flaws in your system.&lt;/p&gt;
+&lt;h2&gt;Refs&lt;/h2&gt;
+&lt;ol&gt;
+&lt;li&gt;By &quot;design&quot; I&#39;m referring to visuals not programming or system engineering&lt;/li&gt;
+&lt;li&gt;Early software programs did save to an external floppy disk. My point stands that many digital file storage applications copied this iconography blindly.&lt;/li&gt;
+&lt;li&gt;Not to mention how rampant it is on plain ol&#39; regular websites. If you&#39;re hiding five menu items behind a hamburger menu for &quot;mobile users&quot;, you&#39;re doing it wrong.&lt;/li&gt;
+&lt;/ol&gt;</content>
+ <link href="https://bt.ht/use-text-not-icons"/>
+ <id>https://bt.ht/use-text-not-icons</id>
+ <updated>2021-12-17T10:00:00Z</updated>
+ <published>2021-12-17T10:00:00Z</published>
+ </entry>
+ <entry>
<title>They Won't Wait: A Warning for Slow Websites</title>
<content type="html">&lt;h1&gt;They Won&#39;t Wait: A Warning for Slow Websites&lt;/h1&gt;
&lt;p&gt;2019-06-25&lt;/p&gt;
@@ -2883,6 +2883,57 @@ button:last-child {
<published>2019-02-05T10:00:00Z</published>
</entry>
<entry>
+ <title>My Cheapskate Commenting System</title>
+ <content type="html">&lt;h1&gt;My Cheapskate Commenting System&lt;/h1&gt;
+&lt;p&gt;2022-02-03&lt;/p&gt;
+&lt;p&gt;My blog now has comments! Well, &lt;em&gt;kind of&lt;/em&gt;...&lt;/p&gt;
+&lt;p&gt;I went down a two day long rabbit-hole trying to find the best solution for implementing comments on my static website (generated via Jekyll FYI). There are a ton of options out there and many open source models that allow you to spin up your own instance with something like DigitalOcean or AWS. But I&#39;m a cheap bastard. I refuse to spend $5/month on a blog mostly used for fun and one that I have zero incentive to &quot;monetize&quot;.&lt;/p&gt;
+&lt;p&gt;So, what &lt;em&gt;free&lt;/em&gt; options did this old miser have left to chose from? To my surprise, there were two solid options that initially caught my eye! Let&#39;s take a look then, shall we?&lt;/p&gt;
+&lt;h2&gt;Remarkbox&lt;/h2&gt;
+&lt;p&gt;Overall I don&#39;t have many bad things to say about &lt;a href=&quot;https://www.remarkbox.com&quot;&gt;Remarkbox&lt;/a&gt;. It looks nice, is easy to implement and runs a &quot;pay what you can&quot; pricing model. What more could you ask for?! The major issue (for me, &lt;em&gt;personally&lt;/em&gt;) is precisely &lt;strong&gt;that&lt;/strong&gt;; the free model. This makes it difficult for me to trust 100% that this system will still be around in 3-4 years. Now I know - even paid systems can shutdown unexpectedly, but I find free tier options end up shutting their doors sooner. There is an option to self-host Remarkbox, but that requires a yearly license and also comes back to the point I made about not wanting to pay for hosting...&lt;/p&gt;
+&lt;h2&gt;Utterances (Github-based)&lt;/h2&gt;
+&lt;p&gt;The other major option was &lt;a href=&quot;https://utteranc.es&quot;&gt;Utterances&lt;/a&gt;. This system was almost the winner due to it&#39;s pretty great feature set:&lt;/p&gt;
+&lt;ol&gt;
+&lt;li&gt;Open source&lt;/li&gt;
+&lt;li&gt;No tracking, no ads&lt;/li&gt;
+&lt;li&gt;All data stored in GitHub issues&lt;/li&gt;
+&lt;li&gt;Free!&lt;/li&gt;
+&lt;/ol&gt;
+&lt;p&gt;But take a look above at point number three. The fact that readers wishing to leave a comment are &lt;strong&gt;required to have a Github account&lt;/strong&gt;. For me, this is a non-starter. I don&#39;t want to force my audience to sign up for or sign in to &lt;em&gt;any&lt;/em&gt; account just to leave a simple comment on my humble blog. Considering a number of my readers are part of the FOSS community, this just seemed like a bad fit.&lt;/p&gt;
+&lt;h2&gt;Finding Inspiration&lt;/h2&gt;
+&lt;p&gt;I absolutely love the &lt;a href=&quot;https://solar.lowtechmagazine.com&quot;&gt;solar.lowtechmagazine.com&lt;/a&gt; website (both for it&#39;s content and design) and indirectly found my comment system inspiration there. Okay let&#39;s be honest, I completely stole their commenting system &quot;concept&quot;. Imitation is the sincerest form of flattery, right?&lt;/p&gt;
+&lt;h2&gt;My Comment System is...&lt;/h2&gt;
+&lt;p&gt;E-mail. It&#39;s just &lt;strong&gt;plain e-mail&lt;/strong&gt;.&lt;/p&gt;
+&lt;p&gt;I&#39;ve setup a basic &lt;code&gt;comment-prompt.html&lt;/code&gt; in my &lt;code&gt;_includes&lt;/code&gt; folder that contains a &lt;code&gt;mailto&lt;/code&gt; action button[^1]:&lt;/p&gt;
+&lt;pre&gt;&lt;code&gt;&amp;lt;a href=&amp;quot;mailto:myemail.com?subject=RE: { { page.title | uri_escape } }&amp;quot;&amp;gt;
+ &amp;lt;button&amp;gt;Comment via email&amp;lt;/button&amp;gt;
+&amp;lt;/a&amp;gt;
+&lt;/code&gt;&lt;/pre&gt;
+&lt;p&gt;This include template is placed at the bottom of every article automatically. Then, that action pulls in the article&#39;s title as the e-mail subject line in the user&#39;s default mailing app. That&#39;s it.&lt;/p&gt;
+&lt;h2&gt;Pros&lt;/h2&gt;
+&lt;ul&gt;
+&lt;li&gt;No third party application needed&lt;/li&gt;
+&lt;li&gt;Privacy focused&lt;/li&gt;
+&lt;li&gt;More direct interaction with my audience/readers&lt;/li&gt;
+&lt;li&gt;Builds a much more close-knit community&lt;/li&gt;
+&lt;li&gt;Completely free!&lt;/li&gt;
+&lt;/ul&gt;
+&lt;h2&gt;Cons&lt;/h2&gt;
+&lt;ul&gt;
+&lt;li&gt;Must be manually curated and posted&lt;/li&gt;
+&lt;li&gt;No notifications&lt;/li&gt;
+&lt;li&gt;No &quot;built-in&quot; reply functionality&lt;/li&gt;
+&lt;li&gt;Has the potential to become unwieldy...&lt;/li&gt;
+&lt;/ul&gt;
+&lt;h2&gt;Fun Experiment&lt;/h2&gt;
+&lt;p&gt;I figure either way, this will be an interesting experiment. I don&#39;t know my audience size (since I don&#39;t use any type of tracking) but I assume it&#39;s very small. Those willing to write me a personal e-mail in order to share their thoughts on my stupid little blog probably have something interesting to say. At least I hope so. &lt;/p&gt;
+&lt;p&gt;Let&#39;s see how this thing goes...&lt;/p&gt;</content>
+ <link href="https://bt.ht/poormans-comment-system"/>
+ <id>https://bt.ht/poormans-comment-system</id>
+ <updated>2022-02-03T10:00:00Z</updated>
+ <published>2022-02-03T10:00:00Z</published>
+ </entry>
+ <entry>
<title>Poor Man's CSS Full-Bleed Layout</title>
<content type="html">&lt;h1&gt;Poor Man&#39;s CSS Full-Bleed Layout&lt;/h1&gt;
&lt;p&gt;2020-10-07&lt;/p&gt;
@@ -2975,57 +3026,6 @@ article section.full-bleed {
<published>2020-10-07T10:00:00Z</published>
</entry>
<entry>
- <title>My Cheapskate Commenting System</title>
- <content type="html">&lt;h1&gt;My Cheapskate Commenting System&lt;/h1&gt;
-&lt;p&gt;2022-02-03&lt;/p&gt;
-&lt;p&gt;My blog now has comments! Well, &lt;em&gt;kind of&lt;/em&gt;...&lt;/p&gt;
-&lt;p&gt;I went down a two day long rabbit-hole trying to find the best solution for implementing comments on my static website (generated via Jekyll FYI). There are a ton of options out there and many open source models that allow you to spin up your own instance with something like DigitalOcean or AWS. But I&#39;m a cheap bastard. I refuse to spend $5/month on a blog mostly used for fun and one that I have zero incentive to &quot;monetize&quot;.&lt;/p&gt;
-&lt;p&gt;So, what &lt;em&gt;free&lt;/em&gt; options did this old miser have left to chose from? To my surprise, there were two solid options that initially caught my eye! Let&#39;s take a look then, shall we?&lt;/p&gt;
-&lt;h2&gt;Remarkbox&lt;/h2&gt;
-&lt;p&gt;Overall I don&#39;t have many bad things to say about &lt;a href=&quot;https://www.remarkbox.com&quot;&gt;Remarkbox&lt;/a&gt;. It looks nice, is easy to implement and runs a &quot;pay what you can&quot; pricing model. What more could you ask for?! The major issue (for me, &lt;em&gt;personally&lt;/em&gt;) is precisely &lt;strong&gt;that&lt;/strong&gt;; the free model. This makes it difficult for me to trust 100% that this system will still be around in 3-4 years. Now I know - even paid systems can shutdown unexpectedly, but I find free tier options end up shutting their doors sooner. There is an option to self-host Remarkbox, but that requires a yearly license and also comes back to the point I made about not wanting to pay for hosting...&lt;/p&gt;
-&lt;h2&gt;Utterances (Github-based)&lt;/h2&gt;
-&lt;p&gt;The other major option was &lt;a href=&quot;https://utteranc.es&quot;&gt;Utterances&lt;/a&gt;. This system was almost the winner due to it&#39;s pretty great feature set:&lt;/p&gt;
-&lt;ol&gt;
-&lt;li&gt;Open source&lt;/li&gt;
-&lt;li&gt;No tracking, no ads&lt;/li&gt;
-&lt;li&gt;All data stored in GitHub issues&lt;/li&gt;
-&lt;li&gt;Free!&lt;/li&gt;
-&lt;/ol&gt;
-&lt;p&gt;But take a look above at point number three. The fact that readers wishing to leave a comment are &lt;strong&gt;required to have a Github account&lt;/strong&gt;. For me, this is a non-starter. I don&#39;t want to force my audience to sign up for or sign in to &lt;em&gt;any&lt;/em&gt; account just to leave a simple comment on my humble blog. Considering a number of my readers are part of the FOSS community, this just seemed like a bad fit.&lt;/p&gt;
-&lt;h2&gt;Finding Inspiration&lt;/h2&gt;
-&lt;p&gt;I absolutely love the &lt;a href=&quot;https://solar.lowtechmagazine.com&quot;&gt;solar.lowtechmagazine.com&lt;/a&gt; website (both for it&#39;s content and design) and indirectly found my comment system inspiration there. Okay let&#39;s be honest, I completely stole their commenting system &quot;concept&quot;. Imitation is the sincerest form of flattery, right?&lt;/p&gt;
-&lt;h2&gt;My Comment System is...&lt;/h2&gt;
-&lt;p&gt;E-mail. It&#39;s just &lt;strong&gt;plain e-mail&lt;/strong&gt;.&lt;/p&gt;
-&lt;p&gt;I&#39;ve setup a basic &lt;code&gt;comment-prompt.html&lt;/code&gt; in my &lt;code&gt;_includes&lt;/code&gt; folder that contains a &lt;code&gt;mailto&lt;/code&gt; action button[^1]:&lt;/p&gt;
-&lt;pre&gt;&lt;code&gt;&amp;lt;a href=&amp;quot;mailto:myemail.com?subject=RE: { { page.title | uri_escape } }&amp;quot;&amp;gt;
- &amp;lt;button&amp;gt;Comment via email&amp;lt;/button&amp;gt;
-&amp;lt;/a&amp;gt;
-&lt;/code&gt;&lt;/pre&gt;
-&lt;p&gt;This include template is placed at the bottom of every article automatically. Then, that action pulls in the article&#39;s title as the e-mail subject line in the user&#39;s default mailing app. That&#39;s it.&lt;/p&gt;
-&lt;h2&gt;Pros&lt;/h2&gt;
-&lt;ul&gt;
-&lt;li&gt;No third party application needed&lt;/li&gt;
-&lt;li&gt;Privacy focused&lt;/li&gt;
-&lt;li&gt;More direct interaction with my audience/readers&lt;/li&gt;
-&lt;li&gt;Builds a much more close-knit community&lt;/li&gt;
-&lt;li&gt;Completely free!&lt;/li&gt;
-&lt;/ul&gt;
-&lt;h2&gt;Cons&lt;/h2&gt;
-&lt;ul&gt;
-&lt;li&gt;Must be manually curated and posted&lt;/li&gt;
-&lt;li&gt;No notifications&lt;/li&gt;
-&lt;li&gt;No &quot;built-in&quot; reply functionality&lt;/li&gt;
-&lt;li&gt;Has the potential to become unwieldy...&lt;/li&gt;
-&lt;/ul&gt;
-&lt;h2&gt;Fun Experiment&lt;/h2&gt;
-&lt;p&gt;I figure either way, this will be an interesting experiment. I don&#39;t know my audience size (since I don&#39;t use any type of tracking) but I assume it&#39;s very small. Those willing to write me a personal e-mail in order to share their thoughts on my stupid little blog probably have something interesting to say. At least I hope so. &lt;/p&gt;
-&lt;p&gt;Let&#39;s see how this thing goes...&lt;/p&gt;</content>
- <link href="https://bt.ht/poormans-comment-system"/>
- <id>https://bt.ht/poormans-comment-system</id>
- <updated>2022-02-03T10:00:00Z</updated>
- <published>2022-02-03T10:00:00Z</published>
- </entry>
- <entry>
<title>Plain Text Emails, Please</title>
<content type="html">&lt;h1&gt;Plain Text Emails, Please&lt;/h1&gt;
&lt;p&gt;2019-09-09&lt;/p&gt;
@@ -3473,47 +3473,6 @@ My mind was still set on building and implementing the ultrasonic option. It wou
<published>2020-09-09T10:00:00Z</published>
</entry>
<entry>
- <title>Open Source Typeface Pairings</title>
- <content type="html">&lt;h1&gt;Open Source Typeface Pairings&lt;/h1&gt;
-&lt;p&gt;2018-01-25&lt;/p&gt;
-&lt;p&gt;I always love finding new typeface pairings to use across my personal and client projects, but I find many suggested pairings come with a hefty price tag (rightly so - premium typefaces are normally always worth their cost).&lt;/p&gt;
-&lt;p&gt;So, I&#39;ve curated this personal list of 5 exceptionally beautiful typeface pairings that will cost you absolutely &lt;i&gt;nothing&lt;/i&gt;. Open source FTW.&lt;/p&gt;
-&lt;h2&gt;ET-Book &amp;amp; Gill Sans&lt;/h2&gt;
-&lt;p&gt;Download: &lt;a href=&quot;https://github.com/edwardtufte/et-book&quot;&gt;ET Book&lt;/a&gt;, &lt;a href=&quot;https://www.wfonts.com/font/gill-sans-std&quot;&gt;Gill Sans&lt;/a&gt;&lt;/p&gt;
-&lt;p&gt;&lt;figure&gt;
- &lt;img src=&quot;/public/images/et-book-gill-sans.webp&quot; alt=&quot;ET Book Gill Sans&quot;&gt;
- &lt;figcaption&gt;ET-Book &amp;amp; Gill Sans are based off the font pairings of my personal Jekyll theme: &lt;a href=&quot;https://bradleytaunt.com/et-jekyll-theme/&quot;&gt;ET-Jekyll Theme&lt;/a&gt;.&lt;/figcaption&gt;
-&lt;/figure&gt;&lt;/p&gt;
-&lt;h2&gt;Playfair Display &amp;amp; Roboto&lt;/h2&gt;
-&lt;p&gt;Download: &lt;a href=&quot;https://fonts.google.com/specimen/Playfair+Display&quot;&gt;Playfair Display&lt;/a&gt;, &lt;a href=&quot;https://fonts.google.com/specimen/Roboto&quot;&gt;Roboto&lt;/a&gt;&lt;/p&gt;
-&lt;p&gt;&lt;figure&gt;
- &lt;img src=&quot;/public/images/playfair-roboto.webp&quot; alt=&quot;Playfair Display Roboto&quot;&gt;
- &lt;figcaption&gt;Playfair Display &amp;amp; Roboto I find work really well for microblogs or short essay format posts.&lt;/figcaption&gt;
-&lt;/figure&gt;&lt;/p&gt;
-&lt;h2&gt;Karma &amp;amp; Open Sans&lt;/h2&gt;
-&lt;p&gt;Download: &lt;a href=&quot;https://fonts.google.com/specimen/Karma&quot;&gt;Karma&lt;/a&gt;, &lt;a href=&quot;https://fonts.google.com/specimen/Open+Sans&quot;&gt;Open Sans&lt;/a&gt;&lt;/p&gt;
-&lt;p&gt;&lt;figure&gt;
- &lt;img src=&quot;/public/images/karma-open-sans.webp&quot; alt=&quot;Karma Open Sans&quot;&gt;
- &lt;figcaption&gt;Karma &amp;amp; Open Sans give readers a little more breathing room between characters. Good choice if trying to keep accessibility in mind.&lt;/figcaption&gt;
-&lt;/figure&gt;&lt;/p&gt;
-&lt;h2&gt;Libre Baskerville &amp;amp; Oswald&lt;/h2&gt;
-&lt;p&gt;Download: &lt;a href=&quot;https://fonts.google.com/specimen/Libre+Baskerville&quot;&gt;Libre Baskerville&lt;/a&gt;, &lt;a href=&quot;https://fonts.google.com/specimen/Oswald&quot;&gt;Oswald&lt;/a&gt;&lt;/p&gt;
-&lt;p&gt;&lt;figure&gt;
- &lt;img src=&quot;/public/images/libre-oswald.webp&quot; alt=&quot;Libre Baskerville Oswald&quot;&gt;
- &lt;figcaption&gt;Libre Baskerville &amp;amp; Oswald oozes character and takes inspiration from a more print-based medium.&lt;/figcaption&gt;
-&lt;/figure&gt;&lt;/p&gt;
-&lt;h2&gt;Fanwood &amp;amp; League Spartan&lt;/h2&gt;
-&lt;p&gt;Download: &lt;a href=&quot;https://www.theleagueofmoveabletype.com/fanwood&quot;&gt;Fanwood&lt;/a&gt;, &lt;a href=&quot;https://www.theleagueofmoveabletype.com/league-spartan&quot;&gt;League Spartan&lt;/a&gt;&lt;/p&gt;
-&lt;p&gt;&lt;figure&gt;
- &lt;img src=&quot;/public/images/fanwood-league.webp&quot; alt=&quot;Fanwood League Spartan&quot;&gt;
- &lt;figcaption&gt;Fanwood &amp;amp; League Spartan paired together allow the main content to be easily readable, while the headers instantly grab the user&#39;s attention.&lt;/figcaption&gt;
-&lt;/figure&gt;&lt;/p&gt;</content>
- <link href="https://bt.ht/open-source-typeface-pairings"/>
- <id>https://bt.ht/open-source-typeface-pairings</id>
- <updated>2018-01-25T10:00:00Z</updated>
- <published>2018-01-25T10:00:00Z</published>
- </entry>
- <entry>
<title>Building openring with Jekyll Build</title>
<content type="html">&lt;h1&gt;Building openring with Jekyll Build&lt;/h1&gt;
&lt;p&gt;2022-12-02&lt;/p&gt;
@@ -3619,6 +3578,47 @@ exclude:
<published>2022-12-02T10:00:00Z</published>
</entry>
<entry>
+ <title>Open Source Typeface Pairings</title>
+ <content type="html">&lt;h1&gt;Open Source Typeface Pairings&lt;/h1&gt;
+&lt;p&gt;2018-01-25&lt;/p&gt;
+&lt;p&gt;I always love finding new typeface pairings to use across my personal and client projects, but I find many suggested pairings come with a hefty price tag (rightly so - premium typefaces are normally always worth their cost).&lt;/p&gt;
+&lt;p&gt;So, I&#39;ve curated this personal list of 5 exceptionally beautiful typeface pairings that will cost you absolutely &lt;i&gt;nothing&lt;/i&gt;. Open source FTW.&lt;/p&gt;
+&lt;h2&gt;ET-Book &amp;amp; Gill Sans&lt;/h2&gt;
+&lt;p&gt;Download: &lt;a href=&quot;https://github.com/edwardtufte/et-book&quot;&gt;ET Book&lt;/a&gt;, &lt;a href=&quot;https://www.wfonts.com/font/gill-sans-std&quot;&gt;Gill Sans&lt;/a&gt;&lt;/p&gt;
+&lt;p&gt;&lt;figure&gt;
+ &lt;img src=&quot;/public/images/et-book-gill-sans.webp&quot; alt=&quot;ET Book Gill Sans&quot;&gt;
+ &lt;figcaption&gt;ET-Book &amp;amp; Gill Sans are based off the font pairings of my personal Jekyll theme: &lt;a href=&quot;https://bradleytaunt.com/et-jekyll-theme/&quot;&gt;ET-Jekyll Theme&lt;/a&gt;.&lt;/figcaption&gt;
+&lt;/figure&gt;&lt;/p&gt;
+&lt;h2&gt;Playfair Display &amp;amp; Roboto&lt;/h2&gt;
+&lt;p&gt;Download: &lt;a href=&quot;https://fonts.google.com/specimen/Playfair+Display&quot;&gt;Playfair Display&lt;/a&gt;, &lt;a href=&quot;https://fonts.google.com/specimen/Roboto&quot;&gt;Roboto&lt;/a&gt;&lt;/p&gt;
+&lt;p&gt;&lt;figure&gt;
+ &lt;img src=&quot;/public/images/playfair-roboto.webp&quot; alt=&quot;Playfair Display Roboto&quot;&gt;
+ &lt;figcaption&gt;Playfair Display &amp;amp; Roboto I find work really well for microblogs or short essay format posts.&lt;/figcaption&gt;
+&lt;/figure&gt;&lt;/p&gt;
+&lt;h2&gt;Karma &amp;amp; Open Sans&lt;/h2&gt;
+&lt;p&gt;Download: &lt;a href=&quot;https://fonts.google.com/specimen/Karma&quot;&gt;Karma&lt;/a&gt;, &lt;a href=&quot;https://fonts.google.com/specimen/Open+Sans&quot;&gt;Open Sans&lt;/a&gt;&lt;/p&gt;
+&lt;p&gt;&lt;figure&gt;
+ &lt;img src=&quot;/public/images/karma-open-sans.webp&quot; alt=&quot;Karma Open Sans&quot;&gt;
+ &lt;figcaption&gt;Karma &amp;amp; Open Sans give readers a little more breathing room between characters. Good choice if trying to keep accessibility in mind.&lt;/figcaption&gt;
+&lt;/figure&gt;&lt;/p&gt;
+&lt;h2&gt;Libre Baskerville &amp;amp; Oswald&lt;/h2&gt;
+&lt;p&gt;Download: &lt;a href=&quot;https://fonts.google.com/specimen/Libre+Baskerville&quot;&gt;Libre Baskerville&lt;/a&gt;, &lt;a href=&quot;https://fonts.google.com/specimen/Oswald&quot;&gt;Oswald&lt;/a&gt;&lt;/p&gt;
+&lt;p&gt;&lt;figure&gt;
+ &lt;img src=&quot;/public/images/libre-oswald.webp&quot; alt=&quot;Libre Baskerville Oswald&quot;&gt;
+ &lt;figcaption&gt;Libre Baskerville &amp;amp; Oswald oozes character and takes inspiration from a more print-based medium.&lt;/figcaption&gt;
+&lt;/figure&gt;&lt;/p&gt;
+&lt;h2&gt;Fanwood &amp;amp; League Spartan&lt;/h2&gt;
+&lt;p&gt;Download: &lt;a href=&quot;https://www.theleagueofmoveabletype.com/fanwood&quot;&gt;Fanwood&lt;/a&gt;, &lt;a href=&quot;https://www.theleagueofmoveabletype.com/league-spartan&quot;&gt;League Spartan&lt;/a&gt;&lt;/p&gt;
+&lt;p&gt;&lt;figure&gt;
+ &lt;img src=&quot;/public/images/fanwood-league.webp&quot; alt=&quot;Fanwood League Spartan&quot;&gt;
+ &lt;figcaption&gt;Fanwood &amp;amp; League Spartan paired together allow the main content to be easily readable, while the headers instantly grab the user&#39;s attention.&lt;/figcaption&gt;
+&lt;/figure&gt;&lt;/p&gt;</content>
+ <link href="https://bt.ht/open-source-typeface-pairings"/>
+ <id>https://bt.ht/open-source-typeface-pairings</id>
+ <updated>2018-01-25T10:00:00Z</updated>
+ <published>2018-01-25T10:00:00Z</published>
+ </entry>
+ <entry>
<title>My Coffee Maker Just Makes Coffee</title>
<content type="html">&lt;h1&gt;My Coffee Maker Just Makes Coffee&lt;/h1&gt;
&lt;p&gt;2023-01-09&lt;/p&gt;
@@ -5483,6 +5483,65 @@ main[--js-parent] {
<published>2022-03-12T10:00:00Z</published>
</entry>
<entry>
+ <title>Setup Jekyll from Scratch on a New Linux System</title>
+ <content type="html">&lt;h1&gt;Setup Jekyll from Scratch on a New Linux System&lt;/h1&gt;
+&lt;p&gt;2022-09-19&lt;/p&gt;
+&lt;p&gt;&lt;strong&gt;Special Note:&lt;/strong&gt; Credit needs to be given to user &lt;a href=&quot;https://stackoverflow.com/users/4974784/achraf-jeday&quot;&gt;Achraf JEDAY&lt;/a&gt; for putting these instructions together on Stack Overflow (although his comments were targeting an older version of Ruby). This post is more for my own personal notes than anything else.&lt;/p&gt;
+&lt;p&gt;I find myself constantly running into small issues when trying to setup existing Jekyll projects on new Linux systems. I &lt;em&gt;could&lt;/em&gt; use something like Docker, but that just seems so beefy and slow to me. So here is a step-by-step way (and foolproof from my own testing) to get Jekyll running smoothly in no time!&lt;/p&gt;
+&lt;h2&gt;Figuring out Ruby First&lt;/h2&gt;
+&lt;p&gt;The first item of business is removing the default Ruby that ships with most Linux distros:&lt;/p&gt;
+&lt;pre&gt;&lt;code&gt;sudo apt-get remove ruby
+&lt;/code&gt;&lt;/pre&gt;
+&lt;p&gt;Then we check for updates and install everything we need:&lt;/p&gt;
+&lt;pre&gt;&lt;code&gt;sudo apt update
+sudo apt install git curl libssl-dev libreadline-dev zlib1g-dev autoconf bison build-essential libyaml-dev libreadline-dev libncurses5-dev libffi-dev libgdbm-dev
+&lt;/code&gt;&lt;/pre&gt;
+&lt;p&gt;Now we can install &lt;code&gt;rbenv&lt;/code&gt; and &lt;code&gt;ruby-build&lt;/code&gt;:&lt;/p&gt;
+&lt;pre&gt;&lt;code&gt;curl -sL https://github.com/rbenv/rbenv-installer/raw/main/bin/rbenv-installer | bash -
+&lt;/code&gt;&lt;/pre&gt;
+&lt;p&gt;After both of those install, you will want to add those to your system &lt;strong&gt;PATH&lt;/strong&gt;:&lt;/p&gt;
+&lt;h3&gt;Bash&lt;/h3&gt;
+&lt;pre&gt;&lt;code&gt;echo &#39;export PATH=&amp;quot;$HOME/.rbenv/bin:$PATH&amp;quot;&#39; &amp;gt;&amp;gt; ~/.bashrc
+echo &#39;eval &amp;quot;$(rbenv init -)&amp;quot;&#39; &amp;gt;&amp;gt; ~/.bashrc
+source ~/.bashrc
+&lt;/code&gt;&lt;/pre&gt;
+&lt;h3&gt;ZSH&lt;/h3&gt;
+&lt;pre&gt;&lt;code&gt;echo &#39;export PATH=&amp;quot;$HOME/.rbenv/bin:$PATH&amp;quot;&#39; &amp;gt;&amp;gt; ~/.zshrc
+echo &#39;eval &amp;quot;$(rbenv init -)&amp;quot;&#39; &amp;gt;&amp;gt; ~/.zshrc
+source ~/.zshrc
+&lt;/code&gt;&lt;/pre&gt;
+&lt;p&gt;With that complete, we can now install the version of Ruby we wish to use and set it globally (at this time of writing it is &lt;code&gt;3.1.2&lt;/code&gt;):&lt;/p&gt;
+&lt;pre&gt;&lt;code&gt;rbenv install 3.1.2
+rbenv global 3.1.2
+&lt;/code&gt;&lt;/pre&gt;
+&lt;p&gt;And &lt;code&gt;rehash&lt;/code&gt; so our changes take:&lt;/p&gt;
+&lt;pre&gt;&lt;code&gt;rbenv rehash
+&lt;/code&gt;&lt;/pre&gt;
+&lt;p&gt;Now you should see the properly set Ruby version when you run the following:&lt;/p&gt;
+&lt;pre&gt;&lt;code&gt;ruby -v
+&lt;/code&gt;&lt;/pre&gt;
+&lt;h2&gt;Getting Ruby Gems&lt;/h2&gt;
+&lt;p&gt;In case you don&#39;t have it installed already, be sure to grab &lt;code&gt;rubygems&lt;/code&gt;:&lt;/p&gt;
+&lt;pre&gt;&lt;code&gt;sudo apt install rubygems
+&lt;/code&gt;&lt;/pre&gt;
+&lt;h2&gt;Running Jekyll&lt;/h2&gt;
+&lt;p&gt;We are almost done! Navigate to your Jekyll project&#39;s directory and run:&lt;/p&gt;
+&lt;pre&gt;&lt;code&gt;gem install jekyll bundler
+bundle install
+&lt;/code&gt;&lt;/pre&gt;
+&lt;p&gt;That&#39;s it! Now if you run &lt;code&gt;bundle exec jekyll serve&lt;/code&gt; you&#39;ll find your Jekyll project running locally! Hopefully this helps others when needing to port any Jekyll projects over to a new Linux system. I know it will save me time!&lt;/p&gt;
+&lt;h2&gt;Alpine Linux on Wayland&lt;/h2&gt;
+&lt;p&gt;Save yourself a world of trouble: just use &lt;code&gt;docker&lt;/code&gt;. The docker image below (jekyll-serve) works out-of-the-box:&lt;/p&gt;
+&lt;p&gt;&lt;a href=&quot;https://github.com/BretFisher/jekyll-serve&quot;&gt;https://github.com/BretFisher/jekyll-serve&lt;/a&gt;&lt;/p&gt;
+&lt;p&gt;Then run the following inside your project:&lt;/p&gt;
+&lt;pre&gt;&lt;code&gt;docker run -p 4000:4000 -v $(pwd):/site bretfisher/jekyll-serve
+&lt;/code&gt;&lt;/pre&gt;</content>
+ <link href="https://bt.ht/jekyll"/>
+ <id>https://bt.ht/jekyll</id>
+ <updated>2022-09-19T10:00:00Z</updated>
+ <published>2022-09-19T10:00:00Z</published>
+ </entry>
+ <entry>
<title>Hosting a Jekyll Site on Sourcehut</title>
<content type="html">&lt;h1&gt;Hosting a Jekyll Site on Sourcehut&lt;/h1&gt;
&lt;p&gt;2021-12-06&lt;/p&gt;
@@ -5558,65 +5617,6 @@ site: yourcustomdomain.com
<published>2021-12-06T10:00:00Z</published>
</entry>
<entry>
- <title>Setup Jekyll from Scratch on a New Linux System</title>
- <content type="html">&lt;h1&gt;Setup Jekyll from Scratch on a New Linux System&lt;/h1&gt;
-&lt;p&gt;2022-09-19&lt;/p&gt;
-&lt;p&gt;&lt;strong&gt;Special Note:&lt;/strong&gt; Credit needs to be given to user &lt;a href=&quot;https://stackoverflow.com/users/4974784/achraf-jeday&quot;&gt;Achraf JEDAY&lt;/a&gt; for putting these instructions together on Stack Overflow (although his comments were targeting an older version of Ruby). This post is more for my own personal notes than anything else.&lt;/p&gt;
-&lt;p&gt;I find myself constantly running into small issues when trying to setup existing Jekyll projects on new Linux systems. I &lt;em&gt;could&lt;/em&gt; use something like Docker, but that just seems so beefy and slow to me. So here is a step-by-step way (and foolproof from my own testing) to get Jekyll running smoothly in no time!&lt;/p&gt;
-&lt;h2&gt;Figuring out Ruby First&lt;/h2&gt;
-&lt;p&gt;The first item of business is removing the default Ruby that ships with most Linux distros:&lt;/p&gt;
-&lt;pre&gt;&lt;code&gt;sudo apt-get remove ruby
-&lt;/code&gt;&lt;/pre&gt;
-&lt;p&gt;Then we check for updates and install everything we need:&lt;/p&gt;
-&lt;pre&gt;&lt;code&gt;sudo apt update
-sudo apt install git curl libssl-dev libreadline-dev zlib1g-dev autoconf bison build-essential libyaml-dev libreadline-dev libncurses5-dev libffi-dev libgdbm-dev
-&lt;/code&gt;&lt;/pre&gt;
-&lt;p&gt;Now we can install &lt;code&gt;rbenv&lt;/code&gt; and &lt;code&gt;ruby-build&lt;/code&gt;:&lt;/p&gt;
-&lt;pre&gt;&lt;code&gt;curl -sL https://github.com/rbenv/rbenv-installer/raw/main/bin/rbenv-installer | bash -
-&lt;/code&gt;&lt;/pre&gt;
-&lt;p&gt;After both of those install, you will want to add those to your system &lt;strong&gt;PATH&lt;/strong&gt;:&lt;/p&gt;
-&lt;h3&gt;Bash&lt;/h3&gt;
-&lt;pre&gt;&lt;code&gt;echo &#39;export PATH=&amp;quot;$HOME/.rbenv/bin:$PATH&amp;quot;&#39; &amp;gt;&amp;gt; ~/.bashrc
-echo &#39;eval &amp;quot;$(rbenv init -)&amp;quot;&#39; &amp;gt;&amp;gt; ~/.bashrc
-source ~/.bashrc
-&lt;/code&gt;&lt;/pre&gt;
-&lt;h3&gt;ZSH&lt;/h3&gt;
-&lt;pre&gt;&lt;code&gt;echo &#39;export PATH=&amp;quot;$HOME/.rbenv/bin:$PATH&amp;quot;&#39; &amp;gt;&amp;gt; ~/.zshrc
-echo &#39;eval &amp;quot;$(rbenv init -)&amp;quot;&#39; &amp;gt;&amp;gt; ~/.zshrc
-source ~/.zshrc
-&lt;/code&gt;&lt;/pre&gt;
-&lt;p&gt;With that complete, we can now install the version of Ruby we wish to use and set it globally (at this time of writing it is &lt;code&gt;3.1.2&lt;/code&gt;):&lt;/p&gt;
-&lt;pre&gt;&lt;code&gt;rbenv install 3.1.2
-rbenv global 3.1.2
-&lt;/code&gt;&lt;/pre&gt;
-&lt;p&gt;And &lt;code&gt;rehash&lt;/code&gt; so our changes take:&lt;/p&gt;
-&lt;pre&gt;&lt;code&gt;rbenv rehash
-&lt;/code&gt;&lt;/pre&gt;
-&lt;p&gt;Now you should see the properly set Ruby version when you run the following:&lt;/p&gt;
-&lt;pre&gt;&lt;code&gt;ruby -v
-&lt;/code&gt;&lt;/pre&gt;
-&lt;h2&gt;Getting Ruby Gems&lt;/h2&gt;
-&lt;p&gt;In case you don&#39;t have it installed already, be sure to grab &lt;code&gt;rubygems&lt;/code&gt;:&lt;/p&gt;
-&lt;pre&gt;&lt;code&gt;sudo apt install rubygems
-&lt;/code&gt;&lt;/pre&gt;
-&lt;h2&gt;Running Jekyll&lt;/h2&gt;
-&lt;p&gt;We are almost done! Navigate to your Jekyll project&#39;s directory and run:&lt;/p&gt;
-&lt;pre&gt;&lt;code&gt;gem install jekyll bundler
-bundle install
-&lt;/code&gt;&lt;/pre&gt;
-&lt;p&gt;That&#39;s it! Now if you run &lt;code&gt;bundle exec jekyll serve&lt;/code&gt; you&#39;ll find your Jekyll project running locally! Hopefully this helps others when needing to port any Jekyll projects over to a new Linux system. I know it will save me time!&lt;/p&gt;
-&lt;h2&gt;Alpine Linux on Wayland&lt;/h2&gt;
-&lt;p&gt;Save yourself a world of trouble: just use &lt;code&gt;docker&lt;/code&gt;. The docker image below (jekyll-serve) works out-of-the-box:&lt;/p&gt;
-&lt;p&gt;&lt;a href=&quot;https://github.com/BretFisher/jekyll-serve&quot;&gt;https://github.com/BretFisher/jekyll-serve&lt;/a&gt;&lt;/p&gt;
-&lt;p&gt;Then run the following inside your project:&lt;/p&gt;
-&lt;pre&gt;&lt;code&gt;docker run -p 4000:4000 -v $(pwd):/site bretfisher/jekyll-serve
-&lt;/code&gt;&lt;/pre&gt;</content>
- <link href="https://bt.ht/jekyll"/>
- <id>https://bt.ht/jekyll</id>
- <updated>2022-09-19T10:00:00Z</updated>
- <published>2022-09-19T10:00:00Z</published>
- </entry>
- <entry>
<title>Introducing PageRoast</title>
<content type="html">&lt;h1&gt;Introducing PageRoast&lt;/h1&gt;
&lt;p&gt;2021-03-11&lt;/p&gt;
@@ -5840,6 +5840,41 @@ bundle install
<published>2020-07-07T10:00:00Z</published>
</entry>
<entry>
+ <title>Using HTML Validator Badges Again</title>
+ <content type="html">&lt;h1&gt;Using HTML Validator Badges Again&lt;/h1&gt;
+&lt;p&gt;2019-07-05&lt;/p&gt;
+&lt;p&gt;There was a time on the Internet when websites wore badges of honor, declaring that their code was semantic and followed the W3C guidelines. The validators we used weren&#39;t great (and &lt;strong&gt;still&lt;/strong&gt; aren&#39;t perfect) but they represented a community that took pride in caring about the quality of their work. I think it&#39;s time we bring HTML badges back.&lt;/p&gt;
+&lt;h2&gt;Getting the flaws out of the way&lt;/h2&gt;
+&lt;p&gt;Of course, there were reasons why these badges slowly faded out of popularity. Some of the reasoning made sense, but most felt like a stretch in logic from my perspective. I always looked at it as a &quot;the good outweighs the bad&quot;.&lt;/p&gt;
+&lt;p&gt;Jukka Korpela&#39;s post way back in 2003, &lt;a href=&quot;http://jkorpela.fi/html/validation.html&quot;&gt;HTML validation is a good tool but just a tool&lt;/a&gt;, highlighted a lot of problems with relying so heavily on these HTML validators. I suggest you give it a read if this kind of thing interests you. I found it fascinating, even though I disagree with most of the points he makes.&lt;/p&gt;
+&lt;p&gt;Some negatives used to dismiss HTML badges:&lt;/p&gt;
+&lt;ul&gt;
+&lt;li&gt;&lt;strong&gt;The badge system is outdated&lt;/strong&gt;
+ - Dismissing the worth of something based on how long it has been around is foolish. Many tools and frameworks are &quot;outdated&quot; but are still used to this day with great success.&lt;/li&gt;
+&lt;li&gt;&lt;strong&gt;HTML5 doesn&#39;t &lt;em&gt;require&lt;/em&gt; validation&lt;/strong&gt;
+ - Technically &lt;em&gt;no subset of HTML&lt;/em&gt; requires validation - but developers should aim for it. The W3C validators perform a solid job of keeping a standard for web development, so by following a standard we can keep experiences consistent for users.&lt;/li&gt;
+&lt;li&gt;&lt;strong&gt;Validation is too formal&lt;/strong&gt;
+ - I believe in the ability to achieve your desired outcome based on almost any constraints. If a project leans you towards invalid or non-semantic structure to fulfill requirements, a better approach needs to be evaluated. We as developers tend to settle too quickly on the easiest option available to us.&lt;/li&gt;
+&lt;li&gt;&lt;strong&gt;Websites / web apps are just &lt;em&gt;too complex&lt;/em&gt; to follow the W3C guidelines&lt;/strong&gt;
+ - I call &lt;em&gt;BS&lt;/em&gt; on this argument. The complexity of a website should have nothing to do with keeping semantic standards. &lt;em&gt;This is your job.&lt;/em&gt;&lt;/li&gt;
+&lt;li&gt;&lt;strong&gt;It only exists to catch syntax errors&lt;/strong&gt;
+ - For the record, I still see this more of a positive take on using validators. Subtle and nuanced syntax mistakes can be easily overlooked by the human eye.&lt;/li&gt;
+&lt;/ul&gt;
+&lt;h2&gt;&quot;Nobody puts &lt;em&gt;badges&lt;/em&gt; in a corner&quot;&lt;/h2&gt;
+&lt;p&gt;A large of amount of designers / developers tend to forget that there are new people entering our industry everyday and they might not be as well versed in the basics of the web (HTML &amp;amp; CSS specifically). Since so many newcomers start out with JavaScript frameworks or jump onto pre-existing projects, they don&#39;t always grasp the core foundation of valid markup. Some frameworks even break basic standards for visuals or easier development environments - setting their initial expectations that ugly semantics is acceptable code. The ends justify the means, etc.&lt;/p&gt;
+&lt;p&gt;Guiding first-timers towards HTML validators let&#39;s them rethink their structure when building products or at least give some forethought to their outputted code. We, the more &lt;em&gt;verteran&lt;/em&gt; members of the community, have the knowledge of proper semantics since we grew our careers around this &quot;trend&quot;. We shouldn&#39;t assume newbies have the same understanding. The basics are important.&lt;/p&gt;
+&lt;h2&gt;Open source HTML5 badge&lt;/h2&gt;
+&lt;p&gt;Since the W3C doesn&#39;t officially produce any badges for HTML5 validation &lt;sup&gt;&lt;a href=&quot;#1&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;, I&#39;ve gone ahead and open sourced &lt;code&gt;SVG&lt;/code&gt; and &lt;code&gt;PNG&lt;/code&gt; versions of a badge based off the current W3C designs. You can check out the Github repo: &lt;a href=&quot;https://github.com/bradleytaunt/html5-valid-badge&quot;&gt;HTML5 Valid Badge&lt;/a&gt;&lt;/p&gt;
+&lt;p&gt;If you decide to use these badges, be sure to link these images to your valid passing URL (&lt;a href=&quot;https://html5.validator.nu&quot;&gt;html5.validator.nu&lt;/a&gt;). You can see an example of the link in the footer of this website.&lt;/p&gt;
+&lt;p&gt;Please feel free to reach out and share your websites / projects that pass as valid HTML and include an HTML valid badge. I&#39;d love to check them out!&lt;/p&gt;
+&lt;h2&gt;Refs&lt;/h2&gt;
+&lt;p&gt;&lt;sup id=&quot;1&quot;&gt;1&lt;/sup&gt; &lt;a href=&quot;http://html5doctor.com/html5-check-it-before-you-wreck-it-with-miketm-smith/&quot;&gt;Interview with Mike Smith&lt;/a&gt;: &quot;There won&#39;t be any proper Valid HTML5 icon forthcoming, so if you&#39;d like to use one in your content, you&#39;ll probably need to create one on your own.&quot;&lt;/p&gt;</content>
+ <link href="https://bt.ht/html5-validator-badge"/>
+ <id>https://bt.ht/html5-validator-badge</id>
+ <updated>2019-07-05T10:00:00Z</updated>
+ <published>2019-07-05T10:00:00Z</published>
+ </entry>
+ <entry>
<title>Write HTML Like It's 1999</title>
<content type="html">&lt;h1&gt;Write HTML Like It&#39;s 1999&lt;/h1&gt;
&lt;p&gt;2019-06-06&lt;/p&gt;
@@ -5920,41 +5955,6 @@ projects with minimal effort!&lt;/p&gt;</content>
<published>2023-04-11T10:00:00Z</published>
</entry>
<entry>
- <title>Using HTML Validator Badges Again</title>
- <content type="html">&lt;h1&gt;Using HTML Validator Badges Again&lt;/h1&gt;
-&lt;p&gt;2019-07-05&lt;/p&gt;
-&lt;p&gt;There was a time on the Internet when websites wore badges of honor, declaring that their code was semantic and followed the W3C guidelines. The validators we used weren&#39;t great (and &lt;strong&gt;still&lt;/strong&gt; aren&#39;t perfect) but they represented a community that took pride in caring about the quality of their work. I think it&#39;s time we bring HTML badges back.&lt;/p&gt;
-&lt;h2&gt;Getting the flaws out of the way&lt;/h2&gt;
-&lt;p&gt;Of course, there were reasons why these badges slowly faded out of popularity. Some of the reasoning made sense, but most felt like a stretch in logic from my perspective. I always looked at it as a &quot;the good outweighs the bad&quot;.&lt;/p&gt;
-&lt;p&gt;Jukka Korpela&#39;s post way back in 2003, &lt;a href=&quot;http://jkorpela.fi/html/validation.html&quot;&gt;HTML validation is a good tool but just a tool&lt;/a&gt;, highlighted a lot of problems with relying so heavily on these HTML validators. I suggest you give it a read if this kind of thing interests you. I found it fascinating, even though I disagree with most of the points he makes.&lt;/p&gt;
-&lt;p&gt;Some negatives used to dismiss HTML badges:&lt;/p&gt;
-&lt;ul&gt;
-&lt;li&gt;&lt;strong&gt;The badge system is outdated&lt;/strong&gt;
- - Dismissing the worth of something based on how long it has been around is foolish. Many tools and frameworks are &quot;outdated&quot; but are still used to this day with great success.&lt;/li&gt;
-&lt;li&gt;&lt;strong&gt;HTML5 doesn&#39;t &lt;em&gt;require&lt;/em&gt; validation&lt;/strong&gt;
- - Technically &lt;em&gt;no subset of HTML&lt;/em&gt; requires validation - but developers should aim for it. The W3C validators perform a solid job of keeping a standard for web development, so by following a standard we can keep experiences consistent for users.&lt;/li&gt;
-&lt;li&gt;&lt;strong&gt;Validation is too formal&lt;/strong&gt;
- - I believe in the ability to achieve your desired outcome based on almost any constraints. If a project leans you towards invalid or non-semantic structure to fulfill requirements, a better approach needs to be evaluated. We as developers tend to settle too quickly on the easiest option available to us.&lt;/li&gt;
-&lt;li&gt;&lt;strong&gt;Websites / web apps are just &lt;em&gt;too complex&lt;/em&gt; to follow the W3C guidelines&lt;/strong&gt;
- - I call &lt;em&gt;BS&lt;/em&gt; on this argument. The complexity of a website should have nothing to do with keeping semantic standards. &lt;em&gt;This is your job.&lt;/em&gt;&lt;/li&gt;
-&lt;li&gt;&lt;strong&gt;It only exists to catch syntax errors&lt;/strong&gt;
- - For the record, I still see this more of a positive take on using validators. Subtle and nuanced syntax mistakes can be easily overlooked by the human eye.&lt;/li&gt;
-&lt;/ul&gt;
-&lt;h2&gt;&quot;Nobody puts &lt;em&gt;badges&lt;/em&gt; in a corner&quot;&lt;/h2&gt;
-&lt;p&gt;A large of amount of designers / developers tend to forget that there are new people entering our industry everyday and they might not be as well versed in the basics of the web (HTML &amp;amp; CSS specifically). Since so many newcomers start out with JavaScript frameworks or jump onto pre-existing projects, they don&#39;t always grasp the core foundation of valid markup. Some frameworks even break basic standards for visuals or easier development environments - setting their initial expectations that ugly semantics is acceptable code. The ends justify the means, etc.&lt;/p&gt;
-&lt;p&gt;Guiding first-timers towards HTML validators let&#39;s them rethink their structure when building products or at least give some forethought to their outputted code. We, the more &lt;em&gt;verteran&lt;/em&gt; members of the community, have the knowledge of proper semantics since we grew our careers around this &quot;trend&quot;. We shouldn&#39;t assume newbies have the same understanding. The basics are important.&lt;/p&gt;
-&lt;h2&gt;Open source HTML5 badge&lt;/h2&gt;
-&lt;p&gt;Since the W3C doesn&#39;t officially produce any badges for HTML5 validation &lt;sup&gt;&lt;a href=&quot;#1&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;, I&#39;ve gone ahead and open sourced &lt;code&gt;SVG&lt;/code&gt; and &lt;code&gt;PNG&lt;/code&gt; versions of a badge based off the current W3C designs. You can check out the Github repo: &lt;a href=&quot;https://github.com/bradleytaunt/html5-valid-badge&quot;&gt;HTML5 Valid Badge&lt;/a&gt;&lt;/p&gt;
-&lt;p&gt;If you decide to use these badges, be sure to link these images to your valid passing URL (&lt;a href=&quot;https://html5.validator.nu&quot;&gt;html5.validator.nu&lt;/a&gt;). You can see an example of the link in the footer of this website.&lt;/p&gt;
-&lt;p&gt;Please feel free to reach out and share your websites / projects that pass as valid HTML and include an HTML valid badge. I&#39;d love to check them out!&lt;/p&gt;
-&lt;h2&gt;Refs&lt;/h2&gt;
-&lt;p&gt;&lt;sup id=&quot;1&quot;&gt;1&lt;/sup&gt; &lt;a href=&quot;http://html5doctor.com/html5-check-it-before-you-wreck-it-with-miketm-smith/&quot;&gt;Interview with Mike Smith&lt;/a&gt;: &quot;There won&#39;t be any proper Valid HTML5 icon forthcoming, so if you&#39;d like to use one in your content, you&#39;ll probably need to create one on your own.&quot;&lt;/p&gt;</content>
- <link href="https://bt.ht/html5-validator-badge"/>
- <id>https://bt.ht/html5-validator-badge</id>
- <updated>2019-07-05T10:00:00Z</updated>
- <published>2019-07-05T10:00:00Z</published>
- </entry>
- <entry>
<title>Goodbye WordPress, Hello Jekyll (Again)</title>
<content type="html">&lt;h1&gt;Goodbye WordPress, Hello Jekyll (Again)&lt;/h1&gt;
&lt;p&gt;2020-08-13&lt;/p&gt;
@@ -10456,6 +10456,73 @@ flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flat
<published>2022-11-04T10:00:00Z</published>
</entry>
<entry>
+ <title>Switching Things Over to ikiwiki</title>
+ <content type="html">&lt;h1&gt;Switching Things Over to ikiwiki&lt;/h1&gt;
+&lt;p&gt;2023-12-17&lt;/p&gt;
+&lt;p&gt;I&#39;ve done it again. My personal website is no longer generated with &lt;a href=&quot;https://barf.btxx.org&quot;&gt;barf&lt;/a&gt; but is instead built on top of ikiwiki. The old RSS feed (&lt;a href=&quot;https://btxx.org/atom.xml&quot;&gt;btxx.org/atom.xml&lt;/a&gt;) still exists but will no longer receive updates. The new feed can be found on the bottom of the homepage (&lt;a href=&quot;/index.rss&quot;&gt;index.rss&lt;/a&gt;)&lt;/p&gt;
+&lt;h2&gt;Why a Wiki?&lt;/h2&gt;
+&lt;p&gt;I love the simplicity of a minimal blog, which is why I always gravitated towards purely &quot;static&quot; site builders. Over time though, I found two minor issues that slowly chipped away at me: ease-of-use and flexibility.&lt;/p&gt;
+&lt;p&gt;I had a vision, back when I began tinkering with my own place on the web, of building out my own personal &quot;resource center&quot; or wiki. Often times through work or personal projects I stumble into little problems that I need to solve. Most times I find a solution and move on with my life. The problem with this approach is &lt;em&gt;lack of documentation&lt;/em&gt;.&lt;/p&gt;
+&lt;p&gt;What if I come across that issue at a later point in time? Will I even remember my old solution? Probably not. So, I&#39;ve made the switch to a more flexible, personal wiki (which also happens to be a blog!)&lt;/p&gt;
+&lt;h2&gt;Text Editors, Terminals, and Web UI - Oh My!&lt;/h2&gt;
+&lt;p&gt;ikiwiki comes packed with multiple ways to publish pages and posts. Since it is built with ikiwiki and git version control in mind, you have the ability to push out changes directly to your server similar to that of pre-existing static site generators. It also gives you the choice to &lt;code&gt;ssh&lt;/code&gt; directly into your server and publish content from your terminal if you so desire.&lt;/p&gt;
+&lt;p&gt;Best of all, ikiwiki offers a web UI interface. This is something I have long missed since leaving &quot;dynamic&quot; websites behind.&lt;/p&gt;
+&lt;h2&gt;But Wait, There&#39;s More!&lt;/h2&gt;
+&lt;p&gt;Did I mention that this site now supports a built-in search form &lt;em&gt;and&lt;/em&gt; a comment system? I&#39;ve been wanting comments or discussions directly on my personal web space for the longest time and now I do! The search function is really an added bonus, mostly for my own personal use to find something I documented quickly.&lt;/p&gt;
+&lt;h2&gt;Broken Links and Bugs&lt;/h2&gt;
+&lt;p&gt;I&#39;ve done my best to properly forward all original posts and pages to their new URLs - but I&#39;m sure some things will be overlooked. So please feel free to reach out and let me know if anything seems broken.&lt;/p&gt;
+&lt;p&gt;I look forward to growing out this &quot;platform&quot; and seeing how it impacts my workflow writing documentation / blog posts. I hope you&#39;ll come along for the ride!&lt;/p&gt;</content>
+ <link href="https://bt.ht/Switching_Things_Over_to_ikiwiki"/>
+ <id>https://bt.ht/Switching_Things_Over_to_ikiwiki</id>
+ <updated>2023-12-17T10:00:00Z</updated>
+ <published>2023-12-17T10:00:00Z</published>
+ </entry>
+ <entry>
+ <title>My Text Edtior is Not Open Source</title>
+ <content type="html">&lt;h1&gt;My Text Edtior is Not Open Source&lt;/h1&gt;
+&lt;p&gt;2024-01-02&lt;/p&gt;
+&lt;p&gt;I&#39;ve been using Sublime Text on and off for longer than I can remember. I think Sublime has been around since the start of my &quot;real&quot; career over 10 years ago, but I could be mistaken[^1]. It certainly &lt;em&gt;feels&lt;/em&gt; that long. And in that time I have never gotten upset with Sublime. I&#39;ve never rage quit or ran into an issue of Sublime not being able to &lt;em&gt;do the thing I wanted it to do&lt;/em&gt;. As much of a cliche it may sound: it just works.&lt;/p&gt;
+&lt;p&gt;Even when I switch editors (VSCode, Geany, kitty+vim etc.) for a period of time, I find myself always coming back to Sublime. The only reason I try other editors is simply that: to try them. Maybe that&#39;s why these editors don&#39;t click with me. Maybe I&#39;m giving Sublime an unfair advantage since I&#39;m simply &quot;testing&quot; other editors, rather than looking for a solid alternative.&lt;/p&gt;
+&lt;p&gt;And don&#39;t get me wrong, I understand &lt;em&gt;why&lt;/em&gt; editors like VSCode are extremely popular. VSCode has a massive ecosystem and new plugins are generally developed for that editor before all others. Finding solutions to problems online is very easy, since it is so popular. But best of all - it&#39;s open source[^2].&lt;/p&gt;
+&lt;p&gt;So why am I using a &lt;em&gt;non&lt;/em&gt;-open source editor? (Spoilers: because it&#39;s a great editor)&lt;/p&gt;
+&lt;h2&gt;&quot;A Proprietary Editor - How Could You?!&quot;&lt;/h2&gt;
+&lt;p&gt;I know, I know. If you&#39;re familiar with me or the things I write about it must seem odd that I would willingly use proprietary software over open source. This is something I struggle with constantly day-to-day in the realm of &quot;personal tech&quot;. I find with age I become more open-minded to having a diverse range of software and hardware choices. Open source is best in &lt;em&gt;concept&lt;/em&gt; but not always best in practice.&lt;/p&gt;
+&lt;p&gt;The problem is that Sublime is just such a &lt;em&gt;great&lt;/em&gt; editor. I can&#39;t ignore quality and refuse to use good software solely based on it&#39;s licensing. A few personal things I love about Sublime:&lt;/p&gt;
+&lt;ul&gt;
+&lt;li&gt;Incredibly fast&lt;/li&gt;
+&lt;li&gt;Handles massive files without breaking a sweat&lt;/li&gt;
+&lt;li&gt;Minimal resource footprint (ex. uses &amp;lt;0.1% CPU working on huge projects)&lt;/li&gt;
+&lt;li&gt;Large ecosystem of plugins/themes&lt;/li&gt;
+&lt;li&gt;No Electron&lt;/li&gt;
+&lt;/ul&gt;
+&lt;p&gt;Other editors can certainly check off a few of those boxes as well, but you&#39;d be hard-pressed to find one that checks off them all.&lt;/p&gt;
+&lt;h2&gt;Being a Cheapskate&lt;/h2&gt;
+&lt;p&gt;I must confess something that I think most Sublime users are guilty of: I&#39;ve never &lt;a href=&quot;https://www.sublimehq.com/store/text&quot;&gt;bought a license&lt;/a&gt;. I&#39;ve installed and used Sublime on countless machines, on multiple operating systems from Linux to Windows to MacOS. That &lt;code&gt;Unregistered&lt;/code&gt; text in the top right application bar has been with me since the beginning. But that in no longer the case.&lt;/p&gt;
+&lt;p&gt;&lt;strong&gt;I finally purchased a license.&lt;/strong&gt; I bundled it with &lt;a href=&quot;https://www.sublimemerge.com/&quot;&gt;Sublime Merge&lt;/a&gt;, so it ended up costing me $168 USD. When I initially looked at that price tag I must admit I was tempted to close the browser tab and forget the whole thing. But then I realized I have been using this editor &lt;em&gt;free of charge&lt;/em&gt; for over 10 years. (Not to mention using Sublime Merge for quite some time as well!)&lt;/p&gt;
+&lt;p&gt;So I did a little math:&lt;/p&gt;
+&lt;pre&gt;&lt;code&gt;$168 / 10 years = $16.80
+&lt;/code&gt;&lt;/pre&gt;
+&lt;p&gt;Looking at it in that perspective, it&#39;s actually a great deal. Not to mention they have very respectable terms for their licenses:&lt;/p&gt;
+&lt;blockquote&gt;&lt;p&gt;Personal licenses come with 3 years of updates. After 3 years, you&#39;ll be able to continue to use the last version released within 3 years of purchase (in other words, licenses do not expire). Any versions released 3 years or more after the purchase date will require a paid upgrade to use.&lt;/p&gt;
+&lt;/blockquote&gt;
+&lt;blockquote&gt;&lt;p&gt;Individual licenses are valid for 3 years of updates, but do not expire after 3 years. Only if you wish to use newer versions will an upgrade fee be required. &lt;/p&gt;
+&lt;/blockquote&gt;
+&lt;blockquote&gt;&lt;p&gt;Licenses are per-user, so you&#39;re welcome to use the one license on all computers and operating systems where you are the primary user.&lt;/p&gt;
+&lt;/blockquote&gt;
+&lt;p&gt;I won&#39;t copy everything from their main &lt;a href=&quot;https://www.sublimehq.com/sales_faq&quot;&gt;FAQ page&lt;/a&gt; but as you can see it is very reasonable. I also get to feel decent for supporting developers who make very good software.&lt;/p&gt;
+&lt;h2&gt;Final Notes&lt;/h2&gt;
+&lt;p&gt;This post is not meant to convince you to switch or anything of that nature. Use what works for you! I just wanted to share my own personal preference when it came to my main text editor. Maybe this will also convince &quot;hardcore&quot; open source people (like me!) to realize it is &lt;em&gt;okay&lt;/em&gt; to pay for software sometimes...&lt;/p&gt;
+&lt;hr /&gt;
+&lt;p&gt;I should be very clear about something: this post &lt;em&gt;is not an advertisement&lt;/em&gt;. I have not received any money or &quot;kick backs&quot; to write about my happy times with Sublime. This is purely my own opinion that I wanted to share with the internet!&lt;/p&gt;
+&lt;p&gt;BTW if anyone from SublimeHQ happens to come across this post: PLEASE look into building a &quot;native&quot; version of Sublime Text for FreeBSD/OpenBSD. I (and many others) would be forever grateful!&lt;/p&gt;
+&lt;p&gt;[^1]: Sublime does mention copyright since 2006...&lt;/p&gt;
+&lt;p&gt;[^2]: Not the pre-packaged Microsoft version&lt;/p&gt;</content>
+ <link href="https://bt.ht/My_Text_Editor_Is_Not_Open_Source"/>
+ <id>https://bt.ht/My_Text_Editor_Is_Not_Open_Source</id>
+ <updated>2024-01-02T10:00:00Z</updated>
+ <published>2024-01-02T10:00:00Z</published>
+ </entry>
+ <entry>
<title>Making a Website Under 1kB</title>
<content type="html">&lt;h1&gt;Making a Website Under 1kB&lt;/h1&gt;
&lt;p&gt;2022-08-02&lt;/p&gt;
diff --git a/build/index.html b/build/index.html
index 6830997..b38cf39 100644
--- a/build/index.html
+++ b/build/index.html
@@ -25,173 +25,175 @@
<p><a href="/one-thing">My Coffee Maker Just Makes Coffee</a><br> How products should focus on doing <em>one thing</em> very well.</p>
<p><a href="https://anon.bt.ht">Blog Anonymously</a><br>A basic starting point for those wishing to blog privately.</p>
<h2>Articles &amp; Tutorials</h2>
-<ul>
-<li>2023-11-02 &middot; <a href="dwm-gnome/">Bringing dwm Shortcuts to GNOME</a></li>
-<li>2023-09-26 &middot; <a href="x220/">The X220 ThinkPad is the Best Laptop in the World</a></li>
-<li>2023-09-11 &middot; <a href="mongodb-arch/">Installing Older Versions of MongoDB on Arch Linux</a></li>
-<li>2023-07-21 &middot; <a href="heif/">Converting HEIF Images with macOS Automator</a></li>
-<li>2023-06-24 &middot; <a href="seven-years/">Blogging for 7 Years</a></li>
-<li>2023-06-13 &middot; <a href="battery/">Improving Laptop Battery Performance on OpenBSD</a></li>
-<li>2023-06-05 &middot; <a href="vscode/">Running VSCode in Chromium on OpenBSD</a></li>
-<li>2023-05-19 &middot; <a href="luba/">My Robotic Mower Woes</a></li>
-<li>2023-05-11 &middot; <a href="mail/">Working with `git` Patches in Apple Mail</a></li>
-<li>2023-05-05 &middot; <a href="hamburgers/">Stop Using Hamburger Menus (Sometimes)</a></li>
-<li>2023-05-01 &middot; <a href="slabtop/">Converting My X201 ThinkPad into a Slabtop</a></li>
-<li>2023-04-25 &middot; <a href="git-patches/">Applying Email-Based Git Patches in Evolution on Linux</a></li>
-<li>2023-04-13 &middot; <a href="sublime/">Launching Sublime Text with dmenu on Alpine Linux</a></li>
-<li>2023-04-11 &middot; <a href="html-dark-mode/">HTML Dark Mode</a></li>
-<li>2023-04-02 &middot; <a href="x201/">Bypassing the WiFi Hardware Switch on the Lenovo X201</a></li>
-<li>2023-03-16 &middot; <a href="rvm/">Installing Ruby with RVM on Alpine Linux</a></li>
-<li>2023-03-14 &middot; <a href="webfonts/">Stop Using Custom Web Fonts</a></li>
-<li>2023-03-09 &middot; <a href="mango/">Replacing My Eero Mesh Network with Two Mangos</a></li>
-<li>2023-03-03 &middot; <a href="monitor/">Why I Stopped Using an External Monitor</a></li>
-<li>2023-02-08 &middot; <a href="dv/">Dynamic Viewports with CSS</a></li>
-<li>2023-01-09 &middot; <a href="one-thing/">My Coffee Maker Just Makes Coffee</a></li>
-<li>2022-12-23 &middot; <a href="suckless/">I Want to Suckless and You Can Too</a></li>
-<li>2022-12-08 &middot; <a href="alpine/">Adventures in Creating a Minimal Alpine Linux Installer</a></li>
-<li>2022-12-02 &middot; <a href="openring/">Building openring with Jekyll Build</a></li>
-<li>2022-11-23 &middot; <a href="$10/">Do You Have an Extra $10?</a></li>
-<li>2022-11-22 &middot; <a href="slow/">Embracing Slow Tech</a></li>
-<li>2022-11-14 &middot; <a href="srht2/">Migrating from GitHub to sourcehut</a></li>
-<li>2022-11-07 &middot; <a href="spec/">Never Do Spec Work for Free</a></li>
-<li>2022-11-04 &middot; <a href="adguard/">Setting Up AdGuard Home with Eero</a></li>
-<li>2022-10-14 &middot; <a href="af/">Avoiding Featurism</a></li>
-<li>2022-10-03 &middot; <a href="gallery/">Simplifying the Craigslist Gallery</a></li>
-<li>2022-09-22 &middot; <a href="notice/">RE: Creating a Simple HTML/CSS Notice Box</a></li>
-<li>2022-09-20 &middot; <a href="lf/">Installing Custom Fonts on Linux from the Command Line</a></li>
-<li>2022-09-19 &middot; <a href="jekyll/">Setup Jekyll from Scratch on a New Linux System</a></li>
-<li>2022-09-10 &middot; <a href="dump/">Don't Make a Blog, Make a Brain Dump</a></li>
-<li>2022-09-08 &middot; <a href="avoid/">A Warning for New Designers: Avoid Dribbble</a></li>
-<li>2022-09-02 &middot; <a href="windows/">Setting Up Jekyll on Windows </a></li>
-<li>2022-08-12 &middot; <a href="loop/">Looping Through Jekyll Collections</a></li>
-<li>2022-08-02 &middot; <a href="1kb/">Making a Website Under 1kB</a></li>
-<li>2022-07-29 &middot; <a href="berg/">Hosting with Codeberg Pages</a></li>
-<li>2022-07-14 &middot; <a href="linux-love/">The Linux Desktop is Hard to Love</a></li>
-<li>2022-07-06 &middot; <a href="pblog/">Yet Another Static Site Generator Switch</a></li>
-<li>2022-06-29 &middot; <a href="paid-mac-apps/">Happily Paying For macOS Apps</a></li>
-<li>2022-06-20 &middot; <a href="rss-click/">Clickable Links Inside XML</a></li>
-<li>2022-05-30 &middot; <a href="schools/">Schools Should Be Using Open Source Software</a></li>
-<li>2022-05-23 &middot; <a href="rss-hacks/">RSS Hacks With XSLT</a></li>
-<li>2022-05-17 &middot; <a href="duckduckno/">Two Weeks with the DuckDuckGo Browser</a></li>
-<li>2022-05-13 &middot; <a href="shinobi-website/">This Site is Now a Shinobi Website</a></li>
-<li>2022-04-18 &middot; <a href="safari-default-dark-mode/">Dear Apple, Please Fix Safari's Default Dark Mode Link Color</a></li>
-<li>2022-03-21 &middot; <a href="my-static-blog-publishing-setup/">My Static Blog Publishing Setup and an Apology to RSS Subscribers</a></li>
-<li>2022-03-14 &middot; <a href="eero/">Setting Up a Pi-hole Server with Eero</a></li>
-<li>2022-03-12 &middot; <a href="jelly/">Transferring Media from macOS to a Jellyfin Server (Raspberry Pi 4)</a></li>
-<li>2022-02-23 &middot; <a href="february-updates/">February 2022 Update</a></li>
-<li>2022-02-03 &middot; <a href="poormans-comment-system/">My Cheapskate Commenting System</a></li>
-<li>2022-01-28 &middot; <a href="macos-convert-to-html/">Convert Files to HTML with macOS Automator Quick Actions</a></li>
-<li>2022-01-06 &middot; <a href="future-os-google/">Chrome OS Could Become the Future Leader of Computing</a></li>
-<li>2021-12-17 &middot; <a href="use-text-not-icons/">Icons Should be Complementary - Text is Always Better</a></li>
-<li>2021-12-06 &middot; <a href="jekyll-sourcehut/">Hosting a Jekyll Site on Sourcehut</a></li>
-<li>2021-12-03 &middot; <a href="netlify-urls/">Using Netlify for Dynamic URL Redirects</a></li>
-<li>2021-11-25 &middot; <a href="minor-website-changes/">Using a New Domain and Switching Static Hosts</a></li>
-<li>2021-11-09 &middot; <a href="default-html-style-updates/">Modern Improvements for Default Browser Styles</a></li>
-<li>2021-11-03 &middot; <a href="css-js-mistake/">A Reality Where CSS and JavaScript Don't Exist</a></li>
-<li>2021-10-28 &middot; <a href="pihole-cloudflare/">Setting Up 1.1.1.1 for Families on a Pi-Hole</a></li>
-<li>2021-10-15 &middot; <a href="batch-webp-conversion/">Batch Converting Images to webp with macOS Automator</a></li>
-<li>2021-09-23 &middot; <a href="safari-extensions-catalina-patcher/">Enabling Safari Extensions with the macOS Catalina Patcher</a></li>
-<li>2021-09-08 &middot; <a href="performance-focused-wordpress-theme/">Create a Performance-Focused WordPress Blog</a></li>
-<li>2021-08-13 &middot; <a href="pi-400-internal-ssd/">Stuffing an SSD Inside the Raspberry Pi 400</a></li>
-<li>2021-07-24 &middot; <a href="sharing-the-things-we-use/">Sharing The Things We Use</a></li>
-<li>2021-06-20 &middot; <a href="ps4-download-ui/">PS4 Download UI with Pure CSS</a></li>
-<li>2021-06-07 &middot; <a href="css-slope-graphs/">CSS Slope Graphs</a></li>
-<li>2021-05-29 &middot; <a href="soma-terminal-css/">SOMA Inspired Terminal Display with CSS</a></li>
-<li>2021-05-19 &middot; <a href="personal-website-opinions/">My Changing Opinion on Personal Website Design</a></li>
-<li>2021-04-27 &middot; <a href="shiny-css-buttons/">Shiny, Animated CSS Buttons</a></li>
-<li>2021-04-22 &middot; <a href="phpetite/">89 Blog Posts in a Single HTML File</a></li>
-<li>2021-04-13 &middot; <a href="macos-icon-css/">Create a Mac App Icon with Pure HTML and CSS</a></li>
-<li>2021-04-12 &middot; <a href="lazy-dev-dark-mode/">The Lazy Developer's Dark Mode</a></li>
-<li>2021-03-25 &middot; <a href="load-image-on-click/">Click to Load Website Images</a></li>
-<li>2021-03-11 &middot; <a href="introducing-pageroast/">Introducing PageRoast</a></li>
-<li>2021-02-25 &middot; <a href="launching-thriftyname/">ThriftyName: $5 Brand Names</a></li>
-<li>2021-02-02 &middot; <a href="self-hosting-fathom/">Self-Hosting Fathom Analytics with DigitalOcean</a></li>
-<li>2021-01-19 &middot; <a href="fathom-analytics-netlify/">Setting Up Fathom Analytics with Netlify</a></li>
-<li>2021-01-13 &middot; <a href="introducing-notez/">Introducing Notez</a></li>
-<li>2021-01-05 &middot; <a href="animated-toggle-tabs/">Animated Radio Tab Toggles</a></li>
-<li>2020-12-28 &middot; <a href="disabling-comments-in-wordpress/">Disabling Comments in WordPress</a></li>
-<li>2020-12-08 &middot; <a href="flexbox-bar-graphs/">Pure CSS Bar Graphs with Graceful Mobile Fallbacks</a></li>
-<li>2020-12-04 &middot; <a href="obvious-js-injection-fallback/">Obvious Javascript 'Injection' Fallback</a></li>
-<li>2020-11-09 &middot; <a href="bidirectional-scrolling/">Bidirectional Scrolling: Why Not Both?</a></li>
-<li>2020-10-19 &middot; <a href="menu-toggle-css/">Menu Toggle with Pure CSS</a></li>
-<li>2020-10-07 &middot; <a href="poor-mans-full-bleed/">Poor Man's CSS Full-Bleed Layout</a></li>
-<li>2020-09-29 &middot; <a href="simple-jekyll-navigation/">Simple Navigation Setup in Jekyll 3.9.0</a></li>
-<li>2020-09-16 &middot; <a href="cheap-portable-pi/">Portable Pi: Cheap Raspberry Pi Zero Hacker Terminal</a></li>
-<li>2020-09-09 &middot; <a href="over-engineering-an-oil-tank/">Over-Engineering an Oil Tank Gauge</a></li>
-<li>2020-09-02 &middot; <a href="my-pi-desktop/">My Raspberry Pi Desktop</a></li>
-<li>2020-08-16 &middot; <a href="linux-mint-macbook-air/">Linux Mint MacBook Air Setup</a></li>
-<li>2020-08-13 &middot; <a href="hello-jekyll/">Goodbye WordPress, Hello Jekyll (Again)</a></li>
-<li>2020-07-07 &middot; <a href="improving-githubs-new-design/">Improving Github's New Design</a></li>
-<li>2020-06-22 &middot; <a href="keynote-slides-css/">Keynote Slides with Pure CSS</a></li>
-<li>2020-06-14 &middot; <a href="audio-hotkeys-on-linux-mint/">Audio Hotkeys on Linux Mint</a></li>
-<li>2020-06-04 &middot; <a href="quick-dirty-theme-switcher/">Quick and Dirty Theme Switcher</a></li>
-<li>2020-05-13 &middot; <a href="mini-interactive-keyboard-with-pure-css/">Mini Interactive Keyboard with Pure CSS</a></li>
-<li>2020-05-06 &middot; <a href="localwp-fedora/">Fixing LocalWP on Fedora 32</a></li>
-<li>2020-05-05 &middot; <a href="wp-enqueue-for-beginners/">WP Enqueue for Beginners</a></li>
-<li>2020-04-29 &middot; <a href="fake-3d-elements-with-css/">Faking 3D Elements with CSS</a></li>
-<li>2020-03-31 &middot; <a href="stripe-menu-css/">Stripe Menu Dropdowns (CSS)</a></li>
-<li>2020-03-18 &middot; <a href="base64-all-the-things/">Base64 All The Things! (Sometimes)</a></li>
-<li>2020-02-07 &middot; <a href="learning-to-floss/">How to "FLOSS" as a Web Designer</a></li>
-<li>2020-01-07 &middot; <a href="chromebook-web-dev/">Web Development on a $200 Chromebook</a></li>
-<li>2019-11-29 &middot; <a href="one-css-property/">Billing for One CSS Change</a></li>
-<li>2019-11-13 &middot; <a href="default-brower-forms/">Very Basic Form Styling</a></li>
-<li>2019-11-01 &middot; <a href="improving-tufte-jekyll/">Improving Tufte CSS for Jekyll</a></li>
-<li>2019-10-06 &middot; <a href="sticky-elements/">Stop Using Sticky Navigation on Mobile</a></li>
-<li>2019-09-28 &middot; <a href="being-efficient/">Being More Efficient as a Designer and Developer</a></li>
-<li>2019-09-09 &middot; <a href="plain-text-emails/">Plain Text Emails, Please</a></li>
-<li>2019-07-30 &middot; <a href="dynamic-checkboxes/">Dynamic Checkboxes</a></li>
-<li>2019-07-17 &middot; <a href="empty-table-cells/">Styling Empty Table Cells</a></li>
-<li>2019-07-05 &middot; <a href="html5-validator-badge/">Using HTML Validator Badges Again</a></li>
-<li>2019-06-25 &middot; <a href="they-wont-wait/">They Won't Wait: A Warning for Slow Websites</a></li>
-<li>2019-06-20 &middot; <a href="publish-with-jekyll/">Publishing Simple Books With Jekyll</a></li>
-<li>2019-06-14 &middot; <a href="hamburger-menu-alternative/">Using Hamburger Menus? Try Sausage Links</a></li>
-<li>2019-06-11 &middot; <a href="tables/">Making Tables Responsive With Minimal CSS</a></li>
-<li>2019-06-06 &middot; <a href="html-like-1999/">Write HTML Like It's 1999</a></li>
-<li>2019-06-04 &middot; <a href="user-select/">Using User-Select</a></li>
-<li>2019-05-29 &middot; <a href="news-websites-are-dumpster-fires/">News Websites Are Dumpster Fires</a></li>
-<li>2019-05-22 &middot; <a href="text-align-justify/">Text Align: Justify</a></li>
-<li>2019-05-15 &middot; <a href="improving-receipt-ux/">Improving Receipt UX</a></li>
-<li>2019-05-09 &middot; <a href="cut-your-forms-in-half/">Cut Your Forms in Half</a></li>
-<li>2019-05-03 &middot; <a href="first-letter/">First Letter Pseudo Element</a></li>
-<li>2019-04-26 &middot; <a href="minimal-css-menu/">Minimal CSS: Dropdown Menu</a></li>
-<li>2019-04-23 &middot; <a href="character-unit/">CSS Character Unit</a></li>
-<li>2019-04-20 &middot; <a href="browser-history-sucks/">Browser History Sucks</a></li>
-<li>2019-04-15 &middot; <a href="still-using-jquery/">Yes, I Still Use jQuery</a></li>
-<li>2019-04-13 &middot; <a href="current-color/">CSS Value: `currentColor`</a></li>
-<li>2019-04-05 &middot; <a href="ndenting-text-with-css/">CSS: Indenting Text</a></li>
-<li>2019-03-26 &middot; <a href="simple-does-not-mean-ugly/">Simple Does Not Mean Ugly</a></li>
-<li>2019-03-25 &middot; <a href="skip-to-content/">Skip to Content Button</a></li>
-<li>2019-03-13 &middot; <a href="form-ui-improvements/">Prescription Form UI Improvements</a></li>
-<li>2019-02-27 &middot; <a href="animated-card-tiles/">Animated Card Tiles</a></li>
-<li>2019-02-18 &middot; <a href="easy-toggle-switches/">Easy Toggle Switches</a></li>
-<li>2019-02-15 &middot; <a href="super-mario-blocks-css/">Super Mario Blocks in CSS</a></li>
-<li>2019-02-05 &middot; <a href="proper-ui-hierarchy/">Proper UI Hierarchy</a></li>
-<li>2019-01-28 &middot; <a href="tabbed-content/">Tabbed Content Without JavaScript</a></li>
-<li>2019-01-21 &middot; <a href="easy-custom-radio-inputs/">Easy Custom Radio Inputs</a></li>
-<li>2019-01-15 &middot; <a href="basic-gulp-build-for-sass/">Basic Gulp Build for Sass</a></li>
-<li>2019-01-08 &middot; <a href="better-box-shadows/">Better Box Shadows</a></li>
-<li>2019-01-06 &middot; <a href="over-nesting/">Over-Nesting</a></li>
-<li>2018-12-19 &middot; <a href="jsincss-parent-selector/">Using Parent Selectors in CSS</a></li>
-<li>2018-11-28 &middot; <a href="width-vs-flex-basis/">Width or Flex-Basis?</a></li>
-<li>2018-11-22 &middot; <a href="flexbox-grid/">Adaptable Flexbox Grid</a></li>
-<li>2018-10-18 &middot; <a href="self-hosted-blogs/">What Happened to Self-Hosted Blogs?</a></li>
-<li>2018-09-28 &middot; <a href="multiple-css-background-images/">Using Multiple CSS Background Images</a></li>
-<li>2018-09-20 &middot; <a href="pure-css-simple-dropdown-plugin/">Pure CSS Simple Dropdown Plugin</a></li>
-<li>2018-09-07 &middot; <a href="simple-accessibility/">Simple Accessibility</a></li>
-<li>2018-08-07 &middot; <a href="setting-up-free-ssl/">Setting Up a Free SSL</a></li>
-<li>2018-04-16 &middot; <a href="css-video-backgrounds/">CSS Video Backgrounds</a></li>
-<li>2018-03-24 &middot; <a href="css-variables/">CSS Variables</a></li>
-<li>2018-02-12 &middot; <a href="stay-hungry/">Stay Hungry</a></li>
-<li>2018-01-25 &middot; <a href="open-source-typeface-pairings/">Open Source Typeface Pairings</a></li>
-<li>2018-01-14 &middot; <a href="et-jekyll-theme/">ET-Jekyll Theme</a></li>
-<li>2017-11-20 &middot; <a href="chasing-performance/">Chasing Performance</a></li>
-<li>2017-11-01 &middot; <a href="death-of-personality/">The Death of Personality</a></li>
-<li>2017-10-10 &middot; <a href="design-review-dropbox/">Unsolicited Design Review - Dropbox</a></li>
-<li>2017-09-07 &middot; <a href="goodbye-css-preprocessors/">Goodbye CSS Preprocessors</a></li>
-<li>2017-07-10 &middot; <a href="dts/">Designers Need Thicker Skin</a></li>
-<li>2016-11-15 &middot; <a href="te/">The Wonders of Text Ellipsis</a></li>
-<li>2016-06-28 &middot; <a href="aui/">Aqua UI CSS Buttons</a></li>
-</ul>
+<div>
+<span>2024-01-02 &middot; <a href="My_Text_Editor_Is_Not_Open_Source/">My Text Edtior is Not Open Source</a></span><br>
+<span>2023-12-17 &middot; <a href="Switching_Things_Over_to_ikiwiki/">Switching Things Over to ikiwiki</a></span><br>
+<span>2023-11-02 &middot; <a href="dwm-gnome/">Bringing dwm Shortcuts to GNOME</a></span><br>
+<span>2023-09-26 &middot; <a href="x220/">The X220 ThinkPad is the Best Laptop in the World</a></span><br>
+<span>2023-09-11 &middot; <a href="mongodb-arch/">Installing Older Versions of MongoDB on Arch Linux</a></span><br>
+<span>2023-07-21 &middot; <a href="heif/">Converting HEIF Images with macOS Automator</a></span><br>
+<span>2023-06-24 &middot; <a href="seven-years/">Blogging for 7 Years</a></span><br>
+<span>2023-06-13 &middot; <a href="battery/">Improving Laptop Battery Performance on OpenBSD</a></span><br>
+<span>2023-06-05 &middot; <a href="vscode/">Running VSCode in Chromium on OpenBSD</a></span><br>
+<span>2023-05-19 &middot; <a href="luba/">My Robotic Mower Woes</a></span><br>
+<span>2023-05-11 &middot; <a href="mail/">Working with `git` Patches in Apple Mail</a></span><br>
+<span>2023-05-05 &middot; <a href="hamburgers/">Stop Using Hamburger Menus (Sometimes)</a></span><br>
+<span>2023-05-01 &middot; <a href="slabtop/">Converting My X201 ThinkPad into a Slabtop</a></span><br>
+<span>2023-04-25 &middot; <a href="git-patches/">Applying Email-Based Git Patches in Evolution on Linux</a></span><br>
+<span>2023-04-13 &middot; <a href="sublime/">Launching Sublime Text with dmenu on Alpine Linux</a></span><br>
+<span>2023-04-11 &middot; <a href="html-dark-mode/">HTML Dark Mode</a></span><br>
+<span>2023-04-02 &middot; <a href="x201/">Bypassing the WiFi Hardware Switch on the Lenovo X201</a></span><br>
+<span>2023-03-16 &middot; <a href="rvm/">Installing Ruby with RVM on Alpine Linux</a></span><br>
+<span>2023-03-14 &middot; <a href="webfonts/">Stop Using Custom Web Fonts</a></span><br>
+<span>2023-03-09 &middot; <a href="mango/">Replacing My Eero Mesh Network with Two Mangos</a></span><br>
+<span>2023-03-03 &middot; <a href="monitor/">Why I Stopped Using an External Monitor</a></span><br>
+<span>2023-02-08 &middot; <a href="dv/">Dynamic Viewports with CSS</a></span><br>
+<span>2023-01-09 &middot; <a href="one-thing/">My Coffee Maker Just Makes Coffee</a></span><br>
+<span>2022-12-23 &middot; <a href="suckless/">I Want to Suckless and You Can Too</a></span><br>
+<span>2022-12-08 &middot; <a href="alpine/">Adventures in Creating a Minimal Alpine Linux Installer</a></span><br>
+<span>2022-12-02 &middot; <a href="openring/">Building openring with Jekyll Build</a></span><br>
+<span>2022-11-23 &middot; <a href="$10/">Do You Have an Extra $10?</a></span><br>
+<span>2022-11-22 &middot; <a href="slow/">Embracing Slow Tech</a></span><br>
+<span>2022-11-14 &middot; <a href="srht2/">Migrating from GitHub to sourcehut</a></span><br>
+<span>2022-11-07 &middot; <a href="spec/">Never Do Spec Work for Free</a></span><br>
+<span>2022-11-04 &middot; <a href="adguard/">Setting Up AdGuard Home with Eero</a></span><br>
+<span>2022-10-14 &middot; <a href="af/">Avoiding Featurism</a></span><br>
+<span>2022-10-03 &middot; <a href="gallery/">Simplifying the Craigslist Gallery</a></span><br>
+<span>2022-09-22 &middot; <a href="notice/">RE: Creating a Simple HTML/CSS Notice Box</a></span><br>
+<span>2022-09-20 &middot; <a href="lf/">Installing Custom Fonts on Linux from the Command Line</a></span><br>
+<span>2022-09-19 &middot; <a href="jekyll/">Setup Jekyll from Scratch on a New Linux System</a></span><br>
+<span>2022-09-10 &middot; <a href="dump/">Don't Make a Blog, Make a Brain Dump</a></span><br>
+<span>2022-09-08 &middot; <a href="avoid/">A Warning for New Designers: Avoid Dribbble</a></span><br>
+<span>2022-09-02 &middot; <a href="windows/">Setting Up Jekyll on Windows </a></span><br>
+<span>2022-08-12 &middot; <a href="loop/">Looping Through Jekyll Collections</a></span><br>
+<span>2022-08-02 &middot; <a href="1kb/">Making a Website Under 1kB</a></span><br>
+<span>2022-07-29 &middot; <a href="berg/">Hosting with Codeberg Pages</a></span><br>
+<span>2022-07-14 &middot; <a href="linux-love/">The Linux Desktop is Hard to Love</a></span><br>
+<span>2022-07-06 &middot; <a href="pblog/">Yet Another Static Site Generator Switch</a></span><br>
+<span>2022-06-29 &middot; <a href="paid-mac-apps/">Happily Paying For macOS Apps</a></span><br>
+<span>2022-06-20 &middot; <a href="rss-click/">Clickable Links Inside XML</a></span><br>
+<span>2022-05-30 &middot; <a href="schools/">Schools Should Be Using Open Source Software</a></span><br>
+<span>2022-05-23 &middot; <a href="rss-hacks/">RSS Hacks With XSLT</a></span><br>
+<span>2022-05-17 &middot; <a href="duckduckno/">Two Weeks with the DuckDuckGo Browser</a></span><br>
+<span>2022-05-13 &middot; <a href="shinobi-website/">This Site is Now a Shinobi Website</a></span><br>
+<span>2022-04-18 &middot; <a href="safari-default-dark-mode/">Dear Apple, Please Fix Safari's Default Dark Mode Link Color</a></span><br>
+<span>2022-03-21 &middot; <a href="my-static-blog-publishing-setup/">My Static Blog Publishing Setup and an Apology to RSS Subscribers</a></span><br>
+<span>2022-03-14 &middot; <a href="eero/">Setting Up a Pi-hole Server with Eero</a></span><br>
+<span>2022-03-12 &middot; <a href="jelly/">Transferring Media from macOS to a Jellyfin Server (Raspberry Pi 4)</a></span><br>
+<span>2022-02-23 &middot; <a href="february-updates/">February 2022 Update</a></span><br>
+<span>2022-02-03 &middot; <a href="poormans-comment-system/">My Cheapskate Commenting System</a></span><br>
+<span>2022-01-28 &middot; <a href="macos-convert-to-html/">Convert Files to HTML with macOS Automator Quick Actions</a></span><br>
+<span>2022-01-06 &middot; <a href="future-os-google/">Chrome OS Could Become the Future Leader of Computing</a></span><br>
+<span>2021-12-17 &middot; <a href="use-text-not-icons/">Icons Should be Complementary - Text is Always Better</a></span><br>
+<span>2021-12-06 &middot; <a href="jekyll-sourcehut/">Hosting a Jekyll Site on Sourcehut</a></span><br>
+<span>2021-12-03 &middot; <a href="netlify-urls/">Using Netlify for Dynamic URL Redirects</a></span><br>
+<span>2021-11-25 &middot; <a href="minor-website-changes/">Using a New Domain and Switching Static Hosts</a></span><br>
+<span>2021-11-09 &middot; <a href="default-html-style-updates/">Modern Improvements for Default Browser Styles</a></span><br>
+<span>2021-11-03 &middot; <a href="css-js-mistake/">A Reality Where CSS and JavaScript Don't Exist</a></span><br>
+<span>2021-10-28 &middot; <a href="pihole-cloudflare/">Setting Up 1.1.1.1 for Families on a Pi-Hole</a></span><br>
+<span>2021-10-15 &middot; <a href="batch-webp-conversion/">Batch Converting Images to webp with macOS Automator</a></span><br>
+<span>2021-09-23 &middot; <a href="safari-extensions-catalina-patcher/">Enabling Safari Extensions with the macOS Catalina Patcher</a></span><br>
+<span>2021-09-08 &middot; <a href="performance-focused-wordpress-theme/">Create a Performance-Focused WordPress Blog</a></span><br>
+<span>2021-08-13 &middot; <a href="pi-400-internal-ssd/">Stuffing an SSD Inside the Raspberry Pi 400</a></span><br>
+<span>2021-07-24 &middot; <a href="sharing-the-things-we-use/">Sharing The Things We Use</a></span><br>
+<span>2021-06-20 &middot; <a href="ps4-download-ui/">PS4 Download UI with Pure CSS</a></span><br>
+<span>2021-06-07 &middot; <a href="css-slope-graphs/">CSS Slope Graphs</a></span><br>
+<span>2021-05-29 &middot; <a href="soma-terminal-css/">SOMA Inspired Terminal Display with CSS</a></span><br>
+<span>2021-05-19 &middot; <a href="personal-website-opinions/">My Changing Opinion on Personal Website Design</a></span><br>
+<span>2021-04-27 &middot; <a href="shiny-css-buttons/">Shiny, Animated CSS Buttons</a></span><br>
+<span>2021-04-22 &middot; <a href="phpetite/">89 Blog Posts in a Single HTML File</a></span><br>
+<span>2021-04-13 &middot; <a href="macos-icon-css/">Create a Mac App Icon with Pure HTML and CSS</a></span><br>
+<span>2021-04-12 &middot; <a href="lazy-dev-dark-mode/">The Lazy Developer's Dark Mode</a></span><br>
+<span>2021-03-25 &middot; <a href="load-image-on-click/">Click to Load Website Images</a></span><br>
+<span>2021-03-11 &middot; <a href="introducing-pageroast/">Introducing PageRoast</a></span><br>
+<span>2021-02-25 &middot; <a href="launching-thriftyname/">ThriftyName: $5 Brand Names</a></span><br>
+<span>2021-02-02 &middot; <a href="self-hosting-fathom/">Self-Hosting Fathom Analytics with DigitalOcean</a></span><br>
+<span>2021-01-19 &middot; <a href="fathom-analytics-netlify/">Setting Up Fathom Analytics with Netlify</a></span><br>
+<span>2021-01-13 &middot; <a href="introducing-notez/">Introducing Notez</a></span><br>
+<span>2021-01-05 &middot; <a href="animated-toggle-tabs/">Animated Radio Tab Toggles</a></span><br>
+<span>2020-12-28 &middot; <a href="disabling-comments-in-wordpress/">Disabling Comments in WordPress</a></span><br>
+<span>2020-12-08 &middot; <a href="flexbox-bar-graphs/">Pure CSS Bar Graphs with Graceful Mobile Fallbacks</a></span><br>
+<span>2020-12-04 &middot; <a href="obvious-js-injection-fallback/">Obvious Javascript 'Injection' Fallback</a></span><br>
+<span>2020-11-09 &middot; <a href="bidirectional-scrolling/">Bidirectional Scrolling: Why Not Both?</a></span><br>
+<span>2020-10-19 &middot; <a href="menu-toggle-css/">Menu Toggle with Pure CSS</a></span><br>
+<span>2020-10-07 &middot; <a href="poor-mans-full-bleed/">Poor Man's CSS Full-Bleed Layout</a></span><br>
+<span>2020-09-29 &middot; <a href="simple-jekyll-navigation/">Simple Navigation Setup in Jekyll 3.9.0</a></span><br>
+<span>2020-09-16 &middot; <a href="cheap-portable-pi/">Portable Pi: Cheap Raspberry Pi Zero Hacker Terminal</a></span><br>
+<span>2020-09-09 &middot; <a href="over-engineering-an-oil-tank/">Over-Engineering an Oil Tank Gauge</a></span><br>
+<span>2020-09-02 &middot; <a href="my-pi-desktop/">My Raspberry Pi Desktop</a></span><br>
+<span>2020-08-16 &middot; <a href="linux-mint-macbook-air/">Linux Mint MacBook Air Setup</a></span><br>
+<span>2020-08-13 &middot; <a href="hello-jekyll/">Goodbye WordPress, Hello Jekyll (Again)</a></span><br>
+<span>2020-07-07 &middot; <a href="improving-githubs-new-design/">Improving Github's New Design</a></span><br>
+<span>2020-06-22 &middot; <a href="keynote-slides-css/">Keynote Slides with Pure CSS</a></span><br>
+<span>2020-06-14 &middot; <a href="audio-hotkeys-on-linux-mint/">Audio Hotkeys on Linux Mint</a></span><br>
+<span>2020-06-04 &middot; <a href="quick-dirty-theme-switcher/">Quick and Dirty Theme Switcher</a></span><br>
+<span>2020-05-13 &middot; <a href="mini-interactive-keyboard-with-pure-css/">Mini Interactive Keyboard with Pure CSS</a></span><br>
+<span>2020-05-06 &middot; <a href="localwp-fedora/">Fixing LocalWP on Fedora 32</a></span><br>
+<span>2020-05-05 &middot; <a href="wp-enqueue-for-beginners/">WP Enqueue for Beginners</a></span><br>
+<span>2020-04-29 &middot; <a href="fake-3d-elements-with-css/">Faking 3D Elements with CSS</a></span><br>
+<span>2020-03-31 &middot; <a href="stripe-menu-css/">Stripe Menu Dropdowns (CSS)</a></span><br>
+<span>2020-03-18 &middot; <a href="base64-all-the-things/">Base64 All The Things! (Sometimes)</a></span><br>
+<span>2020-02-07 &middot; <a href="learning-to-floss/">How to "FLOSS" as a Web Designer</a></span><br>
+<span>2020-01-07 &middot; <a href="chromebook-web-dev/">Web Development on a $200 Chromebook</a></span><br>
+<span>2019-11-29 &middot; <a href="one-css-property/">Billing for One CSS Change</a></span><br>
+<span>2019-11-13 &middot; <a href="default-brower-forms/">Very Basic Form Styling</a></span><br>
+<span>2019-11-01 &middot; <a href="improving-tufte-jekyll/">Improving Tufte CSS for Jekyll</a></span><br>
+<span>2019-10-06 &middot; <a href="sticky-elements/">Stop Using Sticky Navigation on Mobile</a></span><br>
+<span>2019-09-28 &middot; <a href="being-efficient/">Being More Efficient as a Designer and Developer</a></span><br>
+<span>2019-09-09 &middot; <a href="plain-text-emails/">Plain Text Emails, Please</a></span><br>
+<span>2019-07-30 &middot; <a href="dynamic-checkboxes/">Dynamic Checkboxes</a></span><br>
+<span>2019-07-17 &middot; <a href="empty-table-cells/">Styling Empty Table Cells</a></span><br>
+<span>2019-07-05 &middot; <a href="html5-validator-badge/">Using HTML Validator Badges Again</a></span><br>
+<span>2019-06-25 &middot; <a href="they-wont-wait/">They Won't Wait: A Warning for Slow Websites</a></span><br>
+<span>2019-06-20 &middot; <a href="publish-with-jekyll/">Publishing Simple Books With Jekyll</a></span><br>
+<span>2019-06-14 &middot; <a href="hamburger-menu-alternative/">Using Hamburger Menus? Try Sausage Links</a></span><br>
+<span>2019-06-11 &middot; <a href="tables/">Making Tables Responsive With Minimal CSS</a></span><br>
+<span>2019-06-06 &middot; <a href="html-like-1999/">Write HTML Like It's 1999</a></span><br>
+<span>2019-06-04 &middot; <a href="user-select/">Using User-Select</a></span><br>
+<span>2019-05-29 &middot; <a href="news-websites-are-dumpster-fires/">News Websites Are Dumpster Fires</a></span><br>
+<span>2019-05-22 &middot; <a href="text-align-justify/">Text Align: Justify</a></span><br>
+<span>2019-05-15 &middot; <a href="improving-receipt-ux/">Improving Receipt UX</a></span><br>
+<span>2019-05-09 &middot; <a href="cut-your-forms-in-half/">Cut Your Forms in Half</a></span><br>
+<span>2019-05-03 &middot; <a href="first-letter/">First Letter Pseudo Element</a></span><br>
+<span>2019-04-26 &middot; <a href="minimal-css-menu/">Minimal CSS: Dropdown Menu</a></span><br>
+<span>2019-04-23 &middot; <a href="character-unit/">CSS Character Unit</a></span><br>
+<span>2019-04-20 &middot; <a href="browser-history-sucks/">Browser History Sucks</a></span><br>
+<span>2019-04-15 &middot; <a href="still-using-jquery/">Yes, I Still Use jQuery</a></span><br>
+<span>2019-04-13 &middot; <a href="current-color/">CSS Value: `currentColor`</a></span><br>
+<span>2019-04-05 &middot; <a href="ndenting-text-with-css/">CSS: Indenting Text</a></span><br>
+<span>2019-03-26 &middot; <a href="simple-does-not-mean-ugly/">Simple Does Not Mean Ugly</a></span><br>
+<span>2019-03-25 &middot; <a href="skip-to-content/">Skip to Content Button</a></span><br>
+<span>2019-03-13 &middot; <a href="form-ui-improvements/">Prescription Form UI Improvements</a></span><br>
+<span>2019-02-27 &middot; <a href="animated-card-tiles/">Animated Card Tiles</a></span><br>
+<span>2019-02-18 &middot; <a href="easy-toggle-switches/">Easy Toggle Switches</a></span><br>
+<span>2019-02-15 &middot; <a href="super-mario-blocks-css/">Super Mario Blocks in CSS</a></span><br>
+<span>2019-02-05 &middot; <a href="proper-ui-hierarchy/">Proper UI Hierarchy</a></span><br>
+<span>2019-01-28 &middot; <a href="tabbed-content/">Tabbed Content Without JavaScript</a></span><br>
+<span>2019-01-21 &middot; <a href="easy-custom-radio-inputs/">Easy Custom Radio Inputs</a></span><br>
+<span>2019-01-15 &middot; <a href="basic-gulp-build-for-sass/">Basic Gulp Build for Sass</a></span><br>
+<span>2019-01-08 &middot; <a href="better-box-shadows/">Better Box Shadows</a></span><br>
+<span>2019-01-06 &middot; <a href="over-nesting/">Over-Nesting</a></span><br>
+<span>2018-12-19 &middot; <a href="jsincss-parent-selector/">Using Parent Selectors in CSS</a></span><br>
+<span>2018-11-28 &middot; <a href="width-vs-flex-basis/">Width or Flex-Basis?</a></span><br>
+<span>2018-11-22 &middot; <a href="flexbox-grid/">Adaptable Flexbox Grid</a></span><br>
+<span>2018-10-18 &middot; <a href="self-hosted-blogs/">What Happened to Self-Hosted Blogs?</a></span><br>
+<span>2018-09-28 &middot; <a href="multiple-css-background-images/">Using Multiple CSS Background Images</a></span><br>
+<span>2018-09-20 &middot; <a href="pure-css-simple-dropdown-plugin/">Pure CSS Simple Dropdown Plugin</a></span><br>
+<span>2018-09-07 &middot; <a href="simple-accessibility/">Simple Accessibility</a></span><br>
+<span>2018-08-07 &middot; <a href="setting-up-free-ssl/">Setting Up a Free SSL</a></span><br>
+<span>2018-04-16 &middot; <a href="css-video-backgrounds/">CSS Video Backgrounds</a></span><br>
+<span>2018-03-24 &middot; <a href="css-variables/">CSS Variables</a></span><br>
+<span>2018-02-12 &middot; <a href="stay-hungry/">Stay Hungry</a></span><br>
+<span>2018-01-25 &middot; <a href="open-source-typeface-pairings/">Open Source Typeface Pairings</a></span><br>
+<span>2018-01-14 &middot; <a href="et-jekyll-theme/">ET-Jekyll Theme</a></span><br>
+<span>2017-11-20 &middot; <a href="chasing-performance/">Chasing Performance</a></span><br>
+<span>2017-11-01 &middot; <a href="death-of-personality/">The Death of Personality</a></span><br>
+<span>2017-10-10 &middot; <a href="design-review-dropbox/">Unsolicited Design Review - Dropbox</a></span><br>
+<span>2017-09-07 &middot; <a href="goodbye-css-preprocessors/">Goodbye CSS Preprocessors</a></span><br>
+<span>2017-07-10 &middot; <a href="dts/">Designers Need Thicker Skin</a></span><br>
+<span>2016-11-15 &middot; <a href="te/">The Wonders of Text Ellipsis</a></span><br>
+<span>2016-06-28 &middot; <a href="aui/">Aqua UI CSS Buttons</a></span><br>
+</div>
<footer role="contentinfo">
<h2>Menu Navigation</h2>
<ul id="menu">
diff --git a/build/posts.tsv b/build/posts.tsv
index e3aba89..35c8ddc 100644
--- a/build/posts.tsv
+++ b/build/posts.tsv
@@ -5,8 +5,8 @@ posts/windows.md Setting Up Jekyll on Windows
posts/width-vs-flex-basis.md Width or Flex-Basis?
posts/webfonts.md Stop Using Custom Web Fonts
posts/vscode.md Running VSCode in Chromium on OpenBSD
-posts/use-text-not-icons.md Icons Should be Complementary - Text is Always Better
posts/user-select.md Using User-Select
+posts/use-text-not-icons.md Icons Should be Complementary - Text is Always Better
posts/they-wont-wait.md They Won't Wait: A Warning for Slow Websites
posts/text-align-justify.md Text Align: Justify
posts/te.md The Wonders of Text Ellipsis
@@ -46,8 +46,8 @@ posts/pure-css-simple-dropdown-plugin.md Pure CSS Simple Dropdown Plugin
posts/publish-with-jekyll.md Publishing Simple Books With Jekyll
posts/ps4-download-ui.md PS4 Download UI with Pure CSS
posts/proper-ui-hierarchy.md Proper UI Hierarchy
-posts/poor-mans-full-bleed.md Poor Man's CSS Full-Bleed Layout
posts/poormans-comment-system.md My Cheapskate Commenting System
+posts/poor-mans-full-bleed.md Poor Man's CSS Full-Bleed Layout
posts/plain-text-emails.md Plain Text Emails, Please
posts/pihole-cloudflare.md Setting Up 1.1.1.1 for Families on a Pi-Hole
posts/pi-400-internal-ssd.md Stuffing an SSD Inside the Raspberry Pi 400
@@ -58,8 +58,8 @@ posts/pblog.md Yet Another Static Site Generator Switch
posts/paid-mac-apps.md Happily Paying For macOS Apps
posts/over-nesting.md Over-Nesting
posts/over-engineering-an-oil-tank.md Over-Engineering an Oil Tank Gauge
-posts/open-source-typeface-pairings.md Open Source Typeface Pairings
posts/openring.md Building openring with Jekyll Build
+posts/open-source-typeface-pairings.md Open Source Typeface Pairings
posts/one-thing.md My Coffee Maker Just Makes Coffee
posts/one-css-property.md Billing for One CSS Change
posts/obvious-js-injection-fallback.md Obvious Javascript 'Injection' Fallback
@@ -93,16 +93,16 @@ posts/launching-thriftyname.md ThriftyName: $5 Brand Names
posts/keynote-slides-css.md Keynote Slides with Pure CSS
posts/jsincss-parent-selector.md Using Parent Selectors in CSS
posts/jelly.md Transferring Media from macOS to a Jellyfin Server (Raspberry Pi 4)
-posts/jekyll-sourcehut.md Hosting a Jekyll Site on Sourcehut
posts/jekyll.md Setup Jekyll from Scratch on a New Linux System
+posts/jekyll-sourcehut.md Hosting a Jekyll Site on Sourcehut
posts/introducing-pageroast.md Introducing PageRoast
posts/introducing-notez.md Introducing Notez
posts/improving-tufte-jekyll.md Improving Tufte CSS for Jekyll
posts/improving-receipt-ux.md Improving Receipt UX
posts/improving-githubs-new-design.md Improving Github's New Design
+posts/html5-validator-badge.md Using HTML Validator Badges Again
posts/html-like-1999.md Write HTML Like It's 1999
posts/html-dark-mode.md HTML Dark Mode
-posts/html5-validator-badge.md Using HTML Validator Badges Again
posts/hello-jekyll.md Goodbye WordPress, Hello Jekyll (Again)
posts/heif.md Converting HEIF Images with macOS Automator
posts/hamburgers.md Stop Using Hamburger Menus (Sometimes)
@@ -161,5 +161,7 @@ posts/animated-card-tiles.md Animated Card Tiles
posts/alpine.md Adventures in Creating a Minimal Alpine Linux Installer
posts/af.md Avoiding Featurism
posts/adguard.md Setting Up AdGuard Home with Eero
+posts/Switching_Things_Over_to_ikiwiki.md Switching Things Over to ikiwiki
+posts/My_Text_Editor_Is_Not_Open_Source.md My Text Edtior is Not Open Source
posts/1kb.md Making a Website Under 1kB
posts/$10.md Do You Have an Extra $10?
diff --git a/posts/My_Text_Editor_Is_Not_Open_Source.md b/posts/My_Text_Editor_Is_Not_Open_Source.md
new file mode 100644
index 0000000..76b05f0
--- /dev/null
+++ b/posts/My_Text_Editor_Is_Not_Open_Source.md
@@ -0,0 +1,59 @@
+# My Text Edtior is Not Open Source
+
+2024-01-02
+
+I've been using Sublime Text on and off for longer than I can remember. I think Sublime has been around since the start of my "real" career over 10 years ago, but I could be mistaken[^1]. It certainly *feels* that long. And in that time I have never gotten upset with Sublime. I've never rage quit or ran into an issue of Sublime not being able to *do the thing I wanted it to do*. As much of a cliche it may sound: it just works.
+
+Even when I switch editors (VSCode, Geany, kitty+vim etc.) for a period of time, I find myself always coming back to Sublime. The only reason I try other editors is simply that: to try them. Maybe that's why these editors don't click with me. Maybe I'm giving Sublime an unfair advantage since I'm simply "testing" other editors, rather than looking for a solid alternative.
+
+And don't get me wrong, I understand *why* editors like VSCode are extremely popular. VSCode has a massive ecosystem and new plugins are generally developed for that editor before all others. Finding solutions to problems online is very easy, since it is so popular. But best of all - it's open source[^2].
+
+So why am I using a *non*-open source editor? (Spoilers: because it's a great editor)
+
+## "A Proprietary Editor - How Could You?!"
+
+I know, I know. If you're familiar with me or the things I write about it must seem odd that I would willingly use proprietary software over open source. This is something I struggle with constantly day-to-day in the realm of "personal tech". I find with age I become more open-minded to having a diverse range of software and hardware choices. Open source is best in *concept* but not always best in practice.
+
+The problem is that Sublime is just such a *great* editor. I can't ignore quality and refuse to use good software solely based on it's licensing. A few personal things I love about Sublime:
+
+- Incredibly fast
+- Handles massive files without breaking a sweat
+- Minimal resource footprint (ex. uses <0.1% CPU working on huge projects)
+- Large ecosystem of plugins/themes
+- No Electron
+
+Other editors can certainly check off a few of those boxes as well, but you'd be hard-pressed to find one that checks off them all.
+
+## Being a Cheapskate
+
+I must confess something that I think most Sublime users are guilty of: I've never [bought a license](https://www.sublimehq.com/store/text). I've installed and used Sublime on countless machines, on multiple operating systems from Linux to Windows to MacOS. That `Unregistered` text in the top right application bar has been with me since the beginning. But that in no longer the case.
+
+**I finally purchased a license.** I bundled it with [Sublime Merge](https://www.sublimemerge.com/), so it ended up costing me $168 USD. When I initially looked at that price tag I must admit I was tempted to close the browser tab and forget the whole thing. But then I realized I have been using this editor *free of charge* for over 10 years. (Not to mention using Sublime Merge for quite some time as well!)
+
+So I did a little math:
+
+ $168 / 10 years = $16.80
+
+Looking at it in that perspective, it's actually a great deal. Not to mention they have very respectable terms for their licenses:
+
+> Personal licenses come with 3 years of updates. After 3 years, you'll be able to continue to use the last version released within 3 years of purchase (in other words, licenses do not expire). Any versions released 3 years or more after the purchase date will require a paid upgrade to use.
+
+> Individual licenses are valid for 3 years of updates, but do not expire after 3 years. Only if you wish to use newer versions will an upgrade fee be required.
+
+> Licenses are per-user, so you're welcome to use the one license on all computers and operating systems where you are the primary user.
+
+I won't copy everything from their main [FAQ page](https://www.sublimehq.com/sales_faq) but as you can see it is very reasonable. I also get to feel decent for supporting developers who make very good software.
+
+## Final Notes
+
+This post is not meant to convince you to switch or anything of that nature. Use what works for you! I just wanted to share my own personal preference when it came to my main text editor. Maybe this will also convince "hardcore" open source people (like me!) to realize it is *okay* to pay for software sometimes...
+
+---
+
+I should be very clear about something: this post *is not an advertisement*. I have not received any money or "kick backs" to write about my happy times with Sublime. This is purely my own opinion that I wanted to share with the internet!
+
+BTW if anyone from SublimeHQ happens to come across this post: PLEASE look into building a "native" version of Sublime Text for FreeBSD/OpenBSD. I (and many others) would be forever grateful!
+
+[^1]: Sublime does mention copyright since 2006...
+
+[^2]: Not the pre-packaged Microsoft version
diff --git a/posts/Switching_Things_Over_to_ikiwiki.md b/posts/Switching_Things_Over_to_ikiwiki.md
new file mode 100644
index 0000000..8d0cbde
--- /dev/null
+++ b/posts/Switching_Things_Over_to_ikiwiki.md
@@ -0,0 +1,29 @@
+# Switching Things Over to ikiwiki
+
+2023-12-17
+
+I've done it again. My personal website is no longer generated with [barf](https://barf.btxx.org) but is instead built on top of ikiwiki. The old RSS feed ([btxx.org/atom.xml](https://btxx.org/atom.xml)) still exists but will no longer receive updates. The new feed can be found on the bottom of the homepage ([index.rss](/index.rss))
+
+## Why a Wiki?
+
+I love the simplicity of a minimal blog, which is why I always gravitated towards purely "static" site builders. Over time though, I found two minor issues that slowly chipped away at me: ease-of-use and flexibility.
+
+I had a vision, back when I began tinkering with my own place on the web, of building out my own personal "resource center" or wiki. Often times through work or personal projects I stumble into little problems that I need to solve. Most times I find a solution and move on with my life. The problem with this approach is *lack of documentation*.
+
+What if I come across that issue at a later point in time? Will I even remember my old solution? Probably not. So, I've made the switch to a more flexible, personal wiki (which also happens to be a blog!)
+
+## Text Editors, Terminals, and Web UI - Oh My!
+
+ikiwiki comes packed with multiple ways to publish pages and posts. Since it is built with ikiwiki and git version control in mind, you have the ability to push out changes directly to your server similar to that of pre-existing static site generators. It also gives you the choice to `ssh` directly into your server and publish content from your terminal if you so desire.
+
+Best of all, ikiwiki offers a web UI interface. This is something I have long missed since leaving "dynamic" websites behind.
+
+## But Wait, There's More!
+
+Did I mention that this site now supports a built-in search form *and* a comment system? I've been wanting comments or discussions directly on my personal web space for the longest time and now I do! The search function is really an added bonus, mostly for my own personal use to find something I documented quickly.
+
+## Broken Links and Bugs
+
+I've done my best to properly forward all original posts and pages to their new URLs - but I'm sure some things will be overlooked. So please feel free to reach out and let me know if anything seems broken.
+
+I look forward to growing out this "platform" and seeing how it impacts my workflow writing documentation / blog posts. I hope you'll come along for the ride!