<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">

<channel>
  <title>Dr. Brian Robert Callahan</title>
  <link>https://briancallahan.net/blog</link>
  <description>academic, developer, with an eye towards a brighter techno-social life</description>
  <item>
    <title>2025-12-16: Let's run FreeBSD 15.0-RELEASE on a Raspberry Pi Zero 2 W</title>
    <link>https://briancallahan.net/blog/20251216.html</link>
    <description>Instructions to get a small embedded ARM64 device working with the latest FreeBSD operating system</description>
    <pubDate>Tue, 16 Dec 2025 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2025-09-01: Let's write a peephole optimizer for QBE's arm64 backend</title>
    <link>https://briancallahan.net/blog/20250901.html</link>
    <description>Learn how to cross-compile a native GCC toolchain</description>
    <pubDate>Mon, 01 Sep 2025 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2025-08-17: Despite thoughts to the contrary, GNAT (Ada) is in fact fully supported on illumos</title>
    <link>https://briancallahan.net/blog/20250817.html</link>
    <description>Learn how to cross-compile a native GCC toolchain</description>
    <pubDate>Sun, 17 Aug 2025 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2025-08-13: The GNU D compiler has been broken on FreeBSD 14 for over a year and no one noticed, or, why operating system package maintainers matter</title>
    <link>https://briancallahan.net/blog/20250813.html</link>
    <description>Discovery and diagnosis of a bug hiding in plain sight</description>
    <pubDate>Wed, 13 Aug 2025 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2025-05-16: I revived pkgsrc on AIX</title>
    <link>https://briancallahan.net/blog/20250516.html</link>
    <description>Step-by-step process to get pkgsrc working on modern AIX</description>
    <pubDate>Fri, 16 May 2025 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2025-03-29: GCC 14.2.0 on PowerPC Mac OS X 10.4 Tiger</title>
    <link>https://briancallahan.net/blog/20250329.html</link>
    <description>Step-by-step process to get a modern GCC on an old Mac OS X</description>
    <pubDate>Sat, 29 Mar 2025 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2025-02-22: State of virtualizing the BSDs on Apple Silicon</title>
    <link>https://briancallahan.net/blog/20250222.html</link>
    <description>Testing VMWare Fusion and the Apple virtualization framework with each *BSD</description>
    <pubDate>Sat, 22 Feb 2025 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2025-01-12: Let's port the GNAT Ada compiler to macOS/aarch64</title>
    <link>https://briancallahan.net/blog/20250112.html</link>
    <description>Getting a compiler written in its own langauge bootstrapped for a new platform</description>
    <pubDate>Sun, 12 Jan 2025 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2024-12-16: Let's cross compile from FreeBSD/amd64 to macOS/aarch64</title>
    <link>https://briancallahan.net/blog/20241216.html</link>
    <description>A quick tutorial for setting up a complete cross compiling envinroment using a FreeBSD/amd64 host and macOS/aarch64 target</description>
    <pubDate>Mon, 16 Dec 2024 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2024-12-12: A GDC package for macOS/aarch64</title>
    <link>https://briancallahan.net/blog/20241212.html</link>
    <description>A walkthrough to bootstrap GDC on macOS/aarch64</description>
    <pubDate>Thu, 12 Dec 2024 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2024-06-09: A DMD package for OpenIndiana</title>
    <link>https://briancallahan.net/blog/20240609.html</link>
    <description>A walkthrough to bootstrap DMD on OpenIndiana</description>
    <pubDate>Sun, 09 Jun 2024 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2024-03-06: FreeBSD has a(nother) new C compiler: Intel oneAPI DPC++/C++</title>
    <link>https://briancallahan.net/blog/20240306.html</link>
    <description>A walkthrough to get Intel oneAPI DPC++/C++ to output native binaries for FreeBSD</description>
    <pubDate>Wed, 06 Mar 2024 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2024-01-22: Can GCC use Clang as its assembler?</title>
    <link>https://briancallahan.net/blog/20240122.html</link>
    <description>How to use LLVM as the assembler for GCC, for FreeBSD and other systems</description>
    <pubDate>Mon, 22 Jan 2024 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2024-01-01: FreeBSD has a new C compiler: Oracle Developer Studio 12.6</title>
    <link>https://briancallahan.net/blog/20240101.html</link>
    <description>A walkthrough to get Oracle Developer Studio 12.6 to output native binaries for FreeBSD</description>
    <pubDate>Mon, 01 Jan 2024 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2023-11-19: Enabling LLVM with m68k (and more) support on OpenBSD</title>
    <link>https://briancallahan.net/blog/20231119.html</link>
    <description>Adding the experimental LLVM targets to the OpenBSD LLVM packages</description>
    <pubDate>Sun, 11 Nov 2023 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2023-08-13: Can mold be used as the OpenBSD system linker?</title>
    <link>https://briancallahan.net/blog/20230813.html</link>
    <description>My ordeal trying to get mold to be /usr/bin/ld on OpenBSD</description>
    <pubDate>Sun, 13 Aug 2023 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2023-07-23: Using non-GNU assemblers with the Portable C Compiler</title>
    <link>https://briancallahan.net/blog/20230723.html</link>
    <description>Can the Sun assembler and Yasm be used with PCC?</description>
    <pubDate>Sun, 23 Jul 2023 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2023-07-05: Porting the Portable C Compiler (PCC) to Illumos</title>
    <link>https://briancallahan.net/blog/20230705.html</link>
    <description>Teaching an old compiler new tricks.</description>
    <pubDate>Wed, 05 Jul 2023 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2023-07-03: Installing Oracle Developer Studio 12.6 on Illumos</title>
    <link>https://briancallahan.net/blog/20230703.html</link>
    <description>The (mis)adventures of installing Developer Studio on Illumos despite Oracle's many attempts to stop me.</description>
    <pubDate>Mon, 03 Jul 2023 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2023-06-26: GCC --enable-languages=all on OpenBSD</title>
    <link>https://briancallahan.net/blog/20230626.html</link>
    <description>Can we build all ten GCC langauge frontends on OpenBSD?</description>
    <pubDate>Mon, 26 Jun 2023 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2022-12-19: GCC now includes Modula-2 and Rust. Do they work on OpenBSD?</title>
    <link>https://briancallahan.net/blog/20221219.html</link>
    <description>Reviewing the state of the new Modula-2 and Rust frontends for GCC on OpenBSD.</description>
    <pubDate>Mon, 19 Dec 2022 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2022-11-13: I took the CompTIA CySA+ CS1-003 beta exam for fun</title>
    <link>https://briancallahan.net/blog/20221113.html</link>
    <description>Reflections on the new CySA+ exam I took today.</description>
    <pubDate>Sun, 13 Nov 2022 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2022-07-04: Your next C compiler is a D compiler: Introducing DMD's ImportC</title>
    <link>https://briancallahan.net/blog/20220704.html</link>
    <description>Demonstrating the C compiler that lives inside a D compiler.</description>
    <pubDate>Mon, 04 Jul 2022 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2022-06-29: OpenBSD has two new C compilers: chibicc and kefir</title>
    <link>https://briancallahan.net/blog/20220629.html</link>
    <description>Discussing porting chibicc and kefir to OpenBSD.</description>
    <pubDate>Wed, 29 Jun 2022 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2022-04-27: I ported the new Hare compiler to OpenBSD</title>
    <link>https://briancallahan.net/blog/20220427.html</link>
    <description>A walkthrough on porting a brand new language to OpenBSD.</description>
    <pubDate>Wed, 27 Apr 2022 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2022-04-26: Let's try V on OpenBSD</title>
    <link>https://briancallahan.net/blog/20220426.html</link>
    <description>My thoughts on trying out the V programming language and its first-party apps for the first time.</description>
    <pubDate>Tue, 26 Apr 2022 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2022-04-18: Let's install OpenBSD/riscv64 on QEMU</title>
    <link>https://briancallahan.net/blog/20220418.html</link>
    <description>Step-by-step instructions to get OpenBSD/riscv64 running on QEMU.</description>
    <pubDate>Mon, 18 Apr 2022 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2022-04-17: I wrote a peephole optimizer (for QBE), part 3: Studying the LLVM and GCC optimizers</title>
    <link>https://briancallahan.net/blog/20220417.html</link>
    <description>We study how LLVM and GCC optimize increments and decrements and teach those optimizations to our QBE optimizer.</description>
    <pubDate>Sun, 17 Apr 2022 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2022-04-06: Hand-optimizing the TCC code generator</title>
    <link>https://briancallahan.net/blog/20220406.html</link>
    <description>Let's teach the Tiny C Compiler to emit better code.</description>
    <pubDate>Wed, 06 Apr 2022 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2022-04-02: I wrote a simple, explainable, peephole optimizer (for cproc and QBE), part 2</title>
    <link>https://briancallahan.net/blog/20220402.html</link>
    <description>Finishing up our peephole optimizer from the previous blog post.</description>
    <pubDate>Sat, 02 Apr 2022 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2022-03-30: I wrote a peephole optimizer (for QBE), part 1</title>
    <link>https://briancallahan.net/blog/20220330.html</link>
    <description>Introducing O, a peephole optimizer to fix up missed opportunities in QBE.</description>
    <pubDate>Wed, 30 Mar 2022 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2022-03-21: I built the new gcobol compiler on OpenBSD</title>
    <link>https://briancallahan.net/blog/20220321.html</link>
    <description>Trying out the new GCC COBOL frontend on OpenBSD.</description>
    <pubDate>Mon, 21 Mar 2022 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2022-02-22: I took the CompTIA Linux+ XK1-005 beta exam for fun</title>
    <link>https://briancallahan.net/blog/20220222.html</link>
    <description>Reflections on the new Linux+ exam I took last week.</description>
    <pubDate>Tue, 22 Feb 2022 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2022-02-20: I wrote the least-C C program I could</title>
    <link>https://briancallahan.net/blog/20220220.html</link>
    <description>Abusing the C preprocessor for fun and profit.</description>
    <pubDate>Sun, 20 Feb 2022 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2022-02-05: I took the CompTIA Project+ PK1-005 beta exam for fun</title>
    <link>https://briancallahan.net/blog/20220205.html</link>
    <description>Reflections on the new Project+ exam I took today.</description>
    <pubDate>Sat, 05 Feb 2022 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2021-12-04: Supporting a new C compiler for oksh and review of the vbcc C compiler</title>
    <link>https://briancallahan.net/blog/20211204.html</link>
    <description>Learning how to get the vbcc C compiler up and runnin on OpenBSD and able to compile the oksh shell.</description>
    <pubDate>Sat, 04 Dec 2021 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2021-10-31: More OpenBSD and D news</title>
    <link>https://briancallahan.net/blog/20211031.html</link>
    <description>Quick post to keep everyone updated on the latest OpenBSD and D news from me.</description>
    <pubDate>Sun, 31 Oct 2021 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2021-10-20: An LDC bootstrap compiler and LDC package for OpenBSD</title>
    <link>https://briancallahan.net/blog/20211020.html</link>
    <description>A short post writing down how to create a bootstrap LDC compiler for the OpenBSD port.</description>
    <pubDate>Wed, 20 Oct 2021 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2021-10-13: Packaging the DMD D compiler for OpenBSD</title>
    <link>https://briancallahan.net/blog/20211013.html</link>
    <description>Previewing my DConf 2021 talk about D on OpenBSD by discussing how the new DMD package came to be.</description>
    <pubDate>Wed, 13 Oct 2021 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2021-10-10: Benchmarking the oksh shell, or, let's look at a lot of C compilers</title>
    <link>https://briancallahan.net/blog/20211010.html</link>
    <description>Getting inconclusive numbers about the definitively best Unix shell.</description>
    <pubDate>Sun, 10 Oct 2021 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2021-09-11: I got the J language working on OpenBSD</title>
    <link>https://briancallahan.net/blog/20210911.html</link>
    <description>A detailed write-up on porting J to OpenBSD.</description>
    <pubDate>Sat, 11 Sep 2021 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2021-09-06: Let's write a self-hosting compiler, part 1: Reading in source code</title>
    <link>https://briancallahan.net/blog/20210906.html</link>
    <description>Beginning a new compiler-writing adventure in which we will produce a self-hosting PL/0 compiler.</description>
    <pubDate>Mon, 06 Sep 2021 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2021-08-29: Let's get hands-on with QBE</title>
    <link>https://briancallahan.net/blog/20210829.html</link>
    <description>Learning the QBE Intermediate Language via writing a small Brainfuck compiler directly in QBE IR.</description>
    <pubDate>Sun, 29 Aug 2021 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2021-08-26: Let's write a compiler, part 8: Strings, forward references, and conclusion</title>
    <link>https://briancallahan.net/blog/20210826.html</link>
    <description>Adding the last few pieces needed for a finished PL/0 compiler.</description>
    <pubDate>Thu, 26 Aug 2021 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2021-08-22: Let's write a compiler, part 7: Arrays</title>
    <link>https://briancallahan.net/blog/20210822.html</link>
    <description>Adding array support to our PL/0 compiler.</description>
    <pubDate>Sun, 22 Aug 2021 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2021-08-19: Let's write a compiler, part 6: Input and output</title>
    <link>https://briancallahan.net/blog/20210819.html</link>
    <description>Adding basic input and output routines to our PL/0 compiler.</description>
    <pubDate>Thu, 19 Aug 2021 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2021-08-18: Let's write a compiler, part 5: A code generator</title>
    <link>https://briancallahan.net/blog/20210818.html</link>
    <description>Writing a code generator for our PL/0 compiler.</description>
    <pubDate>Wed, 18 Aug 2021 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2021-08-17: Let's write a compiler, part 4: Testing</title>
    <link>https://briancallahan.net/blog/20210817.html</link>
    <description>Building a simple automated testing framework for our PL/0 compiler.</description>
    <pubDate>Tue, 17 Aug 2021 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2021-08-16: Let's write a compiler, part 3: A parser</title>
    <link>https://briancallahan.net/blog/20210816.html</link>
    <description>Writing a parser for our PL/0 compiler.</description>
    <pubDate>Mon, 16 Aug 2021 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2021-08-15: Let's write a compiler, part 2: A lexer</title>
    <link>https://briancallahan.net/blog/20210815.html</link>
    <description>Writing a complete lexer for our PL/0 compiler.</description>
    <pubDate>Sun, 15 Aug 2021 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2021-08-14: Let's write a compiler, part 1: Introduction, selecting a language, and doing some planning</title>
    <link>https://briancallahan.net/blog/20210814.html</link>
    <description>The beginning of a new series where we will write a simple PL/0 to C compiler from scratch.</description>
    <pubDate>Sat, 14 Aug 2021 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2021-08-02: Reviewing my first OpenBSD port, and what I'd do differently 10 years later</title>
    <link>https://briancallahan.net/blog/20210802.html</link>
    <description>Walking through my first OpenBSD port from ten years ago and revising it to today's standards.</description>
    <pubDate>Mon, 02 Aug 2021 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2021-08-01: I write for QEX, and you should too</title>
    <link>https://briancallahan.net/blog/20210801.html</link>
    <description>An amateur radio musing on how you can further the state of the art.</description>
    <pubDate>Sun, 01 Aug 2021 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2021-07-10: I wrote a 231-byte Brainfuck compiler by abusing everything</title>
    <link>https://briancallahan.net/blog/20210710.html</link>
    <description>Demonstrating lots of assembly language tricks to optimize for size.</description>
    <pubDate>Sat, 10 Jul 2021 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2021-06-27: Write an OpenBSD port with me: The TIC-80 fantasy game console</title>
    <link>https://briancallahan.net/blog/20210627.html</link>
    <description>Step-by-step how I thought through and wrote a moderately difficult OpenBSD port for the TIC-80.</description>
    <pubDate>Sun, 27 Jun 2021 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2021-06-09: I wrote a linker everyone can understand!</title>
    <link>https://briancallahan.net/blog/20210609.html</link>
    <description>A detailed tour of a CP/M and MS-DOS linker and object file format of our own creation.</description>
    <pubDate>Wed, 09 Jun 2021 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2021-06-06: Introducing 8088ify: The CP/M to MS-DOS assembly translator</title>
    <link>https://briancallahan.net/blog/20210606.html</link>
    <description>Discussing a new hit program developed 40 years too late.</description>
    <pubDate>Sun, 06 Jun 2021 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2021-06-04: I participated in my first "game" jam</title>
    <link>https://briancallahan.net/blog/20210604.html</link>
    <description>Porting a Unix program to MS-DOS for fun.</description>
    <pubDate>Fri, 04 Jun 2021 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2021-05-29: Profiling our assembler with the DMD compiler</title>
    <link>https://briancallahan.net/blog/20210529.html</link>
    <description>A how-to on basic profiler usage, improving the performance of our assembler.</description>
    <pubDate>Sat, 29 May 2021 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2021-05-22: The GNU D Compiler on OpenBSD/armv7</title>
    <link>https://briancallahan.net/blog/20210522.html</link>
    <description>Compiling the GNU D Compiler to OpenBSD/armv7.</description>
    <pubDate>Sat, 22 May 2021 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2021-05-20: The GNU D Compiler on OpenBSD/arm64</title>
    <link>https://briancallahan.net/blog/20210520.html</link>
    <description>Walking through how I ported the GNU D Compiler to OpenBSD/arm64.</description>
    <pubDate>Thu, 20 May 2021 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2021-04-25: A multi-platform "compiler"</title>
    <link>https://briancallahan.net/blog/20210425.html</link>
    <description>Building a Brainfuck compiler with backends for amd64, i386, Z80 and C.</description>
    <pubDate>Sun, 25 Apr 2021 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2021-04-15: Demystifying programs that create programs, part 9: Pseudo-ops</title>
    <link>https://briancallahan.net/blog/20210415.html</link>
    <description>Part 9, Finishing our assembler with some pseudo-ops.</description>
    <pubDate>Thu, 15 Apr 2021 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2021-04-14: Demystifying programs that create programs, part 8: Finishing opcode processing</title>
    <link>https://briancallahan.net/blog/20210414.html</link>
    <description>Part 8, teaching the assembler about logical shifts, incrementers and decrementers, and the lxi and mvi instructions.</description>
    <pubDate>Wed, 14 Apr 2021 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2021-04-13: Demystifying programs that create programs, part 7: Further opcode processing</title>
    <link>https://briancallahan.net/blog/20210413.html</link>
    <description>Part 7, teaching the assembler about push, pop, jump/call/ret instructions.</description>
    <pubDate>Tue, 13 Apr 2021 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2021-04-12: Demystifying programs that create programs, part 6: Processing more opcodes</title>
    <link>https://briancallahan.net/blog/20210412.html</link>
    <description>Part 6, teaching the assembler about mov and arithmetic instructions.</description>
    <pubDate>Mon, 12 Apr 2021 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2021-04-11: Demystifying programs that create programs, part 5: Processing our first opcode</title>
    <link>https://briancallahan.net/blog/20210411.html</link>
    <description>Part 5, translating nop assembly instructions into 0x00 bytes.</description>
    <pubDate>Sun, 11 Apr 2021 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2021-04-10: Demystifying programs that create programs, part 4: Parsing</title>
    <link>https://briancallahan.net/blog/20210410.html</link>
    <description>Part 4, turning lines of Intel 8080 assembly language into their individual tokens.</description>
    <pubDate>Sat, 10 Apr 2021 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2021-04-09: Demystifying programs that create programs, part 3: Globals, passes, and error handling</title>
    <link>https://briancallahan.net/blog/20210409.html</link>
    <description>Part 3, understanding assembler passes and setting up our error handler.</description>
    <pubDate>Fri, 09 Apr 2021 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2021-04-08: Demystifying programs that create programs, part 2: Starting an sassembler</title>
    <link>https://briancallahan.net/blog/20210408.html</link>
    <description>Part 2, planning the Z80 assembler.</description>
    <pubDate>Thu, 08 Apr 2021 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2021-04-07: Demystifying programs that create programs, part 1: A disassembler</title>
    <link>https://briancallahan.net/blog/20210407.html</link>
    <description>Part 1 of a new series in which we create an assembler and disassembler for the Z80 CPU.</description>
    <pubDate>Wed, 07 Apr 2021 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2021-04-03: I got the GNU Modula-2 compiler working on OpenBSD</title>
    <link>https://briancallahan.net/blog/20210403.html</link>
    <description>Discussing the process of getting a working gm2 on OpenBSD.</description>
    <pubDate>Sat, 03 Apr 2021 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2021-03-27: My experiences writing my first real D program and using it to improve OpenBSD D support</title>
    <link>https://briancallahan.net/blog/20210327.html</link>
    <description>A detailed demonstration of a D screenshot utility from zero to complete.</description>
    <pubDate>Sat, 27 Mar 2021 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2021-03-20: A working D compiler on OpenBSD</title>
    <link>https://briancallahan.net/blog/20210320.html</link>
    <description>The (condensed) story of how I got the GNU D Compiler working on OpenBSD.</description>
    <pubDate>Sat, 20 Mar 2021 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2021-03-11: Quick shameless plug</title>
    <link>https://briancallahan.net/blog/20210311.html</link>
    <description>Quick plug for my talk at BSidesROC 2021.</description>
    <pubDate>Thu, 11 Mar 2021 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2021-02-15: All the C compilers that can produce working binaries on OpenBSD -current (that I know of)</title>
    <link>https://briancallahan.net/blog/20210215.html</link>
    <description>Presented in a table.</description>
    <pubDate>Mon, 15 Feb 2021 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2021-02-14: I donated a patch and got a free compiler!</title>
    <link>https://briancallahan.net/blog/20210214.html</link>
    <description>The story of how the Tiny C Compiler got ported to OpenBSD, from my perspective.</description>
    <pubDate>Sun, 14 Feb 2021 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2020-11-24: I wrote a pager that works on Unix and CP/M</title>
    <link>https://briancallahan.net/blog/20201124.html</link>
    <description>Explore how to leverage standard interfaces to create truly portable programs.</description>
    <pubDate>Tue, 24 Nov 2020 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2020-11-18: Comparing a new language for tiny machines</title>
    <link>https://briancallahan.net/blog/20201118.html</link>
    <description>A look at a new programming language, Cowgol, designed for 8-bit CPUs.</description>
    <pubDate>Wed, 18 Nov 2020 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2020-11-04: Why aren't new hams getting published?</title>
    <link>https://briancallahan.net/blog/20201104.html</link>
    <description>A free article to inspire you to share your ham radio adventures.</description>
    <pubDate>Sat, 04 Nov 2020 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2020-10-10: Where are all the protocols?</title>
    <link>https://briancallahan.net/blog/20201010.html</link>
    <description>Sharing my dream with you.</description>
    <pubDate>Sat, 10 Oct 2020 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2020-09-26: From new ham to QEX author in two months</title>
    <link>https://briancallahan.net/blog/20200926.html</link>
    <description>How I managed to do the ham radio hobby "wrong."</description>
    <pubDate>Sat, 26 Sep 2020 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2020-08-27: Let's create a protocol, part 1: Introducing the CW Record Protocol</title>
    <link>https://briancallahan.net/blog/20200827.html</link>
    <description>Introducing a new series in which we will learn how to design and implement a data transmit and receive protocol.</description>
    <pubDate>Thu, 27 Aug 2020 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2020-08-25: Why I got my amateur radio license in 2020</title>
    <link>https://briancallahan.net/blog/20200825.html</link>
    <description>What I gained by shrinking my world.</description>
    <pubDate>Tue, 25 Aug 2020 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2020-08-16: I wrote the world's worst text editor (so you don't have to)</title>
    <link>https://briancallahan.net/blog/20200816.html</link>
    <description>I wrote the absolute minimum that could possibly be considered a text editor.</description>
    <pubDate>Sun, 16 Aug 2020 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2020-08-12: Can we do better than our C compiler?</title>
    <link>https://briancallahan.net/blog/20200812.html</link>
    <description>I hand-compiled some C code to see if I could do better than my C compiler.</description>
    <pubDate>Wed, 12 Aug 2020 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2020-08-08: Where do argc and argv come from?</title>
    <link>https://briancallahan.net/blog/20200808.html</link>
    <description>Have you ever wondered how Unix programs know what argc and argv are? Read on to find out.</description>
    <pubDate>Sat, 08 Aug 2020 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2020-08-06: Compiler numbers, and why they don't matter</title>
    <link>https://briancallahan.net/blog/20200806.html</link>
    <description>Comparing compiler numbers, then discarding them as a distraction.</description>
    <pubDate>Thu, 06 Aug 2020 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2020-08-03: Extreme minimalism and constraints in game development (Code deep dive #1)</title>
    <link>https://briancallahan.net/blog/20200803.html</link>
    <description>A very deep dive into a very small codebase.</description>
    <pubDate>Mon, 03 Aug 2020 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2020-07-26: Introducing Free Bee</title>
    <link>https://briancallahan.net/blog/20200726.html</link>
    <description>Explaining my motivations for writing my newest Free Software project.</description>
    <pubDate>Sun, 26 Jul 2020 00:00:00 +0000</pubDate>
  </item>
  <item>
    <title>2020-06-15: TryHackMe|Learn Linux</title>
    <link>https://briancallahan.net/blog/20200615.html</link>
    <description>I decided to play the intro CTF to TryHackMe in order to begin to get a feel for how people think about cybersecurity pedagogy.</description>
    <pubDate>Mon, 15 Jun 2020 00:00:00 +0000</pubDate>
  </item>
</channel>

</rss>
