41554 blogs · [ { "id": "01a08759-0ea3-70c2-a17c-68c1ec46df32", "title": "2026-08-11: Cleaning costs, or, examining the OpenBSD -fret-clean flag", "url": "https://briancallahan.net/blog/20260811.html", "published_at": "2026-08-11T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c1ed38c337", "title": "2026-07-13: I bootstrapped GDC with DMD", "url": "https://briancallahan.net/blog/20260713.html", "published_at": "2026-07-13T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c1edcbfe22", "title": "2026-06-09: An addendum I really didn't want to write", "url": "https://briancallahan.net/blog/20260609.html", "published_at": "2026-06-09T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c1eec6acc7", "title": "2026-03-22: Semi-retirement, or, really, changing my relationship with the BSDs", "url": "https://briancallahan.net/blog/20260322.html", "published_at": "2026-03-22T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c1ef68078a", "title": "2025-12-16: Let's run FreeBSD 15.0-RELEASE on a Raspberry Pi Zero 2 W", "url": "https://briancallahan.net/blog/20251216.html", "published_at": "2025-12-16T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c1f019e712", "title": "2025-09-01: Let's write a peephole optimizer for QBE's arm64 backend", "url": "https://briancallahan.net/blog/20250901.html", "published_at": "2025-09-01T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c1f04a8e7c", "title": "2025-08-17: Despite thoughts to the contrary, GNAT (Ada) is in fact fully supported on illumos", "url": "https://briancallahan.net/blog/20250817.html", "published_at": "2025-08-17T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c1f0cecf87", "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", "url": "https://briancallahan.net/blog/20250813.html", "published_at": "2025-08-13T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c1f149bb68", "title": "2025-05-16: I revived pkgsrc on AIX", "url": "https://briancallahan.net/blog/20250516.html", "published_at": "2025-05-16T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c1f2144ebd", "title": "2025-03-29: GCC 14.2.0 on PowerPC Mac OS X 10.4 Tiger", "url": "https://briancallahan.net/blog/20250329.html", "published_at": "2025-03-29T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c1f2aba0d1", "title": "2025-02-22: State of virtualizing the BSDs on Apple Silicon", "url": "https://briancallahan.net/blog/20250222.html", "published_at": "2025-02-22T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c1f2c4d564", "title": "2025-01-12: Let's port the GNAT Ada compiler to macOS/aarch64", "url": "https://briancallahan.net/blog/20250112.html", "published_at": "2025-01-12T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c1f33a8554", "title": "2024-12-16: Let's cross compile from FreeBSD/amd64 to macOS/aarch64", "url": "https://briancallahan.net/blog/20241216.html", "published_at": "2024-12-16T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c1f424598e", "title": "2024-12-12: A GDC package for macOS/aarch64", "url": "https://briancallahan.net/blog/20241212.html", "published_at": "2024-12-12T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c1f450105f", "title": "2024-06-09: A DMD package for OpenIndiana", "url": "https://briancallahan.net/blog/20240609.html", "published_at": "2024-06-09T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c1f4ce01ca", "title": "2024-03-06: FreeBSD has a(nother) new C compiler: Intel oneAPI DPC++/C++", "url": "https://briancallahan.net/blog/20240306.html", "published_at": "2024-03-06T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c1f581a743", "title": "2024-01-22: Can GCC use Clang as its assembler?", "url": "https://briancallahan.net/blog/20240122.html", "published_at": "2024-01-22T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c1f671ebe6", "title": "2024-01-01: FreeBSD has a new C compiler: Oracle Developer Studio 12.6", "url": "https://briancallahan.net/blog/20240101.html", "published_at": "2024-01-01T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c1f72a7df5", "title": "2023-11-19: Enabling LLVM with m68k (and more) support on OpenBSD", "url": "https://briancallahan.net/blog/20231119.html", "published_at": "2023-11-12T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c1f80f56d3", "title": "2023-08-13: Can mold be used as the OpenBSD system linker?", "url": "https://briancallahan.net/blog/20230813.html", "published_at": "2023-08-13T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c1f841c2c2", "title": "2023-07-23: Using non-GNU assemblers with the Portable C Compiler", "url": "https://briancallahan.net/blog/20230723.html", "published_at": "2023-07-23T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c1f904c9aa", "title": "2023-07-05: Porting the Portable C Compiler (PCC) to Illumos", "url": "https://briancallahan.net/blog/20230705.html", "published_at": "2023-07-05T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c1f9e64437", "title": "2023-07-03: Installing Oracle Developer Studio 12.6 on Illumos", "url": "https://briancallahan.net/blog/20230703.html", "published_at": "2023-07-03T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c1fa758f3e", "title": "2023-06-26: GCC --enable-languages=all on OpenBSD", "url": "https://briancallahan.net/blog/20230626.html", "published_at": "2023-06-26T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c1faa28c68", "title": "2022-12-19: GCC now includes Modula-2 and Rust. Do they work on OpenBSD?", "url": "https://briancallahan.net/blog/20221219.html", "published_at": "2022-12-19T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c1fab6e97a", "title": "2022-11-13: I took the CompTIA CySA+ CS1-003 beta exam for fun", "url": "https://briancallahan.net/blog/20221113.html", "published_at": "2022-11-13T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c1faf65105", "title": "2022-07-04: Your next C compiler is a D compiler: Introducing DMD's ImportC", "url": "https://briancallahan.net/blog/20220704.html", "published_at": "2022-07-04T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c1fb3892f7", "title": "2022-06-29: OpenBSD has two new C compilers: chibicc and kefir", "url": "https://briancallahan.net/blog/20220629.html", "published_at": "2022-06-29T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c1fb8172b9", "title": "2022-04-27: I ported the new Hare compiler to OpenBSD", "url": "https://briancallahan.net/blog/20220427.html", "published_at": "2022-04-27T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c1fc5c0f77", "title": "2022-04-26: Let's try V on OpenBSD", "url": "https://briancallahan.net/blog/20220426.html", "published_at": "2022-04-26T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c1fcca3768", "title": "2022-04-18: Let's install OpenBSD/riscv64 on QEMU", "url": "https://briancallahan.net/blog/20220418.html", "published_at": "2022-04-18T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c1fd38d280", "title": "2022-04-17: I wrote a peephole optimizer (for QBE), part 3: Studying the LLVM and GCC optimizers", "url": "https://briancallahan.net/blog/20220417.html", "published_at": "2022-04-17T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c1fdccf38b", "title": "2022-04-06: Hand-optimizing the TCC code generator", "url": "https://briancallahan.net/blog/20220406.html", "published_at": "2022-04-06T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c1fe4c394e", "title": "2022-04-02: I wrote a simple, explainable, peephole optimizer (for cproc and QBE), part 2", "url": "https://briancallahan.net/blog/20220402.html", "published_at": "2022-04-02T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c1ff195a08", "title": "2022-03-30: I wrote a peephole optimizer (for QBE), part 1", "url": "https://briancallahan.net/blog/20220330.html", "published_at": "2022-03-30T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c1ffaad842", "title": "2022-03-21: I built the new gcobol compiler on OpenBSD", "url": "https://briancallahan.net/blog/20220321.html", "published_at": "2022-03-21T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c200281698", "title": "2022-02-22: I took the CompTIA Linux+ XK1-005 beta exam for fun", "url": "https://briancallahan.net/blog/20220222.html", "published_at": "2022-02-22T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c20054435b", "title": "2022-02-20: I wrote the least-C C program I could", "url": "https://briancallahan.net/blog/20220220.html", "published_at": "2022-02-20T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c200de0d9a", "title": "2022-02-05: I took the CompTIA Project+ PK1-005 beta exam for fun", "url": "https://briancallahan.net/blog/20220205.html", "published_at": "2022-02-05T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c2011c5e03", "title": "2021-12-04: Supporting a new C compiler for oksh and review of the vbcc C compiler", "url": "https://briancallahan.net/blog/20211204.html", "published_at": "2021-12-04T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c20211c251", "title": "2021-10-31: More OpenBSD and D news", "url": "https://briancallahan.net/blog/20211031.html", "published_at": "2021-10-31T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c202dd00e6", "title": "2021-10-20: An LDC bootstrap compiler and LDC package for OpenBSD", "url": "https://briancallahan.net/blog/20211020.html", "published_at": "2021-10-20T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c203072546", "title": "2021-10-13: Packaging the DMD D compiler for OpenBSD", "url": "https://briancallahan.net/blog/20211013.html", "published_at": "2021-10-13T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c203dc7fe4", "title": "2021-10-10: Benchmarking the oksh shell, or, let's look at a lot of C compilers", "url": "https://briancallahan.net/blog/20211010.html", "published_at": "2021-10-10T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c2042f5ba5", "title": "2021-09-11: I got the J language working on OpenBSD", "url": "https://briancallahan.net/blog/20210911.html", "published_at": "2021-09-11T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c204a332f8", "title": "2021-09-06: Let's write a self-hosting compiler, part 1: Reading in source code", "url": "https://briancallahan.net/blog/20210906.html", "published_at": "2021-09-06T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c2050f7d73", "title": "2021-08-29: Let's get hands-on with QBE", "url": "https://briancallahan.net/blog/20210829.html", "published_at": "2021-08-29T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c205f921fb", "title": "2021-08-26: Let's write a compiler, part 8: Strings, forward references, and conclusion", "url": "https://briancallahan.net/blog/20210826.html", "published_at": "2021-08-26T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c206b7ebf2", "title": "2021-08-22: Let's write a compiler, part 7: Arrays", "url": "https://briancallahan.net/blog/20210822.html", "published_at": "2021-08-22T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c207b74600", "title": "2021-08-19: Let's write a compiler, part 6: Input and output", "url": "https://briancallahan.net/blog/20210819.html", "published_at": "2021-08-19T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c207f00ad4", "title": "2021-08-18: Let's write a compiler, part 5: A code generator", "url": "https://briancallahan.net/blog/20210818.html", "published_at": "2021-08-18T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c208c806ff", "title": "2021-08-17: Let's write a compiler, part 4: Testing", "url": "https://briancallahan.net/blog/20210817.html", "published_at": "2021-08-17T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c2096cd224", "title": "2021-08-16: Let's write a compiler, part 3: A parser", "url": "https://briancallahan.net/blog/20210816.html", "published_at": "2021-08-16T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c209be9f95", "title": "2021-08-15: Let's write a compiler, part 2: A lexer", "url": "https://briancallahan.net/blog/20210815.html", "published_at": "2021-08-15T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c20a66317f", "title": "2021-08-14: Let's write a compiler, part 1: Introduction, selecting a language, and doing some planning", "url": "https://briancallahan.net/blog/20210814.html", "published_at": "2021-08-14T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c20b1f48ad", "title": "2021-08-02: Reviewing my first OpenBSD port, and what I'd do differently 10 years later", "url": "https://briancallahan.net/blog/20210802.html", "published_at": "2021-08-02T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c20bd6dd77", "title": "2021-08-01: I write for QEX, and you should too", "url": "https://briancallahan.net/blog/20210801.html", "published_at": "2021-08-01T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c20c516094", "title": "2021-07-10: I wrote a 231-byte Brainfuck compiler by abusing everything", "url": "https://briancallahan.net/blog/20210710.html", "published_at": "2021-07-10T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c20d14dd4b", "title": "2021-06-27: Write an OpenBSD port with me: The TIC-80 fantasy game console", "url": "https://briancallahan.net/blog/20210627.html", "published_at": "2021-06-27T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c20d8984b6", "title": "2021-06-09: I wrote a linker everyone can understand!", "url": "https://briancallahan.net/blog/20210609.html", "published_at": "2021-06-09T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c20e2a29de", "title": "2021-06-06: Introducing 8088ify: The CP/M to MS-DOS assembly translator", "url": "https://briancallahan.net/blog/20210606.html", "published_at": "2021-06-06T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c20ebc880b", "title": "2021-06-04: I participated in my first \"game\" jam", "url": "https://briancallahan.net/blog/20210604.html", "published_at": "2021-06-04T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c20ed6f916", "title": "2021-05-29: Profiling our assembler with the DMD compiler", "url": "https://briancallahan.net/blog/20210529.html", "published_at": "2021-05-29T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c20f94d907", "title": "2021-05-22: The GNU D Compiler on OpenBSD/armv7", "url": "https://briancallahan.net/blog/20210522.html", "published_at": "2021-05-22T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c20feb9722", "title": "2021-05-20: The GNU D Compiler on OpenBSD/arm64", "url": "https://briancallahan.net/blog/20210520.html", "published_at": "2021-05-20T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c210bc740b", "title": "2021-04-25: A multi-platform \"compiler\"", "url": "https://briancallahan.net/blog/20210425.html", "published_at": "2021-04-25T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c21131cc8a", "title": "2021-04-15: Demystifying programs that create programs, part 9: Pseudo-ops", "url": "https://briancallahan.net/blog/20210415.html", "published_at": "2021-04-15T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c211fd2911", "title": "2021-04-14: Demystifying programs that create programs, part 8: Finishing opcode processing", "url": "https://briancallahan.net/blog/20210414.html", "published_at": "2021-04-14T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c21242dab7", "title": "2021-04-13: Demystifying programs that create programs, part 7: Further opcode processing", "url": "https://briancallahan.net/blog/20210413.html", "published_at": "2021-04-13T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c21261a2d9", "title": "2021-04-12: Demystifying programs that create programs, part 6: Processing more opcodes", "url": "https://briancallahan.net/blog/20210412.html", "published_at": "2021-04-12T00:00:00+00:00" }, { "id": "01a08759-0ea3-70c2-a17c-68c21310801f", "title": "2021-04-11: Demystifying programs that create programs, part 5: Processing our first opcode", "url": "https://briancallahan.net/blog/20210411.html", "published_at": "2021-04-11T00:00:00+00:00" }, { "id": "01a08759-0ea4-7044-9421-d4951bc0154a", "title": "2021-04-10: Demystifying programs that create programs, part 4: Parsing", "url": "https://briancallahan.net/blog/20210410.html", "published_at": "2021-04-10T00:00:00+00:00" }, { "id": "01a08759-0ea4-7044-9421-d4951c5fa477", "title": "2021-04-09: Demystifying programs that create programs, part 3: Globals, passes, and error handling", "url": "https://briancallahan.net/blog/20210409.html", "published_at": "2021-04-09T00:00:00+00:00" }, { "id": "01a08759-0ea4-7044-9421-d4951cbf0f01", "title": "2021-04-08: Demystifying programs that create programs, part 2: Starting an sassembler", "url": "https://briancallahan.net/blog/20210408.html", "published_at": "2021-04-08T00:00:00+00:00" }, { "id": "01a08759-0ea4-7044-9421-d4951ce89a33", "title": "2021-04-07: Demystifying programs that create programs, part 1: A disassembler", "url": "https://briancallahan.net/blog/20210407.html", "published_at": "2021-04-07T00:00:00+00:00" }, { "id": "01a08759-0ea4-7044-9421-d4951db2f074", "title": "2021-04-03: I got the GNU Modula-2 compiler working on OpenBSD", "url": "https://briancallahan.net/blog/20210403.html", "published_at": "2021-04-03T00:00:00+00:00" }, { "id": "01a08759-0ea4-7044-9421-d4951e0ae60a", "title": "2021-03-27: My experiences writing my first real D program and using it to improve OpenBSD D support", "url": "https://briancallahan.net/blog/20210327.html", "published_at": "2021-03-27T00:00:00+00:00" }, { "id": "01a08759-0ea4-7044-9421-d4951e6573bd", "title": "2021-03-20: A working D compiler on OpenBSD", "url": "https://briancallahan.net/blog/20210320.html", "published_at": "2021-03-20T00:00:00+00:00" }, { "id": "01a08759-0ea4-7044-9421-d4951eeaba78", "title": "2021-03-11: Quick shameless plug", "url": "https://briancallahan.net/blog/20210311.html", "published_at": "2021-03-11T00:00:00+00:00" }, { "id": "01a08759-0ea4-7044-9421-d4951f2ba347", "title": "2021-02-15: All the C compilers that can produce working binaries on OpenBSD -current (that I know of)", "url": "https://briancallahan.net/blog/20210215.html", "published_at": "2021-02-15T00:00:00+00:00" }, { "id": "01a08759-0ea4-7044-9421-d49520055c3a", "title": "2021-02-14: I donated a patch and got a free compiler!", "url": "https://briancallahan.net/blog/20210214.html", "published_at": "2021-02-14T00:00:00+00:00" }, { "id": "01a08759-0ea4-7044-9421-d49520b220b0", "title": "2020-11-24: I wrote a pager that works on Unix and CP/M", "url": "https://briancallahan.net/blog/20201124.html", "published_at": "2020-11-24T00:00:00+00:00" }, { "id": "01a08759-0ea4-7044-9421-d495215db549", "title": "2020-11-18: Comparing a new language for tiny machines", "url": "https://briancallahan.net/blog/20201118.html", "published_at": "2020-11-18T00:00:00+00:00" }, { "id": "01a08759-0ea4-7044-9421-d495218b49a1", "title": "2020-11-04: Why aren't new hams getting published?", "url": "https://briancallahan.net/blog/20201104.html", "published_at": "2020-11-07T00:00:00+00:00" }, { "id": "01a08759-0ea4-7044-9421-d49521fe6764", "title": "2020-10-10: Where are all the protocols?", "url": "https://briancallahan.net/blog/20201010.html", "published_at": "2020-10-10T00:00:00+00:00" }, { "id": "01a08759-0ea4-7044-9421-d49522cdcb7a", "title": "2020-09-26: From new ham to QEX author in two months", "url": "https://briancallahan.net/blog/20200926.html", "published_at": "2020-09-26T00:00:00+00:00" }, { "id": "01a08759-0ea4-7044-9421-d49523a48e8b", "title": "2020-08-27: Let's create a protocol, part 1: Introducing the CW Record Protocol", "url": "https://briancallahan.net/blog/20200827.html", "published_at": "2020-08-27T00:00:00+00:00" }, { "id": "01a08759-0ea4-7044-9421-d495242280be", "title": "2020-08-25: Why I got my amateur radio license in 2020", "url": "https://briancallahan.net/blog/20200825.html", "published_at": "2020-08-25T00:00:00+00:00" }, { "id": "01a08759-0ea4-7044-9421-d49524cb1e9a", "title": "2020-08-16: I wrote the world's worst text editor (so you don't have to)", "url": "https://briancallahan.net/blog/20200816.html", "published_at": "2020-08-16T00:00:00+00:00" }, { "id": "01a08759-0ea4-7044-9421-d495255420d8", "title": "2020-08-12: Can we do better than our C compiler?", "url": "https://briancallahan.net/blog/20200812.html", "published_at": "2020-08-12T00:00:00+00:00" }, { "id": "01a08759-0ea4-7044-9421-d49525acacfc", "title": "2020-08-08: Where do argc and argv come from?", "url": "https://briancallahan.net/blog/20200808.html", "published_at": "2020-08-08T00:00:00+00:00" }, { "id": "01a08759-0ea4-7044-9421-d495267d6655", "title": "2020-08-06: Compiler numbers, and why they don't matter", "url": "https://briancallahan.net/blog/20200806.html", "published_at": "2020-08-06T00:00:00+00:00" }, { "id": "01a08759-0ea4-7044-9421-d495269be72f", "title": "2020-08-03: Extreme minimalism and constraints in game development (Code deep dive #1)", "url": "https://briancallahan.net/blog/20200803.html", "published_at": "2020-08-03T00:00:00+00:00" }, { "id": "01a08759-0ea4-7044-9421-d49526b48bf8", "title": "2020-07-26: Introducing Free Bee", "url": "https://briancallahan.net/blog/20200726.html", "published_at": "2020-07-26T00:00:00+00:00" }, { "id": "01a08759-0ea4-7044-9421-d495279b6673", "title": "2020-06-15: TryHackMe|Learn Linux", "url": "https://briancallahan.net/blog/20200615.html", "published_at": "2020-06-15T00:00:00+00:00" } ] posts Claim your blog
Back to Brian Callahan
Blog · corpus.blog/blogs/briancallahan.net/posts

Brian Callahan

briancallahan.net

2026

2025

2024

2023

2022

2021

2020