41554 blogs · [ { "id": "01a087cf-ec1a-71fd-bf91-4ec20ab9d664", "title": "How I got through my inbox in only two months", "url": "http://ratfactor.com/inbox2026-done", "published_at": "2026-07-31T00:00:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec20a1976ae", "title": "Two month calendar format for pocket notebooks", "url": "http://ratfactor.com/cards/pocket-notebook-calendar", "published_at": "2026-07-13T00:00:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec209a2f991", "title": "What should a personal website be?", "url": "http://ratfactor.com/cards/personal-website", "published_at": "2026-07-03T00:00:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec208fbfb3d", "title": "Project Inbox 2026", "url": "http://ratfactor.com/inbox2026", "published_at": "2026-05-17T00:00:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec20851f589", "title": "Ascetic Computing", "url": "http://ratfactor.com/ascetic-computing", "published_at": "2026-05-15T00:00:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec20847f500", "title": "This too shall pass", "url": "http://ratfactor.com/cards/this-too-shall-pass", "published_at": "2026-05-12T00:00:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec208222739", "title": "The First of a Double-Take", "url": "http://ratfactor.com/cards/first-of-a-double", "published_at": "2026-05-03T00:00:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec2076e9abc", "title": "Correction: Text FILES as a user interface", "url": "http://ratfactor.com/cards/text-files-as-ui", "published_at": "2026-05-02T14:14:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec206c53119", "title": "A text editor as a user interface", "url": "http://ratfactor.com/cards/text-editor-as-ui", "published_at": "2026-04-29T00:00:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec20667fcb0", "title": "Finishing Things", "url": "http://ratfactor.com/finishing-things", "published_at": "2026-04-20T00:00:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec2062b045e", "title": "My home network observes bedtime with OpenBSD and pf", "url": "http://ratfactor.com/openbsd/pf-gateway-bedtime", "published_at": "2026-03-22T00:00:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec205a0f0de", "title": "OpenBSD Blog #13: Moving ratfactor.com to OpenBSD.amsterdam", "url": "http://ratfactor.com/openbsd/blog-13-moving-to-openbsd-dot-amsterdam", "published_at": "2026-03-15T00:00:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec204f16db1", "title": "Fitted sheet update: Unfolding a professionally folded fitted sheet!", "url": "http://ratfactor.com/cards/fitted-sheets-pro-unfold", "published_at": "2026-03-02T00:00:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec204a7feab", "title": "Dave's book review for The Art of Doing Science and Engineering", "url": "http://ratfactor.com/b/the-art-of-doing-science-and-engineering", "published_at": "2026-02-28T00:00:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec204a6fc33", "title": "A programmer's loss of identity", "url": "http://ratfactor.com/tech-nope2", "published_at": "2026-02-13T00:00:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec203c29de9", "title": "LibreWolf", "url": "http://ratfactor.com/cards/librewolf", "published_at": "2025-10-22T00:00:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec203a52da2", "title": "Dave's Paper Notes: A Tutorial for the Sam Command Language", "url": "http://ratfactor.com/papers/sam-language", "published_at": "2025-10-01T00:00:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec202ca0bf7", "title": "Make a Web Font Subset", "url": "http://ratfactor.com/cards/make-a-webfont-subset", "published_at": "2025-09-08T00:05:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec2025bf02a", "title": "Why I Read Technical Books", "url": "http://ratfactor.com/b/technical-books", "published_at": "2025-08-24T00:00:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec201872c1d", "title": "Faceclick: A lightweight Emoji picker with keyword search", "url": "http://ratfactor.com/faceclick/index", "published_at": "2025-08-16T00:00:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec2013bbe62", "title": "Ratfactor's Illustrated Guide to Folding Fitted Sheets", "url": "http://ratfactor.com/cards/fitted-sheets", "published_at": "2025-08-08T00:00:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec200d3ac25", "title": "Super Easy* 2-Stage Git Deployment", "url": "http://ratfactor.com/cards/super-easy-2-stage-git-deployment", "published_at": "2025-07-12T00:00:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec200b982a4", "title": "Stack Display (cardboard desk toy for small paper notes)", "url": "http://ratfactor.com/cards/stack-display", "published_at": "2025-07-06T00:00:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec1fff2e161", "title": "Store as HTML, Edit as LML", "url": "http://ratfactor.com/htmlwarden/store-html-edit-lml", "published_at": "2025-06-18T00:23:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec1ff419a3e", "title": "Death to WYSIWYG!", "url": "http://ratfactor.com/htmlwarden/death-to-wysiwyg", "published_at": "2025-06-18T00:18:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec1fe564817", "title": "HTML WARDen (a wiki)", "url": "http://ratfactor.com/htmlwarden/index", "published_at": "2025-06-12T00:00:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec1fdf934d5", "title": "SVG Sourcecode Shapes (A Little Ruby Script that can make a self-portrait in SVG)", "url": "http://ratfactor.com/cards/code-shape-rb", "published_at": "2025-06-11T00:00:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec1fd588313", "title": "The Project Stack! (an actual paper stack)", "url": "http://ratfactor.com/cards/project-stack", "published_at": "2025-06-10T00:00:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec1fca68233", "title": "Small Programs and Languages", "url": "http://ratfactor.com/cards/pl-small", "published_at": "2025-06-04T00:00:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec1fc5f5716", "title": "Implementing a Forth", "url": "http://ratfactor.com/forth/implementing", "published_at": "2025-05-30T00:00:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec1fbdbb80b", "title": "Making a first Luanti mod: A new block type appears!", "url": "http://ratfactor.com/luanti/first_mod", "published_at": "2025-05-26T00:00:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec1fb4e97cd", "title": "The One-Tree Website", "url": "http://ratfactor.com/cards/one-tree-website", "published_at": "2025-05-20T00:00:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec1fb1172d7", "title": "Forever Worlds", "url": "http://ratfactor.com/cards/forever-world", "published_at": "2025-05-16T00:00:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec1facd759f", "title": "Of CSS and Palm Oil", "url": "http://ratfactor.com/cards/css-and-palm-oil", "published_at": "2025-05-12T00:00:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec1fa27cb50", "title": "I learned Snobol and then wrote a toy Forth", "url": "http://ratfactor.com/snobol/", "published_at": "2025-05-10T00:00:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec1f936564f", "title": "Explanation of the Ratfactor Feed", "url": "http://ratfactor.com/atom-explanation", "published_at": "2025-05-06T00:00:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec1f8a51544", "title": "Go read Peter Naur's \"Programming as Theory Building\" and then come back and tell me that LLMs can replace human programmers", "url": "http://ratfactor.com/cards/naur-vs-llms", "published_at": "2025-04-27T00:00:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec1f80f29f0", "title": "Famsite - a tiny social site for families", "url": "http://ratfactor.com/repos/famsite/", "published_at": "2025-04-11T00:00:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec1f748f883", "title": "I'm an American software developer and the \"broligarchs\" don't speak for me", "url": "http://ratfactor.com/tech-nope", "published_at": "2025-03-19T00:00:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec1f72e76cb", "title": "Ratfactor's Sequence Timer", "url": "https://ratfactor.com/tools/timerseq.html", "published_at": "2024-10-02T00:00:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec1f6cc801a", "title": "MNT Pocket Reform - Unboxing and First Impressions", "url": "http://ratfactor.com/mnt-pocket-reform/first", "published_at": "2024-09-03T00:00:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec1f627d6f7", "title": "** RSS Club ** | Rip-Off", "url": "http://ratfactor.com/rss-club/ripoff", "published_at": "2024-07-27T00:00:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec1f54defdb", "title": "Wrapping up 2023, plans for 2024", "url": "http://ratfactor.com/wrap-2023", "published_at": "2024-03-07T00:00:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec1f5046c55", "title": "Leopard-Free Programming", "url": "http://ratfactor.com/cards/leopard-free", "published_at": "2024-02-03T00:00:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec1f4abde59", "title": "Multiple Tools", "url": "http://ratfactor.com/cards/multiple-tools", "published_at": "2023-12-30T00:00:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec1f45c195e", "title": "Fake Trees: Using Indents For Simpler UIs", "url": "http://ratfactor.com/cards/fake-trees", "published_at": "2023-12-29T00:00:00+00:00" }, { "id": "01a087cf-ec1a-71fd-bf91-4ec1f36d0dab", "title": "The Tale of this and the JavaScript developer", "url": "http://ratfactor.com/cards/js-this", "published_at": "2023-12-18T00:00:00+00:00" }, { "id": "01a087cf-ec19-723c-b836-52cc57f3fc6f", "title": "Archive Your Projects!", "url": "http://ratfactor.com/cards/archive-your-projects", "published_at": "2023-12-16T00:00:00+00:00" }, { "id": "01a087cf-ec19-723c-b836-52cc57d4c70d", "title": "SVG Minifier in Ruby", "url": "http://ratfactor.com/cards/svg-min-ruby", "published_at": "2023-12-14T00:00:00+00:00" }, { "id": "01a087cf-ec19-723c-b836-52cc56da864a", "title": "Interpreting if/else logic with a simple flat list of booleans", "url": "http://ratfactor.com/cards/if-else-stack", "published_at": "2023-12-12T00:00:00+00:00" }, { "id": "01a087cf-ec19-723c-b836-52cc5690524c", "title": "The making of a T-shirt design for Eggnog Games / Maze Dog", "url": "http://ratfactor.com/nogdog/", "published_at": "2023-12-10T00:00:00+00:00" }, { "id": "01a087cf-ec19-723c-b836-52cc5645be3f", "title": "December Adventure 2023 (The Hiss Log)", "url": "http://ratfactor.com/hiss/log", "published_at": "2023-12-01T00:00:00+00:00" }, { "id": "01a087cf-ec19-723c-b836-52cc55f05c52", "title": "Meow5: The Conclusion", "url": "http://ratfactor.com/meow5/done", "published_at": "2023-11-21T00:00:00+00:00" }, { "id": "01a087cf-ec19-723c-b836-52cc558e6870", "title": "rat-tools", "url": "https://www.ratfactor.com/repos/rat-tools/", "published_at": "2023-11-15T00:00:00+00:00" }, { "id": "01a087cf-ec19-723c-b836-52cc54bec9a6", "title": "i386 Assembly Language trick for storing data in .text", "url": "http://ratfactor.com/cards/asm-data-in-text", "published_at": "2023-11-08T00:00:00+00:00" }, { "id": "01a087cf-ec19-723c-b836-52cc545d9376", "title": "pumpkin.sh - a Halloween pumpkin for your terminal", "url": "http://ratfactor.com/repos/pumpkin.sh/", "published_at": "2023-10-31T00:00:00+00:00" }, { "id": "01a087cf-ec19-723c-b836-52cc53bda56f", "title": "Making the Zig standard library readable - another go!", "url": "http://ratfactor.com/repos/zstd-browse2/", "published_at": "2023-10-28T00:00:00+00:00" }, { "id": "01a087cf-ec19-723c-b836-52cc53949a5a", "title": "run.sh", "url": "http://ratfactor.com/cards/run-sh", "published_at": "2023-10-22T00:00:00+00:00" }, { "id": "01a087cf-ec19-723c-b836-52cc53135b0d", "title": "Literate Programming", "url": "http://ratfactor.com/cards/literate-programming", "published_at": "2023-10-20T00:00:00+00:00" }, { "id": "01a087cf-ec19-723c-b836-52cc52e1f44c", "title": "RubyLit - This README is a program!", "url": "http://ratfactor.com/repos/rubylit/", "published_at": "2023-10-19T00:00:00+00:00" }, { "id": "01a087cf-ec19-723c-b836-52cc520e84e7", "title": "Retro-Simplicity", "url": "http://ratfactor.com/cards/retro-simplicity", "published_at": "2023-10-11T00:00:00+00:00" }, { "id": "01a087cf-ec19-723c-b836-52cc51898a3a", "title": "RepoRat", "url": "http://ratfactor.com/repos/reporat/", "published_at": "2023-09-29T00:00:00+00:00" }, { "id": "01a087cf-ec19-723c-b836-52cc50e15ef6", "title": "Ziglings has moved to Codeberg! (and ziglings.org)", "url": "https://ziglings.org", "published_at": "2023-09-19T00:00:00+00:00" }, { "id": "01a087cf-ec19-723c-b836-52cc4ffb5502", "title": "** RSS Club ** | Reply Guys and the Orange Site", "url": "http://ratfactor.com/rss-club/reply-guy", "published_at": "2023-09-12T00:00:00+00:00" }, { "id": "01a087cf-ec19-723c-b836-52cc4f60e24f", "title": "Leaving GitHub", "url": "http://ratfactor.com/leaving-github", "published_at": "2023-09-04T00:00:00+00:00" }, { "id": "01a087cf-ec19-723c-b836-52cc4edf2dca", "title": "The Ramp-Down", "url": "http://ratfactor.com/cards/ramp-down", "published_at": "2023-08-23T00:00:00+00:00" }, { "id": "01a087cf-ec18-70a3-893c-a76c6adfa247", "title": "Software I Use", "url": "http://ratfactor.com/slackware/software", "published_at": "2023-07-21T00:00:00+00:00" }, { "id": "01a087cf-ec18-70a3-893c-a76c6ad82053", "title": "*DONE!* Forth: The programming language that writes itself: The Web Page", "url": "http://ratfactor.com/forth/the_programming_language_that_writes_itself.html", "published_at": "2023-07-16T00:00:00+00:00" }, { "id": "01a087cf-ec18-70a3-893c-a76c69ed41d7", "title": "MC2023 Chapter 5: Programming the Pico PIO", "url": "http://ratfactor.com/mc2023/chapter5", "published_at": "2023-06-26T00:00:00+00:00" }, { "id": "01a087cf-ec18-70a3-893c-a76c692d06cb", "title": "I think Zig is hard...but worth it", "url": "http://ratfactor.com/zig/hard", "published_at": "2023-05-31T00:00:00+00:00" }, { "id": "01a087cf-ec18-70a3-893c-a76c69022889", "title": "Temporal Workspaces", "url": "http://ratfactor.com/cards/temporal-workspaces", "published_at": "2023-05-30T00:00:00+00:00" }, { "id": "01a087cf-ec18-70a3-893c-a76c6866b399", "title": "Project Balance - how many to juggle?", "url": "http://ratfactor.com/cards/project-balance", "published_at": "2023-05-25T00:00:00+00:00" }, { "id": "01a087cf-ec18-70a3-893c-a76c67d5c878", "title": "Dave's Paper Notes: Programming as Theory Building", "url": "http://ratfactor.com/papers/naur1", "published_at": "2023-05-12T00:00:00+00:00" }, { "id": "01a087cf-ec18-70a3-893c-a76c671198d7", "title": "MC2023 Chapter 4: I2C and an OLED", "url": "http://ratfactor.com/mc2023/chapter4", "published_at": "2023-05-07T00:00:00+00:00" }, { "id": "01a087cf-ec18-70a3-893c-a76c664f9326", "title": "MC2023 Chapter 3: PWM with a servo", "url": "http://ratfactor.com/mc2023/chapter3", "published_at": "2023-04-22T00:00:00+00:00" }, { "id": "01a087cf-ec18-70a3-893c-a76c66254109", "title": "MC2023 Chapter 2: Blinking, buzzing, events, PWM, and a great book", "url": "http://ratfactor.com/mc2023/chapter2", "published_at": "2023-04-18T00:00:00+00:00" }, { "id": "01a087cf-ec18-70a3-893c-a76c65e2fe50", "title": "** RSS Club ** | nosurf4", "url": "http://ratfactor.com/rss-club/nosurf4", "published_at": "2023-04-17T00:00:00+00:00" }, { "id": "01a087cf-ec18-70a3-893c-a76c643cc9a2", "title": "Do it the dumb way first", "url": "http://ratfactor.com/cards/dumb-first", "published_at": "2023-04-04T00:00:00+00:00" }, { "id": "01a087cf-ec18-70a3-893c-a76c6537eb6c", "title": "Build It Twice", "url": "http://ratfactor.com/cards/build-it-twice", "published_at": "2023-04-04T00:00:00+00:00" }, { "id": "01a087cf-ec18-70a3-893c-a76c63f63fc5", "title": "Ziglings needed help and I got it!", "url": "http://ratfactor.com/zig/help", "published_at": "2023-04-03T00:00:00+00:00" }, { "id": "01a087cf-ec18-70a3-893c-a76c632a0aa9", "title": "RetroV", "url": "http://ratfactor.com/retrov/", "published_at": "2023-03-28T00:00:00+00:00" }, { "id": "01a087cf-ec18-70a3-893c-a76c62b36421", "title": "Three monitors with Linux (Slackware)", "url": "http://ratfactor.com/slackware/three-monitors", "published_at": "2023-03-06T00:00:00+00:00" }, { "id": "01a087cf-ec18-70a3-893c-a76c6203bcc6", "title": "Slackbuilds.org is pretty amazing", "url": "http://ratfactor.com/slackware/slackbuilds", "published_at": "2023-03-05T00:00:00+00:00" }, { "id": "01a087cf-ec18-70a3-893c-a76c618164fc", "title": "zignew and zigswitch (Bash scripts)", "url": "http://ratfactor.com/zig/zignew-zigswitch", "published_at": "2023-03-04T00:00:00+00:00" }, { "id": "01a087cf-ec18-70a3-893c-a76c616a7744", "title": "How I set up new computers with Slackware Linux", "url": "http://ratfactor.com/slackware/new-computer", "published_at": "2023-02-26T00:00:00+00:00" }, { "id": "01a087cf-ec18-70a3-893c-a76c612b6bb9", "title": "Forth: The programming language that writes itself", "url": "http://ratfactor.com/forth/forth_talk_2023.html", "published_at": "2023-02-24T00:00:00+00:00" }, { "id": "01a087cf-ec18-70a3-893c-a76c611d2513", "title": "Hoo? A Tarot Deck and Game", "url": "http://ratfactor.com/hoo/index", "published_at": "2023-01-30T00:00:00+00:00" }, { "id": "01a087cf-ec18-70a3-893c-a76c603698d5", "title": "Vim Search Folding!", "url": "http://ratfactor.com/cards/vim-search-folding", "published_at": "2023-01-26T00:00:00+00:00" }, { "id": "01a087cf-ec18-70a3-893c-a76c5f82bad9", "title": "Hoo? The Tarot Deck!", "url": "http://ratfactor.com/hoo/deck", "published_at": "2023-01-15T00:00:00+00:00" }, { "id": "01a087cf-ec18-70a3-893c-a76c5f56c4f7", "title": "MC2023 Chapter 1: Hello World and blinking LEDs", "url": "http://ratfactor.com/mc2023/chapter1", "published_at": "2023-01-13T00:00:00+00:00" }, { "id": "01a087cf-ec18-70a3-893c-a76c5e825e80", "title": "minslides - Easiest Presentation Slides Ever?", "url": "http://ratfactor.com/minslides/", "published_at": "2023-01-11T00:00:00+00:00" }, { "id": "01a087cf-ec18-70a3-893c-a76c5e1898a7", "title": "The Year of the Microcontroller", "url": "http://ratfactor.com/mc2023/", "published_at": "2023-01-01T00:00:00+00:00" }, { "id": "01a087cf-ec18-70a3-893c-a76c5d563a02", "title": "Dave's OpenBSD Blog 5. Tour conclusion", "url": "http://ratfactor.com/openbsd/blog-05-tour-conclusion", "published_at": "2022-12-31T00:00:00+00:00" }, { "id": "01a087cf-ec18-70a3-893c-a76c5cd97297", "title": "Dave's OpenBSD Blog 4. Servers and X", "url": "http://ratfactor.com/openbsd/blog-04-servers-and-x", "published_at": "2022-12-30T00:00:00+00:00" }, { "id": "01a087cf-ec18-70a3-893c-a76c5bde790a", "title": "Dave's OpenBSD Blog 3. More!", "url": "http://ratfactor.com/openbsd/blog-03-more", "published_at": "2022-12-28T00:00:00+00:00" }, { "id": "01a087cf-ec18-70a3-893c-a76c5afdbb23", "title": "Mr. Tree Goes Down", "url": "http://ratfactor.com/mrtree/", "published_at": "2022-11-27T00:00:00+00:00" }, { "id": "01a087cf-ec18-70a3-893c-a76c5a5bd7b0", "title": "Meow5: An Extremely Concatenative Programming Language", "url": "http://ratfactor.com/meow5/", "published_at": "2022-11-10T00:00:00+00:00" }, { "id": "01a087cf-ec18-70a3-893c-a76c5a4e856b", "title": "** RSS Club ** | Aaron Swartz", "url": "http://ratfactor.com/rss-club/aaron-swartz", "published_at": "2022-11-08T00:00:00+00:00" }, { "id": "01a087cf-ec18-70a3-893c-a76c596c0bad", "title": "Assembly Nights 2", "url": "http://ratfactor.com/assembly-nights2", "published_at": "2022-11-04T00:00:00+00:00" }, { "id": "01a087cf-ec18-70a3-893c-a76c592be7bc", "title": "Woo! It's Done! nasmjf Forth", "url": "http://ratfactor.com/nasmjf/", "published_at": "2022-10-10T00:00:00+00:00" } ] posts Claim your blog
Back to Home - ratfactor
Blog · corpus.blog/blogs/ratfactor.com/posts

Home - ratfactor

ratfactor.com

2026

2025

2024

2023

2022