All Posts π
There are 787 Posts in this category
Below is a list of my blog posts.
-
Know your model outputs while writing logic
(February 14, 2024) -
Making my bookshelves clickable
(February 14, 2024) -
Super Bowl LVIII
(February 12, 2024) -
Little moments of joy
(February 09, 2024) -
Dancing
(February 08, 2024) -
My first experience with coffee
(February 08, 2024) -
The rain
(February 01, 2024) -
The indie web
(January 27, 2024) -
Moments of joy
(January 25, 2024) -
Follow the on-screen instructions
(January 19, 2024) -
Scenes from the coffee shop
(January 19, 2024) -
Using components to avoid repetition in technical writing
(January 19, 2024) -
The what, why, how formula of technical writing
(January 18, 2024) -
A comprehensive guide to Python dictionary comprehensions
(January 17, 2024) -
Using "will" and "should" in technical writing
(January 17, 2024) -
My favourite data structure: The trie
(January 16, 2024) -
Wonder
(January 15, 2024) -
What type of cheese are you?
(January 15, 2024) -
You can make a time machine
(January 12, 2024) -
Information coding: Encoding sorted lists of information
(January 12, 2024) -
Reflecting on my daily walks
(January 11, 2024) -
Blogging as I learn
(January 11, 2024) -
BioCLIP: A vision model for the Tree of Life
(January 11, 2024) -
Contibuting text from LLMs to public domain wikis
(January 11, 2024) -
Documentation I Like: PyTorch Installation
(January 10, 2024) -
How (and why) to create a h-feed
(January 10, 2024) -
My Folklore ranking
(January 09, 2024) -
Edinburgh
(January 09, 2024) -
Give someone a compliment today
(January 08, 2024) -
What stories are on your desk?
(January 08, 2024) -
Anxiety
(January 07, 2024) -
How a blog post came to be: Behind the scenes
(January 06, 2024) -
Taylor Swift Quiz
(January 06, 2024) -
The web is yours
(January 06, 2024) -
Adventures in nginx caching and redirects
(January 05, 2024) -
Adventures with compression: Part 4
(January 04, 2024) -
Nighthawks
(January 04, 2024) -
What anime hair colour suits me?
(January 04, 2024) -
Software Technical Writing: A Guidebook
(January 03, 2024) -
Adventures with compression: Part 3
(January 02, 2024) -
Happy New Year!
(January 01, 2024) -
The park
(January 01, 2024) -
Walking every day in January
(January 01, 2024) -
More adventures with compression
(January 01, 2024) -
Midnight reflections
(December 30, 2023) -
Small towns
(December 29, 2023) -
The well-trodden path
(December 29, 2023) -
Guessthechar: A guess the missing letter game
(December 29, 2023) -
Adventures with compression
(December 29, 2023) -
Small, dependable scripts
(December 29, 2023) -
When you want to write a blog post but can't...
(December 28, 2023) -
Advent of Technical Writing: Callout Boxes
(December 25, 2023) -
Advent of Technical Writing: Effective Examples
(December 25, 2023) -
Advent of Technical Writing: Feature Releases
(December 25, 2023) -
Advent of Technical Writing: Code Snippets
(December 25, 2023) -
Advent of Technical Writing: Reviewing Digital Ocean's Documentation
(December 25, 2023) -
Advent of Technical Writing: Being a Technical Writer
(December 24, 2023) -
Happy Festivus
(December 23, 2023) -
Advent of Technical Writing: Publishing Contributor Blog Posts
(December 23, 2023) -
Displaying Taylor Swift lyrics on my desk
(December 22, 2023) -
Donating books
(December 22, 2023) -
Advent of Technical Writing: Jargon
(December 22, 2023) -
Advent of Technical Writing: Consistent Examples
(December 21, 2023) -
Advent of Technical Writing: How-To Outline
(December 20, 2023) -
Is writing customer-facing documentation technical writing?
(December 19, 2023) -
Advent of Technical Writing: Holistic Documentation Reviews
(December 19, 2023) -
The James' Coffee Blog scavenger hunt
(December 18, 2023) -
Advent of Technical Writing: Reviewing the Wolfram Language Documentation
(December 18, 2023) -
My year in blogging
(December 17, 2023) -
Advent of Technical Writing: Outlines
(December 17, 2023) -
Raccoon Ipsum
(December 16, 2023) -
Christmas Tree
(December 16, 2023) -
Advent of Technical Writing: Authoring Tools
(December 16, 2023) -
The stars
(December 15, 2023) -
My writing setup
(December 15, 2023) -
Building a personal predictive text engine
(December 15, 2023) -
Advent of Technical Writing: Internal Code Documentation Requirements
(December 15, 2023) -
Advent of Technical Writing: Run-on Sentences
(December 14, 2023) -
Advent of Technical Writing: Facilitating Ideas
(December 13, 2023) -
Moments of Joy: Technical Solutions
(December 12, 2023) -
Advent of Technical Writing: Placeholders
(December 12, 2023) -
Recommend Firefox (with a Web Component)
(December 12, 2023) -
Advent of Technical Writing: Internal Dry Run
(December 11, 2023) -
Advent of Technical Writing: Deprecating Content
(December 10, 2023) -
Advent of Technical Writing: Style
(December 09, 2023) -
Building a lyrics recommendation bot
(December 08, 2023) -
The Festive Season
(December 08, 2023) -
Advent of Technical Writing: Duplicate Information
(December 08, 2023) -
Podcasts, Wrapped
(December 07, 2023) -
Advent of Technical Writing: Lists
(December 07, 2023) -
Advent of Technical Writing: Clarity
(December 06, 2023) -
Advent of Technical Writing: A Day in the Life
(December 05, 2023) -
Advent of Technical Writing: Types of Documentation
(December 04, 2023) -
Advent of Technical Writing: First Sentences
(December 03, 2023) -
Winter
(December 02, 2023) -
Advent of Technical Writing: Navigation Links
(December 02, 2023) -
Advent of Technical Writing: Navigation Structure
(December 02, 2023) -
Spotify Wrapped
(November 29, 2023) -
My experience starting as a technical writer
(November 27, 2023) -
The Taxi Driver
(November 24, 2023) -
Time Travel
(November 24, 2023) -
My personal website is incomplete, imperfect
(November 24, 2023) -
The Selfie
(November 23, 2023) -
The Bicyclist
(November 23, 2023) -
Self Care
(October 21, 2023) -
Seasons
(October 15, 2023) -
Or wherever you get your podcasts
(October 14, 2023) -
Tips and reflections from running online meetups
(October 14, 2023) -
Alternative modalities of interacting with the web
(October 14, 2023) -
Autumn
(October 01, 2023) -
The Early Bird
(October 01, 2023) -
The Squirrel
(October 01, 2023) -
Experiments with pose detection in Tensorflow.js
(October 01, 2023) -
Click your fingers and talk to navigate a website
(October 01, 2023) -
PyPi, the Cheese Shop
(September 30, 2023) -
London Sunrise
(September 27, 2023) -
Weather
(September 27, 2023) -
Blooming
(September 16, 2023) -
The Glint
(September 13, 2023) -
Continental Breakfast
(September 13, 2023) -
Growth
(September 09, 2023) -
Perspectives
(September 04, 2023) -
Noticing running gags
(September 04, 2023) -
Background music
(September 04, 2023) -
World Maps
(September 04, 2023) -
Brainstorming Google Sheets to maps website
(September 04, 2023) -
Ensure all subpath layers resolve in URLs
(September 04, 2023) -
Thoughts on teaching generative text literacy
(September 02, 2023) -
The Reflection
(September 02, 2023) -
The Algorithmic Poem?
(September 02, 2023) -
Palm Trees in Scotland
(September 02, 2023) -
Writing introductions in technical tutorials
(September 02, 2023) -
Lost sunglasses
(August 31, 2023) -
Brainstorming a syntax for a word usage query language
(August 28, 2023) -
The Familiar Tune
(August 27, 2023) -
The Guitarist
(August 27, 2023) -
Autumn
(August 26, 2023) -
The Python dictionary dispatch pattern
(August 26, 2023) -
The one with the Standing Desk
(August 26, 2023) -
Gardening
(August 26, 2023) -
Rainy Mornings
(August 26, 2023) -
Taylor Swift
(August 26, 2023) -
How minimal is too minimal? Brainstorming syntax for VisionScript
(August 23, 2023) -
Brainstorming a daily scavenger hunt game
(August 12, 2023) -
Blog about what you want
(August 06, 2023) -
Build an internal link recommendation API in 25 lines of code
(August 04, 2023) -
July 2023 IndieWeb Carnival Roundup
(August 04, 2023) -
SWICG Email: Community Events Calendar and Website
(August 03, 2023) -
Help Build the Social Web
(August 03, 2023) -
Brainstorming Webmention post discovery
(August 01, 2023) -
How I, Spy Works (My 60 Minute Website)
(August 01, 2023) -
I am now a co-chair on the W3C Social Web Community Group
(July 31, 2023) -
Brainstorming minimal, single-purpose web tools
(July 30, 2023) -
Be nice. Drink water. Smile.
(July 30, 2023) -
Build a Website in an Hour: Meetup in Review
(July 30, 2023) -
Fun with Words: The Finale
(July 30, 2023) -
Coffee Preparation
(July 28, 2023) -
Moments
(July 27, 2023) -
The Airport
(July 23, 2023) -
Build a website in an hour event
(July 19, 2023) -
Starlight
(July 16, 2023) -
Episode #4: Childrenβs television, static websites, all things coffee
(July 15, 2023) -
Playful programming
(July 15, 2023) -
Neighbourhood cats
(July 14, 2023) -
A Visual Introduction to VisionScript
(July 09, 2023) -
Use case-driven standards development
(July 08, 2023) -
Podcast #3: Bubbles, programming languages, use-case driven development
(July 08, 2023) -
Podcast #2: Taylor Swift, dreams for the web, tea
(July 02, 2023) -
How to Delete a Webmention
(July 02, 2023) -
Fun with Words
(July 01, 2023) -
IndieWeb Carnival July 2023: Moments of Joy
(July 01, 2023) -
Maintaining mf2py
(June 29, 2023) -
Moonlight
(June 27, 2023) -
James Coffee Blog Show
(June 25, 2023) -
Train vignettes
(June 24, 2023) -
Fun with Words
(June 20, 2023) -
Jon Batiste
(June 20, 2023) -
As the world goes by
(June 19, 2023) -
Trees
(June 19, 2023) -
Writing and distance
(June 19, 2023) -
In one's element
(June 19, 2023) -
Cinnamon
(June 19, 2023) -
Moments of Joy: More little bites
(June 17, 2023) -
Exploring word surprisals and authorship verification
(June 16, 2023) -
Morning
(June 15, 2023) -
Summer
(June 15, 2023) -
Word surprisal for automated linking and glossaries
(June 15, 2023) -
Colourful shirts
(June 14, 2023) -
Fun with Words
(June 14, 2023) -
Things that make me say wow
(June 14, 2023) -
Fun with Words
(June 10, 2023) -
selfcare.tech Bot on Mastodon
(June 05, 2023) -
Announcing linguist.link: NLP insights for web pages
(June 03, 2023) -
Creating an index for my personal website using NLP
(June 03, 2023) -
Fun with Words
(June 01, 2023) -
The weed
(May 29, 2023) -
Morning sun
(May 27, 2023) -
Chicago Manual of Style
(May 27, 2023) -
Background music
(May 27, 2023) -
Pavement games
(May 27, 2023) -
Moments of Joy
(May 27, 2023) -
CBBC and television programming for young people
(May 27, 2023) -
Tiny vignettes
(May 27, 2023) -
Fun with Words
(May 27, 2023) -
Plain language and clear communication
(May 27, 2023) -
Brainstorming a coffee label reader application
(May 27, 2023) -
Clouds
(May 22, 2023) -
How to Start a Garden
(May 22, 2023) -
OpenAI Blog RSS Feed
(May 21, 2023) -
Announcing stories.js: Create web stories on your personal website
(May 21, 2023) -
Announcing airportpianos.org: Help place pianos with airports
(May 19, 2023) -
Fun with Words
(May 11, 2023) -
Starting the Day
(May 09, 2023) -
Connection
(May 09, 2023) -
Heart and Soul
(May 09, 2023) -
The Peace Lily
(May 08, 2023) -
Seated
(May 08, 2023) -
Fun with Words
(May 07, 2023) -
When the sun shines
(May 07, 2023) -
Moments of joy: Little bites
(May 07, 2023) -
Bring sunglasses
(May 07, 2023) -
Fun with Words
(May 06, 2023) -
Announcing subscribable feeds for Bluesky profiles
(May 06, 2023) -
LLMs and Open Source Software
(May 06, 2023) -
Fun with Words
(May 04, 2023) -
Fun with Words (Second Edition Today)
(May 04, 2023) -
Brainstorming an organization to place pianos in airports
(April 29, 2023) -
Awesome, in the traditional sense of the word
(April 29, 2023) -
The museum
(April 29, 2023) -
Midnight philosophy
(April 23, 2023) -
Writing a story
(April 22, 2023) -
Airport delays
(April 22, 2023) -
Paradise
(April 22, 2023) -
Feeling all the things at once
(April 22, 2023) -
Fun with Words
(April 21, 2023) -
Sunglasses
(April 21, 2023) -
The Song: Part II
(April 21, 2023) -
The Song
(April 21, 2023) -
Announcing bsky.link, an embed link generator for Bluesky
(April 20, 2023) -
Space
(April 20, 2023) -
The Pond
(April 20, 2023) -
The Garlic
(April 19, 2023) -
Trees
(April 19, 2023) -
Favourite television couples
(April 18, 2023) -
My source code root folder name
(April 18, 2023) -
Squirrels in a York park
(April 18, 2023) -
The Solo Singer
(April 17, 2023) -
The Fog
(April 17, 2023) -
Activation Functions in Lisp
(April 17, 2023) -
In search of a mobile writing experience
(April 17, 2023) -
Fun with Words
(April 17, 2023) -
Reorganizing my site home page
(April 17, 2023) -
Thinking Modalities
(April 17, 2023) -
Implicitly downplaying knowledge in technical communication
(April 17, 2023) -
Fun with Words
(April 17, 2023) -
Deep in Thought
(April 17, 2023) -
CS193p
(April 15, 2023) -
Loneliness
(April 15, 2023) -
Little moments of joy on the web
(April 14, 2023) -
Tea Routines in the UK
(April 14, 2023) -
Write a little moment of joy
(April 14, 2023) -
Technical Estimations
(April 14, 2023) -
Fun with Words
(April 14, 2023) -
Porridge Overflow
(April 14, 2023) -
The Rain
(April 13, 2023) -
More Fun with Words
(April 13, 2023) -
Hobonichi Journal
(April 13, 2023) -
Exploring Personal Websites
(April 13, 2023) -
Birds
(April 13, 2023) -
Taylor Swift songs to which I am listening
(April 13, 2023) -
Hobonichi Journal My 100
(April 13, 2023) -
Videoconferencing on a personal website
(April 11, 2023) -
sudo !!
(April 08, 2023) -
Abbreviations, acronyms, and style guides
(April 08, 2023) -
Brandenburg Gate
(April 08, 2023) -
Fun with Words c6d480
(April 08, 2023) -
'What is the name of that song?'
(April 08, 2023) -
TIL: Create HTML boilerplate code in Visual Studio Code
(April 08, 2023) -
Fun with Words: Computer science jargon edition
(April 06, 2023) -
Words of the day
(April 06, 2023) -
Writing moods
(April 06, 2023) -
Chiefs of Staff
(April 05, 2023) -
A story from visiting the Golden Gate Bridge
(April 05, 2023) -
Generating a PDF from a folder of Markdown files
(April 05, 2023) -
Coloured cups and teaching
(April 05, 2023) -
Cash as a payment option
(April 05, 2023) -
Seeing your content at the top of a search results page
(April 05, 2023) -
Possessive nouns ending in 's'
(April 05, 2023) -
Using footnotes for link reminders while writing
(April 05, 2023) -
More Little Moments of Joy
(April 04, 2023) -
Wikipedia articles I have read lately
(April 04, 2023) -
The Platform
(April 04, 2023) -
Personal Websites and the Open Internet
(April 04, 2023) -
Announcing Screenshots: How I generate meta images for my site
(April 04, 2023) -
Grayscale: A week on
(April 02, 2023) -
Throwbacks and Brainstorming Timehop for Blogs
(April 02, 2023) -
Using LLM Prompts for Source Attribution
(April 02, 2023) -
Words I have heard and read recently
(April 01, 2023) -
Writing and inspiration
(April 01, 2023) -
Prompt versioning with LLMs
(April 01, 2023) -
I'm working on a new version of my printed blog
(March 28, 2023) -
Grayscale
(March 27, 2023) -
Observations designing information retrieval systems built on generative AI
(March 27, 2023) -
Travelling
(March 05, 2023) -
Travelling in a Self-Driving Car
(March 03, 2023) -
San Francisco City
(March 03, 2023) -
Send a Trackback in Two Lines of Code
(March 03, 2023) -
Solitude in third places
(March 01, 2023) -
Where the people are sweeter than the waffles
(February 28, 2023) -
Sunset in San Francisco
(February 28, 2023) -
When the moment strikes
(February 27, 2023) -
IndieWeb Principles Poster
(February 27, 2023) -
The taxicab
(February 27, 2023) -
For how long are you staying in San Francisco? 10 minutes.
(February 27, 2023) -
Infrastructure dance
(February 27, 2023) -
Love and Playing Music
(February 27, 2023) -
Blue, lavender, orange
(February 27, 2023) -
Ethereal
(February 27, 2023) -
Stories from the piano
(February 18, 2023) -
Little moments of joy
(February 16, 2023) -
Technical content and a-ha moments
(February 13, 2023) -
Announcing commandk.js, a search dialog web component
(February 13, 2023) -
Announcing avtr.dev
(February 11, 2023) -
Announcing recipe syndication for Breakfast and Coffee
(February 11, 2023) -
Orea Brewer Recipe
(February 11, 2023) -
GitHub commit messages and emojis
(February 10, 2023) -
Words, words, and more words
(February 10, 2023) -
Who has the most compute?
(February 06, 2023) -
Happy Groundhog Day
(February 02, 2023) -
The definition of tabled
(January 29, 2023) -
Acts of kindness
(January 29, 2023) -
Fun with search
(January 24, 2023) -
Favourite words
(January 24, 2023) -
Giving my first talk
(January 23, 2023) -
The (not so awkward?) shuffle
(January 03, 2023) -
Taking a break from personal projects: Mental health and coding
(January 03, 2023) -
100 Days of IndieWeb Challenge
(January 02, 2023) -
Happy New Year
(January 01, 2023) -
The Guardian Article Counts
(January 01, 2023) -
A quote from the Beaker Browser wind-down notice
(December 30, 2022) -
Writing code with GitHub Copilot for personal projects and expressing ideas
(December 30, 2022) -
A cappuccino emoji?
(December 30, 2022) -
Create a sparkline showing your MediaWiki contributions
(December 30, 2022) -
Seasonal emojis for your personal website
(December 30, 2022) -
Announcing highlight.js, an extension to highlight text on web pages
(December 30, 2022) -
The comfort of rewatching 90s sitcoms
(December 30, 2022) -
Documentation in chat: A case study from the IndieWeb
(December 30, 2022) -
Decentralized Website Communication with Webmention (Talk Announcement)
(December 02, 2022) -
The IndieWeb (according to ChatGPT)
(December 01, 2022) -
New Orleans 2022
(November 15, 2022) -
Send a Webmention in 10 (or fewer) lines of Python code
(October 21, 2022) -
Announcing IndieWeb Utils v0.4.0 (with reflections on the library)
(October 12, 2022) -
Adding hovercards to my website
(October 12, 2022) -
Adding fragmention links to my website
(October 11, 2022) -
Announcing IndieWeb Utils v0.3.1
(October 10, 2022) -
Announcing getsitemap, a Python library for sitemap URL retrieval
(October 09, 2022) -
Joining my first W3C Sustainability CG meeting
(October 04, 2022) -
Photo: Robin
(September 28, 2022) -
Adding review support to Breakfast and Coffee
(September 11, 2022) -
Hosting a fun DNS server with Go and a DNS library
(September 09, 2022) -
Beyond Tellerrand 2022
(September 07, 2022) -
TIL: Fixing the author card on my home page h-feed
(September 07, 2022) -
Berlin 2022 - More Photos
(September 07, 2022) -
I wrote an article for Sprudge
(September 06, 2022) -
Building an 'on this day' feature for my website
(September 06, 2022) -
Poll: Do you watch The Chase?
(August 25, 2022) -
Is Firefox a search engine?
(August 25, 2022) -
Subscribe to IANA Root KSK signing and Google algorithm update events
(August 22, 2022) -
Building an IRC archiver bot for the IndieWeb community
(August 21, 2022) -
TIL: Terminal shortcuts
(August 17, 2022) -
TIL: Don't actually display the man pages
(August 15, 2022) -
TIL: Using sed to replace text in a file
(August 14, 2022) -
A few things I just learned about Lisp
(August 12, 2022) -
Separating I/O and logic
(August 05, 2022) -
A one-liner to get root paths in my sitemap
(August 03, 2022) -
Creating maps to share the coffee shops I have visited
(June 30, 2022) -
Join Homebrew Website Club Today
(June 29, 2022) -
Creative Voices
(June 09, 2022) -
The Melodica
(June 08, 2022) -
Some thoughts on walled gardens
(June 07, 2022) -
Poll: How much coffee you drink in a day? [Results]
(May 31, 2022) -
Linking to GitHub repositories from my own site
(May 25, 2022) -
York Coffee Recommendations
(May 25, 2022) -
Growing houseplants
(May 19, 2022) -
Owning my links
(May 19, 2022) -
Sparklines in Google Sheets
(May 18, 2022) -
Starting sentences with conjunctions isn't bad practice?
(May 18, 2022) -
You don't need to be an expert to write
(May 18, 2022) -
Learning PHP: The Beginning
(May 18, 2022) -
Poll: How much coffee you drink in a day?
(May 17, 2022) -
Distributed polls on your personal website
(May 17, 2022) -
Plurality and the IndieWeb
(May 16, 2022) -
Using Known for posting notes, likes, and bookmarks
(May 16, 2022) -
Using the Tricolate coffee brewer
(April 10, 2022) -
First day of spring
(March 20, 2022) -
Computer-generated art
(March 20, 2022) -
A photo from last weekend
(March 18, 2022) -
The Fellow Ode grinder: a few weeks later
(March 18, 2022) -
How can I improve the typography on my site?
(March 17, 2022) -
IndieWeb Utils v0.2.0 is Out
(February 16, 2022) -
Union Brew Lab
(February 07, 2022) -
Cairngorm Coffee
(February 04, 2022) -
The Milkman
(February 04, 2022) -
What could a browser be?
(February 03, 2022) -
Coffee Crawl
(February 03, 2022) -
about this wiki
(February 03, 2022) -
Breakfast and Coffee: A wiki for sharing food and drink recommendations
(February 03, 2022) -
Submit
(February 02, 2022) -
Category:Edinburgh
(February 02, 2022) -
Cheapshot Coffee
(February 02, 2022) -
Fortitude Coffee
(February 02, 2022) -
Integrated IndieWeb Services
(January 28, 2022) -
Some things on my mind
(January 27, 2022) -
How my social reader search features work
(January 24, 2022) -
Improving my social reader experience on mobile
(January 21, 2022) -
Annotating my website page structure
(January 20, 2022) -
Using my social reader as a progressive web application
(January 19, 2022) -
How I post notes on my website
(January 18, 2022) -
Social readers, a new way of thinking about social web interactions
(January 17, 2022) -
Programming, cooking, and making what you want to use
(January 14, 2022) -
IndieWeb Search results are also feeds
(January 13, 2022) -
Movies I have watched recently
(January 12, 2022) -
Parse IndieWeb Search in 15 lines of Python code
(January 11, 2022) -
Scaling IndieWeb Search
(January 10, 2022) -
Brainstorming Email to RSS: Part 2
(January 08, 2022) -
What communities are you in?
(January 08, 2022) -
Microsub to Blogroll Idea
(January 07, 2022) -
Brainstorming Email to RSS
(January 06, 2022) -
Overcomplicating post types (and committing to more simple ones)
(January 04, 2022) -
Keep It Simple, Silly
(January 04, 2022) -
Happy New Year
(January 01, 2022) -
Music by The Beatles
(January 01, 2022) -
Drinking tea in the afternoon
(December 24, 2021) -
Advent of Bloggers 2021: The Final Edition
(December 24, 2021) -
Advent of Bloggers 2021: Day 23
(December 23, 2021) -
Advent of Bloggers 2021: Day 22
(December 22, 2021) -
Advent of Bloggers 2021: Day 21
(December 21, 2021) -
Advent of Bloggers 2021: Day 20
(December 20, 2021) -
Announcing indieweb-utils
(December 20, 2021) -
Advent of Bloggers 2021: Day 19
(December 19, 2021) -
Advent of Bloggers 2021: Day 18
(December 18, 2021) -
IndieWeb New Years' Eve Commitment: Expanding my person tags
(December 17, 2021) -
Advent of Bloggers 2021: Day 17
(December 17, 2021) -
Advent of Bloggers 2021: Day 16
(December 16, 2021) -
Advent of Bloggers 2021: Day 15
(December 15, 2021) -
Advent of Bloggers 2021: Day 14
(December 14, 2021) -
Advent of Bloggers 2021: Day 13
(December 13, 2021) -
Advent of Bloggers 2021: Day 12
(December 12, 2021) -
Advent of Bloggers 2021: Day 11
(December 11, 2021) -
Advent of Bloggers 2021: Day 10
(December 10, 2021) -
Advent of Bloggers 2021: Day 9
(December 09, 2021) -
Advent of Bloggers 2021: Day 8
(December 08, 2021) -
Advent of Bloggers 2021: Day 7
(December 07, 2021) -
My Edinburgh Field Report is in Barista Magazine
(December 06, 2021) -
Advent of Bloggers 2021: Day 6
(December 06, 2021) -
Advent of Bloggers 2021: Day 5
(December 05, 2021) -
Advent of Bloggers 2021: Day 4
(December 04, 2021) -
Advent of Bloggers 2021: Day 3
(December 03, 2021) -
Advent of Bloggers 2021: Day 2
(December 02, 2021) -
Advent of Bloggers 2021
(December 01, 2021) -
Moving over to my own static site generator
(November 30, 2021) -
Playing Scrabble
(November 28, 2021) -
Discovering new music (with recommendations)
(November 28, 2021) -
A quick thank you to my readers
(November 25, 2021) -
Building a Feed Reader to Follow Blogs and Websites: Part I
(November 23, 2021) -
Introducing the HyperText Coffee Pot
(November 18, 2021) -
Adding dark mode to my static Jekyll site
(November 17, 2021) -
I love my website
(November 16, 2021) -
Getting back into Vinyl
(November 15, 2021) -
Exploring retro web design
(November 12, 2021) -
Freezing coffee beans
(November 04, 2021) -
Why I publish microformats on my website
(October 27, 2021) -
Adding Reacji support to my Micropub editor
(October 25, 2021) -
Coffee Filtration: A Guide
(October 22, 2021) -
Adding reply context to my social pages
(October 19, 2021) -
Building my own IndieAuth Endpoint
(October 18, 2021) -
Coffee Chat with Conor from HBW Coffee
(September 29, 2021) -
How to make a plant monitor dashboard: Part III
(September 28, 2021) -
Weeknotes #1: The Beginning
(September 27, 2021) -
Building my own webmention receiver
(September 22, 2021) -
How to make a plant monitor dashboard: Part II
(September 21, 2021) -
Some things to keep in mind if you build a search engine
(September 20, 2021) -
Why I am Building IndieWeb Search
(September 15, 2021) -
How to Make a Cold Foam Iced Coffee at Home
(September 14, 2021) -
My New Social Pages
(September 13, 2021) -
How my search engine direct answers work
(September 10, 2021) -
A theory on sour coffee and cheap grinders
(September 09, 2021) -
Coffee Chat with Gillian from MAYZE Finnieston
(September 08, 2021) -
How to make a plant monitor dashboard: Part I
(September 07, 2021) -
My search engine has moved to IndieWeb Search
(September 06, 2021) -
Bookshelf
(September 05, 2021) -
Sharing social interactions with Micropub
(September 02, 2021) -
Starbucks' influence on my interest in speciality coffee
(August 30, 2021) -
Flavour attributes I like in coffee
(August 27, 2021) -
Coffee Chat with Hannah from the Manchester Coffee Festival
(August 26, 2021) -
Fixing a line width issue on this blog
(August 25, 2021) -
Ordering espresso at cafes
(August 24, 2021) -
Sounds of the cafe
(August 23, 2021) -
Building a random Aeropress recipe generator for my search engine
(August 20, 2021) -
Coffee Chat with Pete from Black Pine Coffee
(August 18, 2021) -
A Future for Packaging With Manifesto Coffee (Barista Magazine)
(August 12, 2021) -
Quiet Edinburgh Zine Launch
(August 11, 2021) -
Coffee Chat with Darryl from Short Long Black Coffee
(August 09, 2021) -
Weighing search results on my personal search engine
(August 06, 2021) -
Coffee Chat with Author Lani Kingston
(August 05, 2021) -
How my blog search engine works, briefly
(August 04, 2021) -
Build your own web home page: Tutorial
(August 03, 2021) -
Coffee Chat with Fraser from EH9 ESPRESSO
(August 02, 2021) -
Edinburgh's police box cafes (feature in Barista Magazine Online)
(July 23, 2021) -
Implementing TextRank on my blog search engine
(July 22, 2021) -
Building a search engine for my blog: Part II
(July 21, 2021) -
Building a search engine for my blog
(July 20, 2021) -
Using Keybow to build custom keyboard functions
(July 19, 2021) -
Writing physical letters
(July 16, 2021) -
Coffee and food pairings
(July 15, 2021) -
Old photos
(July 14, 2021) -
My weekday coffee routine
(July 13, 2021) -
Coffee Chat with Angela from The Barista League
(July 12, 2021) -
Brazilian coffees and flavour notes
(July 09, 2021) -
How I store coffee at home
(July 08, 2021) -
A short word on decaf coffee
(July 07, 2021) -
The Aromaboy: A month (or so) on
(July 06, 2021) -
Blogs I follow using RSS
(July 05, 2021) -
The Thermal Printer Project: Printing hcards
(July 02, 2021) -
The Thermal Printer Project: IndieWeb Wiki
(July 01, 2021) -
Recycling coffee packaging
(June 30, 2021) -
Coffee Chat with Mandy from Mandy's Daily Grind
(June 29, 2021) -
The Thermal Printer Project was mentioned on the Adafruit Blog
(June 28, 2021) -
The Thermal Printer Project: How I Print Events
(June 28, 2021) -
Coffee Chat with William from It All Started Here
(June 25, 2021) -
Edinburgh New College (Photo)
(June 25, 2021) -
Coffee Chat with Robert from Brew Culture Coffee and Tea
(June 24, 2021) -
I was featured in Coffee People
(June 23, 2021) -
I was featured on Rubenerd's blog
(June 22, 2021) -
The Thermal Printer Project: Part III
(June 22, 2021) -
The Thermal Printer Project: Part II.5
(June 21, 2021) -
The Thermal Printer Project: Part II
(June 18, 2021) -
The Thermal Printer Project: Part I
(June 17, 2021) -
What made you start James' Coffee Blog?
(June 16, 2021) -
My growing mug collection
(June 15, 2021) -
Saving my blog posts in one single .docx file
(June 14, 2021) -
Creating my GitHub README.md
(June 10, 2021) -
Blog about what you are learning
(June 08, 2021) -
Guess the Scottish Cafe
(June 07, 2021) -
The printed blog
(June 04, 2021) -
How I built this website
(May 28, 2021) -
Game: Guess the Edinburgh Cafe (Part 3)
(May 24, 2021) -
How do I start brewing coffee at home?
(May 20, 2021) -
Tasting pour-over coffee at different points of extraction
(May 19, 2021) -
Coffee Ratio Calculator Tool
(May 18, 2021) -
Game: Guess the Edinburgh Cafe (Part 2)
(May 17, 2021) -
My first brew with the Aromaboy
(May 14, 2021) -
Coffee Chat with The Drip in Edinburgh
(May 13, 2021) -
How to Shake Up Your Aeropress Recipe
(May 11, 2021) -
Game: Guess the Edinburgh Cafe
(May 10, 2021) -
Brewing with the Aeropress in the park
(May 07, 2021) -
Drinking coffee out of a smaller cup
(May 06, 2021) -
Speciality coffee shops in Edinburgh I have visited
(May 05, 2021) -
Notes from a coffee crawl
(May 04, 2021) -
More testing with the Hario V60
(April 30, 2021) -
Coffee documentaries I have watched
(April 29, 2021) -
Coffee Chat with Tim Williams from World Aeropress Championship
(April 28, 2021) -
My experience using a cloth Aeropress filter
(April 27, 2021) -
How I am brewing with the Aeropress
(April 26, 2021) -
Coffee Chat with Luke from Standart
(April 23, 2021) -
Coffee Chat with Jordan from Grumpy Mule
(April 22, 2021) -
Sweet Bean Paste Book Review
(April 20, 2021) -
My Hario V60 continuous pour recipe
(April 20, 2021) -
Make cold brew at home with no fancy equipment
(April 19, 2021) -
Complex and not so complex coffees
(April 15, 2021) -
Taking a break from home espresso
(April 14, 2021) -
Coffee Chat with Kat from Coffee People
(April 13, 2021) -
Coffee Chat with Dan from Machina Coffee
(April 12, 2021) -
Coffee Chat with James from PuckPuck
(April 10, 2021) -
My first cloth-filtered coffee
(April 09, 2021) -
The Chemex: A week or two on
(April 08, 2021) -
Coffee Chat with Barista and Barista Trainer Millie (@thatgirlfromthecafe)
(April 07, 2021) -
The Housekeeper and The Professor Book Review
(April 06, 2021) -
The Travelling Cat Chronicles Book Review
(April 06, 2021) -
The Midnight Library Book Review
(April 06, 2021) -
The Great Passage by Shion Miura Book Review
(April 06, 2021) -
Coffee Chat with Robbie from Canary Girl Coffee Company
(April 05, 2021) -
Coffee origins I have tried so far
(April 02, 2021) -
My two-cup Chemex recipe
(April 02, 2021) -
My first go at making an affogato
(April 02, 2021) -
How to Read a Coffee Label
(April 01, 2021) -
Five Ways to Make Coffee at Home
(April 01, 2021) -
Coffee Chat with Giulia from The Milkman
(March 31, 2021) -
A Beginner's Introduction to Grinding Coffee at Home
(March 30, 2021) -
Brewing one cup of coffee with the Chemex
(March 30, 2021) -
Coffee Chat with John from Artisan Roast and Coffee Nexus
(March 29, 2021) -
The Coffee Visionary By Jasper Houtman Book Review
(March 28, 2021) -
Scottish Coffee Roasters I Have Tried
(March 27, 2021) -
My Home Brew Bar
(March 27, 2021) -
Home espresso and interesting resources
(March 27, 2021) -
Trying a Robusta coffee
(March 27, 2021) -
Purchasing an espresso grinder
(March 26, 2021) -
On the road to better espresso shots
(March 25, 2021) -
Coffee Chat with Roland from Hasbean
(March 24, 2021) -
Coffee Chat with Jamie from Luckie Beans
(March 23, 2021) -
Espresso journaling
(March 22, 2021) -
Comparing the Kalita Wave and the V60
(March 22, 2021) -
My experience making espresso at home
(March 21, 2021) -
My ongoing journey with the Flair
(March 19, 2021) -
Coffee Chat with Danny from Obadiah Coffee
(March 18, 2021) -
Pulling more shots with the Flair NEO
(March 17, 2021) -
First shots with the Flair NEO
(March 16, 2021) -
Pour-Over Brewing: Pulse and Continuous Pouring
(March 15, 2021) -
Coffee Chat with Jay from AeroPrecipe
(March 15, 2021) -
Brewing pour-over coffee without a bloom
(March 06, 2021) -
Coffee Chat with Laboratorio Espresso
(March 05, 2021) -
Strange Weather in Tokyo Book Review
(March 04, 2021) -
The Guest Cat by Takashi Hiraide Book Review
(March 02, 2021) -
Coffee Chat with Nasko Panov from NP's Coffee Science
(March 01, 2021) -
Coffee Chat with Haydn from Filtrew
(February 28, 2021) -
How to Make an Iced Latte at Home
(February 26, 2021) -
Coffee Chat with Jamie from Sacred Grounds Coffee Company
(February 26, 2021) -
Coffee Chat with Lisa Lawson from Dear Green
(February 25, 2021) -
Coffee Chat with Christopher from Full Court Press
(February 24, 2021) -
How to Make a Cappuccino at Home (without an espresso machine)
(February 23, 2021) -
Coffee Chat with Eve from Argyll Coffee Roasters
(February 22, 2021) -
My Experience Cupping Coffee with Steampunk
(February 21, 2021) -
God in a Cup by Michaele Weissman Review
(February 21, 2021) -
The Coffee Dictionary Book Review
(February 21, 2021) -
A Pour-Over Brewing Glossary
(February 21, 2021) -
The Monk of Mokha Book Review
(February 21, 2021) -
Coffeeography: The Coffee Producers Book Review
(February 21, 2021) -
Pour Your Heart Into It Book Review
(February 21, 2021) -
What I Know About Running Coffee Shops by Colin Harmon Review
(February 21, 2021) -
Uncommon Grounds by Mark Pendergrast Review
(February 21, 2021) -
London Coffee by Lani Kingston Book Review
(February 21, 2021) -
The Best of Jim Seven Book Review
(February 21, 2021) -
Coffee: From Bean to Barista Book Review
(February 21, 2021) -
Coffee: A Global History Review
(February 21, 2021) -
Bringing Back My Website
(February 20, 2021) -
Coffee Chat with Alex from Manifesto Coffee
(February 19, 2021) -
Brewing two cups with the Chemex
(February 17, 2021) -
Acaia Pearl: ongoing thoughts
(February 13, 2021) -
Coffee Chat with Fiona Grant from Glen Lyon Coffee Roasters
(February 12, 2021) -
Coffee Chat with Todd Johnson from Williams and Johnson
(February 11, 2021) -
Coffee Chat with Davide from Papercup Coffee Roasters
(February 10, 2021) -
First impressions of the Acaia Pearl scale
(February 09, 2021) -
Coffee Chat with Bruce from Fortitude Coffee Roasters
(February 08, 2021) -
Cupping the same coffee roasted three ways: Part two
(February 08, 2021) -
An Aeropress glossary
(February 07, 2021) -
Ecuador Altos De Saragullas by Redemption Roasters
(February 07, 2021) -
Cupping three of the same coffees
(February 06, 2021) -
Coffee Chat with Cathryn from Little Fitzroy
(February 06, 2021) -
My Experience with the Aeropress
(February 05, 2021) -
Coffee Chat with Tom from Manchester Coffee Archive
(February 05, 2021) -
San Jose de Lourdes Peru by Neighbourhood Coffee Roasters
(February 04, 2021) -
Coffee Chat with Callum and Alex from Untitled Oats
(February 04, 2021) -
The V60: A week (or so) on
(February 03, 2021) -
First impressions with the Chemex
(February 02, 2021) -
Observations on the Hario V60
(February 01, 2021) -
My first impressions with the V60
(January 31, 2021) -
Cupping the same coffee roasted differently
(January 30, 2021) -
Coffee Chat with Adam from Cult Espresso
(January 29, 2021) -
Why do a coffee cupping at home?
(January 28, 2021) -
My Current V60 Recipe
(January 28, 2021) -
V60 vs The Chemex
(January 27, 2021) -
Coffee Chat with Paul from Lowdown Coffee
(January 27, 2021) -
Basic set up for brewing with Kalita Wave
(January 26, 2021) -
Dog and Hat Subscription Box Review
(January 26, 2021) -
Coffee Chat with Jonathan from Ukiyo Koffie
(January 25, 2021) -
Cleaning the Aeropress rubber plunger
(January 24, 2021) -
The Nakano Thrift Shop Book Review
(January 23, 2021) -
Pushing slower on the Aeropress
(January 22, 2021) -
Juan Vergara Full Court Press Coffee Review
(January 22, 2021) -
Experimenting with coarser grinding for the Aeropress
(January 21, 2021) -
Coffee Chat with Robi Lambie from Cairngorm Coffee
(January 21, 2021) -
Interview for The Coffee Life Blog
(January 20, 2021) -
Before the coffee gets cold Book Review
(January 20, 2021) -
Coffee Chat with Mark Edwards from Unorthodox Roasters
(January 19, 2021) -
Guatemala Finca La Esperanza by Steampunk Coffee Review
(January 18, 2021) -
My Kalita Wave Recipe
(January 17, 2021) -
Going back to the Aeropress
(January 16, 2021) -
Thoughts on the regular Aeropress method
(January 15, 2021) -
Coffee Chat with Cheapshot
(January 14, 2021) -
El Salvador Finca Bonanza by Steampunk Coffee Review
(January 13, 2021) -
Lessons from a home coffee cupping
(January 12, 2021) -
Coffee Chat with Coffee Snob Blog
(January 11, 2021) -
Coffee Chat with The Coffee Life
(January 10, 2021) -
Coffee Chat with The Pourover
(January 09, 2021) -
Observations using the Kalita Wave
(January 08, 2021) -
Coffee Chat with Catherine Franks from Steampunk Coffee
(January 08, 2021) -
Observations on gooseneck kettles
(January 07, 2021) -
Standart Magazine Review (Issue 21)
(January 06, 2021) -
Melitta Gooseneck Kettle Review
(January 05, 2021) -
Baratza Encore Coffee Grinder Review
(January 04, 2021) -
Observations on cupping at home
(January 03, 2021) -
Jamila Abakeno Ethiopia by The Good Coffee Cartel Review
(January 03, 2021) -
Acids in Coffee
(January 02, 2021) -
The design of the Kalita Wave
(January 01, 2021) -
Adado Ethiopia by The Good Coffee Cartel
(December 30, 2020) -
Using a coarser grind with the Aeropress
(December 29, 2020) -
Bukonzo Dream Uganda by Steampunk Coffee Review
(December 28, 2020) -
Aeropress French Press
(December 27, 2020) -
Why I switched to an electric grinder
(December 25, 2020) -
Blending at home
(December 24, 2020) -
Coffee Books to Read This Holiday Season: Part Two
(December 23, 2020) -
Online cupping classes
(December 22, 2020) -
Hario Mini Mill Grinder Review
(December 21, 2020) -
My Aeropress is difficult to push...
(December 20, 2020) -
Sweetness in Coffee
(December 19, 2020) -
Coffee Chat with Silviu Rad from The Missing Bean
(December 18, 2020) -
Brewing hacks
(December 17, 2020) -
Coffee Books to Read This Holiday Season: Part One
(December 16, 2020) -
I cannot taste this flavour...
(December 15, 2020) -
Ethiopia Bale Mountain by Steampunk Coffee Review
(December 14, 2020) -
Coffee Chat with Bean Thinking
(December 11, 2020) -
Bombe, Ethiopia Obadiah Coffee Review
(December 09, 2020) -
Coffee Blogs To Follow This Holiday Season: Part Two
(December 07, 2020) -
Coffee Chat with Double Skinny Macchiato
(December 04, 2020) -
Cojones Guatemalan by Good Coffee Cartel Review
(December 02, 2020) -
Coffee Blogs To Follow This Holiday Season: Part One
(November 30, 2020) -
Coffee Chat with SOLO Coffee
(November 27, 2020) -
Barista Documentary Review
(November 25, 2020) -
Baristas Documentary Review
(November 23, 2020) -
What is Turkish Coffee?
(November 21, 2020) -
Coffee Chat with Edinburgh Coffee Shops
(November 20, 2020) -
Kenya Kiganjo Peaberry Artisan Roast Review
(November 19, 2020) -
From Seed to Cup: Sourcing, Exporting, and Roasting
(November 18, 2020) -
The Journey from Seed to Cup: Planting, Harvesting, and Processing
(November 17, 2020) -
Craft Coffee: A Manual Review
(November 16, 2020) -
Caffeinated Documentary Review
(November 15, 2020) -
Coffee Chat with Brewing Coffee Manually
(November 14, 2020) -
How I Taste Coffee
(November 13, 2020) -
How to Make Coffee Book Review
(November 12, 2020) -
We Have No Tables
(November 11, 2020) -
Steampunk Columbia El Carmen Sugarcane Decaf Review
(November 10, 2020) -
Artisan Roast Finca Don Jaime Review
(November 09, 2020) -
The Blue Bottle Craft of Coffee Review
(November 08, 2020) -
How I Choose Coffee Beans
(November 07, 2020) -
Coffee: A Modern Field Guide Review
(November 06, 2020) -
Coffee in '90s Sitcoms
(November 03, 2020) -
Grinding Coffee at Home
(November 02, 2020) -
The Philosophy of Coffee Book Review
(November 02, 2020) -
My First French Press Brew
(November 01, 2020) -
Brewing a Better Cup of Coffee
(October 30, 2020) -
Missing Bean Peruvian Direct Trade Review
(October 29, 2020) -
Measuring Coffee with Scales
(October 28, 2020) -
Why I Love the Aeropress
(October 28, 2020) -
My First Brew with a Scale
(October 27, 2020) -
How I Learn About Speciality Coffee
(October 25, 2020) -
Steampunk Coffee's Packaging
(October 24, 2020) -
Curse of the Pumpkin Spice
(October 23, 2020) -
A Low Supply of Beans
(October 22, 2020) -
Building Relationships at My Local Coffee Shop
(October 22, 2020) -
Tracking the Word Count on My Blog
(October 08, 2020) -
Writing an Analytics Bash Script: Part II
(October 07, 2020) -
Writing an Analytics Bash Script
(October 06, 2020) -
Reading Content with RSS
(October 05, 2020) -
Cleaning Up the IndieWeb Webring
(October 05, 2020) -
Unorthodox Roasters Wee Stoater Review
(October 04, 2020) -
Coffee Cupping with Steampunk
(October 04, 2020) -
Checking My Webmentions Using RSS
(October 03, 2020) -
Displaying Webmentions on My Site
(October 02, 2020) -
Writing a New Tab Extension: Part II
(October 01, 2020) -
Writing a New Tab Extension
(September 30, 2020) -
Why I IndieWeb
(September 29, 2020) -
Brewing Coffee With the Aeropress
(September 26, 2020) -
Writing a Colophon
(September 25, 2020) -
Resisting Complexity on My Site
(September 25, 2020) -
How I IndieWeb
(September 24, 2020) -
The Five Factors of Coffee Tasting
(September 22, 2020) -
Owning a Raspberry Pi
(September 21, 2020) -
Setting Up My Raspberry Pi
(September 20, 2020) -
How I Design for Accessibility
(September 19, 2020) -
Building a Weather Station
(September 18, 2020) -
My Website Hosting Journey
(September 17, 2020) -
Self Dogfooding and Losing Steam
(September 16, 2020) -
Social Interactions on the Web
(September 13, 2020) -
Micropub and Publishing Content
(September 12, 2020) -
A New Website Architecture
(September 11, 2020) -
Archiving My Internet Presence
(September 10, 2020) -
Owning My Coffee Data
(September 09, 2020) -
Rethinking the Blog
(September 08, 2020) -
Blue Bottle Coffee Course Notes
(September 07, 2020) -
The Philosophy of Static Websites
(September 07, 2020) -
Trying Not to Overengineer
(September 06, 2020) -
How I Use Webmentions
(September 04, 2020) -
My First Homebrew Website Club Meeting
(September 03, 2020) -
Scratching My Itches
(September 02, 2020) -
My Experience With Jekyll
(September 01, 2020) -
Writing on the IndieWeb Wiki
(August 31, 2020) -
Adventures on the IndieWeb
(August 30, 2020)