<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
  <channel>
    <title>Greg Donald</title>
    <link>https://gregdonald.com/</link>
    <description>Greg Donald</description>
    <lastBuildDate>Sat, 03 Oct 2026 00:00:00 +0000</lastBuildDate>
    <item>
      <title>Loose-Leaf Is Not Coming Back</title>
      <link>https://gregdonald.com/pages/loose-leaf-is-not-coming-back</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/loose-leaf-is-not-coming-back</guid>
      <pubDate>Sat, 03 Oct 2026 00:00:00 +0000</pubDate>
      <description>No one has to like the paperclip factory, but pretending the world is going back to loose-leaf isn’t a strategy.</description>
    </item>
    <item>
      <title>Serve a home server through a VPS with WireGuard and nginx</title>
      <link>https://gregdonald.com/pages/serve-a-home-server-through-a-vps-with-wireguard-and-nginx</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/serve-a-home-server-through-a-vps-with-wireguard-and-nginx</guid>
      <pubDate>Mon, 24 Aug 2026 00:00:00 +0000</pubDate>
      <description>I have a server rack full of servers in my garage. Renting CPU, memory, and disk space from a hosting provider means paying for hardware I already own. Instead, I run the sites on my own machines…</description>
    </item>
    <item>
      <title>Raku Is the Most Advanced Scripting Language</title>
      <link>https://gregdonald.com/pages/raku-is-the-most-advanced-scripting-language</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/raku-is-the-most-advanced-scripting-language</guid>
      <pubDate>Mon, 10 Aug 2026 00:00:00 +0000</pubDate>
      <description>A while back I wrote about why Raku has yet to catch on in the mainstream. Nothing in that post was about the language itself, and I want to be clear about what I think of the language itself: Raku…</description>
    </item>
    <item>
      <title>LearnRaku.dev is live</title>
      <link>https://gregdonald.com/pages/learnraku-dev-is-live</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/learnraku-dev-is-live</guid>
      <pubDate>Tue, 21 Jul 2026 00:00:00 +0000</pubDate>
      <description>I just released LearnRaku.dev into production. It is an interactive, browser-based trainer for learning Raku. You get an exercise, a failing spec, and an editor. You write code until the spec…</description>
    </item>
    <item>
      <title>Dogfooding My Own Raku MVC Web Framework</title>
      <link>https://gregdonald.com/pages/dogfooding-my-own-raku-mvc-web-framework</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/dogfooding-my-own-raku-mvc-web-framework</guid>
      <pubDate>Sat, 11 Jul 2026 00:00:00 +0000</pubDate>
      <description>A few weeks ago I blog&apos;d about shipping behave.dev, the first Raku app I ever put into production. This blog post is an even bigger deal to me personally. The site you are reading right now,…</description>
    </item>
    <item>
      <title>Shipping My First Raku App</title>
      <link>https://gregdonald.com/pages/shipping-my-first-raku-app</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/shipping-my-first-raku-app</guid>
      <pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate>
      <description>Shipping My First Raku App: behave.dev</description>
    </item>
    <item>
      <title>Flying at Peeler Park, May 2nd, 2026</title>
      <link>https://gregdonald.com/pages/flying-at-peeler-park-may-2nd-2026</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/flying-at-peeler-park-may-2nd-2026</guid>
      <pubDate>Sat, 02 May 2026 00:00:00 +0000</pubDate>
      <description>Flying at Peeler Park, May 2nd, 2026</description>
    </item>
    <item>
      <title>Blackjack in Clojure</title>
      <link>https://gregdonald.com/pages/blackjack-in-clojure</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/blackjack-in-clojure</guid>
      <pubDate>Sat, 18 Apr 2026 00:00:00 +0000</pubDate>
      <description>I wrote Blackjack in Clojure.</description>
    </item>
    <item>
      <title>The anti-AI people are angry again</title>
      <link>https://gregdonald.com/pages/the-anti-ai-people-are-angry-again</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/the-anti-ai-people-are-angry-again</guid>
      <pubDate>Sun, 11 Jan 2026 00:00:00 +0000</pubDate>
      <description>I’m seeing a hilarious new time-wasting trend emerging: software engineers are making &quot;naughty lists&quot; of software &quot;tainted&quot; by AI/LLM involvement, seemingly to shame authors who use AI-assisted…</description>
    </item>
    <item>
      <title>Blackjack for VSCode</title>
      <link>https://gregdonald.com/pages/blackjack-for-vscode</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/blackjack-for-vscode</guid>
      <pubDate>Sat, 27 Dec 2025 00:00:00 +0000</pubDate>
      <description>I wrote an extension to play the classic game of Blackjack inside VS Code.</description>
    </item>
    <item>
      <title>Console Blackjack in Java</title>
      <link>https://gregdonald.com/pages/console-blackjack-in-java</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/console-blackjack-in-java</guid>
      <pubDate>Mon, 27 Jan 2025 00:00:00 +0000</pubDate>
      <description>I wrote a console version of Blackjack in Java:</description>
    </item>
    <item>
      <title>Console Blackjack in GNU Smalltalk</title>
      <link>https://gregdonald.com/pages/console-blackjack-in-gnu-smalltalk</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/console-blackjack-in-gnu-smalltalk</guid>
      <pubDate>Wed, 25 Dec 2024 00:00:00 +0000</pubDate>
      <description>I wrote a console version of Blackjack in GNU Smalltalk:</description>
    </item>
    <item>
      <title>The Rise of Autonomous Code</title>
      <link>https://gregdonald.com/pages/the-rise-of-autonomous-code</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/the-rise-of-autonomous-code</guid>
      <pubDate>Sat, 23 Nov 2024 00:00:00 +0000</pubDate>
      <description>The idea of code that can fix itself represents a monumental advancement in artificial intelligence (AI) and software development. However, this innovation has a dark counterpart: autonomous…</description>
    </item>
    <item>
      <title>A Tribute To My Friend John</title>
      <link>https://gregdonald.com/pages/a-tribute-to-my-friend-john</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/a-tribute-to-my-friend-john</guid>
      <pubDate>Sun, 17 Nov 2024 00:00:00 +0000</pubDate>
      <description>John was usually a man of few words and even fewer visitors. He&apos;d kept to himself for as long as I&apos;d known him - a grumpy, stubbornly solitary guy whose real passion was the hobby of remote control…</description>
    </item>
    <item>
      <title>Assessing the Environmental and Human Cost of AI</title>
      <link>https://gregdonald.com/pages/assessing-the-environmental-and-human-cost-of-ai</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/assessing-the-environmental-and-human-cost-of-ai</guid>
      <pubDate>Thu, 14 Nov 2024 00:00:00 +0000</pubDate>
      <description>The advent of large language models (LLMs) has revolutionized the fields of artificial intelligence, machine learning, and natural language processing. LLMs, which include tools like OpenAI&apos;s…</description>
    </item>
    <item>
      <title>Sam Harris, Robert Sapolsky, Dan Dennett, and Rush Walk Into a Bar…</title>
      <link>https://gregdonald.com/pages/sam-harris-robert-sapolsky-dan-dennett-and-rush-walk-into-a-bar</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/sam-harris-robert-sapolsky-dan-dennett-and-rush-walk-into-a-bar</guid>
      <pubDate>Sun, 10 Nov 2024 00:00:00 +0000</pubDate>
      <description>Do We Really Have Free Will?</description>
    </item>
    <item>
      <title>Console Blackjack in Zig</title>
      <link>https://gregdonald.com/pages/console-blackjack-in-zig</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/console-blackjack-in-zig</guid>
      <pubDate>Sat, 19 Oct 2024 00:00:00 +0000</pubDate>
      <description>I wrote a console version of Blackjack in Zig:</description>
    </item>
    <item>
      <title>The 7 stages of accepting that you probably do not have free will</title>
      <link>https://gregdonald.com/pages/the-7-stages-of-accepting-that-you-probably-do-not-have-free-will</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/the-7-stages-of-accepting-that-you-probably-do-not-have-free-will</guid>
      <pubDate>Tue, 15 Oct 2024 00:00:00 +0000</pubDate>
      <description>1. Shock / Disbelief &quot;Wait, what do you mean I don’t have free will?&quot; Encountering the idea for the first time can be unsettling. Many people are startled, as the belief in personal freedom feels…</description>
    </item>
    <item>
      <title>I Passed the CISSP Exam</title>
      <link>https://gregdonald.com/pages/i-passed-the-cissp-exam</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/i-passed-the-cissp-exam</guid>
      <pubDate>Tue, 27 Aug 2024 00:00:00 +0000</pubDate>
      <description>Today, I finally conquered the CISSP exam—a milestone I’ve been working toward recently. It’s been a long journey filled with lots of late-night study, some anxiety near the end, and a whole lot of…</description>
    </item>
    <item>
      <title>The Pentester Blueprint</title>
      <link>https://gregdonald.com/pages/the-pentester-blueprint</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/the-pentester-blueprint</guid>
      <pubDate>Wed, 31 Jul 2024 00:00:00 +0000</pubDate>
      <description>“The Pentester Blueprint” is a great guide for anyone interested in pursuing a career in penetration testing or cybersecurity. The book, co-authored by Kim Crawley and Phillip L. Wylie, provides a…</description>
    </item>
    <item>
      <title>Raku: Why It Hasn&apos;t Caught On</title>
      <link>https://gregdonald.com/pages/raku-why-it-hasnt-caught-on</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/raku-why-it-hasnt-caught-on</guid>
      <pubDate>Sun, 28 Jul 2024 00:00:00 +0000</pubDate>
      <description>I&apos;ve been watching Raku since it was still Perl 6, back when Larry Wall gave his State of the Onion talk in 2000. Fifteen years from announcement to 1.0. You can defend the timeline; they were…</description>
    </item>
    <item>
      <title>Do Not &quot;Switch To Linux&quot;</title>
      <link>https://gregdonald.com/pages/do-not-switch-to-linux</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/do-not-switch-to-linux</guid>
      <pubDate>Sat, 13 Jul 2024 00:00:00 +0000</pubDate>
      <description>Using Linux for your first time can be very exciting. You suddenly gain access to a wealth of customization options, all the free and open-source software you could ever want or need, and access to…</description>
    </item>
    <item>
      <title>Subsequent Data Breaches</title>
      <link>https://gregdonald.com/pages/subsequent-data-breaches</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/subsequent-data-breaches</guid>
      <pubDate>Mon, 08 Jul 2024 00:00:00 +0000</pubDate>
      <description>The perspective that once personal identifiable information (PII) or personal health information (PHI) has been leaked, subsequent leaks are less significant is a common one. However, there are…</description>
    </item>
    <item>
      <title>Note Taking Applications</title>
      <link>https://gregdonald.com/pages/note-taking-applications</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/note-taking-applications</guid>
      <pubDate>Fri, 14 Jun 2024 00:00:00 +0000</pubDate>
      <description>As I delve deeper into the field of cybersecurity and penetration testing I’ve discovered that if you search Google or Youtube for “penetration testing note-taking applications” you’ll see there are…</description>
    </item>
    <item>
      <title>Why Use Strong Passwords?</title>
      <link>https://gregdonald.com/pages/why-use-strong-passwords</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/why-use-strong-passwords</guid>
      <pubDate>Mon, 13 May 2024 00:00:00 +0000</pubDate>
      <description>During my penetration testing studies I’ve come to realize the need for strong passwords is now more important than ever. I only realized recently just how easy it is to crack a weak password.</description>
    </item>
    <item>
      <title>Automate Linux Kernel Builds</title>
      <link>https://gregdonald.com/pages/automate-linux-kernel-builds</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/automate-linux-kernel-builds</guid>
      <pubDate>Sun, 25 Feb 2024 00:00:00 +0000</pubDate>
      <description>I wrote a small shell script™ to automate building new Linux kernels. I use this to build new kernels on my Debian systems:</description>
    </item>
    <item>
      <title>Hand-on Test-Driven Development Book</title>
      <link>https://gregdonald.com/pages/hand-on-test-driven-development-book</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/hand-on-test-driven-development-book</guid>
      <pubDate>Sun, 17 Dec 2023 00:00:00 +0000</pubDate>
      <description>My new book Hand-on Test-Driven Development Book has been published: https://tddbook.com/.</description>
    </item>
    <item>
      <title>Reorder Rails database migrations files</title>
      <link>https://gregdonald.com/pages/reorder-rails-database-migrations-files</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/reorder-rails-database-migrations-files</guid>
      <pubDate>Sun, 26 Nov 2023 00:00:00 +0000</pubDate>
      <description>On new Rails apps, that are not in production yet, I sometimes like to reorder my database migrations. I wrote a small Ruby script to automate things.</description>
    </item>
    <item>
      <title>Meta-programming a dynamic method inside a dynamic class in Raku and Ruby</title>
      <link>https://gregdonald.com/pages/meta-programming-a-dynamic-method-inside-a-dynamic-class-in-raku-and-ruby</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/meta-programming-a-dynamic-method-inside-a-dynamic-class-in-raku-and-ruby</guid>
      <pubDate>Wed, 02 Aug 2023 00:00:00 +0000</pubDate>
      <description>I wanted to learn to create a dynamically-named method inside a dynamically-named class in Raku. This is what I ended up with:</description>
    </item>
    <item>
      <title>Blackjack written in Elisp</title>
      <link>https://gregdonald.com/pages/blackjack-written-in-elisp</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/blackjack-written-in-elisp</guid>
      <pubDate>Fri, 28 Apr 2023 00:00:00 +0000</pubDate>
      <description>I wrote Blackjack in Elisp. It allows you to play Blackjack in your Emacs editor.</description>
    </item>
    <item>
      <title>Marten, the Crystal web framework</title>
      <link>https://gregdonald.com/pages/marten-the-crystal-web-framework</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/marten-the-crystal-web-framework</guid>
      <pubDate>Sun, 25 Dec 2022 00:00:00 +0000</pubDate>
      <description>Wow, if Django and Rails had a baby it would be Marten, the web framework written in Crystal, https://martenframework.com/.</description>
    </item>
    <item>
      <title>Current State of the Hanami Web Framework</title>
      <link>https://gregdonald.com/pages/current-state-of-the-hanami-web-framework</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/current-state-of-the-hanami-web-framework</guid>
      <pubDate>Sun, 27 Nov 2022 00:00:00 +0000</pubDate>
      <description>About two days ago I built the “bookshelf” app described in the Hanami guide. Hanami is currently missing any sort of “model” layer, as well as any sort of “view” layer, as you might expect to be…</description>
    </item>
    <item>
      <title>MP3 Player written in Ruby using Ruby on Rails</title>
      <link>https://gregdonald.com/pages/mp3-player-written-in-ruby-using-ruby-on-rails</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/mp3-player-written-in-ruby-using-ruby-on-rails</guid>
      <pubDate>Mon, 10 Oct 2022 00:00:00 +0000</pubDate>
      <description>I wrote a simple MP3 player:</description>
    </item>
    <item>
      <title>Debug a Linux Kernel in QEMU</title>
      <link>https://gregdonald.com/pages/debug-a-linux-kernel-in-qemu</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/debug-a-linux-kernel-in-qemu</guid>
      <pubDate>Wed, 15 Sep 2021 00:00:00 +0000</pubDate>
      <description>mkinitramfs -o ../ramdisk.img 5.11.0-34-generic</description>
    </item>
    <item>
      <title>Customize New zsh</title>
      <link>https://gregdonald.com/pages/customize-new-zsh</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/customize-new-zsh</guid>
      <pubDate>Sun, 12 Sep 2021 00:00:00 +0000</pubDate>
      <description>Install packages:</description>
    </item>
    <item>
      <title>PostgreSQL Backup Script</title>
      <link>https://gregdonald.com/pages/postgresql-backup-script</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/postgresql-backup-script</guid>
      <pubDate>Sun, 28 Mar 2021 00:00:00 +0000</pubDate>
      <description>#!/bin/sh</description>
    </item>
    <item>
      <title>IPv4 Subnet Calculator</title>
      <link>https://gregdonald.com/pages/ipv4-subnet-calculator</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/ipv4-subnet-calculator</guid>
      <pubDate>Sun, 14 Feb 2021 00:00:00 +0000</pubDate>
      <description>I built an IPv4 subnet calculator:</description>
    </item>
    <item>
      <title>Console::Blackjack</title>
      <link>https://gregdonald.com/pages/console-blackjack-raku</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/console-blackjack-raku</guid>
      <pubDate>Sat, 23 Jan 2021 00:00:00 +0000</pubDate>
      <description>Console Blackjack for Raku.</description>
    </item>
    <item>
      <title>RetroPie Arcade</title>
      <link>https://gregdonald.com/pages/retropie-arcade</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/retropie-arcade</guid>
      <pubDate>Tue, 19 Jan 2021 00:00:00 +0000</pubDate>
      <description>I built a RetroPie arcade machine. I didn&apos;t record video, but I did take a few pictures along the way.</description>
    </item>
    <item>
      <title>Apache Bench load testing</title>
      <link>https://gregdonald.com/pages/apache-bench-load-testing</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/apache-bench-load-testing</guid>
      <pubDate>Sun, 17 Jan 2021 00:00:00 +0000</pubDate>
      <description>Apache Bench (ab) is a popular command-line tool used for benchmarking the performance of HTTP web servers. Here&apos;s a basic guide on how to use it:</description>
    </item>
    <item>
      <title>Factorio on systemd</title>
      <link>https://gregdonald.com/pages/factorio-on-systemd</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/factorio-on-systemd</guid>
      <pubDate>Sun, 17 Jan 2021 00:00:00 +0000</pubDate>
      <description># adduser factorio</description>
    </item>
    <item>
      <title>Generate new Factorio map</title>
      <link>https://gregdonald.com/pages/generate-new-factorio-map</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/generate-new-factorio-map</guid>
      <pubDate>Sun, 17 Jan 2021 00:00:00 +0000</pubDate>
      <description>su -</description>
    </item>
    <item>
      <title>Cisco CCNA Study :: Home Lab Notes</title>
      <link>https://gregdonald.com/pages/cisco-ccna-study-home-lab-notes</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/cisco-ccna-study-home-lab-notes</guid>
      <pubDate>Sun, 20 Dec 2020 00:00:00 +0000</pubDate>
      <description>####################################################################</description>
    </item>
    <item>
      <title>Console Blackjack in Rust</title>
      <link>https://gregdonald.com/pages/console-blackjack-in-rust</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/console-blackjack-in-rust</guid>
      <pubDate>Sun, 12 Jul 2020 00:00:00 +0000</pubDate>
      <description>I wrote a console version of Blackjack in Rust:</description>
    </item>
    <item>
      <title>Install and setup snmpd on RedHat Enterprise Linux</title>
      <link>https://gregdonald.com/pages/install-and-setup-snmpd-on-redhat-enterprise-linux</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/install-and-setup-snmpd-on-redhat-enterprise-linux</guid>
      <pubDate>Sat, 06 Jun 2020 00:00:00 +0000</pubDate>
      <description>I wanted to access a RHEL machine from Cacti, so I needed to install and configure net-snmp on there first.</description>
    </item>
    <item>
      <title>Install and setup irssi and oidentd on Debian</title>
      <link>https://gregdonald.com/pages/install-and-setup-irssi-and-oidentd-on-debian</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/install-and-setup-irssi-and-oidentd-on-debian</guid>
      <pubDate>Mon, 01 Jun 2020 00:00:00 +0000</pubDate>
      <description>Install irssi and oidentd:</description>
    </item>
    <item>
      <title>Install xfce4 on Debian</title>
      <link>https://gregdonald.com/pages/install-xfce4-on-debian</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/install-xfce4-on-debian</guid>
      <pubDate>Sun, 31 May 2020 00:00:00 +0000</pubDate>
      <description>This is how I install xfce4 on a new Debian:</description>
    </item>
    <item>
      <title>ORM::ActiveRecord</title>
      <link>https://gregdonald.com/pages/orm-activerecord</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/orm-activerecord</guid>
      <pubDate>Mon, 25 May 2020 00:00:00 +0000</pubDate>
      <description>ORM::ActiveRecord is an object-relational mapping module for Raku that mostly follows the Active Record Pattern.</description>
    </item>
    <item>
      <title>Console Blackjack in Perl</title>
      <link>https://gregdonald.com/pages/console-blackjack-in-perl</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/console-blackjack-in-perl</guid>
      <pubDate>Sun, 24 May 2020 00:00:00 +0000</pubDate>
      <description>I wrote a Console version of Blackjack in Perl:</description>
    </item>
    <item>
      <title>BDD::Behave</title>
      <link>https://gregdonald.com/pages/bdd-behave</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/bdd-behave</guid>
      <pubDate>Tue, 05 May 2020 00:00:00 +0000</pubDate>
      <description>A behavior driven development framework for Raku.</description>
    </item>
    <item>
      <title>Template::HAML</title>
      <link>https://gregdonald.com/pages/template-haml</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/template-haml</guid>
      <pubDate>Tue, 05 May 2020 00:00:00 +0000</pubDate>
      <description>HTML Abstraction Markup Language for Raku. A shameless rip-off of Ruby HAML.</description>
    </item>
    <item>
      <title>Selenium::WebDriver::Error::UnknownError</title>
      <link>https://gregdonald.com/pages/selenium-web-driver-error-unknown-error</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/selenium-web-driver-error-unknown-error</guid>
      <pubDate>Mon, 20 Jan 2020 00:00:00 +0000</pubDate>
      <description>I forget this every time I run Rspec on a new Debian. Maybe if I write it down it will help me in the future.</description>
    </item>
    <item>
      <title>Game of Life in C++ using the SDL2</title>
      <link>https://gregdonald.com/pages/game-of-life-in-c++-using-the-sdl2</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/game-of-life-in-c++-using-the-sdl2</guid>
      <pubDate>Fri, 10 Jan 2020 00:00:00 +0000</pubDate>
      <description>I wrote a GUI version of Game of Life in C++ using the SDL2 graphics library:</description>
    </item>
    <item>
      <title>PigPen (dots and boxes) in C++ using the SDL2</title>
      <link>https://gregdonald.com/pages/pigpen-dots-and-boxes-in-c++-using-the-sdl2</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/pigpen-dots-and-boxes-in-c++-using-the-sdl2</guid>
      <pubDate>Wed, 01 Jan 2020 00:00:00 +0000</pubDate>
      <description>I wrote a GUI version of Pig Pen (dots and boxes) in C++ using the SDL2 graphics library:</description>
    </item>
    <item>
      <title>GUI TicTacToe in C++ using the SDL2</title>
      <link>https://gregdonald.com/pages/gui-tictactoe-in-c++-using-the-sdl2</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/gui-tictactoe-in-c++-using-the-sdl2</guid>
      <pubDate>Sat, 21 Dec 2019 00:00:00 +0000</pubDate>
      <description>I wrote a GUI version of TicTacToe in C++ using the SDL2 graphics library:</description>
    </item>
    <item>
      <title>Console Blackjack in Ruby</title>
      <link>https://gregdonald.com/pages/console-blackjack-in-ruby</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/console-blackjack-in-ruby</guid>
      <pubDate>Sat, 09 Nov 2019 00:00:00 +0000</pubDate>
      <description>I wrote a Console version of Blackjack in Ruby:</description>
    </item>
    <item>
      <title>Raku Fizz Buzz</title>
      <link>https://gregdonald.com/pages/raku-fizz-buzz</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/raku-fizz-buzz</guid>
      <pubDate>Fri, 08 Nov 2019 00:00:00 +0000</pubDate>
      <description>for (1..100) {</description>
    </item>
    <item>
      <title>Build Raku from source</title>
      <link>https://gregdonald.com/pages/build-raku-from-source</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/build-raku-from-source</guid>
      <pubDate>Sat, 26 Oct 2019 00:00:00 +0000</pubDate>
      <description>Here&apos;s my shell script for building MoarVM, Not Quite Perl, and Rakudo from source.</description>
    </item>
    <item>
      <title>ORM::ActiveRecord has-many through</title>
      <link>https://gregdonald.com/pages/orm-activerecord-has-many-through</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/orm-activerecord-has-many-through</guid>
      <pubDate>Thu, 24 Oct 2019 00:00:00 +0000</pubDate>
      <description>ORM::ActiveRecord now has support for has-many through relationships.</description>
    </item>
    <item>
      <title>Raku split delimiter can be a list</title>
      <link>https://gregdonald.com/pages/raku-split-delimiter-can-be-a-list</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/raku-split-delimiter-can-be-a-list</guid>
      <pubDate>Sun, 20 Oct 2019 00:00:00 +0000</pubDate>
      <description>Raku&apos;s string split routine accepts a scalar as well as a list for its delimiter.</description>
    </item>
    <item>
      <title>The Perl 6 To Raku Rename</title>
      <link>https://gregdonald.com/pages/the-perl-6-to-raku-rename</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/the-perl-6-to-raku-rename</guid>
      <pubDate>Tue, 15 Oct 2019 00:00:00 +0000</pubDate>
      <description>It has been decided that Perl 6 will be renamed to Raku.</description>
    </item>
    <item>
      <title>Custom Operator - Basic Object Identity</title>
      <link>https://gregdonald.com/pages/custom-operator-basic-object-identity</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/custom-operator-basic-object-identity</guid>
      <pubDate>Sat, 12 Oct 2019 00:00:00 +0000</pubDate>
      <description>It is often the case in object oriented programming you need to compare two objects to see if they are the same. Usually it just means doing a deeper comparison of the attributes on each object.…</description>
    </item>
    <item>
      <title>Raku (Perl 6) Books - Fixed</title>
      <link>https://gregdonald.com/pages/raku-perl-6-books-fixed</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/raku-perl-6-books-fixed</guid>
      <pubDate>Thu, 10 Oct 2019 00:00:00 +0000</pubDate>
      <description>I fixed my Raku (Perl 6) book titles:</description>
    </item>
    <item>
      <title>Roles - an alternate form of class inheritance</title>
      <link>https://gregdonald.com/pages/roles-an-alternate-form-of-class-inheritance</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/roles-an-alternate-form-of-class-inheritance</guid>
      <pubDate>Tue, 08 Oct 2019 00:00:00 +0000</pubDate>
      <description>Roles are collections of methods and attributes that can be mixed into classes. A role provides an alternate form of code reuse from inheritance. Roles are typically mixed in using &quot;does&quot;.</description>
    </item>
    <item>
      <title>Meta-programming capabilities using FALLBACK</title>
      <link>https://gregdonald.com/pages/meta-programming-capabilities-using-fallback</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/meta-programming-capabilities-using-fallback</guid>
      <pubDate>Fri, 04 Oct 2019 00:00:00 +0000</pubDate>
      <description>Being a long time Ruby user and Lisp dabbler, Rakudo Perl 6 meta-programming capabilities ranked high on my list of curiosities.</description>
    </item>
    <item>
      <title>Raku spiral matrix</title>
      <link>https://gregdonald.com/pages/raku-spiral-matrix</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/raku-spiral-matrix</guid>
      <pubDate>Wed, 28 Aug 2019 00:00:00 +0000</pubDate>
      <description># Given a matrix of m x n elements (m rows, n columns),</description>
    </item>
    <item>
      <title>Console Blackjack in Elixir</title>
      <link>https://gregdonald.com/pages/console-blackjack-in-elixir</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/console-blackjack-in-elixir</guid>
      <pubDate>Sun, 14 Jul 2019 00:00:00 +0000</pubDate>
      <description>I wrote a console version of Blackjack in Elixir:</description>
    </item>
    <item>
      <title>TicTacToe in ReactJS using Typescript</title>
      <link>https://gregdonald.com/pages/tictactoe-in-reactjs-using-typescript</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/tictactoe-in-reactjs-using-typescript</guid>
      <pubDate>Fri, 17 May 2019 00:00:00 +0000</pubDate>
      <description>I wrote a web version of TicTacToe in ReactJS using Typescript:</description>
    </item>
    <item>
      <title>Git commands for pair programming</title>
      <link>https://gregdonald.com/pages/git-commands-for-pair-programming</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/git-commands-for-pair-programming</guid>
      <pubDate>Thu, 02 May 2019 00:00:00 +0000</pubDate>
      <description>At my work I&apos;m on an agile team and we do pair programming. Here are some git commands I find useful and use almost every day:</description>
    </item>
    <item>
      <title>Change default SSH port on Fedora</title>
      <link>https://gregdonald.com/pages/change-default-ssh-port-on-fedora</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/change-default-ssh-port-on-fedora</guid>
      <pubDate>Sun, 24 Mar 2019 00:00:00 +0000</pubDate>
      <description>I wanted to change my default SSH port to something else. Here are the commands I used:</description>
    </item>
    <item>
      <title>Console Blackjack in Crystal</title>
      <link>https://gregdonald.com/pages/console-blackjack-in-crystal</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/console-blackjack-in-crystal</guid>
      <pubDate>Sun, 27 Jan 2019 00:00:00 +0000</pubDate>
      <description>I wrote a console version of Blackjack in Crystal:</description>
    </item>
    <item>
      <title>Nautical War</title>
      <link>https://gregdonald.com/pages/nautical-war</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/nautical-war</guid>
      <pubDate>Sat, 12 Jan 2019 00:00:00 +0000</pubDate>
      <description>I reworked my old Battleship game for Android:</description>
    </item>
    <item>
      <title>Web Blackjack in ReactJS</title>
      <link>https://gregdonald.com/pages/web-blackjack-in-reactjs</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/web-blackjack-in-reactjs</guid>
      <pubDate>Sun, 02 Dec 2018 00:00:00 +0000</pubDate>
      <description>I wrote a web version of Blackjack in ReactJS/Typescript:</description>
    </item>
    <item>
      <title>Console Blackjack in Python 3</title>
      <link>https://gregdonald.com/pages/console-blackjack-in-python-3</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/console-blackjack-in-python-3</guid>
      <pubDate>Fri, 09 Mar 2018 00:00:00 +0000</pubDate>
      <description>I wrote a console version of Blackjack in Python 3:</description>
    </item>
    <item>
      <title>GUI Blackjack in C using the SDL2</title>
      <link>https://gregdonald.com/pages/gui-blackjack-in-c-using-the-sdl2</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/gui-blackjack-in-c-using-the-sdl2</guid>
      <pubDate>Fri, 05 Jan 2018 00:00:00 +0000</pubDate>
      <description>I wrote a GUI version of Blackjack in C using the SDL2 graphics library:</description>
    </item>
    <item>
      <title>CRM12 - Customer relationship management software</title>
      <link>https://gregdonald.com/pages/crm12-customer-relationship-management-software</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/crm12-customer-relationship-management-software</guid>
      <pubDate>Thu, 13 Apr 2017 00:00:00 +0000</pubDate>
      <description>I wrote a customer relationship management tool in Ruby on Rails:</description>
    </item>
    <item>
      <title>How-to build latest Linux kernel from Linus&apos; git repo on Debian</title>
      <link>https://gregdonald.com/pages/how-to-build-latest-linux-kernel-from-linus-git-repo-on-debian</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/how-to-build-latest-linux-kernel-from-linus-git-repo-on-debian</guid>
      <pubDate>Sun, 01 Jan 2017 00:00:00 +0000</pubDate>
      <description>Here&apos;s a how-to for building a recent Linux kernel on your Debian GNU/Linux box:</description>
    </item>
    <item>
      <title>Console Blackjack in C</title>
      <link>https://gregdonald.com/pages/console-blackjack-in-c</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/console-blackjack-in-c</guid>
      <pubDate>Fri, 11 Nov 2016 00:00:00 +0000</pubDate>
      <description>I wrote a console version of Blackjack in C:</description>
    </item>
    <item>
      <title>ignore latin1 problem via psql</title>
      <link>https://gregdonald.com/pages/ignore-latin1-problem-via-psql</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/ignore-latin1-problem-via-psql</guid>
      <pubDate>Thu, 20 Oct 2016 00:00:00 +0000</pubDate>
      <description>CREATE DATABASE _</description>
    </item>
    <item>
      <title>Console Blackjack in C++</title>
      <link>https://gregdonald.com/pages/console-blackjack-in-c++</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/console-blackjack-in-c++</guid>
      <pubDate>Thu, 11 Aug 2016 00:00:00 +0000</pubDate>
      <description>I wrote a console version of Blackjack in C++:</description>
    </item>
    <item>
      <title>Console Blackjack in Raku</title>
      <link>https://gregdonald.com/pages/console-blackjack-in-raku</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/console-blackjack-in-raku</guid>
      <pubDate>Sun, 17 Jan 2016 00:00:00 +0000</pubDate>
      <description>I wrote a console version of Blackjack in Rakudo Raku:</description>
    </item>
    <item>
      <title>Convert one m4a file to many mp3s</title>
      <link>https://gregdonald.com/pages/convert-one-m4a-file-to-many-mp3s</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/convert-one-m4a-file-to-many-mp3s</guid>
      <pubDate>Tue, 22 Sep 2015 00:00:00 +0000</pubDate>
      <description>#!/bin/bash</description>
    </item>
    <item>
      <title>How-to guide for beginner-level Linux Kernel patch submissions</title>
      <link>https://gregdonald.com/pages/how-to-guide-for-beginner-level-linux-kernel-patch-submissions</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/how-to-guide-for-beginner-level-linux-kernel-patch-submissions</guid>
      <pubDate>Sat, 20 Jun 2015 00:00:00 +0000</pubDate>
      <description>Every day I see new Linux Kernel hackers fail at their first patch submission. I&apos;m not an expert, but I&apos;ve learned how the process works and most importantly I&apos;ve learned how to avoid irritating…</description>
    </item>
    <item>
      <title>Console Blackjack in Go</title>
      <link>https://gregdonald.com/pages/console-blackjack-in-go</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/console-blackjack-in-go</guid>
      <pubDate>Sat, 25 Apr 2015 00:00:00 +0000</pubDate>
      <description>I wrote a console version of Blackjack in Go:</description>
    </item>
    <item>
      <title>Raspberry Pi LEDs Test</title>
      <link>https://gregdonald.com/pages/raspberry-pi-leds-test</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/raspberry-pi-leds-test</guid>
      <pubDate>Tue, 20 Jan 2015 00:00:00 +0000</pubDate>
      <description>#!/usr/bin/env python3</description>
    </item>
    <item>
      <title>Shell script to automate go lang pkg test coverage</title>
      <link>https://gregdonald.com/pages/shell-script-to-automate-go-lang-pkg-test-coverage</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/shell-script-to-automate-go-lang-pkg-test-coverage</guid>
      <pubDate>Tue, 13 Jan 2015 00:00:00 +0000</pubDate>
      <description>#!/bin/sh</description>
    </item>
    <item>
      <title>go log function</title>
      <link>https://gregdonald.com/pages/go-log-function</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/go-log-function</guid>
      <pubDate>Thu, 08 Jan 2015 00:00:00 +0000</pubDate>
      <description>func log(s ...interface{}) {</description>
    </item>
    <item>
      <title>Linux Kernel Powerball Module</title>
      <link>https://gregdonald.com/pages/linux-kernel-powerball-module</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/linux-kernel-powerball-module</guid>
      <pubDate>Sun, 28 Sep 2014 00:00:00 +0000</pubDate>
      <description>I don&apos;t play the lottery but I find random number generators and the Linux Kernel interesting so I wrote a simple Linux Kernel module that does a PowerballTM &quot;quick pick&quot;.</description>
    </item>
    <item>
      <title>How to filter out Bash arguments</title>
      <link>https://gregdonald.com/pages/how-to-filter-out-bash-arguments</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/how-to-filter-out-bash-arguments</guid>
      <pubDate>Mon, 22 Sep 2014 00:00:00 +0000</pubDate>
      <description>Ever want to know how to drop an argument (and value), --dir in this case, from a Bash script?</description>
    </item>
    <item>
      <title>MongoDB Data Durability</title>
      <link>https://gregdonald.com/pages/mongodb-data-durability</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/mongodb-data-durability</guid>
      <pubDate>Fri, 31 Jan 2014 00:00:00 +0000</pubDate>
      <description>It doesn&apos;t seem you can lose data even when you might otherwise expect to ;)</description>
    </item>
    <item>
      <title>My bashrc file</title>
      <link>https://gregdonald.com/pages/my-bashrc-file</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/my-bashrc-file</guid>
      <pubDate>Sun, 20 May 2012 00:00:00 +0000</pubDate>
      <description>alias ll=&apos;ls -lavh --color=always&apos;</description>
    </item>
    <item>
      <title>PostgreSQL Sequence Updates</title>
      <link>https://gregdonald.com/pages/postgresql-sequence-updates</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/postgresql-sequence-updates</guid>
      <pubDate>Sat, 07 Jan 2012 00:00:00 +0000</pubDate>
      <description>I had a problem with PostgreSQL pgdump recently. My setval() calls were all set to &apos;1&apos;.</description>
    </item>
    <item>
      <title>Mutt Configuration</title>
      <link>https://gregdonald.com/pages/mutt-configuration</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/mutt-configuration</guid>
      <pubDate>Sun, 03 Apr 2011 00:00:00 +0000</pubDate>
      <description>I use Mutt :)</description>
    </item>
    <item>
      <title>Debian rc.local howto</title>
      <link>https://gregdonald.com/pages/debian-rc-local-howto</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/debian-rc-local-howto</guid>
      <pubDate>Tue, 26 Jan 2010 00:00:00 +0000</pubDate>
      <description>If you&apos;re using a flavor of *nix that has an rc.local file, and then you start using Debian GNU/Linux, you might be wondering where your rc.local file is. Quite simply, it&apos;s not there. Here&apos;s how to…</description>
    </item>
    <item>
      <title>Debian Games</title>
      <link>https://gregdonald.com/pages/debian-games</link>
      <guid isPermaLink="true">https://gregdonald.com/pages/debian-games</guid>
      <pubDate>Sat, 14 Jan 2006 00:00:00 +0000</pubDate>
      <description>Here&apos;s a command to install lots of games on your Debian box:</description>
    </item>
  </channel>
</rss>
