Qubyte Codes

My 2023 Japanese language study habits

Published

I've been tracking my Japanese language study session since 2022. You can see the first year report for comparison…

My 2022 Japanese language study habits

Published

This time last year I put together some custom scripts to send a record of each study session to my personal site using the micropub endpoint. You can see them here. Each entry says what I did, how long I did it for, and when I started doing it. On their own these aren't particularly interesting or useful. They mostly serve to hold me accountable. However, now that I have a full year of data, it seems like a good time to see if there are any trends…

Progressively enhanced caching of JavaScript modules without bundling using import maps

Published

Last updated

I went to ffconf 2022 a couple of weeks ago, and two of the talks in particular resonated with me... (more actually, but these felt actionable)…

Controlling ruby annotation positioning and appearance with pure CSS and a select box

Published

ふりがな:

The :has() CSS pseudo-class opens up all sorts of possibilities. I wanted to see if it could simplify how I handle the ruby text (annotations above or below text to help with reading) in my Japanese notes. It works (in Safari and Chrome at least, and hopefully Firefox soon)…

Marqdown

Published

Last updated

ふりがな:

Markdown is the standard for writing in techie circles these days, but it's pretty minimal. For a readme it's all you need, but if you create a site around Markdown like I have then you pretty quickly bump into its limitations. Markdown is deliberately limited, so it's no fault of the language or its creator…

Dispatching Webmentions with a Netlify build plugin

Published

Last updated

This site uses a static site generator to build plain HTML pages. Since there's no database to add, update, or delete pages from, determining when to dispatch mentions can be challenging! Here's how I use a Netlify build plugin and an atom feed to manage it…

Custom markdown blocks with marked

Published

I use marked to do the markdown rendering for this blog. A recent feature makes it possible to create custom block types with a little hacking. In this post I show you how…

IndieWebCamp Brighton 2019

Published

I had a great time last weekend at IndieWebCamp (IWC) Brighton. The first day was filled with discussions on various IndieWeb related topics. I attended discussions on…

Dark mode

Published

That's right! After more than a year of talking about adding a dark mode I finally did it. The wider support for prefers-color-scheme is what pushed me over the edge. I'm also a slave to fashion…

Updating webmention dispatch

Published

I mentioned a new service which handles webmentions in a previous post. I decided to replace the glitch I've been using for one which is much leaner. It uses the library which powers webmention.app to handle webmention (and also older technologies like pingback) endpoint discovery and mention dispatch so I took this opportunity to ditch my own discovery code…

Cleaner scheduled posts publication

Published

In a previous post I talked about an npm script I had written to be executed by a GitHub action…

How I schedule posts using GitHub Actions

Published

In the past I used atd to schedule the publication of my blog posts. When I moved to Netlify I lost the ability to schedule posts, and didn't think about it until a recent conversation on twitter with Remy Sharp. Remy asked how to schedule blog posts for static sites and it got me thinking…

The code for this blog is now public

Published

I made the source code for this site public! You can find it here. I've written at length about how I've built this, and having the code makes it easier to point to particular lines. I hope it'll inspire you to do the same…

Automatic announcement of new blog entries

Published

It occurred to me a couple of days ago that it'd be neat to build a glitch to announce new blog posts. Since I deploy this blog by pushing to a master branch on GitHub, creation of a blog post is somewhat less obvious than when publishing on a platform like wordpress or medium, so I needed to figure out another approach…

Content-Security-Policy and service workers

Published

I was recently tripped over by a subtlety in how service worker fetch events and fetch works in conjunction with content security policy (CSP). This happened while adding an image to the about page. This post is the result of a conversation I had with Jake Archibald on twitter (with thanks for helping me to understand what was going on)…

Update on webmentions

Published

In a recent post I wrote that I had integrated webmentions, and some of that has since changed. Time for an update…

A brighter shade of beige

Published

When I originally built this blog, I gave it a very simple no nonsense theme. One colour (beige) for the background and black for text and the odd horizontal rule. After a couple of minor iterations I added a sticky navigation bar (in CSS, no JS)…

Putting back the service worker

Published

In the last post about this blog I wrote about why I removed the service worker which made this blog a progressive web application…

About this blog 3

Published

It's been a while since the last entry about how I've built this blog. Since it is constantly evolving, now seems as good a time as ever to write about some of the changes I've made…

About this blog 2

Published

I touched briefly on the technology used in this blog in a previous post, but I didn't explain the motivation behind a lot of the choices I made when building it. I'd like to do that in this post. The design and architecture of this blog is the product of what things I like in other blogs, and also those things that I find frustrating. Where a choice was not obvious, I opted for the simplest option. The point of the exercise was to get it online. Below are a few points in no particular order…

About this blog

Published

This blog took a long time to get started. Every time I tried to build it, I wound up focussed on some tech I wanted to use to host it. In the previous iteration, I even wrote a server framework. I took some holiday over the Christmas period, so I decided to throw everything away and make something minimal…