underlap

Archive

  1. 2025
  2. Dead code
  3. IPC channel multiplexer
  4. /search/
  5. What am I up to "now"?
  6. IPC channel multiplexing: what next?
  7. Metrics
  8. RSS thank-you
  9. Visitor stats and the point of blogging
  10. Developer's block
  11. Software convergence
  12. Week note 2025-08-21
  13. Is it worth blocking AI bots?
  14. Formatting maths in Eleventy with KaTeX
  15. Blogging in markdown
  16. Arch linux take two
  17. Understanding eleventy
  18. Adding notes to an eleventy blog
  19. Replacing WriteFreely with eleventy
  20. i3 it is
  21. i3 versus a suckless window manager?
  22. Switching from xmonad to i3
  23. IPC channel multiplexing: next steps
  24. Is IPC channel multiplexing really necessary?
  25. Multiplexing principles
  26. IPC multiplexing prototype goes public
  27. Complexity, surface area, and traction
  28. Multiplexing over IPC channels: subchannel lifecycle
  29. Another Fosstodon moderator steps down
  30. Design driven development
  31. An ideal Linux desktop
  32. Fosstodon and authoritarian behaviour
  33. Multiplexing over IPC channels: a prototype
  34. The psychology of software development¹
  35. Self-hosting a RSS reader
  36. Software lineage: Mach ports vs BSD
  37. Blog questions challenge
  38. Progress on ipc-channel
  39. Understanding Unix sockets
  40. Social media and thought life
  41. A new project: servo/ipc-channel
  42. Advent of blogs: reflection
  43. Privacy
  44. What's occurring?¹
  45. Advent of blogs half done
  46. Principled code
  47. Guest book
  48. One year of underlap.org
  49. Trialling comments
  50. Advent of blogs
  51. Uses
  52. Blogs, signal to noise ratio, and discovery
  53. The notebook
  54. Renewing my SSL certificate
  55. How to learn Rust
  56. Ethics
  57. Open development experiment: reflection and conclusion
  58. Open development experiment: ordering function definition
  59. Open development experiment: re-entry
  60. Approaches to concurrent programming
  61. Open development experiment: interactions
  62. Open development experiment: search for Feistel networks
  63. Open development experiment: cryptographic primitives
  64. Open development experiment: ordering function (and reflection)
  65. Formatting maths using Typst
  66. Reflections on being a visiting lecturer
  67. Time to upgrade macOS
  68. Open development experiment: design
  69. Open development experiment: requirements
  70. Open development experiment: mathematical interlude
  71. An experiment in truly open software development
  72. Self-hosting a Rust link shortener
  73. Focused commits
  74. Construction of software and mathematical proofs
  75. Taking the blades SSG for a spin
  76. Static site generators
  77. VPS web server process users
  78. Notes
  79. VPS memory usage
  80. Incremental IndieWeb
  81. Re-basing webfinger-rs on fluent-uri-rs
  82. Installing webfinger-rs
  83. Approximating WebFinger via nginx
  84. A WebFinger server written in Rust
  85. Change of email address
  86. Writing better software design documents
  87. Why write unit tests? A response
  88. Dot Social: Threads Has Entered the Fediverse
  89. Blocking AI web crawlers
  90. NGINX robot access
  91. Starting a new programming project
  92. About anonymous blogging
  93. "I just wanna link the thing"
  94. Single user instances
  95. Process algebra and JSONPath descendant segment semantics
  96. License
  97. WriteFreely v0.15.0
  98. Testing non-deterministic behaviour
  99. "Programming Pearls" from the 1980's
  100. I don't understand
  101. Links
  102. Animating source code evolution
  103. Implementing JSONPath RFC 9535
  104. JSONPath: from blog post to RFC in 17 years
  105. Understanding Haskell's type system
  106. Top ten technical books
  107. "Cornerstones"
  108. Subscribe
  109. Topics
  110. Will I ever degoogle?
  111. Written by human, not AI
  112. The bad old days
  113. Blogroll
  114. Recovering from a pacman crash on arch Linux
  115. How to grow other software developers
  116. Start with an empty git commit
  117. NVIDIA problem upgrading arch to 6.7 kernel
  118. The Post Office Horizon system and ACID transactions
  119. Early internet access
  120. Abstracting cloud storage
  121. This site, one month in
  122. Account portability in the social web
  123. Why I loved mathematics and loathed history
  124. Promotion and its consequences
  125. Career planning or serendipity?
  126. Monads and more
  127. How I got into software development
  128. Software characters
  129. Retrospective posts (2007-2013)
  130. No solution for complexity - retrospective
  131. Leaving IBM - retrospective
  132. Joining Interface21 - retrospective
  133. Life in a small company - retrospective
  134. Coding and hill-walking - retrospective
  135. OSGi resolution is NP-Complete. So what? - retrospective
  136. Stumbling towards a better design - retrospective
  137. What did we learn in 100 sprints?
  138. Temporary simplification - retrospective
  139. Why I hate spikes - retrospective
  140. Harmful distractions - retrospective
  141. Work-life balance - retrospective
  142. Scrapping designs - retrospective
  143. Writing partial designs - retrospective
  144. Retrospective posts (2007-2013)
  145. The design documentation pendulum
  146. Why "underlap"?
  147. YAML considered harmful
  148. Fix for server error
  149. Backing up my WriteFreely instance
  150. Automatic RSS feeds
  151. Setting up a WriteFreely instance
  152. JSONPath RFC Nearing Publication
  153. Blog posts: historical documents or ephemera?
  154. Bring Back Blogging
  155. Tidying up git branches
  156. Managing scratch files in a git project
  157. Micro-commits
  158. On formalism in specification
  159. Software Manifestos
  160. A JSONPath Internet Draft
  161. The humble commit message
  162. Getting started with TDD
  163. So you want to be a software developer?