James' Coffee Blog

https://jamesg.blog/ (RSS)
visit blog
Coffee and quotations
18 Jan 2025 | original ↗

I visited a coffee shop I have not been to in at least two years today. On the wall, above the coffee equipment rested on wooden countertops, there was a quotation written on a sign. It read: I’ve learned that people will forget what you said, people will forget what you did, but people will never forget how you made them feel. - Maya Angelou...

Pattern: Lazy loading
17 Jan 2025 | original ↗

One of the programming patterns I have seen used in several contexts over the last year is lazy loading. On the web, you can use lazy loading to tell the browser that an iframe or image should only be loaded when the viewport is sufficiently close to the resource. Using lazy loading lets the browser skip downloading resources that are not used...

Third run
17 Jan 2025 | original ↗

I have just finished the first week of Couch to 5k! It has has been a challenging week, but incredibly rewarding. I have gone from having not run in years to doing three runs in a week. I’m very happy! This week I have felt myself being pushed to my physical limits. I have become more aware of my body and its movements. I start thinking more...

Tools for the next decade of the web
16 Jan 2025 | original ↗

I had a conversation last week with Ben about tools for the next decade of the web. I think we are at an inflection point in the history of the web, one where the tools we made over the last decade or two may not be fit for us in the coming decade. Last year, I wrote in “The next decade of the web“: My vision for the web over the next ten years...

Learning about web design
16 Jan 2025 | original ↗

Over the last few months, I have been learning more about web design. I have been experimenting with layout, learning about colours, figuring out what types of fonts are available and using them in different contexts. Thus far, there have been three facets to my learning: noting, making, and understanding. Last year, a friend who is a web...

Creative questions challenge
16 Jan 2025 | original ↗

I have been thinking a lot creativity. What does creativity mean to me? What factors make me feel more creative? How can I be more consistent in refining my skills in my creative pursuits? The Blog Questions Challenge, in which bloggers are challenged to write about their blogging practice, got me thinking more about my creative questions. Thus,...

The morning sky
16 Jan 2025 | original ↗

The clouds in the sky are painted with a light pink hue. The full moon peeks over one of the clouds. It is morning. I appreciate the morning and evening skies because there are so many different ways the sky can be. On the horizon, the sky can be pink or a pink-ish purple, the sky can be yellow or orange. There can be a gradient of two or three...

Static, dynamic
15 Jan 2025 | original ↗

Last year, I spent a lot of time iterating on Publish, the publishing interface for my website. This interface is a static HTML page that generates a markdown file. This markdown file can then be published to my website. The Publish page is public, but you cannot publish a blog post unless you have access to my Git repository. This paradigm works...

Second run
15 Jan 2025 | original ↗

I went out for my second run this morning. The schedule was the same as my first run: a warm up period, followed by eight periods of running for 60 seconds and walking briskly for 90 seconds. After my last run, I started to get some aches in my legs. I asked a friend who runs about this and it’s a common phenomenon. My legs were sore yesterday,...

First run
13 Jan 2025 | original ↗

I have always enjoyed a brisk walk. My best friend growing up walked really fast. I enjoyed staying at the same pace with him. For the last few months I have been thinking about taking up running as a hobby. I enjoy the challenge of walking fast and wanted to see if I could start running. I had no experience but, I thought, maybe I could give...

The daytime moon
9 Jan 2025 | original ↗

The snow and frost on the hills in the distance are painted with a faint pink hue. The sun is about to set. While the sky is still blue with pink on the horizon, the moon is out. The moon has been in the sky for hours. I see it above a tree. I crane my neck up to look at the moon and think about all the joy that seeing the moon in the daytime...

Mornings and organising
9 Jan 2025 | original ↗

A few years ago, I had a morning routine I followed every day. I later thought to myself that I was being too rigid, so I relaxed the routine. Life happened and my mornings started to get less consistent. The main parts of morning – breakfast, coffee, getting dressed – were there, but the order was different each day. Some days I have to be up...

Boolean HTML search and web development
8 Jan 2025 | original ↗

Over the last week, I have made several improvements to the way images are loaded on my website. I now have WebP and AVIF versions of the images used in my blog posts. I use the picture element to tell the browser that there are multiple formats available; browsers can then choose to load a format that is compatible. I have also been updating how...

Horizon
7 Jan 2025 | original ↗

It is a cool winter morning. Snow lies peacefully on the grass and the hills. The pavements here on lower ground are mostly clear. I am surrounded by a snowy landscape. As I gaze out the window, I see a blue and white horizon where the white, morning winter sky blends in with the snow-covered hills. It is cold outside, but I feel warm inside. I...

Refinement
3 Jan 2025 | original ↗

For the last few months, I have been working on Artemis, my calm web reader. Artemis lets you keep up to date with web feeds. The reader updates once per day, intended to discourage me from periodically checking for new articles. As I have been working on the tool, I find myself often noting details about my experience that I think could be...

What I have been reading recently
3 Jan 2025 | original ↗

I am in awe of the knowledge available on the web. Stories of wonder, tutorials of great quality, and words of excitement, passion, and interest are all around us. Earlier today, I was thinking about the significance of sharing things others have written. By sharing what I have enjoyed on the web, I can help others find those resources. Through...

Happy New Year!
1 Jan 2025 | original ↗

Happy New Year! In 2024, I spent a lot of time reflecting on the personal significance of writing. Writing makes me feel alive. When I write, I feel excited and challenged. “What do I want to say?” is then followed by “How do I say it?”: two seemingly simple questions from which art can flow. I enjoy thinking about the stories I want to share on...

Questions on my mind
31 Dec 2024 | original ↗

I ask myself the question What should I make next? often. When I don’t have a new idea to work on, I think about what’s next. Figuring out what to build is hard, but I know deep down that ideas always come – whether after a conversation, after reading an article on a topic I find interesting, or after reflecting on something that I have noticed....

Inspiration and creative modes
31 Dec 2024 | original ↗

I have recently been thinking about two creative modes that I find myself in: one where I am inspired and have lots to work on and see many areas for growth, and another where I’m not quite sure what to say and get stuck in my shell. One of my favourite things to do is to make something new: to write down and share a story that brought me joy, to...

Artemis changelog #2
30 Dec 2024 | original ↗

I have made several updates to Artemis, the calm web reader I am developing. Here is what has been added since the last release: You can now authenticate with passkeys. You can set up a passkey in your account settings. noreferrer attributes are added to all external links to ensure no Referer header is sent when you click a link in your feed....

Advent of Patterns Wrap-up
25 Dec 2024 | original ↗

Advent of Patterns was motivated by my interest in learning more about design. I was inspired by the advice of a friend who said that to become a better designer I should first start by noting what I like – and don’t like – about other designs. I expanded upon this to start asking myself “what patterns do I see consistently?” I have occasionally...

Designing the Artemis feed recovery tool
24 Dec 2024 | original ↗

Sometimes, website authors change the URL of a feed without adding a redirect. This causes a problem for people subscribed to the feed: without the redirect, the software used to subscribe to the feed will have an out of date URL. After seeing Artemis, the calm web reader that I run, try to retrieve several dozen feeds that now return 404s, I...

Advent of Patterns: On-page search
24 Dec 2024 | original ↗

This article is the twenty-fourth and final edition of the Advent of Patterns series. In this series, running from December 1st to December 24th 2024, I will document one design or programming pattern I have noticed recently. Read more about this series.. When I am working on content management tasks, I often make reference to the list of all...

Artemis changelog #1
23 Dec 2024 | original ↗

Artemis, the calm web reader I am developing, is out of beta. You can sign up with the invite code “coffee”. Since launching Artemis, I have added several features. The highlights are as follows: You can use the Artemis feed recovery wizard to find updated feeds if a feed URL is broken. This appears as a red “Fix” button in your Authors page...

Advent of Patterns: Preferences
23 Dec 2024 | original ↗

This article is the twenty-third edition of the Advent of Patterns series. In this series, running from December 1st to December 24th 2024, I will document one design or programming pattern I have noticed recently. Read more about this series. When I was designing Artemis, a calm web reader, I started to reflect on the importance of user...

Advent of Patterns: Status indicators
22 Dec 2024 | original ↗

This article is the twenty-second edition of the Advent of Patterns series. In this series, running from December 1st to December 24th 2024, I will document one design or programming pattern I have noticed recently. Read more about this series. Knowing the status – or “state” – of a system or task is an essential part of interaction design....

How Artemis retrieves web feeds
21 Dec 2024 | original ↗

Artemis, the calm web reader I am building, updates once a day with the most recent posts from the authors you are following. I have designed Artemis to update on this cadence so that I don’t feel compelled to check my reader several times each day for new updates. Months after starting to use the software, I have found I check Artemis...

Advent of Patterns: Persistent information on scroll
21 Dec 2024 | original ↗

This article is the twenty-first edition of the Advent of Patterns series. In this series, running from December 1st to December 24th 2024, I will document one design or programming pattern I have noticed recently. Read more about this series. Some parts of websites continue to stay on screen as you scroll to different parts of a page. For...

Advent of Patterns: Shareable links
20 Dec 2024 | original ↗

This article is the twentieth edition of the Advent of Patterns series. In this series, running from December 1st to December 24th 2024, I will document one design or programming pattern I have noticed recently. Read more about this series.. A shareable link is a link to a web resource that you can share with others. All public links are...

Making images bigger on my website
19 Dec 2024 | original ↗

Many of my Advent of Patterns blog posts contain visuals that accompany the text. This is different from much of my previous writing which was text-focused; technical guides, poetry, musings. When looking through my posts, I noticed that some of the details of the images were hard to grasp because they were too small. I was trying to fit the...

Advent of Patterns: Tables of Contents
19 Dec 2024 | original ↗

This article is the nineteenth edition of the Advent of Patterns series. In this series, running from December 1st to December 24th 2024, I will document one design or programming pattern I have noticed recently. Read more about this series. Tables of contents provide an overview of the contents of a document. Tables of contents can help a reader...

Advent of Patterns: Timelines
18 Dec 2024 | original ↗

This article is the eighteenth edition of the Advent of Patterns series. In this series, running from December 1st to December 24th 2024, I will document one design or programming pattern I have noticed recently. Read more about this series. Timelines let you scroll through the history of a document or piece of digital material. Timelines allow...

Advent of Patterns: Diffs
17 Dec 2024 | original ↗

This article is the seventeenth edition of the Advent of Patterns series. In this series, running from December 1st to December 24th 2024, I will document one design or programming pattern I have noticed recently. Read more about this series. A “diff” shows the difference between two states of a document. You can use a diff to understand what has...

Advent of Patterns: Change overview
16 Dec 2024 | original ↗

This article is the sixteenth edition of the Advent of Patterns series. In this series, running from December 1st to December 24th 2024, I will document one design or programming pattern I have noticed recently. Read more about this series. I was recently working with a web page developed in Webflow. The page was on a “branch”, which means it was...

Finding complexity when writing technical documents
15 Dec 2024 | original ↗

I was recently writing the landing page text for Artemis, the calm feed reader I am developing. In the first three sentences on the page, I wanted to communicate what Artemis is, for what you can use the reader, and the fact that the reader only updates once per day. Here is what I came up with: Artemis is a calm web reader. You can use Artemis...

Advent of Patterns: Change previews
15 Dec 2024 | original ↗

This article is the fourteenth edition of the Advent of Patterns series. In this series, running from December 1st to December 24th 2024, I will document one design or programming pattern I have noticed recently. Read more about this series. When I am working on written documents – from blog posts to documentation – I like to see a preview of...

Advent of Patterns: Offline mode
15 Dec 2024 | original ↗

Offline mode is a version of an application that usually depends on internet but can work without an internet connection. Offline mode ensures that software can be useful even if a user does not have access to the internet at a given time. There are two main types of offline mode: read-only, and read-and-write. In a read-only offline mode, you...

Advent of Patterns: Text fragments
13 Dec 2024 | original ↗

This article is the thirteenth edition of the Advent of Patterns series. In this series, running from December 1st to December 24th 2024, I will document one design or programming pattern I have noticed recently. Read more about this series. Text fragments are links that point to a specific part of a web document. A common use case for text...

Advent of Patterns: Text shortcuts
12 Dec 2024 | original ↗

This article is the twelfth edition of the Advent of Patterns series. In this series, running from December 1st to December 24th 2024, I will document one design or programming pattern I have noticed recently. Read more about this series. When I want to create a Google Document, I usually type docs.new into the address bar of Firefox. This...

Artemis, a calm web reader, is available (in beta)
11 Dec 2024 | original ↗

For the last few months, I have been working on Artemis, a calm web reader. I use Artemis to follow my favourite blogs and websites. In designing Artemis, I had a few goals in mind: I want Artemis to be part of a web exploration journey, so every web link takes you to the author’s websites. I want the interface to make me feel calm, not...

Advent of Patterns: Inline function trays
11 Dec 2024 | original ↗

This article is the eleventh edition of the Advent of Patterns series. In this series, running from December 1st to December 24th 2024, I will document one design or programming pattern I have noticed recently. Read more about this series. An inline function tray is an interface pattern that lists functions that you can apply to information in a...

Advent of Patterns: Text readability
10 Dec 2024 | original ↗

This article is the tenth edition of the Advent of Patterns series. In this series, running from December 1st to December 24th 2024, I will document one design or programming pattern I have noticed recently. Read more about this series. When I am working on a web page design, I think a lot about the reading experience. How readable is the text?...

Advent of Patterns: Version history
9 Dec 2024 | original ↗

This article is the eighth edition of the Advent of Patterns series. In this series, running from December 1st to December 24th 2024, I will document one design or programming pattern I have noticed recently. Read more about this series. Software used for creating or publishing documents or files commonly implement version histories. Version...

Advent of Patterns: Information previews
8 Dec 2024 | original ↗

This article is the eighth edition of the Advent of Patterns series. In this series, running from December 1st to December 24th 2024, I will document one design or programming pattern I have noticed recently. Read more about this series. Applications that aggregate or have lists of information commonly show previews of information in an overall...

Advent of Patterns: Link qualifiers
7 Dec 2024 | original ↗

This article is the sixth edition of the Advent of Patterns series. In this series, running from December 1st to December 24th 2024, I will document one design or programming pattern I have noticed recently. Read more about this series. In Pattern: Link contexts I discussed ways in which additional information can be added to or around a link as...

Reflections on debugging
6 Dec 2024 | original ↗

I have designed my own web reader. With the web reader, I can subscribe to blogs and websites I like. The reader updates once a day to show all the web pages published in the previous day. I can also see pages published in the last seven days. Yesterday, I found an edge case: the title for article that used curly quotes was not properly...

Designing a documentation layout
6 Dec 2024 | original ↗

This year, I have been trying to design more web pages so I can learn more about web design and practice my skills. I started with a re-design of this website which I have been refining little-by-little as time passes and I learn more. Recently, I have been experimenting with designing a new type of layout: a documentation website. I had a...

Advent of Patterns: Autosuggest
6 Dec 2024 | original ↗

This article is the sixth edition of the Advent of Patterns series. In this series, running from December 1st to December 24th 2024, I will document one design or programming pattern I have noticed recently. Read more about this series. When you type a phrase into the Firefox address bar, the browser will suggest pages you have been to before. If...

Thinking about personal website style galleries
6 Dec 2024 | original ↗

I continue to learn a lot about content design and web development from the GOV.UK design system. Inspired by the idea of having all styles and patterns and components in one place, I started to think: how can design systems apply to personal websites? My first thought is to think about this in terms of a “website style gallery” – a place where I...

Pattern: Pre-rendering content
5 Dec 2024 | original ↗

This article is the fifth edition of the Advent of Patterns series. In this series, running from December 1st to December 24th 2024, I will document one design or programming pattern I have noticed recently. Read more about this series. Pre-rendering refers to rendering something before it is explicitly needed. Pre-rendering can improved the...

Spotify Wrapped 2024
5 Dec 2024 | original ↗

My Spotify wrapped, showing the list of artists and songs to which I have listened most. The lists in this image appear in text later in this article. Before my first sip of coffee today, I saw a colleague share their Spotify Wrapped. It’s that time of year again! Excited to see the collection of songs I had listened to most this year, I picked...

Things I have been reading lately
4 Dec 2024 | original ↗

One of my joys in the morning is to open my web reader and to look through all the new things to read. I may read some posts in the morning, or bookmark others for later. Sometimes, I add links to my personal notes, a sort of bookmark for my future self. The links in my web reader inevitably take me not only to a specific piece of writing by a...

Advent of Patterns: Define once, reference everywhere
4 Dec 2024 | original ↗

This article is the fourth edition of the Advent of Patterns series. In this series, running from December 1st to December 24th 2024, I will document one design or programming pattern I have noticed recently. Read more about this series. This year, I commissioned a holiday-themed mascot for my website. I wanted the holiday mascot to appear on all...

Advent of Patterns: Incremental computation
3 Dec 2024 | original ↗

This article is the third edition of the Advent of Patterns series. In this series, running from December 1st to December 24th 2024, I will document one design or programming pattern I have noticed recently. Read the introduction to the series to learn more about the series. Static site generators commonly have an interactive “incremental” mode....

Advent of Patterns: Filter, then compute
2 Dec 2024 | original ↗

This article is the second edition of the Advent of Patterns series. In this series, running from December 1st to December 24th 2024, I will document one design or programming pattern I have noticed recently. Read the introduction to the series to learn more about the series. When you are designing a search engine, it is important to filter...

prefers-reduced-motion and search-as-you-type
1 Dec 2024 | original ↗

The more people talk about CSS features, the more likely it is that developers will hear about them. I learned about oklch in a talk about CSS colours. I learned why rem and em are significant after conversations with friends and reading about the topics online. I love the spectrum of resources available: from documentation like MDN that...

Designing navigation on my personal website
1 Dec 2024 | original ↗

There are a few categories of navigation features on my personal website: My website homepage. The sidebar, which appears on most pages. It is the main, global navigation for my website. Category and date links that appear on articles. My search feature. All of these features serve different roles. My website homepage both introduces me, the...

Advent of Patterns: Highlighted time since article publication
1 Dec 2024 | original ↗

This article is the first edition of the Advent of Patterns series. In this series, running from December 1st to December 24th 2024, I will document one design or programming pattern I have noticed recently. Read the introduction to the series to learn more about the series. The Guardian adds a “This article is more than” box in yellow to the top...

Designing a calm web reader
30 Nov 2024 | original ↗

My equivalent of the “morning paper” is reading personal websites. I sometimes get so excited to check what new blog posts are out that I write down on my TODO list that I should check my reader in the morning to see what’s new. [1] I designed my web reader – the interface I use to follow blogs – after reflecting on how I want to read the web. I...

Inspiration
30 Nov 2024 | original ↗

My inspiration ebbs and flows: some days, I have many ideas; others, I think hard but no ideas come. I have found that speaking with friends helps me to think of new things to make and write about. Spending more time out and about helps too. I haven’t been walking around a lot recently: the colder weather, and the winter blues, had me out less...

Advent of Patterns
30 Nov 2024 | original ↗

In 2021 and 2023, I challenged myself to publish a blog post on a specific theme every day from December 1st to December 24th. The 2021 theme was Advent of Bloggers, in which I discussed a blog I liked in each post. In 2023, I wrote my Advent of Technical Writing series, in which I published a post a day about technical writing. I generally...

Pattern: Link contexts
30 Nov 2024 | original ↗

External links on my website now show a small icon commonly associated with an external link. The icon, which is part of each link and implemented using the CSS ::after pseudo-element, is a visual indicator that the linked material is on another website. This provides important context to the user that differentiates internal from external links...

More on forgiving interfaces
29 Nov 2024 | original ↗

In my recent blog post “Forgiving interfaces,” I reflected on the ways in which software can be designed to be “forgiving.” I was thinking about forgiveness in design through Tantek’s original definition of “able to undo or otherwise correct your mistake.” This evening, I started to think about another framing: that a forgiving interface should...

Coffee preferences
29 Nov 2024 | original ↗

Back when I used to attend coffee festivals – something I should plan to do next year! – I would revel in the prospects of trying coffees that vary by varietals, roasting method, region, and more. For each coffee I tasted, I could learn something new; I learned some flavour profiles are more typical of certain regions, that the fruity and floral...

Forgiving interfaces
28 Nov 2024 | original ↗

Tantek introduced me to the idea of forgiveness as a property of a trustworthy tool, defined as “Forgiving — if you make a mistake, you should be able to undo or otherwise correct your mistake.” I was thinking about this when reflecting on a notes archiving tool I made. The tool is forgiving in a few senses. First, if you try to archive a...

The joy of making tiny tools
28 Nov 2024 | original ↗

A year or two ago, I made a tool that saves notes from IndieWeb meetups to MediaWiki. I made the tool because it was tedious to copy-paste the notes from our note-taking software, Etherpad, to the wiki. Archiving also involved adding a few tags so that the page would have various components useful for readers of the archived notes. The tool,...

The joy of bookshops
28 Nov 2024 | original ↗

Last month, the Guardian published an article on how “young people are shunning AI algorithms and online retailers to experience the joy of visiting bookshops.” The article makes me feel excited, and matches my experience going to a bookshop. I go to bookshops to explore, to wander, to learn. I enjoy walking in the front door and seeing what new...

Front End Study Hall
28 Nov 2024 | original ↗

One of my goals for this year has been to learn more about the tools of the web platform: HTML, CSS, and a bit of JavaScript. I am excited to learn about the possibilities of these tools and what I can do with them. I have particularly enjoyed learning about CSS. This year, I have learned about so many new features in CSS, for example: conic...

Writing on whiteboards
28 Nov 2024 | original ↗

Last night, before bed, I was thinking about ideas for what to blog about in December. I am interested in doing another writing series, although I was unsure on what topic to write. I still am, but now I have a few more ideas. As inspiration struck – one idea, then another – I started to write notes on my bedroom whiteboard. This is one of two...

Web Writer’s Workshop on December 3rd
26 Nov 2024 | original ↗

I am hosting a Web Writer’s Workshop event on December 3rd, 2024. The event, scheduled to last 90 minutes, is a place to chat about all things writing: what to write about, writing tips, staying motivated, how to collaborate on written projects, and whatever else comes up on the topic of writing. Whether you publish fiction or non-fiction,...

Adding dark mode to my website
24 Nov 2024 | original ↗

When I redesigned my website earlier this year, I removed the dark mode theme from my website. I wanted to focus on getting the website working first – a functional design was the goal. Now that I have been using my new theme for a few months and, in the process, refined several of the styles, I was ready this weekend to revisit dark mode. Dark...

Confidence
24 Nov 2024 | original ↗

I want to learn about design, I thought to myself, excitedly. I was interested in why some things feel better to use than others – why do some tools feel like a delight, while others feel rough around the edges? What makes an effective tool? What makes a tool a delight to use? How do I make a tool that feels like a delight? I asked a designer I...

live more & love more
24 Nov 2024 | original ↗

Recommended by a friend, I first listened to Cat Burns’ live more & love more on an early morning train. The songs I listen to often were flowing through my headphones; the usual playlist going. The music soothed the transition from tiredness to feeling ready for the day. Then, I remembered that I had a new song to which I wanted to listen. I put...

Ideas and friends
24 Nov 2024 | original ↗

When I woke up this morning and opened the window, it was snowing. This was the first time this year I have seen more than a small flutter of snow fall from the sky. The ground and hills were coated with snow; the imprint of footprints followed the pavements. It was cold. And it was magical. There were low clouds. Looking up, I could see only...

What do you want for the web?
24 Nov 2024 | original ↗

The web is empowering. Through the web, we can find information, read and share stories, find inspiration for the next thing we want to do, and communicate with others. We can make art: poems, essays, fiction, websites. We can share what makes us human. I was thinking earlier today what I want for the web. Where do I want the web to be in the...

Make a two-column list layout with CSS grid
23 Nov 2024 | original ↗

I have several lists on my website that have two columns. For example, my archive pages have a column for the date on which a post was published and a column for the post title. My link garden has a column for the link title and another for a tag related to the content. Here is an example showing a side-by-side layout in my link garden: The...

Designing search filters for my personal website
23 Nov 2024 | original ↗

As I continue to build my blog search engine, I have been asking myself “given my search engine is for my website, what features can I build that would be most helpful to me?” I have been thinking a lot about search filters since I wrote my blog post on how helpful I find Slack’s search filters. I now think of search filters as an integral part...

Some things that bring me joy
22 Nov 2024 | original ↗

Toward the top of my notepad, I wrote I miss personal writing. I realised this in a conversation earlier this week where I felt that something was missing from the more technical writing I have been doing lately on this website. As I was singing and dancing while waiting for the kettle to boil, listening to Taylor Swift’s reputation, I thought...

Adding direct answers to my website search engine
22 Nov 2024 | original ↗

My website search engine now supports direct answers. Any query starting with what is or what are is processed with logic that aims to find a direct answer to the question. For example, consider the query “what is a trie”. When this query is run, the search engine returns a “direct answer” result at the top of the page, followed by the “10 blue...

Share a compliment with a creator you appreciate
22 Nov 2024 | original ↗

One of the joys of making something is that you never know the extent to which it can inspire someone. I was just thinking about all the things I have on my bookshelf. The authors will never know that their books touched me in a particular way. Thus is the nature of creativity: when you put something out there, people can find meaning in what you...

Ideas take time to garden
22 Nov 2024 | original ↗

Sometimes, I have an idea for something to create – an essay, a blog series, a program, a tool – that I realise I am not ready to make yet. I felt this way when I wanted to write about technical writing. I knew I had something to say, but I wasn’t sure what yet. I feel this way with many of my essays: I have an idea, but I’m not sure how I want...

Planting a link garden
22 Nov 2024 | original ↗

I have so many links I can share, I said to a friend with excitement. I often feel this way. I have websites and web pages in my head that I often refer to when I’m talking with friends. Perhaps one of the reasons I love search so much is that I don’t necessarily keep all my favourite links in one place. Some are in my bookmarks, others I...

Improving search relevance with word proximity
18 Nov 2024 | original ↗

My website search engine uses text search to identify documents relevant to a given term. Up until recently, the search engine treated every word in a term independently. For example, consider the query “all too well”. Documents would be found that contain any of the words in the query. Then, the results would be ordered according to their...

How to find word collocations in a document
17 Nov 2024 | original ↗

My blog search engine used to treat every word independently in evaluating a query. For example, results for “homebrew website club” were calculated by finding documents that contained all those words. The words did not necessarily have to be in sequence. For many queries, documents that were relevant bubbled up to the top of search results using...

Learning from human experience interviews
15 Nov 2024 | original ↗

In Let’s replace “user experience” with human experience, I posit that we should use “human experience” instead of “user experience,” the former expressing more directly the fact that we design software for people. When I make this website, I like to follow my curiosities. With that said, I care deeply about the accessibility of the content on...

Let’s replace “user experience” with human experience
15 Nov 2024 | original ↗

I recently asked two friends to give feedback on part of the experience on my website. I invited both to calls, separately, and gave the requisite context about the feature I wanted them to try. I then watched as they navigated around the website in pursuit of a goal. I was tempted to refer to this as “user testing,” but then a hesitancy I have...

Hopes
14 Nov 2024 | original ↗

I love being the person who can make sound from a piano where there was silence. I hope that I can also be the person who inspires more people to find their own sound.

Reunited through time, for a moment
14 Nov 2024 | original ↗

It was with the sounds of the cicadas, that Sestuna walked through the streets, looking for the rumored cafe with the ability to travel in time. She could hear the sounds of the first fireworks in the background, the children running around the streets. She passed the Obon festival, before she reached the right block. The sounds of children...

Organising content by theme
13 Nov 2024 | original ↗

I have spent a lot of time thinking about how to organise content on my website. I want you, my readers, to be able to learn about the different types of content to write – from poetry to technical blog posts to stories – and find the posts that may be most interesting to you. There are several ways in which I organise my content: My homepage...

Seasons
12 Nov 2024 | original ↗

The hills on the horizon are becoming clearer, I think to myself. I reflect on the faint haze that remains after the heavy fog that painted the landscape white earlier in the morning. The low sun is shining, illuminating the few remaining colourful leaves on the trees in front of me. I think back to all the changes in the leaves — from the pink...

Watching the world go by
12 Nov 2024 | original ↗

Music from Bon Iver plays in the background of a cosy cafe in the heart of Mitte, Berlin. The cafe is elevated from street level, which gave me a different perspective of the street. After a few days of cold mornings, the city had started to warm up a little bit. People will still wearing hats and gloves on the street, but the temperature was no...

melody
12 Nov 2024 | original ↗

the melody of the moment

Musical concepts and blogging
12 Nov 2024 | original ↗

I have been thinking about how musical concepts apply to blogging recently. For example, could you make “playlists” of your content that are curated by theme or the mood of the posts? For example, could I have a list of “Monday morning pick-me-ups” with heartwarming stories I have written, or a list of “Web Wednesday” posts that are all about...

Making, collaboratively
12 Nov 2024 | original ↗

A few weeks ago, I wrote a blog post with a friend in real time using Google Docs. We started with a blank page and conversed in the document to develop an idea. Then, we started writing, together. The result was a delightful story. We only spoke in Google Docs; our communication was limited to text. We decided to write a fiction story. I am less...

the cafe
12 Nov 2024 | original ↗

The quiet of the cosy city cafe.

Freshly made smiles
12 Nov 2024 | original ↗

A supermarket in Berlin with a sign that reads ‘freshly made smiles’. Freshly made smiles at a supermarket in Berlin.

The long view of a blog
3 Nov 2024 | original ↗

Nestled within the annals of my notes is “The long view of blogs,” followed by my wondering whether a blog could be a magnum opus. I later coalesced these ideas into the “long view” of a blog. I imagine this as thinking about the blog not as any single post, but rather as the collection of all works over time; the contents and presentation When I...

Showing incremental progress for longer actions
3 Nov 2024 | original ↗

Showing feedback is an essential part of user experience design. When a user takes an action, it should be clear to the user that the action has been recognised by the system and that, as a result, something is happening. If an action is instant, feedback may mean showing the results of the task or an indicator to say the task is complete. If an...

Documenting user interfaces and experiences
3 Nov 2024 | original ↗

Earlier this year, a friend told me that an essential part of learning design is to take note of what you like and don’t like. Once you notice that you like and don’t like, you can ask yourself why. From there begins the potential to analyze and build an eye that you can use to make your own designs. —- The IndieWeb has a philosophy of...

Search filters in Slack
3 Nov 2024 | original ↗

Slack uses keyword search. I can type in a keyword, like “optimization”, and find words that match the keyword. I can also add filters that refine my query. For example, I can say “optimization from:@James” to say that I only want to see messages that contain “optimization” and were authored by the user @James. Search filters are one of my...

Ideas for performance testing infrastructure
3 Nov 2024 | original ↗

ClickHouse is a database that aims to provide “lightning fast analytics for everyone.” They have published several resources online about how they strive toward making ClickHouse as fast as possible, including Why is ClickHouse so fast? In one post, Testing the Performance of ClickHouse, they outline a “ClickHouse comparison tool” that lets...

Filter before running computationally expensive tasks
3 Nov 2024 | original ↗

In “Regular Expression Matching with a Trigram Index or How Google Code Search Worked”, Russ Cox describes a system that allows for code search with regular expressions. It has taken me several reads of the article to understand roughly what is going on, and I still don’t have a full understanding. With that said, there is one pattern that stands...

Impact
2 Nov 2024 | original ↗

The theme for this month’s IndieWeb Carnival is impact. In the announcement, Xandra, who is hosting the event this month, noted “has someone made a profound impact on you?” as a potential question to explore. While saying to a friend “I’m not sure where to start with such a big topic,” followed by a smiling face emoji to take the tension away...

How to use cProfile and snakeviz to profile Python code
2 Nov 2024 | original ↗

Before you optimize your code, you should run a profiler to understand how your code performs. In Python, you can use cProfile to profile your code. cProfile is part of the Python standard library. With cProfile, you can find out: How long functions take to run in your code, both per call and cumulatively; How many times functions are called;...

Precomputation
1 Nov 2024 | original ↗

I have noticed a pattern across my work in search and on static site generators: in both cases, the key to offering good performance for users is to precompute as much information as you can. Text search engines rely on “reverse indices,” which map words to the documents they are in. Reverse indices are structured in such a way that allows...

Rich content presentation on personal search engines
1 Nov 2024 | original ↗

Search engines help us find information. Over the years, web search engines such as Google have experimented extensively with how that value proposition translates into a user experience. At first, search engines helped you find web pages that addressed queries. Google famously showed “10 blue links.” Then, search engines started to render more...

URL search in the browser address bar
31 Oct 2024 | original ↗

The Firefox address bar lets you search for URLs given a series of characters. You can then select a URL with your arrow keys and press enter to navigate to that URL. One use of this for me is finding files on GitHub. For example, I can type gith jam def to find the default.html file in the private jamesg.blog GitHub repository. I usually write...

Readable and memorable URLs
31 Oct 2024 | original ↗

The IndieWeb wiki, like Wikipedia, uses concise, descriptive URL slugs. A “slug” is the part of the URL after the domain name. For example, the following page takes you to the wiki page on coffee. https://indieweb.org/coffee I have recently been thinking about two benefits of concise URLs such as the one above: You can remember the URL so you...

How to export images from Google Docs as a folder
17 Oct 2024 | original ↗

When you copy images directly from a Google Document into Ghost, and potentially other rich text editors, URL references to the images in the Document are copied instead of the underlying image. This means that if the document is deleted, the images will be broken. Thus, before you use images in a Google Doc, you should export them. Google Docs...

Search engine shortcuts in Firefox
13 Oct 2024 | original ↗

Firefox has a feature that lets you map a character or sequence of characters typed in the Firefox address bar to a custom search engine. For example, you can map w to Wikipedia, so the query w coffee would take you to the Wikipedia search page for coffee (which auto-redirects to the Wikipedia page for coffee). I have just set up two shortcuts...

Morning coffee
13 Oct 2024 | original ↗

Your eyes open to see rays of the autumn sun peeking through your dark curtains. A soft alarm rings in the background. It’s time to start your day. While it’s a Sunday, you set an alarm to make sure you don’t spend your whole day in bed. Or, if you do, at least you have an alarm to prompt you to make a cup of coffee that you can drink while you...

Stargazing
12 Oct 2024 | original ↗

How does one encapsulate this feeling of awe? I’m looking up at the stars and it’s beautiful. It’s beautiful. All the glimmers, from the intense to the twinkling. The moon, with a tint of red, is to my left. As I look West, I don’t see the comet for which I was looking. But it almost doesn’t matter. Because I see… wonder, and a reminder of how...

in design, craft: this week in my blog
11 Oct 2024 | original ↗

Read this article on James' Coffee Blog

The writing equivalent of a duet
9 Oct 2024 | original ↗

At Homebrew Writing Club yesterday, someone asked “What is the writing equivalent of a duet?” I explore this concept with reference to collaborative writing, then extend the idea further of applying musical metaphors to writing. This led to thinking about the literary equivalent of playlists, remixing, and more. My thoughts are in the voice note...

from links, adventure
9 Oct 2024 | original ↗

html from links, adventure James' Coffee Blog mascot from links, adventure: № 1 october 9th, 2024 by James' Coffee Blog. 1. Designing for Users with Anxiety by the United Kingdom Government 2. Garfield: September 18th, 2024 by Jim Davis 3. A quote on words by Ursula K. Le Guin 4. Contronym on Wikipedia 5. Color Hunt A colour palette directory

Notes on performance
9 Oct 2024 | original ↗

When I am designing technology, I like to think about how fast I can make the experience. This involves making conscious engineering decisions at the beginning of a project to lay the foundation for building a fast application (i.e. choosing the right data structures). Then, as I develop, I ask questions like “is this as fast as it should be,...

Brainstorming a design for audio note transcription
8 Oct 2024 | original ↗

This evening, I started to think about what the experience should be on audio notes. Could I offer transcriptions? What would that look like? What design elements should I have on the page? What features could I add to afford greater utility to the transcript, like search? I explore these questions in the below audio note, with additional...

The longevity of technical documents
8 Oct 2024 | original ↗

I have recently been reflecting on how technical writing goes out of date, and what that means as a technical writer. In the voice note below, I explore how technical documents have relevance far beyond their immediate utility as a reference material. Your browser does not support the audio tag.

A Monologue on Modality
8 Oct 2024 | original ↗

At Homebrew Writing Club this evening, we spoke about modalities of content: of writing, audio, video, and more. We also spoke about the best way to make something is to get started, and to make it as easy as possible to get started. For example, instead of worrying about how to classify content, you can write or make it, then classify it later....

Music Monday: The Sound
7 Oct 2024 | original ↗

The melody of The Sound by Carly Rae Jepsen plays in the background as I write the opening sentence for this blog post. When I hear a song in a playlist that I love, I often take a screenshot of the song name to remind me to listen to the song later. I often forget to go back and look at the songs. This weekend, however, I decided to look through...

IndieWeb Movie Club October 2024
2 Oct 2024 | original ↗

Running monthly, the IndieWeb Movie Club is an invitation to watch a movie chosen by a selection of rotating hosts and, optionally, write your thoughts about the movie on your personal website. Mark started the blogging challenge with The Matrix, then Benji hosted September’s event with When Harry Met Sally. I am excited to be hosting this...

Books set in bookshops
1 Oct 2024 | original ↗

I love bookshops. I enjoy perusing the shelves in search for a new book to read, and the excitement that comes when I find a title that looks like exactly the kind of thing I might enjoy. I love seeing the new releases, searching for if there are new editions out of book series I have been following. I am inspired by how many stories are sitting...

Noticing
29 Sept 2024 | original ↗

The views from the Millenium Bridge in London are incredible. Opened in 2000s by Queen Elizabeth II, the bridge connects St. Paul’s Cathedral with the Tate Modern gallery. Standing there a few days ago while on holiday, I found myself gazing at the Tower Bridge. I had arrived in the early morning, as the sun was rising. I stood in a spot where...

The musical
29 Sept 2024 | original ↗

Never give up, said the person sitting next to me in the theatre as we chatted in the interval of Hamilton. When I arrived at the theatre in London’s West End, I took my seat and looked around at the room. This was my first time going to see a musical. I was entranced by the building: the architecture, the grandeur. I was early to arrive, and sat...

The basement restaurant
29 Sept 2024 | original ↗

It has been a busy day, characterised by delightful adventure. You have spent the day doing many of your favourite things, and trying new things, too. Night has fallen on the busy city and you find yourself in the heart of town: the place where you can find any cuisine that you seek. Your feet and legs are tired from the day. You walk one street...

The Underground guitarist
29 Sept 2024 | original ↗

Sweet Caroline, ba ba ba. Good times never been so good., sang, passionately, a group of friends who had just disembarked a London Underground train. I was at the foot of the escalator to go back to street level. As I went up, I saw people glancing, with joy, at the people singing who were down at the bottom of the escalator – the busker, with...

Moments of joy: The bus ride
23 Sept 2024 | original ↗

Every day, I look out for little things that make me smile. I sometimes take notes, knowing that those notes may bring back memories of the thing that brought me joy and the moment surrounding it. My Moments of joy series, in which I document things that made me smile, has helped me refine my storytelling skills. Since I was a child, I have loved...

Fernande with a Black Mantilla
23 Sept 2024 | original ↗

I remember vividly when I first saw Picasso’s “Fernande with a Black Mantilla” painting. I was visiting the Guggenheim museum in New York. The spiral dome was under maintenance in preparation for a new exhibit (although that did not stop me from peeking through the curtain to see the vastness of it as I walked up the spiral platform through the...

An Introduction to the Personal Web with Cosy and Cali
21 Sept 2024 | original ↗

“I’m just trying to think of a way to start this,” thought Cassie, as she embarked on her first blog post: an interview with two of her friends on what the web means to them. An assignment to pass her journalism class. Cassie: “Hello, everyone. Thank you for joining me today for this interview. I’m so excited! I must admit that I’m a bit nervous....

The lifecycle of a search query on my blog
20 Sept 2024 | original ↗

Suppose you are looking for my Aeropress recipe. To find this information, you could turn to my blog search engine. This search engine indexes all of my blog posts. The search engine is powered by JameSQL, a NoSQL document database. Turning text queries into JSON queries Let’s start with a query: aeropress recipe When you type this query into my...

Improving relevance on my site search engine
19 Sept 2024 | original ↗

The search engine on this website is powered by JameSQL, an open source, NoSQL database. The engine accepts a query and evaluates it according to any conditions specified. I strive to keep query times below 10ms, to help ensure the search experience feels and is as fast as possible. When I first released the search engine, relevance was...

A quiet room at Vienna airport
9 Sept 2024 | original ↗

On my way back from a trip to Vienna, I got breakfast at the airport. My flight was early, so I was especially looking forward to having a coffee with my meal. At the breakfast eatery I visited, there was a quiet room. The room was detached from the rest of the cafe with a glass wall, enough to significantly dull the sounds from outside. Whereas...

Blogging before dinner
9 Sept 2024 | original ↗

I was speaking with a friend yesterday about finding the time to write blog posts. I offered a tip that has worked for me recently: write before dinner. A few months ago, I had a work project and I decided to set myself a 20 minute deadline. I put my dinner in the oven, then started writing. In the time when I otherwise would be doing dishes or...

Implementing a transaction log for JameSQL
29 Aug 2024 | original ↗

This blog post describes my thought process in implementing a transaction log for my database. My implementation may not follow best practices, as I am still learning. If this blog post sparks ideas on what I could do better, please let me know! JameSQL, my NoSQL database, was designed to be an in-memory data store. I use the tool for my blog...

Hope for the web
29 Aug 2024 | original ↗

The web has changed all of our lives: we are more connected than ever, knowledge is easier to access than ever. But sometimes it feels that we are subjected to that change, rather than being able to proactively participate in making the future; in crafting a web that speaks to what we want. Sometimes change feels impossible. I sometimes feel this...

Writing a search query transpiler
23 Aug 2024 | original ↗

Google, among other search engines, supports advanced operators for writing refined search queries. For example, you can use the site: search operator to constrain your search to a website, like: site:reddit.com aeropress coffee recipe In my How to build a query language in Python blog post, I walked through how to create the foundations of a...

Clustering blog post titles with unigrams
23 Aug 2024 | original ↗

I was having a conversation yesterday with a reader about clustering news headlines according to similarity. This had me reflecting on some of my past experiments with clustering and sorting, where I have used word embeddings to find similar documents. Word embeddings encode semantic similarity between documents, which allow for more nuanced...

Adventures building a spreadsheet engine in Python
21 Aug 2024 | original ↗

Spreadsheets are a fascinating tool. With a spreadsheet, you can both store and structure data, and include formulas that run computations on the contents of a sheet. Every so often, I ask myself how a spreadsheet works. How do spreadsheets turn data and a list of formulas into a complete table of data? This week, I set out to build a spreadsheet...

Building a NoSQL database in Python
19 Aug 2024 | original ↗

This post is not an authority on how to make a NoSQL database, rather how I made mine. I am still actively learning this topic, but I wanted to write my thoughts to help me process what I am learning. I have used NoSQL databases for search projects in the past. A NoSQL database like Elasticsearch stores documents in (usually) a single table....

Python pattern: Using defaultdicts to initialise dictionaries
18 Aug 2024 | original ↗

When you are working with dictionaries in Python, you may be familiar with the following process: You initialize a dictionary. You iterate over data. You check if a key is in a dictionary. If it isn’t, you add a default value. You add to the value associated with the key (i.e. to increment a counter, or add an item to a list or set). With the...

How to implement a time-based LRU cache in Python
18 Aug 2024 | original ↗

When you are building applications, you may want to add a cache to parts of your application. For example, consider a web directory that lists recipes. The directory has thousands of recipes available. You may want to add caching to database queries so that you don’t have to look up the database every time a user makes a request to the web...

Introduction to consensus modeling in Python
18 Aug 2024 | original ↗

Consensus algorithms allow computer scientists and data analysts to answer a question based on information from several data sources. These data sources may be independent, or data taken from the same source but at different time frames. Consider a scenario where you are building a tool that retrieves tags from Wikipedia album pages to build a...

Saturday morning reading
17 Aug 2024 | original ↗

One flat white, please. I sometimes order food, too; a warm croissant or fruit. I sit down at a table and take out my book from my backpack, the book I packed the previous day. Sometimes, I have two, if I am on the cusp of finishing one of them. I recline back in the chair in which I am sitting, open to the last page I was reading. This page is...

How I design my URLs
17 Aug 2024 | original ↗

Websites that use well-defined URL structures are easier for me to navigate. When I use a site enough, I can remember specific paths, infer the structure of a site so I can find the page to which I want to go, and more. Some affordances of clean URL design, such as ease of navigation, can be implemented directly on the page – for example,...

How to implement TF-IDF in Python
17 Aug 2024 | original ↗

In the “How to build a search index in Python” tutorial, we walked through how to build a search index in Python. This index, when queried, gives equal weights to all words that you use in your query. Thus, you can retrieve documents that contain words, but the documents are not ordered in any way. Once you have a search index, the next step is...

How to build a query language in Python
17 Aug 2024 | original ↗

In this guide, I walk through how to build a query language in Python. No required knowledge of query languages is required to follow this guide. You will find this article easier to understand if you have some knowledge of trees. This guide should get you set up with all the information you need to make your own query language. With that said,...

Designing a fuzzer for Knowledge Graph Language
16 Aug 2024 | original ↗

I have been writing a test suite for Knowledge Graph Language (KGL), a concise syntax for querying knowledge graphs. My test suite ensures that, given a specific input, the language execution engine returns the correct response. Specific functionalities are tested, too, such as data imports and class methods that allow someone to manipulate a...

Designing the content layout for my website
16 Aug 2024 | original ↗

When I was re-designing my website, I put a lot of thought into the content section. I wanted to ensure my content was as readable as possible for as many people as possible. This meant that I wanted to design a default experience that adheres to design best practices. The design also had to be accessible, which would ensure that those using...

Moments of Joy: Inspiration and practice
15 Aug 2024 | original ↗

In response to my Ask the Website Maker blog post, a reader asked about my Moments of Joy series, curious about what moments I include, whether any moments are unpublished, and how I write the notes. That question inspired this blog post. In Februrary 2023, I blogged one of, if not the first, of my “Moments of Joy” blog posts. I ended the blog...

My (CSS) style
15 Aug 2024 | original ↗

’Cause we never go out of style, we never go out of style… Wait… that’s a Taylor Swift lyric. This blog post is about a different kind of style: CSS styles. (Long-time readers, please disregard that this is the second blog post in which the topic is style and I referenced a Taylor Swift song.) fLaMEd fury asked a thought-provoking question on...

The little moments
9 Aug 2024 | original ↗

Would you like your scone warmed up? asked the barista as I placed my order in the bookstore cafe. I was touched by the question. I am used to cafes asking questions about the preferences of an order – “would you like that with oat milk?”, “what size of coffee would you like?” – but this time felt different. I was then asked what jam I would...

The rainbow
9 Aug 2024 | original ↗

While sitting at my desk, I gazed up at the window and saw red, orange, yellow, green, blue, indigo, and violet. A rainbow. This is the second one I have seen over the last few days. Today’s rainbow looked like the bottom was close to my house. With a spontaneity that I didn’t realise I have, I walked briskly to get my shoes and keys. I was...

Ask the Website Maker (Me!)
8 Aug 2024 | original ↗

I am sincerely grateful for all of the knowledge people share about personal websites on the internet. From other blogs, I have found inspiration of things I can do on my website. I have learned how to do things I was previously unable to do. I have been inspired to create new things. In kind, I like to share what I am learning about personal...

The boarding line
31 Jul 2024 | original ↗

Final boarding call for flight to Dublin, said the voice through the loudspeaker. I stood up and walked toward the end of the boarding line. It was one of those long, winding lines. There was a bit of awkwardness to figure out where to stand at the end of the line. As I maneuvered my way into a position in line, I smiled at someone who was, too,...

Tools and time
31 Jul 2024 | original ↗

What is essential for this interface? is a question I have been thinking about in designing new digital interfaces and tools. Another way of framing this is “what do I really need?” When I went to re-design this website, those two questions were at the forefront of my mind. As I looked at the old version of my website, I realised that I could...

Fog
29 Jul 2024 | original ↗

One of my favourite parts of San Francisco is the sun setting over the Golden Gate Bridge. I love the view from Fort Mason all the way to the marina and toward the bridge. I enjoy the array of colours and how they illuminate the horizon: the pinks, purples, reds, oranges. On my trip last week, I set out to see the sun set as much as possible. One...

Place
29 Jul 2024 | original ↗

It makes such a difference to someone’s day when you have a smile on your face., I said. The driver responded by saying “Exactly!”, in a tone of equal parts excitement and sincerity. I was in a taxi heading for work. I had my first coffee for the day, an iced mint mojito. A San Francisco classic made with milk, black coffee, and mint. Energised...

The coffee shop
29 Jul 2024 | original ↗

While walking down a street you have not yet explored, you notice a shop with tall, glass windows. On one window reads “Athena’s Coffee Shop” in traditional lettering. The kind of lettering you may associate with an old-timey store. But the interior is everything but dated. Through the clear glass, you see the vibrant, beaming sun illuminating...

The morning taxi ride
28 Jul 2024 | original ↗

I had been walking for half an hour along the Embarcadero in San Francisco, among my favourite places to walk in the morning. I can walk for miles and see beautiful sights along the way: bridges, palm trees, and people, like me, who have decided to start their morning with a walk. The time flew past. I was feeling a bit anxious – being away from...

reflection
28 Jul 2024 | original ↗

the fidelity of the reflection.

Build a search index in Python
16 Jul 2024 | original ↗

How can search engines be so fast? While there are many parts of a search system, one of the key concepts to know is the inverted index. Suppose we have the following strings, all Taylor Swift lyrics: I made you my temple, my mural, my sky And I still talk to you when I’m screaming at the sky Started with a kiss We could manually search through...

craft
16 Jul 2024 | original ↗

in polishing, craft.

Expectations in design
16 Jul 2024 | original ↗

I have been thinking about the question what makes a “good tool”? What are the characteristics that make me comfortable depending on a tool? What makes me delighted to use a tool? Expectations play a crucial role in my experience with a tool. Does this tool do what I expect? Are the controls easy to navigate? Are navigation elements grouped...

Ideas, over coffee
16 Jul 2024 | original ↗

It is a warm, summer day. The sky is clear. The clouds has receded after days of rain. Over your morning coffee, you take a breath and realise the stillness of the moment. The wisps of steam coming from the side of your favourite coffee cup; the one that feels just right in your hands. While gazing out the window, a question comes to mind: What...

Music Tuesday
16 Jul 2024 | original ↗

My favourite movie is The Map of Tiny Perfect Things, in which two characters discover they are stuck in a time loop. They use the time to make a map of all the wonderful things that happen in a small town. Toward the end of the movie, the song Frame of Reference by the Drug Store Romeos plays. Last time I heard the song, I wrote down the name,...

taste
16 Jul 2024 | original ↗

the complexity of taste.

the pink sky
16 Jul 2024 | original ↗

Lying in bed, you look through the window as the sun sets. It has been a rainy day. The sky was a blanket of clouds. As evening progressed, a soft pink hue emerged from the horizon. On a clear day, more of the sky would be pink. Today, the stokes of pink visible on the horizon are what you have. You smile as you notice that there is a break in...

The summer sunset
16 Jul 2024 | original ↗

After days of rain, I have been looking forward to seeing the sunset. I often note to myself that I should savour the sunset, watching as the sun recedes over the hills and changes the colour of the sky. Today, I am looking out another window through which I can see another part of the sky. Through the window, I can see candy floss clouds. I know...

Fun with Words
15 Jul 2024 | original ↗

I love to take notes of words. I write down words I hear that I think I could use in poetry and words that catch my eye. I sometimes take a note of a word after trying to think of how to express something and guessing what the right word may be. For example, I recently wondered if there was a word that meant arranged according to a taxonomy. I...

Scent
15 Jul 2024 | original ↗

I am glad summer is here, I said to a friend earlier today. The sun was shining through the window after a dull, rainy spell of weather. It started to get dull throughout the day, but the sentiment with which I started my day – the joy of summer’s presence – was rooted in my mind. After dinner, I found myself going from tab to tab on the computer...

↑ These items are from RSS. Visit the blog itself at https://jamesg.blog/ to find everything else and to appreciate author's digital home.