All posts, arranged by tag.
Acme
Adaptations
Advent of code
Adventure games
Review: The Excavation of Hob's Barrow
Review: Lair of the Clockwork God
Review: Unavowed
Review: Shardlight
Review: Demetrios
Review: Technobabylon
Review: Life is Strange
Review: Blackwell Epiphany
Advertising
Brave Rewards and web monetisation
Product placement in memes
Mine cryptocurrency instead of clicking ads
Android
Goodbye Blackberry
Apple and the jackless iPhone
Fudge productive test
Android development with Java
Anonymity
Apple
Apps
Art
Artificial intelligence
Dash it all
Signifier flotation devices
Adventures in pixel space
Adventures in latent space
Postmortem: Ludum Dare 53
Nine years go by
Stable Diffusion
Awesomewm
Backdated
Review: Meddling Kids
Posts from 2012
Review: The City & The City
Review: Infinite Jest
Review: Taft 2012
Review: The Door into Summer
Review: Little Brother
Review: To the Moon
Review: Ellie on Planet X
Bethesda
Bias
Biopic
Blackberry
Blogging
Books
Review: Red Rain
Review: Existentially Challenged
Review: In The Night Wood
Review: Meddling Kids
Review: The Gig Economy
Review: What the Hell Did I Just Read
Review: The Sense of Style
Review: Why's (Poignant) Guide to Ruby
Review: The King in Yellow
Review: The City & The City
Review: Infinite Jest
Review: Taft 2012
Review: Deep Sounding
Review: The General Zapped an Angel
Review: The Door into Summer
Review: Little Brother
Browsers
China miéville
Comedy
Comics
Animal Man and comics continuity
Review: Paranatural
Review: Apothecia
Pages per week
Review: Broodhollow
Review: Ellie on Planet X
Comments
Comparison
Conky
Conspiracy
Continuity
Creativity
Creepypasta
Cryptocurrency
Brave Rewards and web monetisation
Review: The Gig Economy
Going fourth
Mine cryptocurrency instead of clicking ads
Csrf
Ctf
Cyberpunk
Desktop
Dfw
Documentaries
Emacs
Encryption
Fake news on the social graph
RSS: there's nothing better
Apps vs websites
Scraping Facebook for fun and profit
Fantasy
Films
Free speech
Freedom
Frustration
Gag a day
Gamedev
Advent of Code 2024: Days 11–15
Postmortem: Ludum Dare 53
Game: Causality Couriers
Programming in Inform 7
Using an external text editor in GameMaker Studio 2
The project wizard
Programming in GameMaker
GameMaker and Git
Postmortem: Ludum Dare 33
Game: I Hunger
Gamemaker
Using an external text editor in GameMaker Studio 2
Programming in GameMaker
GameMaker and Git
Android development with Java
Games
Review: The Excavation of Hob's Barrow
Postmortem: Ludum Dare 53
Walkthrough: Causality Couriers
Game: Causality Couriers
Review: Impostor Factory
Review: Baba is You
Review: Factorio
Review: Lair of the Clockwork God
Review: The Outer Worlds
Review: Unavowed
Review: Shardlight
Review: Getting Over It with Bennett Foddy
Review: Finding Paradise
Review: The House in Fata Morgana
Review: Stardew Valley
Review: The Magic Circle
Review: Demetrios
Review: Undertale
Review: Technobabylon
Review: Life is Strange
Review: Out There Ω
Postmortem: Ludum Dare 33
Game: I Hunger
Review: Her Story
Iji: a subjective experience
Review: Starbound
GamerGate and game reviews
Game pricing
Review: Blackwell Epiphany
Review: To the Moon
Ghost
Ghost 1.0
The first three years
Moving to a static site
End of Year Two
YEAR OF THE GHOST BLOGGING PLATFORM
Website updates: fonts and random string helpers
Some comments on comments
A few site updates
This is the first post
Git
Gml
Advent of Code 2024: Days 1–5
Using an external text editor in GameMaker Studio 2
Programming in GameMaker
Google music
Goosebumps
Graph databases
Gruescript
Headphones
Homestuck
Horror
Review: Red Rain
Review: The Excavation of Hob's Barrow
Review: The Lost Room
Review: Existentially Challenged
Review: In The Night Wood
Review: Meddling Kids
Review: The Gig Economy
Review: What the Hell Did I Just Read
Review: The King in Yellow
Notes on HP Lovecraft and suspension of disbelief
Review: Apothecia
Review: Broodhollow
HTML
Hugo
Image upload with render hooks
Syntax highlighting with render hooks
Deprecating shortcodes with render hooks
Managing drafts in Hugo
How I publish this blog
The first three years
Moving to a static site
Hyprland
I3
I3wm
Ifttt
Iji
Image boards
Imageboards
Indie games
Review: The Excavation of Hob's Barrow
Review: Impostor Factory
Review: Baba is You
Review: Factorio
Review: Lair of the Clockwork God
Review: Unavowed
Review: Shardlight
Review: Getting Over It with Bennett Foddy
Review: Finding Paradise
Review: The House in Fata Morgana
Review: Stardew Valley
Review: The Magic Circle
Review: Demetrios
Review: Undertale
Review: Technobabylon
Review: Out There Ω
Iji: a subjective experience
Review: Starbound
Game pricing
Review: Blackwell Epiphany
Review: To the Moon
Indieweb
Inform7
Interactive narrative
Postmortem: Ludum Dare 53
Walkthrough: Causality Couriers
Game: Causality Couriers
Review: Impostor Factory
Programming in Inform 7
Review: Finding Paradise
Review: The House in Fata Morgana
Review: Life is Strange
Review: Out There Ω
Postmortem: Ludum Dare 33
Game: I Hunger
Review: Her Story
Review: To the Moon
Internet
Internet culture
The fate of Imgur
Powerpointless
Fake news on the social graph
Untangling the IndieWeb
Flat Earth
Product placement in memes
Review: The Gig Economy
The Mandela Effect and your imperfect memory
Password strength
GamerGate and game reviews
[s4s] and internet memes
Some comments on comments
Introduction
Iphone
Java
Javascript
Advent of Code 2024: Days 11–15
Untangling the IndieWeb
The inner page
Mine cryptocurrency instead of clicking ads
JSON
Kludge
Latex
Linux
Niri's infinite canvas
Postmortem: Trollcave
Walkthrough: Trollcave
Announcing Trollcave
Creating a personal wiki with Vimwiki and Gollum
Tiling window managers
Ways to download a file from a remote Windows machine
GPU passthrough: gaming on Windows on Linux
Showing the current Google Music song in conky
Directory persistence hack for webshells
Encrypting a second hard drive on Ubuntu (post-install)
Select only nth row in T-SQL (pre-2012)
Setting up a UniFi controller on CentOS with SELinux
Goodnight, sweet prince
Lovecraft
Review: The Gig Economy
Review: The King in Yellow
Notes on HP Lovecraft and suspension of disbelief
Ludology
Ludum dare
Postmortem: Ludum Dare 53
Walkthrough: Causality Couriers
Game: Causality Couriers
Postmortem: Ludum Dare 33
Game: I Hunger
Markdown
Image upload with render hooks
Syntax highlighting with render hooks
Deprecating shortcodes with render hooks
How I publish this blog
List encounters of the third kind
Ghost 1.0
Memes
Memory
Minecraft
Misc
Mobile
Goodbye Blackberry
Apple and the jackless iPhone
Apps vs websites
Fudge productive test
Android development with Java
Music
Narnia
Narratology
Netflix
Niri
Notable posts
Print stylesheets
Postmortem: Ludum Dare 53
Stable Diffusion
Illegal unrated blogpost
Roam Research
Fake news on the social graph
Untangling the IndieWeb
Mine cryptocurrency instead of clicking ads
RSS: there's nothing better
Programming in GameMaker
Password strength
Iji: a subjective experience
Notes on HP Lovecraft and suspension of disbelief
Scraping Facebook for fun and profit
Fudge productive test
Game pricing
[s4s] and internet memes
Goodnight, sweet prince
Obsidian
Outsider art
Paranormal
Passwords
Patreon
Pci passthrough
Plan 9
Platformers
Politics
Post apocalyptic
Postmortem
Postmortem: Ludum Dare 53
Postmortem: Trollcave
Postmortem: Ludum Dare 33
Scraping Facebook for fun and profit
Android development with Java
Powershell
Presentations
Programming
Advent of Code 2024: Days 11–15
Advent of Code 2024: Days 6–10
Advent of Code 2024: Days 1–5
Syntax highlighting with render hooks
Print stylesheets
Postmortem: Ludum Dare 53
Research first
Powerpointless
Text editors III: Emacs
Dumb smart quotes
Programming in Inform 7
Untangling the IndieWeb
Nested global substitution in Ruby
Using an external text editor in GameMaker Studio 2
The inner page
How I publish this blog
Review: Why's (Poignant) Guide to Ruby
Programming in GameMaker
Moving to a static site
Writing a LaTeX macro that takes a variable number of arguments
GameMaker and Git
Text editors II: Acme
Postmortem: Ludum Dare 33
Directory persistence hack for webshells
Text editors I: Vim
Select only nth row in T-SQL (pre-2012)
Automated file upload in Ruby with Net::HTTP and MultipartBody
Scraping Facebook for fun and profit
Android development with Java
Punctuation
Puzzles
Python
Rants
The Last Battle
Powerpointless
Death to the document
Dumb smart quotes
Fake news on the social graph
The project wizard
Ghost 1.0
RSS: there's nothing better
The Mandela Effect and your imperfect memory
Apple and the jackless iPhone
GamerGate and game reviews
Pages per week
Fudge productive test
Game pricing
The great ear cushion mystery
Regex
Render hooks
Image upload with render hooks
Syntax highlighting with render hooks
Deprecating shortcodes with render hooks
Retrospective
Up to eleven
Year X
Nine years go by
Eight bloggy years
Lucky number seven
Year Number Six
Five years
Going fourth
The first three years
End of Year Two
YEAR OF THE GHOST BLOGGING PLATFORM
Reviews
Review: Red Rain
Review: Bezos
Review: The Excavation of Hob's Barrow
Review: The Lost Room
Review: Existentially Challenged
Review: Impostor Factory
Review: Baba is You
Review: Factorio
Review: In The Night Wood
Review: Lair of the Clockwork God
Review: The Man From Earth: Holocene
Review: The Outer Worlds
Review: Unavowed
Review: Shardlight
Review: Meddling Kids
Review: The Gig Economy
Review: Getting Over It with Bennett Foddy
Review: Finding Paradise
Review: What the Hell Did I Just Read
Review: The Sense of Style
Review: Why's (Poignant) Guide to Ruby
Review: The House in Fata Morgana
Review: Paranatural
Review: Stardew Valley
Review: The Magic Circle
Review: Demetrios
Review: Undertale
Review: Technobabylon
Review: Life is Strange
Review: The King in Yellow
Review: The Force Awakens
Review: Out There Ω
Review: The City & The City
Review: Her Story
Review: Starbound
Review: Infinite Jest
Review: Apothecia
Review: Taft 2012
Review: Broodhollow
Review: Deep Sounding
Review: The General Zapped an Angel
Review: Blackwell Epiphany
Review: The Door into Summer
Review: Little Brother
Review: To the Moon
Review: Ellie on Planet X
Rss
Ruby
Advent of Code 2024: Days 1–5
Nested global substitution in Ruby
Postmortem: Trollcave
Walkthrough: Trollcave
Announcing Trollcave
Review: Why's (Poignant) Guide to Ruby
Creating a personal wiki with Vimwiki and Gollum
Directory persistence hack for webshells
Automated file upload in Ruby with Net::HTTP and MultipartBody
This is the first post
Rust
Sandbox
Science
Science fiction
Signifier flotation devices
Review: The Lost Room
Review: The Man From Earth: Holocene
Review: The Outer Worlds
Iji: a subjective experience
Review: The General Zapped an Angel
Review: The Door into Summer
Review: Little Brother
Review: Ellie on Planet X
Scp
Scrivener
Security
Exploiting Firebase Apps with Baserunner: Bibliography
Postmortem: Trollcave
Walkthrough: Trollcave
The project wizard
Announcing Trollcave
Ways to download a file from a remote Windows machine
Notes on contentEditable and HTML injection
Password strength
Notes on CSRF and the ASP.NET ViewState
Directory persistence hack for webshells
Notes on CSRF and JSON APIs
Encrypting a second hard drive on Ubuntu (post-install)
Select only nth row in T-SQL (pre-2012)
Setting up a UniFi controller on CentOS with SELinux
Automated file upload in Ruby with Net::HTTP and MultipartBody
Self publishing
Selinux
Sequels
Short stories
Sigmund corp
Software
Text editors III: Emacs
The project wizard
Text editors II: Acme
Text editors I: Vim
Writing software
Fudge productive test
The unified Windows 8 experience
Goodnight, sweet prince
Sokoban
Solidity
South africa
Space sim
Spotify
Star wars
Steam
Strawman
Substack
Superheroes
Synthography
Tablets
Talk
Tech
Niri's infinite canvas
Exploiting Firebase Apps with Baserunner: Bibliography
Adventures in pixel space
Review: Bezos
The many (bad) interfaces of Substack
Adventures in latent space
Goodbye Blackberry
Stable Diffusion
Eight bloggy years
Powerpointless
Death to the document
Illegal unrated blogpost
Roam Research
Browser reader modes
The unified Twitter experience
Untangling the IndieWeb
Site redesign
RIP Google Inbox
Spotify vs Google Music
The project wizard
Tiling window managers
Ghost 1.0
RSS: there's nothing better
Apple and the jackless iPhone
Apps vs websites
The unified Windows 8 experience
Goodnight, sweet prince
Television
Terraria
Text editors
Toxic skeuomorphism
Trollcave
True detective
Tumblr
Tutorials
Managing drafts in Hugo
Nested global substitution in Ruby
Using an external text editor in GameMaker Studio 2
Creating a personal wiki with Vimwiki and Gollum
Ways to download a file from a remote Windows machine
GPU passthrough: gaming on Windows on Linux
Writing a LaTeX macro that takes a variable number of arguments
Showing the current Google Music song in conky
GameMaker and Git
Directory persistence hack for webshells
Encrypting a second hard drive on Ubuntu (post-install)
Select only nth row in T-SQL (pre-2012)
Setting up a UniFi controller on CentOS with SELinux
Automated file upload in Ruby with Net::HTTP and MultipartBody
Twine
Typography
Dash it all
Print stylesheets
Footnote previews
Dumb smart quotes
List encounters of the third kind
Ghost 1.0
Website updates: fonts and random string helpers
University
Update
Footnote previews
Dark mode
Site redesign
Moving to a static site
Website updates: fonts and random string helpers
dot ee es
A few site updates
Urban fantasy
Videos
Viewstate
Vim
Virtual machines
Visual novels
Vulnerable vm
Walkthrough
Web
Webcomics
Websites
Up to eleven
Image upload with render hooks
Syntax highlighting with render hooks
Deprecating shortcodes with render hooks
Year X
The many (bad) interfaces of Substack
Print stylesheets
The fate of Imgur
Footnote previews
Brave Rewards and web monetisation
Fraidycat
Managing drafts in Hugo
Roam Research
Browser reader modes
Dark mode
The unified Twitter experience
Untangling the IndieWeb
Site redesign
The inner page
How I publish this blog
List encounters of the third kind
Mine cryptocurrency instead of clicking ads
Creating a personal wiki with Vimwiki and Gollum
Ghost 1.0
RSS: there's nothing better
Moving to a static site
End of Year Two
Notes on contentEditable and HTML injection
Notes on CSRF and the ASP.NET ViewState
Apps vs websites
Notes on CSRF and JSON APIs
YEAR OF THE GHOST BLOGGING PLATFORM
Website updates: fonts and random string helpers
Scraping Facebook for fun and profit
dot ee es
Some comments on comments
A few site updates
This is the first post
Wifi
Wikis
Wiley
Window managers
Windows
Ways to download a file from a remote Windows machine
GPU passthrough: gaming on Windows on Linux
The unified Windows 8 experience
Goodnight, sweet prince
Word
Writemonkey
Writing
Dash it all
Signifier flotation devices
Up to eleven
Year X
Nine years go by
Eight bloggy years
Lucky number seven
Roam Research
Year Number Six
List encounters of the third kind
Review: The Sense of Style
Creating a personal wiki with Vimwiki and Gollum
End of Year Two
Writing software