Mastodon
- 2024.12.2: The True Way of Not Deleting 3 Moths of Work, or: Thoughts on Product Design, Part 1
- 2024.11.8: The Sin of Words, Part 4
- 2024.11.4: The Sin of Words, Part 3
- 2024.11.2: The Double-Life Geek, or: Farewell to Gemini, Part 4
- 2024.11.2: The Sin of Words, Part 2
- 2024.11.2: Notes on Rewriting Systems, Part 1
- 2024.10.24: The Sin of Words, Part 1
- 2024.9.16: Do You Believe In Mandate Of Heaven? or: Farewell to Gemini, Part 3
- 2024.9.14: Why I'm Not Going To Use AI For Art Anymore
- 2024.8.26: My First Quakers Meeting
- 2024.8.24: Stargaze Lisp, Part One. (And other things on language design)
- 2024.7.31: My Response to Coraline Ehmke's Attack on Meritocracy, Nine Years Later
- 2024.7.12: My Current Single-User Fossil Server Setup
- 2024.7.9: Code Discordianism Revisited
- 2024.6.10: The History of Cleword (As I Remembered It)
- 2024.6.6: Model-Centric View Composition
- 2024.6.5: (A) Vision of a New Web
- 2024.3.8: PL/0, Part 3: References
- 2024.3.2: PL/0, Part 2: Parameters for procedures
- 2024.3.1: PL/0, Part 1: The whole original language
- 2024.2.6: Crimson: (Currently) A Lexer Generator
- 2024.1.13: The Design of Flowmark, a Text Macro Language
- 2024.1.7: A Reconstruction of TRAC Programming Language
- 2024.1.1: Code Discordianism
- 2023.12.23: Truly Forever Computers
- 2023.12.21: Why I Came to Dublin
- 2023.12.14: Testimony For Duolingo
- 2023.11.29: When beginners say they understand existing code but they don't know how to solve problems in general
- 2023.11.18: Farewell to Gemini, Part 2
- 2023.11.5: The KDE Plasma Audio Problem Saga (of My Arch Linux Setup)
- 2023.10.31: Handling CJK Input in SDL2
- 2023.9.7: Testimony Against Duolingo
- 2023.8.24: I decided to halt all plan9-related projects.
- 2023.8.23: Haiku OS User Experience Report (August 2023)
- 2023.6.18: My Failure At Creating A Basis for Indiecomputing
- 2023.6.15: Where I've Been In The Last Six Months
- 2023.2.13: Compiling Regular Expressions
- 2022.11.24: Plans for Camus 2
- 2022.10.8: A Few Thoughts on AI-Generated Art
- 2022.10.7: Mini16 Part 1: FAT12, Near & Far Pointers, and Thinking Before Coding
- 2022.9.21: Registering Shortcut Menus in Windows
- 2022.9.4: SRH Oberon: What and Why
- 2022.8.29: "You Are Doing It Wrong"
- 2022.8.25: Reconstructing Early Chinese Computers
- 2022.8.16: Reviving Into Infinity
- 2022.8.8: A small library for drawing trees & graphs with SVG.
- 2022.7.4: The Chifir Virtual Machine
- 2022.5.15: Making Sense of Latches and Flip-Flops
- 2022.5.5: "WhY nOt MaKe An OpEn SoUrCe CoNtRiBuTiOn?", they say
- 2022.4.26: Extracting Bitmap From Plan 9 Fonts
- 2022.4.22: After 5 Years I'm Trying To Write Sound Synthesis Programs Again
- 2022.4.8: Building A Basic Particle System
- 2022.2.12: Design of a Python to Postscript Compiler
- 2022.1.13: Just exactly how many tries should one expect to solve one Wordle problem?
- 2021.12.28: I tried developing ESP32-based smartwatch programs and I can't say I like it
- 2021.12.13: Finally after exactly 5 year and 3 days I have finished this side project
- 2021.11.1: Farewell to Gemini
- 2021.9.21: Mini16: 16-bit x86 Operating System for Teaching, Part 0
- 2021.9.14: Writing 16-Bit Tiny Model Standalone C Program With Open Watcom
- 2021.9.10: 交互式视频demo
- 2021.8.31: An 16-bit x86 Assembly Example for INT8/IRQ0
- 2021.7.8: My Painful Ride with VSCode Source Code (zh-cn)
- 2021.6.28: I Tried To Write A Simple Garbage Collector (zh-cn)
- 2021.6.20: 关于一次抄袭事件 (2021.6.20)
- 2021.6.8: Are if-statements Really That Bad Though? (zh-cn)
- 2021.3.7: Taste of APL, Revisited
- 2021.2.28: A taste of APL
- 2021.2.10: 抽象的层次
- 2020.11.23: p5js with brython
- 2020.10.7: LZW Compression & Decompression
- 2019.8.14: My RSI, and first step towards an ergonomic keyboard
- 2018.2.12: PFDS Note 2(zh-cn)
- 2018.2.10: PFDS Note 1(zh-cn)
- 2018.1.16: (Trying to) Understand Möbius Inversion Theorem Again(zh-cn)