The Curious Engineer

All blogs / Software / engineering practice

plasmasturm.org

plasmasturm.org

musings in human and machine language

Software / engineering practiceLinux / UnixPerl / RakuEssays / personal

Posts
468 from 16 Jan 2006 to 4 Oct 2026
Posting
now and then (2 in the last year)
Kind
personal blog
Feed
http://plasmasturm.org/feed

2026 2

  1. Working around freebsd-update’s lack of /etc merging
  2. It’s all in the name

2025 1

  1. Supplying Git a commit message prepared ahead of time

2024 2

  1. Low-brow clipboard integration with remote X
  2. Closing for trouble in the land of streams

2023 1

  1. How to eject external hard disks used for APFS TimeMachine backups (I’m not making this up)

2022 5

  1. Comparing the contents of gzipped tarballs
  2. The Programmers’ Credo
  3. “CAPTCHA”
  4. “POSIX hardlink heartache”
  5. “Learning to Read, Again”

2021 3

  1. A proposed adequate definition of a data breach
  2. Stop The Humour
  3. Early Signs

2019 3

  1. rename 1.601
  2. Canonical Log Lines
  3. Glimmer of hope

2018 4

  1. “When was this stored” vs “when did it happen”
  2. The HTTPS divide
  3. Mutually assured intel
  4. Doubly detached IRC

2017 5

  1. Don’t be a problem-solver
  2. Backoff
  3. Fixing a Google Chrome failure to save passwords
  4. Drunk driving on the information superhighway
  5. My dependence on Big Tech

2016 2

  1. My scraped feeds are now my scrapped feeds
  2. Useful GitHub Issues overviews

2015 7

  1. Good Mail Sorting
  2. Rate123
  3. On business data processing needs
  4. Privacy vs confidentiality in protocols
  5. Endorsing Mosh
  6. Three Gigahertz Forever
  7. Endorsing Scan Tailor

2014 14

  1. Communal software through communal funding
  2. Introducing Buftabline
  3. “Get ready to party!”
  4. Lingua programmatica
  5. “Not my favorite language”
  6. For Mozilla
  7. I got 5 on it
  8. A message of hope
  9. Sensible Git mail for the occasional user
  10. By any other name
  11. Real as can be, after all?
  12. djb has a weblog
  13. “Not Crying Over Old Code”
  14. Productivity porn

2013 9

  1. “Prosumer”
  2. Ideal line length
  3. Write just enough
  4. Presented without further comment
  5. Cargo Cult Simplicity
  6. A minimax SSH key regime
  7. rename 1.600
  8. Together we can end this destructive conflict
  9. A quote for the ages

2012 12

  1. EarPods
  2. Glasnost Lives!, or: All Nations Under The Source, or: Linux
  3. Code that counts
  4. Mythical
  5. An orphan olive branch to Mercurial
  6. Binduh
  7. Bug of the week
  8. Six Stages of Debugging
  9. Shoestring & bubblegum sound server
  10. Status quo awareness
  11. Concise XPath
  12. The essentially mediocre

2011 18

  1. Spend money on… which is it, now
  2. Elegy to my only love in the cloud
  3. Denting the universe
  4. “Disruptive”
  5. Mac Pro with VT220
  6. A quote on the state of patents
  7. A strange game
  8. Lines spent
  9. Faces of a culture
  10. Wet streets cause rain
  11. 0.999
  12. An era has come to an end
  13. Permissions For Browser-Based Applications
  14. “Doesn’t build platforms, except by accident”, part ∞
  15. The power of test suites
  16. Apple wouldn’t play with Apple
  17. Architectural soundness is sound business
  18. Trolliquette

2010 13

  1. On Yahoo!’s legacy
  2. A quote on the two things about programming
  3. Nothing new under the sun
  4. On the 12th of Never
  5. Wrapping up XSLT word wrapping
  6. “Announcing CPAN Testers 2.0”
  7. “The Basic Unit of Bug Report Frustration”
  8. (Glorified) CVS brain rot
  9. Driftwood in the sea of concepts
  10. iSingularity? (take 2)
  11. iSingularity?
  12. In praise of Git’s index
  13. On narratives in introspection

2009 21

  1. Idle design musing from last night
  2. What is the “controller” in a web app?
  3. Perl is Unix
  4. Wizards and Runes
  5. Three Evolutionary Stages of Version Control
  6. Scope of the difficulty: an idle moment’s association
  7. One heartfelt indictment
  8. Shortening the folly: an attempt
  9. Good HTTP citizenship for DiggBar protesters
  10. “A reasoned response to Scala/Ruby at Twitter…”
  11. In defense of mutable history
  12. We interrupt your… uh, regularly? Scheduled? The what?
  13. Ugly reasoning
  14. Who wants to live forever?
  15. Complexity is the enemy
  16. The Principle of Least Perpetual Astonishment
  17. Painless commit splitting in Git
  18. “Defending SOA”
  19. Endorsing DNS Prefetch
  20. He’s not making this up
  21. Sweating URI design leads to smell

2008 30

  1. Naming 10,000 Apps
  2. In brief praise of DVCSs
  3. The cost of being Linus Torvalds
  4. Engineering
  5. A cautionary tale
  6. Quote of the Day
  7. How to usurp PHP’s place: an outline
  8. Larry Wall on Perl 6 usability
  9. Why I counted characters in UTF-8
  10. John Gruber doesn’t understand freedom
  11. Protecting the artists
  12. An epigram on programming
  13. A useful oneliner for the feed web
  14. When you don’t follow all citations
  15. Don’t Go Dark, Go Distributed
  16. Deleting Deletionism?
  17. The problem definition is the problem
  18. Truth in project management
  19. When Groundhog Day ends
  20. It’s a topsy-turvy world
  21. Filed under “unclear on the concept”
  22. That looks about right
  23. No credit where no credit is due
  24. You know what’s tough?
  25. Continuous partial debate
  26. Paul Graham’s kind of dirty
  27. Album cover art meme
  28. Stefano Mazzocchi
  29. Frogs in hot water
  30. Why I chose Git

2007 22

  1. Can’t you just
  2. Perils of language-sensitively transliterated names, or, Better living through hack value
  3. Perl 5.10 released on Perl’s 20th anniversary
  4. The Sapir-WIMP hypothesis
  5. A brainchild only a mother could love
  6. When you want something done right
  7. Log
  8. Plus ça change
  9. Compile error fix for volume.app 1.1a
  10. Everything old is old again
  11. How to know you are using classic vi
  12. Enterprise software
  13. Filed under “safe bets”
  14. Oil and water
  15. Not a number
  16. Caveat commentor
  17. Business as usual
  18. Excited
  19. Expand then contract
  20. “Furthermore, the sky is pink.”
  21. Does REST need a service description language?
  22. “Four Words for Microsoft”

2006 1

  1. Who knows an XML document from a hole in the ground?

Undated 293

  1. The future is yesterday
  2. How to install Windows Vista’s new fonts on a Linux system
  3. Tree traversal without recursion: the tree as a state machine
  4. On tags (in the taxonomy sense) in Atom
  5. Feed subscripitions, personal brands and the potential for people gravity at their intersection
  6. Decoding URI-escaped characters… with sed
  7. λ will save us, or, Applicative trumps imperative in the large
  8. No longer necessary
  9. Tim Berners-Lee and the War On XML
  10. Curing the worst XSLT verbosity
  11. On employing RFC 2119 vernacular
  12. How to map CSS selectors to XPath queries
  13. Slow is The New Fast
  14. Sturdy and massive
  15. The shackles of safety
  16. Greg Brooks on the FBI’s plans for a new Net-tapping push
  17. Modern day pond scum
  18. Atomic Postel
  19. Ted Neward on Object/Relational Mappers
  20. WinFS is dead
  21. Good news for Perl on Win32
  22. Google Spreadtentacles
  23. XML::Atom::SimpleFeed 0.8
  24. xpathgrep 0.3
  25. Discontinuous web
  26. I say graceful degradation, you say progressive enhancement
  27. The chains we made, the chains we break
  28. “Beware Bags of Bools”
  29. Having Done Perl
  30. Very Large Hack Value
  31. State of the syndication art
  32. The joy of small projects and simple specs
  33. “Kate, when you take a liking to somebody, do you speed up or slow down?”
  34. “No Silver Bullet”
  35. Repairing broken documents that mix UTF-8 and ISO-8859-1
  36. This blue vessel
  37. Movie-Plot Terrorism Threat Contest
  38. Even if it doesn’t look cool
  39. “Floats are a hackish layout device”
  40. The O’Reilly Network suck at newsfeeds
  41. Worse is worse
  42. Tuned in carefully
  43. “Industries of Middlemen”
  44. Budget cut desperation
  45. You don’t have permission to view this entry.
  46. Introducing xpathgrep
  47. Worse is better, better is better
  48. “Choosing Sides”
  49. Reminiscing
  50. The web’s grain
  51. Half-baked musing of the day
  52. The quantum superspecification
  53. In which I write about PHP for the first and the last time
  54. RSS overload, part 3
  55. How to explain that adding programmers to a software project does not linearly accelerate it
  56. “But there was a party put on by a player, to celebrate a book authored by other players, with words about how to become players…”
  57. Usable interfaces just take a little thought
  58. We live in interesting times
  59. Uninteresting personal gripes
  60. Decoding Unicode codepoints into the corresponding character in XSLT
  61. Welcome to last quarter-decade
  62. You will know them by their fruits
  63. Why is it so hard to get this nail in?
  64. Styling Atom 1.0 feeds with CSS
  65. That feed icon
  66. Something fishy in the code
  67. A show of citizenship
  68. More on Atom aggregator XML namespace conformance tests
  69. “An infuriating construct”
  70. Brave 2.0 World
  71. Hyperhypertext
  72. Mark Jason Dominus is blogging
  73. Posting to Blogger’s Atom API from shell using curl
  74. Maintainable Programmers
  75. Endorsing SQLite
  76. So very, very tired
  77. Merrily chirping away
  78. The eternal scalability war: a profile
  79. Geek’s grooming: a keyboard hygiene experiment
  80. On the Humane Interfaces flap
  81. Best art project I’ve seen in a long time
  82. Transparent opaque changeable permanent URIs
  83. Log
  84. Patently braking
  85. Endorsing Tabinta
  86. Sellings strings on the street corner and the War On XML
  87. Turning the del.icio.us API format into proper Atom using XSLT
  88. Casting out the demons by the ruler of the demons
  89. Other people’s itches
  90. “How to build a house”
  91. …say what?
  92. History does not repeat itself, except as a farce
  93. Some computing aphorisms
  94. No wonder the spam keeps coming
  95. Email for procrastinators
  96. Media moguls: it’s the “mogul” that matters, not the “media”
  97. The Car extends Vehicle kindergarten, or, Replace Jargon With Pedagogy
  98. The DC component in the weblog signal
  99. Buzzword compliance
  100. Mental image
  101. “Programming is…”
  102. When (not) to reinvent the wheel
  103. Deployment: millions
  104. I want to earn the title!
  105. No XHTML support in IE 7
  106. From here to there and back again
  107. Atom 1.0 support for FeedParser
  108. And how dynamically disadvantaged is Perl, really?
  109. Dynamically disadvantaged?
  110. Google Talk, or, no news is big news
  111. Tag music played on a windy plain
  112. Buried Firefox XML goodie
  113. The quantum leap
  114. Tolerating Postel’s law
  115. Extremely upfront
  116. Hiring hammers
  117. *pant* *pant*
  118. Don’t patent yourself into a corner
  119. Humble pie
  120. Vindicated
  121. Surprises, and not
  122. Harsh and lonely
  123. Javascript instant iterators, at last
  124. Javascript instant iterators, refined
  125. “Everything I Know about Programming”
  126. RSS overload, part 2
  127. Overjoyed
  128. Grown up and boring
  129. A short note on consensus
  130. Endorsing Clearlooks
  131. On high hopes, misconceptions, and Apple on x86
  132. Linguistic snobs united
  133. Atom 1.0 has landed
  134. It’s getting cold down here
  135. Unwelcome solutions
  136. Tomayko’s Law of The Internet
  137. Rewriting software considered inadvisable
  138. Can we tone it down please?
  139. More shell quoting: this time for C
  140. Reliable shell quoting in shell
  141. I don’t GET the problem
  142. Aggregator engineering: feed refresh
  143. Delightful dotfile debauchery
  144. Myths about functional programming
  145. How to amuse yourself for five minutes
  146. For reference: on netiquette
  147. On the applications of Postel’s Law
  148. XHTML for IE
  149. The heights of idiocy
  150. All XML, all the time
  151. Tagging bubbles in a sea of spam
  152. “Expressiveness matters”
  153. Introducing dirsize
  154. Many ways to skin a char
  155. “Participatory narcissism”
  156. Can’t not.
  157. UTF-8 and how mutt just made me angry
  158. Endorsing Fusion
  159. Frank Hecker ponders weblog architecture
  160. Chlorine hazard: do not mix cleaning agents
  161. Have I mentioned that Vim rocks?
  162. What shall we paint this wiki?
  163. The perils of STFW
  164. Do as I say
  165. 1111111111
  166. Copying elements between namespaces in XSLT
  167. XPath vs the default namespace: easy things should be easy
  168. Trainwreckspotting, or: Corporations vs IT security as exemplified by the HBS
  169. Way ahead of the curve
  170. When more forgiving is less forgiving
  171. On corporations
  172. Lip service to democracy
  173. A trivial patent filter for the PTO inbox?
  174. Endorsing bmp-rootvis
  175. Just a mirage, after all?
  176. Patent macht frei.
  177. IE 7: predictions
  178. Did you need any further proof that Microsoft is evil?
  179. Surprising uses for technology
  180. Wikipedia’s trajectory in Google’s gravitation
  181. Why sIFR and co are a bad idea, #298734
  182. Firefox cache sanity
  183. September ended: too little too late
  184. A lightweight clustering method for distributed computing with mobile code
  185. “Bereft of ability and substance”
  186. Javascript-based web form validation done correctly
  187. Sick mind’s make abuse
  188. Serendipity
  189. linkextor
  190. A beautiful hack
  191. User interfaces that suck
  192. The filter chamber
  193. vi appreciation entry
  194. Stupid neologisms
  195. Security and the popularity factor
  196. Endorsing rxvt-unicode
  197. The sorry state of usability
  198. On titles, or maybe not
  199. Javascript instant iterators
  200. Hashcash (12″ Web Remix)
  201. Small fonts can be readable
  202. Intellectual komrad!
  203. templates.vim
  204. The tagged log
  205. Depressing
  206. Convincing LATEX to produce good-looking PDFs
  207. Word wrapping in XSLT
  208. Child naming in the Google era
  209. Prehistoric filesystem iteration
  210. Vim vs poor typography
  211. Netscapelorer: the beachhead
  212. Life-long debuggers
  213. Discovering XMLHttpRequest
  214. Secure password generation
  215. highlight
  216. Writing XUL and Javascript
  217. Vim never ceases to amaze
  218. Permalinks!
  219. It’s the language, silly
  220. Software piracy; morals; free software
  221. Endorsing Devel::Trace
  222. Not the end of malware
  223. Java versus Perl
  224. Wiki musings: one living document
  225. Endorsing OpenNTPD
  226. ISO-8859-1 vs Win-1252 in mutt
  227. C#: a fitting name?
  228. Software piracy and preachers practicers
  229. Shameless boasting
  230. Atom-to-HTML 0.2
  231. Windows may not have /dev/null, but its vendor does
  232. “Why am I on this mailing list?”
  233. My data on my system
  234. Running Apache2 under init control
  235. A first foray into feed generation
  236. Nixie Tube Digital Wristwatch
  237. My first ever CPAN upload
  238. Fragile windows
  239. Paul Graham tries his hand at cultural stereotypes
  240. Patently plotless
  241. Think about it
  242. A religious metaphor for the web
  243. Brain twisters and learned cognitive conflict
  244. Libertine software
  245. Bad idea
  246. Gmail is not for me
  247. Another installment of “Things not to do when writing Javascript”
  248. GNU Info sucks
  249. How to make favicons using NetPBM
  250. Cleaning up JPEG artifacts with GIMP
  251. Dealing with RSS overload
  252. Patently safe?
  253. Serge Lang says,
  254. Trust in collaborative creation
  255. Hilarity
  256. ASCII (he)art
  257. Introducing Atom-to-HTML
  258. The licence is as open as the project
  259. Opensource sucks
  260. OPML is spectacularly lousy
  261. Today in “Things not to do when writing Javascript”
  262. GUIs: the long road ahead
  263. mod_rewrite-free MIME type switcheroo
  264. The barrier-to-entry build system
  265. The future is bland
  266. “Plutotropic transhuman corporate overlords”
  267. Webdesigners suck
  268. rsync snapshot backups
  269. Trust the process
  270. How to create a Maildir
  271. Emulating shell worksheets in Vim
  272. Perl-enabled Vim tricks
  273. Gmail, or, of the window and the rationality being hurled thereout of
  274. Google rah-rah
  275. “Cargo cult”
  276. The ideal system monitor toy
  277. Phone Dial Web Browser
  278. Wiki musings: reader as author
  279. Wiki musings: subsuming the weblog metaphor
  280. Liquidly extending CSS boxes
  281. Restrictions sprout creativity
  282. Bookmarks in Vim
  283. Eric Raymond is not my voice
  284. Endorsing Enigma
  285. Re: The reason OSS isn’t taken seriously…
  286. Introducing gtk+ 2.0 Change Theme
  287. Keeping out the spam
  288. More layout container SSI hacking
  289. Endorsing Liferea
  290. Layout container SSI hack
  291. Going Maildir
  292. Endorsing hsetroot
  293. Here we go.