The Curious Engineer

with words, wonder

2023–2026

1,461 posts

← 2020–2022

2026 434

October 2026

  1. morning coffee
  2. Life
  3. my desk
  4. walking
  5. Nature
  6. brainstorming the multi-lingual reading experience for artemis
  7. Artemis
  8. wonders of web weaving, episode 24
  9. Wonders of Web Weaving
  10. contours
  11. Seen
  12. autumn (essence, of) (zine)
  13. flow (or, thinking through) (zine)
  14. Zines
  15. Poetry
  16. Weeknotes W1
  17. Weeknotes
  18. Autumn
  19. Websites in artistic contexts
  20. Web
  21. Food Questions Challenge
  22. Some things that bring me joy
  23. Nature
  24. Moments of Joy
  25. Catch a Bird (or, Happiness)
  26. Meaning
  27. Ground
  28. Wonders of Web Weaving, Episode 23
  29. IndieWeb Fiction Carnival September 2026 Roundup
  30. Romantics, VI
  31. Wonders of Web Weaving, Episode 22
  32. Of Days
  33. Walking
  34. The views
  35. My favourite tracks on The Life of a Showgirl: Encore
  36. Autumn days
  37. Pages
  38. Sunflowers in the Sky
  39. Sunset
  40. Song
  41. Noticing
  42. Kindness (or, reflecting on TODOs)
  43. Care
  44. Sunrise
  45. Notes from the gallery
  46. Rainbow walk

September 2026

  1. ever-changing
  2. here, something
  3. The (continuing) joy of monostiches
  4. Autumn morning
  5. Wonders of Web Weaving, Episode 21
  6. Ensuring my posts have permalinks using bash
  7. First pianos
  8. Nights
  9. the age
  10. Morning moon
  11. leaves, lights
  12. Autumn walk
  13. Sunset
  14. Fallbacks
  15. Autumn
  16. Awe
  17. New music morning
  18. Wonders of Web Weaving, Episode 20
  19. Sticker memories
  20. The feeling of writing
  21. Autumn
  22. Autumn dreams
  23. Became (or, connecting notes to finished works)
  24. Of Day
  25. Moments of joy
  26. On (disabling) suggested filenames on macOS 27
  27. Beauty
  28. Wonders of Web Weaving, Episode 19
  29. Resilience
  30. 8-Bit Day 2026
  31. Loading bold and italics fonts on my website
  32. Autumn
  33. The coffee
  34. Arts
  35. Of Day
  36. Perspective
  37. the painting
  38. Visual; textual
  39. Second year
  40. Autumn
  41. Starry night
  42. Making memories with music
  43. Wonders of Web Weaving, Episode 18
  44. Musical dreams
  45. Complements: Art history, writing
  46. Timing events in code
  47. morning
  48. A Creative’s Guide to Personal Websites (Zine)
  49. autumn, winter
  50. six strings
  51. Morning impressions
  52. fishing
  53. Music Exchange: Bridge Over the Stars <> iPod Touch
  54. Your tiny Gallery Guide (a zine)
  55. There was no moonlight tonight.
  56. Inspirations
  57. this is me trying (to make a zine)
  58. Bear Blog Carnival September 2026: Music memories
  59. Hiding elements on mobile and desktop with CSS
  60. Impressionism
  61. the park
  62. Wonders of Web Weaving, Episode 17
  63. IndieWeb Fiction Carnival September 2026: Moonlight
  64. Marble Memories

August 2026

  1. Blaugust 2026 in review
  2. A moment
  3. Chinese Idioms (Guest post by Naty)
  4. Enjoy some art with me
  5. Old Picture of the Boat-Bridge at Sano, Kozuke Province by Hokusai
  6. Early Autumn
  7. Flow
  8. The joy of
  9. Music Exchange: Lost in Yesterday <> Satisfied Mind
  10. The instruction manual
  11. The holiday
  12. Midnight scrapbooking
  13. Moods, places; translations
  14. Reading as participation in the indie web
  15. Edinburgh Summer Sessions
  16. How I organise my bookshelf
  17. Wonders of Web Weaving, Episode 16
  18. First moments
  19. Links from this month
  20. Art, technology; change
  21. Things I want to remember
  22. Organising physical artefacts
  23. Saturday morning
  24. seasons
  25. Gaze
  26. potential
  27. HTML element letter count distribution
  28. Music; pressure
  29. Change; anchors
  30. Re: My perfect laptop
  31. Brainstorming site name changes in web readers
  32. Why I wish people a happy day of the week
  33. Organising my blog categories
  34. The Tower of Babel by Bruegel the Elder
  35. Wonders of Web Weaving, Episode 15
  36. Movement
  37. The Poet (Le poète) by Picasso
  38. The Hay Wain by John Constable
  39. I’m Old Fashioned by Ben Paterson
  40. Miniatures, reference works, and writing
  41. Plainsong by The Cure
  42. Inspiration from physical artefacts
  43. Morning; walking; music
  44. Surf by Stanley Cursiter
  45. Edgar
  46. Paper
  47. memories
  48. Autumn 2
  49. questions, ii
  50. Questions
  51. Breath
  52. Sunset 2
  53. Afterglow
  54. Impressions; museums
  55. Eclipse
  56. Wonders of Web Weaving, Episode 14
  57. Music; electricity
  58. Perspectives
  59. how the poem
  60. Morning, sunrise
  61. Poems as wayfinding
  62. Images
  63. Evening
  64. HTML Day 2026
  65. The sound of writing
  66. Auld Faithful
  67. Morning
  68. Depths
  69. I Thought it Was a Tire
  70. searching
  71. Museums
  72. Space 2
  73. Space (making)
  74. Space-making
  75. Wonders of Web Weaving, Episode 13
  76. Raindrops
  77. Sorting drafts with w-shingling
  78. Evening
  79. am
  80. The Met
  81. Midnight
  82. August
  83. Skies; distance
  84. Countryside; Blaugust

July 2026

  1. Of Day
  2. Lattes
  3. the writer’s mind
  4. New 2
  5. Wonders of Web Weaving, Episode 12
  6. Blogs, websites, and identity
  7. Bookshelves
  8. Streams
  9. The Royal Mile
  10. The Typist
  11. Wonders of Web Weaving, Episode 11
  12. Music
  13. Of Day
  14. Multi-line links on my home page
  15. Adding anchor links to my category pages
  16. Re: An IndieWeb Event for Southeast Asia / Pacific Time Zones
  17. Website superpowers
  18. Wonders of Web Weaving, Episode 10
  19. Sunset
  20. Space rhythm
  21. ‘Repeat that, repeat’ (Collaborative writing)
  22. anthology of self
  23. Winter
  24. Joys
  25. Reflection
  26. Gardens
  27. 75 reasons to start a personal website
  28. Nature walking
  29. Sunset; music
  30. Wonders of Web Weaving, Episode 9
  31. IndieWebCamp Nürnberg 2026
  32. A week in Nürnberg
  33. Author/reader interaction on the indie web
  34. Brainstorming a loginless web reader
  35. What does a blog post sound like?
  36. Star
  37. How do I know the system is working?
  38. Forest
  39. Small wishes, II
  40. Deduplicating posts after URL changes in Artemis
  41. Processing feed items without URLs in Artemis

June 2026

  1. Wonders of Web Weaving, Episode 8
  2. Unnatural
  3. Make your own web quizzes!
  4. Wonders of Web Weaving, Episode 7
  5. Stars
  6. Which microformat are you? [Quiz]
  7. Removing prefixes and suffixes in Python
  8. Inside; outside
  9. Small wishes
  10. Little moments of joy
  11. Blog posts as starting points
  12. Blogger Archetype Quiz
  13. Day
  14. Forward
  15. Open sourcing a quiz maker
  16. Rainbow
  17. Late night blogging
  18. The fountain
  19. Views
  20. Lovers
  21. Wonders of Web Weaving, Episode 6
  22. Clouds; colour
  23. Taylor Swift question challenge
  24. Bringing people together with the web
  25. Wonders of Web Weaving, Episode 5
  26. Morning coffee
  27. Aether-draft
  28. Moments; time
  29. Sunset clouds
  30. The story of MJ
  31. Hiding a list with no items in CSS
  32. Is there a power law of category use?
  33. Chat community for web writers?
  34. Digital minimalism
  35. Wonders of Web Weaving, Episode 4
  36. JUnited 2026
  37. Creative spaces
  38. Flagging suspicious websites in Artemis
  39. Distinguishing user and system content

May 2026

  1. The caramel log
  2. Milk chews
  3. Home
  4. Waiting; writing
  5. Mitigating floods of posts in Artemis
  6. First year
  7. Views; between
  8. Wonders of Web Weaving, Episode 3
  9. Writing a regex for adding links to time stamps
  10. Slack preferences I have set
  11. Joining the IndieWeb Zine Pop Up
  12. Iced coffee in Spring
  13. Background; foreground
  14. Ready
  15. Wonders of Web Weaving, Episode 2
  16. My favourite typewriter
  17. Growing with my website
  18. Evening tea
  19. Announcing Wonders of Web Weaving
  20. Walking
  21. Serendipity
  22. Writing a blog post without a screen
  23. Affordances of a screenless writing interface
  24. How I use my phone
  25. Artemis changelog #9
  26. Ideas for web readers
  27. Night shift
  28. Quotes from Tufte’s course
  29. Using greyscale
  30. Seasons
  31. Reorganising the Artemis settings page
  32. Designing software with travel in mind
  33. Sunset, Düsseldorf
  34. Of the night; a note
  35. Log in, sign in
  36. Joyful web design
  37. Walking
  38. My words, not my content
  39. Day; night

April 2026

  1. IndieWebCamp Düsseldorf 2026
  2. Weather
  3. Butterflies
  4. Living the indie web life
  5. Rainbow; moon
  6. Custard creams
  7. Artemis now supports custom domains (in beta)
  8. Waffles and coffee
  9. Blossom
  10. Newsletters should have web feeds
  11. Music, story(ies)
  12. Flowers; snow
  13. How I find links
  14. The joy of
  15. How the Artemis blog works
  16. Saturday morning reading
  17. Using my edit button shortcut
  18. More examples of graduating between mediums of communication
  19. The archive
  20. Museum Memories: Roundup
  21. Nesting social posts under blog posts in Artemis
  22. My favourite (unconventional) animal
  23. Seven hills
  24. How software feels

March 2026

  1. Warm tea
  2. Inventor, dreaming
  3. Single-file web applications
  4. Gardening
  5. Interface stability
  6. Brainstorming web guides
  7. The artist was here
  8. Saturday
  9. Tinkering
  10. River
  11. Blossom 2
  12. Crescent
  13. Colour 2
  14. Space
  15. Library memories
  16. Landscape by Moonlight
  17. The Timeless Way of Building
  18. Rewriting
  19. Starting; playing; maintaining
  20. Sparking joy
  21. Blossom
  22. Ideas for managing post volume in web readers
  23. Artemis changelog #8
  24. Museum memories
  25. Take two
  26. Offline mode
  27. Guitar; sunset
  28. Night time; walking
  29. I wish there was a (simpler) way to highlight text in inputs
  30. How to change the Duolingo app icon
  31. Girl on a Divan by Berthe Morisot
  32. State of the Browser 2026
  33. The Church at Varengeville by Monet
  34. IndieWeb Carnival March 2026: Museum memories

February 2026

  1. Dopplr colours
  2. Pens, sleeves, and whiteboards
  3. Artemis “via”
  4. Preserving calm in software over time
  5. Brainstorming search engine ranking introspection
  6. Graduating between mediums of communication
  7. Grouping threaded posts in Artemis
  8. Artemis dense layout
  9. Thinking; walking
  10. Scotland’s brightness levels
  11. A perfect day
  12. IndieWeb wiki pages I really like
  13. Rhythm
  14. Clear sky
  15. A piece of art I would love to see in person
  16. What I associate with my name
  17. Adding multiple h-feeds to the same web page
  18. Snowy afternoon
  19. A sandwich questionnaire, part two
  20. Proust’s questionnaire
  21. Notifying users of page updates
  22. Redesigning the Artemis account deletion back-end
  23. Designing for inactive users: Account check-ins and deletion
  24. The inverted index pattern
  25. Drawing and hand-written fonts
  26. Brainstorming source code editing for web applications
  27. Clouds
  28. Noticing
  29. Design and missing categories
  30. Why I love my favourite words
  31. Sandwich Questionnaire
  32. Redirecting YYYY-MM-DD-slug.md to /YYYY/MM/DD/slug with Nginx
  33. Staging banners
  34. Debug mode
  35. Build the web you want to see
  36. The expanse of web weaving
  37. Calendars and web readers
  38. Background technology
  39. Does your website run on green energy?
  40. Reducing Artemis’ deployment downtime with blue-green deployments
  41. Software Design Meetup [Feb. 11th]
  42. IndieWeb Book Club: The Art of Explanation

January 2026

  1. Kind software
  2. IndieWeb Carnival: Host Interview
  3. This week
  4. Share your website at events
  5. Designing a service with IndieAuth and email-based login
  6. Announcing Artemis Roll-up
  7. Subscribing to local news with a web reader
  8. Piano, vulnerability, and playing guitar
  9. Nature
  10. Getting ready for studying
  11. Walden
  12. Artful life
  13. Documenting design changes with screenshots
  14. Publishing my citation preferences
  15. Morning moonlight
  16. Designing an A-Z navigation web component
  17. Why Artemis is invite-only
  18. Software maintenance
  19. Personal and community web search engines
  20. Turn a list into a web feed
  21. The new year

2025 291

December 2025

  1. Designing for inactive users
  2. The indie web in 2030
  3. A small fix
  4. The nicest thing a stranger has done for me
  5. Coffee shop
  6. Grateful for the indie web
  7. Cleaning the Artemis database
  8. IndieWeb Book Club: Non-Designer’s Design Book
  9. Music this year
  10. Words and making coffee
  11. IndieWeb Book Club: Understanding Comics
  12. A Lady in Grey
  13. Walking
  14. Brainstorming visual search for the web
  15. Morning
  16. What I have been reading lately
  17. A concept for a two-panel web reader settings page
  18. A new home page

November 2025

  1. Experimenting with web design
  2. Little moments of joy
  3. Saturday
  4. Announcing Validate Everything
  5. Snowy morning
  6. Icebreakers
  7. Bookmarks
  8. Winter sunset
  9. Snow
  10. Routines
  11. Resonance
  12. Monet
  13. I’m going to study art history
  14. What’s in my inventory?

October 2025

  1. No work is ever wasted
  2. Design, in pink
  3. Tabs
  4. Ten facts about me
  5. Beginnings (type-written)
  6. Growth
  7. Waiting
  8. Typewriters and labyrinths
  9. When your website makes you smile

September 2025

  1. Saying thanks on the web
  2. Today
  3. Updating user interfaces
  4. Walking
  5. How Artemis polls web feeds
  6. A 255 byte web page
  7. Rain
  8. Second person birds
  9. Raindrop
  10. Walking
  11. Creating a searchable archive page
  12. Collaborative web weaving
  13. Designing a new button to visually show and hide alt text
  14. Artemis Changelog #7
  15. Whimsy
  16. 30 collaborative things you can do on the web
  17. Announcing rainfall.scot

August 2025

  1. Working on the Artemis demo video (and captions)
  2. Autumn
  3. Local Hero (IndieWeb Movie Club)
  4. Web remixing
  5. Developing an alt text button for images on my website
  6. Designing a mobile-first HTML editor
  7. An incremental migration
  8. Morning web weaving
  9. Golden
  10. Between
  11. The first star
  12. Dates in notebooks
  13. A foggy morning
  14. Digital, physical
  15. Collaborative web weaving
  16. What is the web equivalent?
  17. Worth watching, asking, knowing, doing, repeating
  18. Browser extensions I use
  19. Experimenting with Ghost
  20. Icon overload
  21. Sharing ideas on my website
  22. The joy of links
  23. Ideas and insecurity
  24. Coffee conversations
  25. We need to define best practices for Stories and links
  26. Delightful technology experiences
  27. Three quick CSS tips
  28. Pattern: Search aliases
  29. Colour
  30. Full bloom
  31. What I made for HTML Day
  32. Communication and understanding
  33. Change
  34. Decorating
  35. A wooden love heart and a pot of flowers

July 2025

  1. Tumblr-ing
  2. Reading
  3. Futures for the web
  4. Communicating the indie web
  5. The link router pattern
  6. [photo] Edinburgh
  7. Mashups
  8. Brainstorming a tool to follow new album releases with Wikipedia
  9. Museum of the World Wide Web
  10. Summer rain
  11. Walking
  12. Text representations of posts in Artemis
  13. Walking
  14. The way I think about a song
  15. How do you write HTML?
  16. Whiteboards and affirmations
  17. Evening walks
  18. The bookmark
  19. Notes from the world, part two
  20. Keyboards and mice
  21. It’s possible, maybe useful; but is it necessary?
  22. Impressions of Be Kind When You Can by Eliza Cook
  23. Evening
  24. Designing calm software with breaks in mind
  25. Artemis Changelog #6
  26. Tomorrowland (IndieWeb Movie Club)
  27. Ice Floes

June 2025

  1. Ensembles
  2. [photo] Love
  3. tending
  4. What is the most chaotic page on your website?
  5. Started with a sketch

May 2025

  1. Announcing Subscribe Openly
  2. Today
  3. The things around me
  4. Drying my hair
  5. Phoenix
  6. Design
  7. The joy of making things
  8. Bookmarks bookmarklet
  9. Colour
  10. the joy of
  11. Layers
  12. DevTools features I like: Computed CSS
  13. Making things happen
  14. Building an edit button browser extension
  15. play; ground
  16. Setting up a Zoom account for a community with an admin and Pro user
  17. Co-organisers help me make events happen
  18. Morning
  19. Telemaco Signorini’s Waverley Bridge
  20. A spring day in the city
  21. The bookshop
  22. How I navigate my website wiki
  23. Brainstorming a Notion-powered static site generator
  24. Word of the day
  25. The park
  26. The joy of
  27. Rhythm
  28. The blank whiteboard
  29. Extending my edit web page bookmarklet
  30. Notes from the world

April 2025

  1. Earliest memory of coffee
  2. Experiments (sometimes work and sometimes don’t)
  3. Gardening, fruit and Nature with Sara and James
  4. Morning CSS
  5. Ordering posts by published date and time
  6. The joy of
  7. What if YouTube had slug-based URLs?
  8. What we see in our websites (and why I am so excited about the web)
  9. Painting impressions with Zachary
  10. Today
  11. A magic coffee cup that doesn’t spill
  12. Email attachments and forgiving design
  13. How audible is this URL?
  14. Blogrolls and coffee
  15. Coffee shop details
  16. Time
  17. Direction
  18. Pouring water for coffee from a greater height
  19. The HTML form to structured data pattern
  20. The evening coffee shop
  21. Out in the sunset
  22. Spring
  23. Waving
  24. The Barbican [photo]
  25. Vignettes
  26. The joy of finding and sharing links
  27. The Tesco ice cream
  28. Morning; blossom
  29. Sharing the web
  30. Wandering
  31. Sorting HTML lists with an atoz helper class
  32. You can use the light-dark function in your :root CSS variables
  33. the joy of

March 2025

  1. Lavender coffee
  2. Adding “subscribed via” to the Artemis bookmarklet
  3. Web readers and RSS readers
  4. Bookmarklet to show all rel= links on a page
  5. Announcing Artemis Link Graph, a new way to explore the web
  6. Artemis changelog #5
  7. Text notebooks with editable outputs
  8. Flowers and trees
  9. Flowers and plants and trees; in which I find joy and inspiration
  10. Adding an edit button to my static site on mobile
  11. The bookshop
  12. Tales of Debugging: The missing character
  13. Quotes
  14. Website reflections
  15. Pattern: Filtering over content firehoses
  16. Caching author previews in Artemis
  17. Designing code snippets in technical content
  18. Matcha
  19. Designing my blog post draft web experience
  20. My blog post category suggestion tool
  21. Repair cafes
  22. Designing a PWA experience for Oblique Strategies
  23. The joy of
  24. Common paths for web feeds
  25. People and Blogs Interview
  26. The philosophy of James’ Coffee Blog
  27. Technology design principles
  28. Grouping link posts in a web reader
  29. Noticing
  30. Oblique Strategies RSS Feed
  31. First blossom

February 2025

  1. Stargazing
  2. Run the code you need
  3. Pattern: Data views
  4. Artemis changelog #3
  5. Creativity
  6. Adding duplicate permalink warnings to my static site generator
  7. Coffee
  8. Every big idea
  9. Working on my confidence
  10. Snow
  11. Styling code snippets on my website
  12. Showing different images in light mode and dark mode with CSS media queries
  13. Blog background experiments
  14. Designing lists of inputs with HTML and CSS
  15. Designing a delete action in a web interface
  16. My static site editing bookmarklet
  17. Wandering
  18. Tell us something good
  19. Soon, spring
  20. Which HTML element are you [Quiz]?
  21. Sustainable living
  22. Learning from prior art in technology design
  23. Music Monday: Free
  24. Designing technology
  25. Blogs as third places
  26. The midnight bakery
  27. Read it on the web
  28. Web weaving
  29. Redesigning the structure of my blog images folder
  30. Joy
  31. Sunset
  32. Hand writing
  33. Small things I am proud of today
  34. The feeling of a word
  35. This place we call the web (should be made by and for everyone)
  36. The bookstore
  37. Translated Japanese fiction reading list
  38. Design experiments

January 2025

  1. Organising my bookshelf
  2. Light
  3. Airport pianos
  4. In design, craft
  5. Salad recipe, inspired by Sweetgreen’s Harvest Bowl
  6. Co-writing
  7. Style
  8. Noting
  9. AirPods and friction
  10. Moments of inspiration
  11. Quiet art; the tapestry of writing
  12. Coffee, Seinfeld and Google
  13. Website acknowledgements
  14. Designs from the last few months
  15. Morning coffee
  16. Perspective
  17. Intentions for 2025
  18. Coffee and quotations
  19. Third run
  20. Pattern: Lazy loading
  21. The morning sky
  22. Creative questions challenge
  23. Learning about web design
  24. Tools for the next decade of the web
  25. Second run
  26. Static, dynamic
  27. First run
  28. Mornings and organising
  29. The daytime moon
  30. Boolean HTML search and web development
  31. Horizon
  32. What I have been reading recently
  33. Refinement
  34. Happy New Year!

2024 436

December 2024

  1. Inspiration and creative modes
  2. Questions on my mind
  3. Artemis changelog #2
  4. Advent of Patterns Wrap-up
  5. Advent of Patterns: On-page search
  6. Designing the Artemis feed recovery tool
  7. Advent of Patterns: Preferences
  8. Artemis changelog #1
  9. Advent of Patterns: Status indicators
  10. Advent of Patterns: Persistent information on scroll
  11. How Artemis retrieves web feeds
  12. Advent of Patterns: Shareable links
  13. Advent of Patterns: Tables of Contents
  14. Making images bigger on my website
  15. Advent of Patterns: Timelines
  16. Advent of Patterns: Diffs
  17. Advent of Patterns: Change overview
  18. Advent of Patterns: Change previews
  19. Advent of Patterns: Offline mode
  20. Finding complexity when writing technical documents
  21. Advent of Patterns: Text fragments
  22. Advent of Patterns: Text shortcuts
  23. Advent of Patterns: Inline function trays
  24. Artemis, a calm web reader, is available (in beta)
  25. Advent of Patterns: Text readability
  26. Advent of Patterns: Version history
  27. Advent of Patterns: Information previews
  28. Advent of Patterns: Link qualifiers
  29. Thinking about personal website style galleries
  30. Advent of Patterns: Autosuggest
  31. Designing a documentation layout
  32. Reflections on debugging
  33. Spotify Wrapped 2024
  34. Pattern: Pre-rendering content
  35. Advent of Patterns: Define once, reference everywhere
  36. Things I have been reading lately
  37. Advent of Patterns: Incremental computation
  38. Advent of Patterns: Filter, then compute
  39. Advent of Patterns: Highlighted time since article publication
  40. Designing navigation on my personal website
  41. prefers-reduced-motion and search-as-you-type

November 2024

  1. Pattern: Link contexts
  2. Advent of Patterns
  3. Inspiration
  4. Designing a calm web reader
  5. Coffee preferences
  6. More on forgiving interfaces
  7. Front End Study Hall
  8. Writing on whiteboards
  9. The joy of bookshops
  10. The joy of making tiny tools
  11. Forgiving interfaces
  12. Web Writer’s Workshop on December 3rd
  13. What do you want for the web?
  14. live more & love more
  15. Confidence
  16. Adding dark mode to my website
  17. Designing search filters for my personal website
  18. Make a two-column list layout with CSS grid
  19. Ideas and friends
  20. Planting a link garden
  21. Ideas take time to garden
  22. Share a compliment with a creator you appreciate
  23. Adding direct answers to my website search engine
  24. Some things that bring me joy
  25. Improving search relevance with word proximity
  26. How to find word collocations in a document
  27. Let’s replace “user experience” with human experience
  28. Learning from human experience interviews
  29. Reunited through time, for a moment
  30. Hopes
  31. Organising content by theme
  32. Freshly made smiles
  33. Making, collaboratively
  34. the cafe
  35. Musical concepts and blogging
  36. Melody
  37. Watching the world go by
  38. Seasons
  39. Filter before running computationally expensive tasks
  40. Ideas for performance testing infrastructure
  41. Search filters in Slack
  42. Documenting user interfaces and experiences
  43. Showing incremental progress for longer actions
  44. The long view of a blog
  45. How to use cProfile and snakeviz to profile Python code
  46. Impact
  47. Rich content presentation on personal search engines
  48. Precomputation

October 2024

  1. Readable and memorable URLs
  2. URL search in the browser address bar
  3. How to export images from Google Docs as a folder
  4. Morning coffee
  5. Search engine shortcuts in Firefox
  6. Stargazing
  7. in design, craft: this week in my blog
  8. Notes on performance
  9. from links, adventure
  10. The writing equivalent of a duet
  11. A Monologue on Modality
  12. The longevity of technical documents
  13. Brainstorming a design for audio note transcription
  14. Music Monday: The Sound
  15. IndieWeb Movie Club October 2024
  16. Morning coffee
  17. Books set in bookshops

September 2024

  1. The Underground guitarist
  2. The basement restaurant
  3. Noticing
  4. The musical
  5. Fernande with a Black Mantilla
  6. Moments of joy: The bus ride
  7. An Introduction to the Personal Web with Cosy and Cali
  8. The lifecycle of a search query on my blog
  9. Improving relevance on my site search engine
  10. Blogging before dinner
  11. A quiet room at Vienna airport

August 2024

  1. Hope for the web
  2. Implementing a transaction log for JameSQL
  3. Clustering blog post titles with unigrams
  4. Writing a search query transpiler
  5. Adventures building a spreadsheet engine in Python
  6. Building a NoSQL database in Python
  7. Introduction to consensus modeling in Python
  8. How to implement a time-based LRU cache in Python
  9. Python pattern: Using defaultdicts to initialise dictionaries
  10. How to build a query language in Python
  11. How to implement TF-IDF in Python
  12. How I design my URLs
  13. Saturday morning reading
  14. Designing the content layout for my website
  15. Designing a fuzzer for Knowledge Graph Language
  16. My (CSS) style
  17. Moments of Joy: Inspiration and practice
  18. The rainbow
  19. The little moments
  20. Ask the Website Maker (Me!)

July 2024

  1. Tools and time
  2. The boarding line
  3. Fog
  4. Place
  5. The coffee shop
  6. The morning taxi ride
  7. reflection
  8. the pink sky
  9. Expectations in design
  10. Craft
  11. Ideas, over coffee
  12. Music Tuesday
  13. Build a search index in Python
  14. Taste
  15. The summer sunset
  16. Fun with Words
  17. Scent
  18. Flowers
  19. Four years of the personal web
  20. The basement book store
  21. Details
  22. The coffee shop conversation
  23. Avoiding anxious loops
  24. Notes
  25. Design pattern: Progress bars with tips
  26. The separation of writing and publishing tools
  27. Time
  28. evanescence
  29. infinite wonders
  30. IndieWeb Carnival July 2024: Tools

June 2024

  1. Taylor Swift Subreddit Acronym Reference
  2. Analysing use of Taylor Swift song name acronyms on Reddit
  3. The stories for me
  4. Redesigning James’ Coffee Blog
  5. Notebooks and whiteboards
  6. Thinking in words
  7. Glow
  8. Building technology to do the boring work for me
  9. Time
  10. the rose
  11. Re-casing titles with word counts
  12. Retrieving abstracts from the Arxiv API
  13. a new world
  14. Sketching algorithms in separate files
  15. sunrise
  16. Music
  17. Implementing incremental builds in Aurora
  18. Melody
  19. Sunset
  20. Python packages I love
  21. Improving my blog post publishing tool
  22. Announcing Aurora
  23. Craft
  24. new skies
  25. Style
  26. weaving
  27. Ink and Quill
  28. Designing software
  29. What makes a delightful tool?
  30. raindrop
  31. TIL: Visualising memory usage in Python
  32. Implementing Incremental Static Regeneration in Aurora
  33. My (new) website build process
  34. home rose
  35. moonlight
  36. Pattern: Software hooks
  37. The scent
  38. the web
  39. Time
  40. moonlight
  41. whisper
  42. Walking
  43. programming
  44. Glow
  45. Rest
  46. reminiscence
  47. Warmth
  48. the lake
  49. discovery
  50. Brainstorming a decision tree for website hosting choice
  51. JUnited Blogging Challenge
  52. Music
  53. The hand cusp
  54. The midnight pianist
  55. Sky
  56. Seasons of writing
  57. Pattern: Auto-extract data in a publishing tool
  58. Publish a h-feed, then convert to other formats
  59. Python pattern: Ordered list of lambda functions
  60. Warmth
  61. Website seasons
  62. Growth
  63. Polling feeds without writing feed parsing logic
  64. Brainstorming a new indie web search engine
  65. Notes on responsible web crawling
  66. Blogs and longevity
  67. Plurality of community
  68. Designing a reading interface for research
  69. Designing data loaders in Python classes
  70. Building an interactive tool to generate image maps
  71. articulate
  72. Music Monday: Exit Sign
  73. perspective
  74. The Train WiFi Test
  75. Immersed in words
  76. the book
  77. orange sky
  78. Wonder
  79. Nature’s blanket
  80. the idea
  81. The joy of the monostich
  82. A new path
  83. before the storytelling
  84. Sunset

May 2024

  1. My creative environment
  2. the lost poet
  3. Echoes
  4. my bookshelf
  5. i am
  6. Tabs
  7. Announcing nanosearch, a Python package for making small search engines
  8. Build a local web search engine with two commands
  9. Time
  10. Walking
  11. An indie web library
  12. Personal archives
  13. Designing Aurora, a new static site generator
  14. The insecurities and joy of writing software
  15. Evening
  16. My new publishing workflow
  17. Adding new features to my publishing tool
  18. Register to Vote
  19. Brainstorming how to elevate older blog posts on my site
  20. Hugging Face Papers RSS Feed
  21. Papers with Code RSS Feeds
  22. Blog of the Day
  23. (More) ideas, various and sundry
  24. Ideas, various and sundry: Part III
  25. Free Library
  26. The Windows 98 Manual
  27. The next decade of the web
  28. Identity and limits
  29. Mental Health Awareness Week
  30. Late Night
  31. How I display blockquotes
  32. Growth
  33. Ideas, various and sundry
  34. My plant
  35. What are effective ways to sift through new research?
  36. First cup of coffee (of the day)
  37. My first (ever) cup of coffee
  38. The joy of book stores
  39. Life and website gardening
  40. Moments of joy
  41. The Tortured Poets Department
  42. an email poem
  43. bookmark

April 2024

  1. Blossom
  2. Create an automated image collage with computer vision
  3. Imperfect programs
  4. The James’ Coffee Blog Mascot
  5. Coffee experiences
  6. Designing KGL: Reflections on syntax design
  7. Liminal
  8. Memories
  9. Post scriptum
  10. The joy of computing
  11. Philosophy musings
  12. Wandering pen
  13. Watching space in my living room
  14. having a website
  15. My wander page
  16. before the bus leaves
  17. Details
  18. Technical Writing Chat with Sabrina Lim
  19. evening travels
  20. heavy eyes
  21. Penguin coffee
  22. Poetry to HTML
  23. Radio
  24. web we weave
  25. homebrew website club
  26. Using random boolean networks in compression
  27. Weather
  28. my feline friend
  29. Technical Writing Chat with Nathan Driver
  30. Writing a poem in coem
  31. Family
  32. The Lady Gaga espresso

March 2024

  1. Sounds of making coffee
  2. Evening
  3. Perspective
  4. Analysis of [the] prose use of braces (curly brackets)
  5. How I decide what coffee to drink [Diagram]
  6. Conundra, indeed: Using curly braces in English
  7. Updating my website RSS feed
  8. Little moments of joy
  9. Rediscovering routines
  10. Exploring VisionScript language syntax: Part II
  11. Exploring VisionScript language syntax
  12. Why I write
  13. Writing, connection, and where I write
  14. The joy of practising a skill
  15. Website pride
  16. Behind the desk
  17. Designing an interpreter for Knowledge Graph Language (KGL)
  18. HTML’s readability, robustness, and intuitiveness
  19. Designing a knowledge graph query language
  20. Learning lower-level programming
  21. Eggs and coffee
  22. the new season
  23. night time
  24. Seven Days of New Things Day 4: Walking Without Headphones
  25. Evening listening
  26. Seven Days of New Things Day 3: Terrari(a|ums), Bon Iver
  27. Seven Days of New Things Day 2: Linear Algebra, Tulips
  28. The (My) Desk
  29. Seven Days of New Things Day 1: Editing Wikipedia, Sardines
  30. Ambassador of asterisms, &c.
  31. Bee Yourself
  32. The Garfield cup, and other Saturday evening musings
  33. Cataloguing my vinyl collection with computer vision
  34. Perception
  35. Designing an interactive decision tree for vision model deployments
  36. Spring cleaning
  37. Use a penguin avatar to navigate my personal website
  38. 100 (more) things you can do with your personal website
  39. IndieWebCamp Brighton 2024
  40. Traveling
  41. Comparing yourself to others in creative pursuits
  42. Notes on facilitating technical discussions in meetups
  43. Generating poetry from the Hacker News homepage
  44. The joy of incremental website improvements
  45. Internet gardening
  46. The heroes we don’t deserve: Those who work on web standards
  47. Morning routines

February 2024

  1. Blogging is the medium of incomplete stories
  2. Serving my blog posts as Linux manual pages
  3. Scenarios as examples in technical writing
  4. Technical vs. serious in writing
  5. Beginner’s mind and empathy in writing educational content
  6. (Even more) challenging programming projects you should try
  7. Making espresso at home
  8. Photograph a bookshelf, get a list of the book titles
  9. rhymer.day: A daily rhyming challenge
  10. Computer Vision Challenge: Book Colours
  11. Computer Vision Challenge: Find the Incorrect Annotations
  12. Computer Vision Challenge: Identify Missing Annotations
  13. Announcing Tay Tay Lyric of the Day
  14. The Coffee Hotline
  15. Computer Vision Challenge: Validate Detections in Rows and Columns
  16. Personal website ideas
  17. James’ Cooking Blog?
  18. Making my bookshelves clickable
  19. Know your model outputs while writing logic
  20. Super Bowl LVIII
  21. Little moments of joy
  22. Dancing
  23. My first experience with coffee
  24. The rain

January 2024

  1. The indie web
  2. Moments of joy
  3. Scenes from the coffee shop
  4. Using components to avoid repetition in technical writing
  5. Follow the on-screen instructions
  6. The what, why, how formula of technical writing
  7. A comprehensive guide to Python dictionary comprehensions
  8. Using “will” and “should” in technical writing
  9. My favourite data structure: The trie
  10. What type of cheese are you?
  11. Wonder
  12. Information coding: Encoding sorted lists of information
  13. You can make a time machine
  14. BioCLIP: A vision model for the Tree of Life
  15. Blogging as I learn
  16. Reflecting on my daily walks
  17. Information coding: Encoding sorted lists of information
  18. Contibuting text from LLMs to public domain wikis
  19. How (and why) to create a h-feed
  20. Documentation I Like: PyTorch Installation
  21. Edinburgh
  22. My Folklore ranking
  23. Give someone a compliment today
  24. What stories are on your desk?
  25. Why I like web components
  26. Anxiety
  27. How a blog post came to be: Behind the scenes
  28. Taylor Swift Quiz
  29. The web is yours
  30. Adventures in nginx caching and redirects
  31. What anime hair colour suits me?
  32. Adventures with compression: Part 4
  33. Nighthawks
  34. Software Technical Writing: A Guidebook
  35. Adventures with compression: Part 3
  36. Happy New Year!
  37. More adventures with compression
  38. The park
  39. Walking every day in January

2023 300

December 2023

  1. Midnight reflections
  2. Adventures with compression
  3. Guessthechar: A guess the missing letter game
  4. Small, dependable scripts
  5. Small towns
  6. The well-trodden path
  7. When you want to write a blog post but can’t...
  8. Advent of Technical Writing: Callout Boxes
  9. Advent of Technical Writing: Code Snippets
  10. Advent of Technical Writing: Effective Examples
  11. Advent of Technical Writing: Feature Releases
  12. Advent of Technical Writing: Reviewing Digital Ocean’s Documentation
  13. Advent of Technical Writing: Being a Technical Writer
  14. Happy Festivus
  15. Advent of Technical Writing: Publishing Contributor Blog Posts
  16. Donating books
  17. Advent of Technical Writing: Jargon
  18. Displaying Taylor Swift lyrics on my desk
  19. Advent of Technical Writing: Consistent Examples
  20. Advent of Technical Writing: How-To Outline
  21. Is writing customer-facing documentation technical writing?
  22. Advent of Technical Writing: Holistic Documentation Reviews
  23. The James’ Coffee Blog scavenger hunt
  24. Advent of Technical Writing: Reviewing the Wolfram Language Documentation
  25. My year in blogging
  26. Advent of Technical Writing: Outlines
  27. Advent of Technical Writing: Authoring Tools
  28. Christmas Tree
  29. Raccoon Ipsum
  30. Building a personal predictive text engine
  31. Advent of Technical Writing: Internal Code Documentation Requirements
  32. My writing setup
  33. The stars
  34. Advent of Technical Writing: Run-on Sentences
  35. Advent of Technical Writing: Facilitating Ideas
  36. Recommend Firefox (with a Web Component)
  37. Moments of Joy: Technical Solutions
  38. Advent of Technical Writing: Placeholders
  39. Advent of Technical Writing: Internal Dry Run
  40. Advent of Technical Writing: Deprecating Content
  41. Advent of Technical Writing: Style
  42. Advent of Technical Writing: Duplicate Information
  43. Building a lyrics recommendation bot
  44. The Festive Season
  45. Podcasts, Wrapped
  46. Advent of Technical Writing: Lists
  47. Advent of Technical Writing: Clarity
  48. Advent of Technical Writing: A Day in the Life
  49. Advent of Technical Writing: Types of Documentation
  50. Advent of Technical Writing: First Sentences
  51. Advent of Technical Writing: Navigation Structure
  52. Advent of Technical Writing: Navigation Links
  53. Winter

November 2023

  1. Spotify Wrapped
  2. My experience starting as a technical writer
  3. My personal website is incomplete, imperfect
  4. The Taxi Driver
  5. Time Travel
  6. The Bicyclist
  7. The Selfie

October 2023

  1. Self Care
  2. Autumn Moments
  3. Seasons
  4. Or wherever you get your podcasts
  5. Tips and reflections from running online meetups
  6. Alternative modalities of interacting with the web
  7. Autumn
  8. Click your fingers and talk to navigate a website
  9. The Early Bird
  10. Experiments with pose detection in Tensorflow.js
  11. The Squirrel

September 2023

  1. PyPi, the Cheese Shop
  2. London Sunrise
  3. Weather
  4. Blooming
  5. Continental Breakfast
  6. The Glint
  7. Growth
  8. The Smiley Face
  9. Background music
  10. Brainstorming Google Sheets to maps website
  11. Perspectives
  12. Noticing running gags
  13. Ensure all subpath layers resolve in URLs
  14. World Maps
  15. The Algorithmic Poem?
  16. Thoughts on teaching generative text literacy
  17. Writing introductions in technical tutorials
  18. Palm Trees in Scotland
  19. The Reflection

August 2023

  1. Lost sunglasses
  2. Brainstorming a syntax for a word usage query language
  3. The Familiar Tune
  4. The Guitarist
  5. Autumn
  6. Gardening
  7. The Python dictionary dispatch pattern
  8. Rainy Mornings
  9. The one with the Standing Desk
  10. Taylor Swift
  11. How minimal is too minimal? Brainstorming syntax for VisionScript
  12. Brainstorming a daily scavenger hunt game
  13. Blog about what you want
  14. Build an internal link recommendation API in 25 lines of code
  15. July 2023 IndieWeb Carnival Roundup
  16. Help Build the Social Web
  17. How I, Spy Works (My 60 Minute Website)
  18. Brainstorming Webmention post discovery

July 2023

  1. I am now a co-chair on the W3C Social Web Community Group
  2. Fun with Words: The Finale
  3. Be nice. Drink water. Smile.
  4. Brainstorming minimal, single-purpose web tools
  5. Build a Website in an Hour: Meetup in Review
  6. Coffee Preparation
  7. Moments
  8. The Airport
  9. Build a website in an hour event
  10. Starlight
  11. Playful programming
  12. Episode #4: Children’s television, static websites, all things coffee
  13. Neighbourhood cats
  14. A Visual Introduction to VisionScript
  15. Podcast #3: Bubbles, programming languages, use-case driven development
  16. Use case-driven standards development
  17. How to Delete a Webmention
  18. Podcast #2: Taylor Swift, dreams for the web, tea
  19. Fun with Words
  20. IndieWeb Carnival July 2023: Moments of Joy

June 2023

  1. Maintaining mf2py
  2. Moonlight
  3. James Coffee Blog Show
  4. Train vignettes
  5. Fun with Words
  6. Jon Batiste
  7. As the world goes by
  8. Cinnamon
  9. In one’s element
  10. Trees
  11. Writing and distance
  12. Moments of Joy: More little bites
  13. Exploring word surprisals and authorship verification
  14. Morning
  15. Summer
  16. Word surprisal for automated linking and glossaries
  17. Colourful shirts
  18. Fun with Words
  19. Things that make me say wow
  20. Fun with Words
  21. selfcare.tech Bot on Mastodon
  22. Announcing linguist.link: NLP insights for web pages
  23. Creating an index for my personal website using NLP
  24. Fun with Words

May 2023

  1. The weed
  2. CBBC and television programming for young people
  3. Chicago Manual of Style
  4. Brainstorming a coffee label reader application
  5. Moments of Joy
  6. Fun with Words
  7. Morning sun
  8. Background music
  9. Pavement games
  10. Plain language and clear communication
  11. Tiny vignettes
  12. Clouds
  13. How to Start a Garden
  14. OpenAI Blog RSS Feed
  15. Announcing stories.js: Create web stories on your personal website
  16. Announcing airportpianos.org: Help place pianos with airports
  17. Fun with Words
  18. Connection
  19. Heart and Soul
  20. Starting the Day
  21. The Night Sky
  22. Seated
  23. The Peace Lily
  24. Bring sunglasses
  25. Fun with Words
  26. Moments of joy: Little bites
  27. When the sun shines
  28. Announcing subscribable feeds for Bluesky profiles
  29. Fun with Words
  30. LLMs and Open Source Software
  31. Fun with Words (Second Edition Today)
  32. Fun with Words

April 2023

  1. Brainstorming an organization to place pianos in airports
  2. Awesome, in the traditional sense of the word
  3. The museum
  4. Midnight philosophy
  5. Airport delays
  6. Feeling all the things at once
  7. Message on the jumper
  8. Paradise
  9. Writing a story
  10. Fun with Words
  11. Sunglasses
  12. The Song: Part II
  13. The Song
  14. Announcing bsky.link, an embed link generator for Bluesky
  15. Space
  16. The Pond
  17. The Garlic
  18. Trees
  19. My source code root folder name
  20. Squirrels in a York park
  21. Favourite television couples
  22. Deep in Thought
  23. Fun with Words
  24. Fun with Words
  25. Reorganizing my site home page
  26. Activation Functions in Lisp
  27. In search of a mobile writing experience
  28. Implicitly downplaying knowledge in technical communication
  29. The Fog
  30. The Solo Singer
  31. Thinking Modalities
  32. Cs193p
  33. Loneliness
  34. Fun with Words
  35. Little moments of joy on the web
  36. Porridge Overflow
  37. Tea Routines in the UK
  38. Technical Estimations
  39. Write a little moment of joy
  40. Birds
  41. Exploring Personal Websites
  42. Friendship
  43. Hobonichi Journal
  44. Hobonichi Journal My 100
  45. More Fun with Words
  46. Taylor Swift songs to which I am listening
  47. The Rain
  48. Videoconferencing on a personal website
  49. Brandenburg Gate
  50. Fun with Words c6d480
  51. ‘What is the name of that song?’
  52. Abbreviations, acronyms, and style guides
  53. sudo !!
  54. TIL: Create HTML boilerplate code in Visual Studio Code
  55. Fun with Words: Computer science jargon edition
  56. Words of the day
  57. Writing moods
  58. Cash as a payment option
  59. Chiefs of Staff
  60. Coloured cups and teaching
  61. Using footnotes for link reminders while writing
  62. A story from visiting the Golden Gate Bridge
  63. Generating a PDF from a folder of Markdown files
  64. Possessive nouns ending in ‘s’
  65. Seeing your content at the top of a search results page
  66. Announcing Screenshots: How I generate meta images for my site
  67. More Little Moments of Joy
  68. Personal Websites and the Open Internet
  69. The Platform
  70. Wikipedia articles I have read lately
  71. Grayscale: A week on
  72. Using LLM Prompts for Source Attribution
  73. Throwbacks and Brainstorming Timehop for Blogs
  74. Writing and inspiration
  75. Prompt versioning with LLMs
  76. Source transparency in LLM information retrieval systems
  77. Words I have heard and read recently

March 2023

  1. I’m working on a new version of my printed blog
  2. Grayscale
  3. Observations designing information retrieval systems built on generative AI
  4. Travelling
  5. Travelling in a Self-Driving Car
  6. Send a Trackback in Two Lines of Code
  7. San Francisco City
  8. Solitude in third places

February 2023

  1. Where the people are sweeter than the waffles
  2. Sunset in San Francisco
  3. Blue, lavender, orange
  4. Ethereal
  5. Infrastructure dance
  6. IndieWeb Principles Poster
  7. Love and Playing Music
  8. For how long are you staying in San Francisco? 10 minutes.
  9. The taxicab
  10. When the moment strikes
  11. Stories from the piano
  12. Little moments of joy
  13. Technical content and a-ha moments
  14. Announcing commandk.js, a search dialog web component
  15. Announcing avtr.dev
  16. Announcing recipe syndication for Breakfast and Coffee
  17. Orea Brewer Recipe
  18. GitHub commit messages and emojis
  19. Words, words, and more words
  20. Who has the most compute?
  21. Happy Groundhog Day

January 2023

  1. Acts of kindness
  2. The definition of tabled
  3. Favourite words
  4. Fun with search
  5. Giving my first talk
  6. Taking a break from personal projects: Mental health and coding
  7. The (not so awkward?) shuffle
  8. 100 Days of IndieWeb Challenge
  9. Happy New Year
  10. The Guardian Article Counts

← 2020–2022