Qubyte Codes

This is a collection of my notes. If you use a feed reader, you can subscribe!

Spotted my first jay of the autumn! I think this is probably as close as I’ve ever been to one.

A jay standing, its left side facing the camera, on some grass. Lots of leaf litter too.

It’s not much, but I’ve waited so long to see it. I caught a shooting star while waiting too.

A photograph of a weak aurora over houses. The pink can be clearly seen.

I’m challenging myself to walk 100k steps this week. I have about 15000 to do today, and I’m half way through that, so I’m taking a coffee break. Portland Coffee in Kemptown, Brighton is super chill. Look at that stained glass, too.

A photo taken inside the cafe, from the back, looking toward the front. It’s sunny outside and whitewashed walls can be seen opposite, giving it a Mediterranean feel. Above the door is a stained glass window depicting a seagull standing on pebbles, with the sea an a windmill behind. Paintings for sale are on the wall to the right. People sitting by the window are chatting.

This sparrowhawk caught a sparrow right in front of my eyes. I managed to take a picture of it through the back door before it vanished again.

A sparrowhawk standing on grass, with a sparrow under one foot.

HND ➡️ LHR

The super blue moon over Tokyo.

The moon over Tokyo at night, as seen from the Sky Tree. It’s shortly after moonrise, so it’s bright orange in colour.

My view from the Rikugien tea house.

In the foreground (close to me) is the trunk of a gnarled, ornamental pine tree. Below it is grass. Its branches and needles stretch out over a calm lake. The green opposing shore can be seen through the branches. There other side is grassy with woodland behind.

Iced matcha and a fireworks themed Japanese confection at a tea house in Rikugien (garden).

A large, bowl shaped cup of iced green matcha next to a confection, on a plastic (lacquer effect) tray. The confection is on a rectangle of paper, beside a simple wooden knife to eat it with. The tray is on a wooden bench.

Yeah, fuck ‘im up Shinji. Now get back in the fucking robot.

A photo of a diorama of the Evangelion scene in the school yard where Shinji gets hit in the face, and then goaded into hitting back.

Back in Hitachino Brewing Lab in the old Manseibashi Station building, just outside Akiba

A half drained glass of session IPA, on a counter with a built-in strip lamp against a red brick wall. The counter is varnished wood.

I’m back at Glitch Coffee in 神保町. Delicious.

Black coffee served in a small black cup and a small fluted jug, both upon a black slab with a card with tasting notes on.

My partner treated me to a couple of days stay in the Tokyo Station Hotel for my birthday. We’re in the south dome, and I can see the gates and folk come and go from up here. I don’t know how they did it, but it’s totally silent here. Absolutely no station noise at all!

The view from a room in the south dome of the Tokyo Station Hotel. It’s a few stories above the concourse, where people can be seen entering the automated gates. Ticket machines can also be seen.

A couple of weeks ago I took part in an unofficially record breaking (number of participants) hackathon, with around 6000 others as part of a work summit.

A large display hanging by from a conference hall ceiling. It wraps around on itself into a tube, so the image can horizontally scroll around on itself. The screen reads “We’ve (unofficially) broken the world record”.

Voice interfaces are so bland. I want Hetfield doing the beasts-under-your-bed voice from Enter Sandman.

I’m in a queue for swag in the summer evening sun at a company event and the person in front of me says something including “€500”. It took every ounce of strength not to shout “YOU WONT SEE PENNY ONE FROM ME YOU SLAG” in a cockney accent. Nobody would get the reference and I would definitely be fired.

I’m in Toronto for Shopify Summit.

A crowd of people at food trucks with the Toronto skyline in the background.

Over recent years there’s been a growing population of rooks to complement the jackdaws, magpies, and crows in my neighbourhood(and very occasionally a jay in the nearby cemetery). I think the rooks are my favourite though. They’re extra shaggy and have interesting calls.

A rook perched in a telegraph line, seen from below and to the side. Its distinctive featherless white face and shaggy plumage leave no doubt that it’s a rook! Behind it is a cloudless blue sky.

Good grief. Apple’s big integration of generative machine learning models into the OS is impressive, but the energy overhead is going to be staggering. I wonder if it’ll all be powered by renewables… #wwdc

I got a Keychron K3 Pro through work and I absolutely adore it. It’s a joy to type with and sounds satisfying without being too noisy. It came with linear switches, which I don’t usually use.

A picture of an ANSI layout ten key-less wireless keyboard. The keys are grey and dark grey, except for the return, backspace, and escape keys which are grass green. The return key is labelled “ship it”, the backspace “simplify”, and the escape has the Shopify bag logo on it.

One of the best things about living in Brighton (UK) is the density of pubs.

A mostly empty pint of beer on a table in the foreground. The photo is looking out of a pub window, at a pub across the street.

After a year and a half working on Scala 2 applications, I've gone from enamoured to jaded. It's proof that smart people can design extremely stupid things.

Oh, you want an example?

Try 0L until Instant.now.

It's a range, right? It's the interval of long integers, containing the numbers [0,now), so it's completely expressible as a pair of longs.

BUT NOT TO SCALA. Scala is like fuck you there aren't enough regular ints to make this long int range.

So, so stupid.

In 2009 I moved to Japan for my first postdoc position. I was still living like a student, so I got a room in a foreigner house. When I moved in, I didn't know what to expect and my Japanese was basically non-existent. Fortunately for me, everyone living there at that time spoke English as a second language. Unfortunately for them, Estuary English is a really odd accent and to them I was just a weird guy drinking tea in a bathrobe making very English noises. Eventually I realised and adapted.

Inspired by Chris Newton’s work on captioned images in Markdown, I decided to alter rendering of images both to add an optional caption, but also to include alternative formats and scales using <source> elements. I was previously doing this all by hand with inline HTML and it somehow hadn’t occurred to me!

I accidentally took a photo of a bee’s arse.

A close-up photo of some cherry blossom, with an unanticipated honey bee in the centre of the shot, with its behind facing us.

I was gonna blog about my time co-organising and attending IndieWebCamp Brighton 2024, but instead I've spent the evening debugging and fixing the webmention dispatcher I 100% perfectly authored and broke at some point.

I spent most of Dune: Part Two trying to get rid of a persistant earworm in form of Fatboy Slim’s Weapon of Choice. If you know, you know.

I walked the Under Cliff Walk between Brighton Marina and Rottingdean last weekend.

A wave breaking over a concrete slipway. There are chalk cliffs on the left, and a blue sky with some fluffy clouds

Group photo for #IndieWebCampBrighton day 1.

The group photo for IndieWebCamp day 1. It’s a sunny day, and there are 26 folk in the photo, with a building behind them.

I finally found time to visit Ikigai Coffee in Brighton. It seems like the baristas in all the other places rave about it, and I can see why. The coffee is amazing.

A delicate, simple glass bottle of pour-over coffee. It has a little blue rope tied around the neck. It is presented beside a ridged black cup upon a small, stainless steel tray.

I’ve been solving #AdventOfCode23 with Swift this year, it’s not been completely smooth sailing, but I really enjoy the language.

Hello #IndieWeb enthusiasts. I’m holding an unofficial Homebrew Website Club at the Lord Nelson Inn near Brighton station tomorrow evening. I’ll be there around 17:30, wrapping up around 20:00. #ffconf folk most welcome!

I’ll post more information when I’ve found a spot, but if you look for a balding dude with a beard and a dubious waxed moustache the odds are good that you’ll find me.

Big skies over Brighton these days.

The view from my home towards the ocean off of Brighton. A sliver of the sea can be seen over the houses, and you can just about make out the wind farm. Above are some dramatic clouds of various kinds. Above those the sky is blue.

I made a cheesecake the other day.

A slice of white chocolate cheesecake on a small plate. A raspberry is perched atop the slice, and the handle of a fork can be seen behind the slice. The small plate is on a wooden table.

I got to see Pip Blom’s first ever acoustic set at Resident Records in Brighton. It was amazing fun!

Pip Blom and co playing a set. Two up front on acoustic guitars on a tiny temporary stage in front of the shop counter, and one on synths behind the counter. Both up front are singing.

A high fibre diet promotes regular shit-posting. This lad installed ours today.

A man in a high-vis jacket and hard hat about to ascend a cordoned off telegraph pole to string a fibre from it to my house.

I’ve only been away on business since Sunday, but I miss my family so much. Thank goodness I’m on the way back.

Toronto at dusk.

The Toronto skyline as viewed from the roof of the Shopify offices. The CN tower is in frame.

Jet lag has its perks! Up before sunrise for a coffee at a nice little place called Fahrenheit in downtown Toronto.

A photograph of a cup of black coffee on a wooden bar.

I’ve arrived in Toronto on business, and the hotel has pie.

A slice of cream pie. It’s about 5cm deep, with a radius of about 12cm and an arc of about 45 degrees. It’s topped with shards of white chocolate, coconut, and chocolate brittle. It’s served on a white place, upon a low wooden coffee table.

Unexpected upside to having a mouse problem in the neighbourhood… a falcon just perched on our garden wall! Unfortunately I wasn’t fast enough to snap a photo of it.

⚠︎ Testing syndicated posting to mastodon with spoiler text. ⚠︎

Text should be hidden behind a warning.

This talk on documentation here at #BrightonRuby by Kaitlyn Tierney is gold. I’ll definitely use some of these tips for my personal site.

I’m tantalisingly close to replacing LaTeX statically rendered to SVG with MathJax with presentational MathML. It’s bulkier to write, but not difficult. Browser rendering (chrome seems quirkiest) isn’t quite there yet though.

I’ve been trying to get a photo of our local rook for months. It doesn’t stay put for long, and the light is usually all wrong. Finally I got this while eating breakfast just now.

A picture of a rook perched on a house roof. The sky is clear. The white face of the rook is obvious.

I’m on a BA flight, somewhere over the Bearing Sea, and BA have decided to enable free streaming of the coronation over Wi-Fi. Also they gave me a packet of Eton Mess flavour popcorn.

A small packet of Eton Mess popcorn. The design sports a union flag.

The one issue I have with my iOS shortcuts flow for posting images to my personal site (and by extension mastodon) is that the input box for alt text appears over the image I’m posting, so I have to remember what the image looks like. Not a problem on a tablet or larger device because I can do it side by side, but I mainly do it from my phone since it’s also my camera.

Yesterday I visited the Hikawa Maru in Yokohama. It’s a museum now, but started life in the ‘30s as a luxury liner. I recommend it. Anyway, I took this photo at 12:05. Five minutes earlier the horn went off next to my head and I nearly shit myself.

Not a whistle.

A photograph of a brass lever with a few rotary setting. The detailing on the housing shows one of the labels to be “silent”. A sign above the lever reads: “When the ship was in active service, turning this lever could sound a whistle. At present, too, a whistle is blown every day at noon.”

I love it when I find a good spot for a coffee. This one has it all. Fairly calm and quiet. Close to the museums in Ueno, so some foot traffic for people watching. Trees. Shade.

The view from the patio of a cafe. In front is a quiet road, and on the other side green trees and some pedestrians walking by an old brick wall. It’s a sunny day, but the photo is taken from the shade of an awning.

Now I’m in the Hitachino Nest Brew Lab in the converted Manseibashi Station arches. It’s full of is Western Folk and blasting English pop music from ten years ago but it’s still pretty good in here. Ironically I was at the actual brewery in Ibaraki yesterday.

The sign board above the bar of the Manseibashi Hitachino Nest Brew Lab. the signs are hand drawn in black and backlit on a white board.

Next up, Kanda Matsuya. This is a highly regarded soba restaurant which I walked past every weekday for two and a half years and never got around to trying. Very tasty.

The ceiling lamp of the restaurant. It’s large and rectangular, dominating the ceiling. It’s composed of a square, dark wooden lattice and white paper reminiscent of traditional Japanese sliding doors. Some patrons can be seen below.

High on the list of places to see which I missed before was Kanda Myojin. I know, shameful given how important it is.

The main gate of Kanda Myojin, a major shrine close to Akihabara. The gate is large and ornate, with lots of red and white wooden structure visible.

I'm on my own in Tokyo for a few days (back from the countryside). I arrived early this afternoon, and I'm allowing myself just the remaining hours of today to visit old haunts.

I might allow myself a bit more time though, toward the end. While most of my time is set aside for some site-seeing of things I missed back when I lived here, I think it's important to just do nothing in a place to really take it in.

Absolute scenes.

A photo of a steep (downward), narrow alley in the rain. A red-leafed tree is in the foreground on the left, and houses either side. In the background are green mountains and mist.

Through the power of ✨physics ✨my son managed to throw a stone at his own head.

I’m at my in-laws, and the place is wonderfully remote after a week spent in Tokyo.

The upstairs view from a house in the Japanese countryside. It’s a sunny day with a mostly clear sky. A small polytunnel can be seen in the foreground with some other small plots prepared for crops. In the background are green mountains covered with trees.

It's been a few years since I was last in Japan, and my phone now supports Suica for travel and low value purchases. It's really, really good. My only complaint is that if I want to use my watch the readers are all on the wrong side of the train turnstiles.

Posted from a plane somewhere probably over Nepal.

Last time I visited Japan (about four years ago!) mobile data was kind of a pain in the ass. I would rent a little mobile wifi hotspot. This time it looks like eSIMs are so well supported that I'm just going to use my phone.

That doesn't sound like a lot but it'll be huge. It means my partner and I can always be connected, even when we're off doing different things. Those hotspots run hot too (I guess the clue is in the name), so I always had to plug them into a battery, which meant I had to carry a bag (not enough pockets for all the things). This way I'll be able to enjoy my time there as if I live there again.

I went to see Devin Townsend and his touring band play at the Bexhill De La Warr Pavilion on Tuesday. It was a good concert, even by his standards.

Devin on the stage with the band behind him. He’s thanking the crowd after the gig. The audience can be see clapping and arms raised in appreciation.

Ever since I figured out how to build monochrome (black and white or any other pair of colours) PNGs I’ve been thinking about hiding secret messages in the unused bits…

Monochrome PNGs have a bit depth of 1 (when encoded efficiently), which means that each pixel only needs one bit. Each row of the image is an integer number of octets though, so when the number of pixels in a row isn’t divisible by 8 you get some unused padding bits at the end.

Testing tweaks to my plain note shortcut.

I should probably make some sequence diagrams. My setup is a bit of a Rube Goldberg machine, but it's surprisingly robust and really convenient to use. For example, sharing photos happens right in the iOS photos app because shortcuts integrates into sharesheets. #indieweb

I'm really enjoying my POSSE setup. I publish to my micropub endpoint using my own iOS shortcuts for photos or study sessions (as events). For plain notes and bookmarks I typically use Omnibear.

The micropub endpoint pushes to a repository on GitHub, and an Actions workflow picks them up and syndicates photos, notes, and bookmarks to Mastodon. The workflow is fast enough that stuff frequently reaches Mastodon before Netlify has finished building my site. #indieweb

Word gets around…

Four white doves huddled together, eating seed scattered on a wall.

A pop up gallery below Brighton station.

Viewed from the back toward the entrance. Cobbled floor. Art hung on the walls.

Last night we went to see Mogwai at The Brighton Dome. Just amazing.

The band Mogwai on stage at The Brighton Dome. Seen from the left circle.

One of the doves (they fledged last year) is roosting near us again this year.

A white dove standing beside some seed on a wall outside my house. Some bird shit can be seen on the window behind it.

An example of a more pragmatic approach to image uploads, for example, is the mastodon API. You still have to use a separate multipart request for an image, but the description (alt) text accompanies the image as an additional field. I think you can probably use the same image (and by extension its alt text) for multiple posts if you want. This fits because alt text is descriptive, so it shouldn't depend on the context the image is used in. #indieweb

I get why microformats documents came to look like this. It comes from their roots as data embedded in HTML. But it's not very pragmatic. Why would a document have more than one name or content? Why would photo (singular) be used for a plural field. It's all out of whack. #indieweb.

I love the #indieweb, but the aforementioned micropub thing isn't the only friction. JSON encoded microformats-2 documents are just plain weird. Everything is an array for some reason. Unnecessarily complex to consume. We can surely do better...

One pain in the ass thing about micropub is that there's no way to send photos and content together in a single request and include alt text. It can only be done with a multipart request to a media endpoint for the photo and a JSON request to the regular endpoint. Why not allow both in a multipart request? #indieweb

Photos never do a sunset justice, but this was a magnificent one.

The sunset over the houses to the rear of my house. Stunning peach and pink shaded clouds.

I may have a problem.

A display of my mechanical keyboard collection. There are five displayed. Two ortholinear, one compact ANSI layout. One full size ANSI layout, and two splits.

I'm vain, so I have one domain for my personal site, and another for shortlinks. The personal site generates a text file, which the build of the shortlinks site uses when it builds.

I had Netlify set up to trigger a build of the shortlinks site after the personal site builds, but most triggers were redundant (I don't have them for notes etc.).

I decided to replace the hook with a build plugin. https://github.com/qubyte/qubyte-codes/blob/main/plugins/update-shortlinks/index.js

I've run out of time to publish it this year (still 2022 here for almost an hour), but I have a full year of language study sessions (special micropub posts with durations in) to crunch the numbers for. Should make for a few interesting plots!

Work in progress render of revision 2 of my custom split mechanical keyboard.

A 3D render of the PCBs for a revision of my custom split keyboard. The vertical column stagger is moved one key outward, so the pinky and index columns are lower than the middle and ring finder columns, but now the pinkies rest on the outer-most column. The thumb clusters are moved one key outward too. This revision also shows holes for per key LEDs.

Another syndication test. This is a photo of a new pedestrian bridge close to where I live.

Taken at night. The bridge has downlighting on either side of the path, showing the light brown colour and slightly rough texture (for grip). On the other side of the bride is the entrance to an elevator down to street level. Some lights are on in the high rise university residences behind.

I’m testing syndication of notes from my personal site to mastodon, so here’s a photo of an icicle.

A small icicle hanging from a branch of a tree. The view is from below, so the clear blue sky can be seen behind.

A sample of the Christmas cards for this year. They were rushed, and certainly minimalist, but I’m happy with the result.

A hand made Christmas card standing on a table in a cafe, next to a cup of coffee. The card is white, with a blue panel on the front. On top of the panel is a snow man cut from white card with a specular snow shine to it.

I designed and built a keyboard! This is build for my comfort (despite how it looks). I designed it from the PCB and plates up! It uses kailh choc switches for a low profile, and a QWERTY variant of Miryoku to minimize finger and thumb movement.

The FG-11 split keyboard. Each side has 23 keys. The keys for the fingers are layed out in five columns or three rows on each side. The second and third column from the inside are one key higher further from the typist than the other columns, to suit where my middle and ring fingers sit. There are three thumb keys on each side, arranged along a diagonal. The PCB of each side can be seen peaking out on the inside edge, and the controller can be seen on the left hand. A ribbon cable connects the two sides from PCB to PCB. The plates are stainless steel and key caps white.

I built a keyboard. Hopefully it's more practical than it looks.

A photo of a four row ortholinear (square layout) keyboard. The keycaps are mostly light grey, with dark grey on the bottom row and the first and last columns. The escape and return keys are red. The caps have a high profile, with each row pitched differently at the top for comfort. The base has a low profile, so you can see the switches below the caps.

GitHub sent me a one-time donation as part of their thank you to OS contributors to software GitHub uses (who have their sponsors dashboard set up). I originally set it up in hope that someone would send me the occasional buck or two for a coffee. That never happened (at least not yet), but $550 as a one off makes up for it!

This cat is attempting to be adopted by us and is in no way subtle about it.

A cat sitting on my doormat, right outside my house.

I live so close to this countryside, but rarely take time to visit. It’s the perfect weather for it today.

A field of barley. Deep blue sky with white fluffy clouds. In the distance there is a ridge of green hills.

多読(たどく) time! First up, しろくまカフェ

The first book of shirokuma cafe (in Japanese). Beside the book is an iced coffee.

I bought the keycaps.

I'm using Safari for personal use these days. I wanted to use omnibear for micropub stuff, so I compiled the JS (a normal build step for it), and then ran the command below. The only change I had to make was to add a description to the manifest.

xcrun safari-web-extension-converter /path/to/my/extension/

In Safari, the Allow Unsigned Extensions option must be checked. Xcode generates a wrapper application for omnibear. After booting it, you can quit it and go to Safari -> Preferences -> Extensions to enable the extension. I'm posting this note using it!

I finally caved in and ordered myself parts for an ortholinear keyboard. I've gone with a Preonic through Drop, and paired it with Holy Panda X switches. The wait means it'll be a nice birthday present for myself!

I guess the reason for rolling my own webmention receiver is that I don't want to rely on services I don't manage or pay for. Now, an argument could be made that I'm putting everything on Netlify, so my eggs are all in their basket. My counter to that is that the functions I'm writing fairly portable. All I'd have to do is wrap the functions in a little server. So, the important part is to own the logic! Of course, there's also the fun part of reading a spec and implementing it.

This afternoon I'm playing with webmentions again. I've decided to implement my own endpoint and migrate away from webmention.io (which is fine, I just want to build my own).

First concert since December 2019. Back then it was seeing Devin Townsend. This time it was seeing… Devin Townsend. This time was stripped back and very tight. They played some songs I never thought I’d see live, like Dynamics and Almost Again. We got upgraded to a box in The Royal Albert Hall too.

Devin Townsend and Co. on the stage at The Royal Albert hall, as seen from the Second level circle.

A bridge being built close to where I live.

The view of a pedestrian bridge being constructed from one end. It currently lacks a platform.

I found an old picture of me holding peanuts.

Me with a handful of freshly dug peanuts in a field in Japan.

A caterpillar.

A yellow and black caterpillar perched behind some purple flowers.

A little autumn weather isn’t putting folk off the sea.

Three people in coats sit on the beach facing the ocean. In the distance there are people boating, windmills on the horizon, and clear sky peaking through the cloud.

An interesting path close to home.

Steps in the shade between houses.

Feels good to wander around Brighton.

A view of the ocean between some houses and a church in the Montpelier area of Brighton.

I made an excellent banana bread the other day. No sourdough involved though.

A slice of deep brown banana bread on a small plate.

I made some sourdough hot cross buns!

A plate with some freshly made sourdough hot cross buns on.

Sourdough brioche. About 25cm in diameter.

Freshly baked sourdough brioche. About 25cm in diameter.

I finally found a use for that physics PhD.

A paint brush taped to the end of a stick.

It’s good! I got lucky!

A slice of my first sourdough loaf. It has good structure and a fine crust.

My first sourdough loaf!

A dome shaped sourdough loaf o. A cooling rack.

The sourdough starter is finally ready to use! It seemed to go a bit dormant, so I fed it some rye flour and it seems to have done the trick! The rubber band marks where the top was at its last feed six and a half hours ago.

My sourdough starter in a jar. A rubber band marks where the top was, and it has doubled in volume. Bubbles can be seen in it.

The sourdough starter is growing!

Sourdough starter, showing signs of growth in a glass jar.

First batch of white chocolate and macadamia nut cookies!

A batch of home cooked white chocolate and macadamia nut cookies cooling on a baking tray.

After a day I’m supposed to discard half the sourdough and feed the remainder. This is the discard, and it’s already showing some signs of activity!

A discarded portion of the sourdough starter. Bubbles can be seen on the surface.

I began a sourdough starter yesterday. Due to a lack of whole wheat flour I used 50:50 very strong white flour and buckwheat flour. I’m hoping the latter will donate the yeast!

The beginnings of a sourdough starter in a jar.

Want: Recipes to label their ingredients in groups, so I can keep them together in the same bowls and save on washing up. Also good for knowing when things need to be ready.

From yesterday: Vegan buckwheat pancakes with caramelised banana, chai spiced coconut cream, coconut chips, and cacao nibs. Eaten at Black Mocha in Brighton.

Vegan buckwheat pancakes with caramelised banana, chai spiced coconut cream, coconut chips, and cacao nibs.

Rainbow sunset with Venus.

Rainbow sunset with Venus visible.

Fox in the Pavilion Gardens.

Fox in the Pavilion Gardens

No context conference slide.

Conference slide reading “why”.

Reminder for later... Paths are predicable enough in my setup that I can improve the netlify config to apply headers only to HTML by batching routes with wildcards.

Morning mist over the Sussex Countryside.

Morning mist over the Sussex countryside, viewed from a railway viaduct.

Next thing to do: add handling for h-reviews so I can rate mince pies.

Work in progress.

A partly painted room.

(日本語で)最初のノート。

Testing out syndication of a note from my blog.

Between Lewes and Newhaven by train.

A view of fields seen from the train between Lewes and Newhaven.

An interesting local mural.

The concrete front garden of a local house is a beautiful mural of fish.

Another nightmarish thing my partner bought.

A nightmarish pair of felt jester shoes for a baby.

Versioning edge case discovered on the Node.js website.

A screenshot of the Node.js website showing the latest version behind the LTS version.

Hideous gnome.

Hideous gnome.

The sea.

The sea.

I'm not a huge webpack fan, but I'm wondering if I might change my own mind my porting my static site generator to it. As it stands my generator tries to be as efficient as it can be, but only for a single shot compilation. It doesn't cache artefacts. It looks like webpack, with a custom loader and plugins, might provide the necessary mechanics to make incremental builds while writing a blog post much faster.

Originally I was going to do a sort of dark-battenberg theme for dark mode on my blog, but now I'm rethinking. Since more and more devices are beginning to use OLED screens, I want dark mode to mean "mostly completely black" to save some energy on those devices.

I wrote a while back about how promises and event emitters in Node.js can play badly together. Since then, Node and JS have changed enough that I should write a follow up post.

I have a real completionist streak to me, which is a lot of fun as it interacts with IndieWeb stuff like microformats. The next thing on my radar is WebSub. I'm keen to implement both the hub and publisher in one as a glitch.

Next up, I’m considering micropub for posting full article entries. Hosting an editor and managing storage for drafts is a bigger task, but I can increment on that. Posts would be in markdown though. I wonder if that’s considered bad...

Idea for later: I need to markup each publication in the publications page as an h-cite.

I like the idea of a links page for things I've read and think others might enjoy. I'll probably build one soon.

I think I'll work on putting some of the sharing stuff at the bottom of each post into a

element at the next homebrew website club. That might mean splitting the webmention stuff up from sharing links. I'm not sure yet...

I think it's time I started writing some tests for the static site generator.

It’s possible using sed, jq, and date to read timestamps from scheduled posts and git mv and push them. This would be superior to the current Contents API approach because the content of the post will be properly attributed. It’s also lighter and agnostic with respect to git hosting.

The command to get a time stamp will be something like: sed -n ‘/^---$/,/^---$/p’ < post.md | sed ‘1d;$d’ | jq ‘.datetime’ | date -f -

Now I’ve got a handle on the GitHub contents API, it’s tempting to build an editor into my blog. Could be a rabbit hole though...

Idea: Set up a web hook for webmention.io which posts to a glitch which in turn opens an issue on the GitHub repository for this blog.

Another possible set of articles I could write is on tips for writing kubernetes configuration files. I've accumulated a number of them over the last few years.

I might make the repository for this blog open soon. It's embarrassing in places, but I'd still like to show what I've done and compare notes...

Homebrew Website Club is this Thursday, so I need to either think of a blog post I want to write, or think of an enhancement to my blog. I’d quite like to integrate an editor, but that’s a big task. Something smaller, or an enhancement to an existing feature might have more impact...

Tickets booked for the next trip to Japan. Our first with the little one. I can't wait for his grandparents to meet him!

I can think of no better tribute (albeit late) than to wish the World Wide Web a happy 30th birthday on my own weird little personal site.

I have a glitch which tweets out new blog entries. Right now it just looks at changes in the sitemap. Reminder to improve it to include tags.

The selector to use is '[rel="tag"]'.

https://tweet-new-blog-posts.glitch.me/

Reminder to myself to write a post about my recent contribution to Node.js.

All micropub client implementations appear to be a bit lacking (none seem to support a media endpoint very well). I'm considering making my own client and embedding it in my blog...

Testing alternative micropub server implementation.

I've come to refer to my preferrred way of creating microservices as "calving". Start with a monolith, and move bits into microservices where the coupling is weak (like a big iceberg calving off a smaller iceberg).

One of the cool things about micropub is that I can use a third party client really easily. This post was created with micropublish.net

Now I need to reconsider my landing page. It'd be nice to have the notes there, and some information about me.

I implemented #indieweb notes on my blog using a Netlify function and the GitHub content API. I'm using Keith J Grant's omnibear browser extension (in FireFox) to post. Not much to see yet, and it's a very basic implementation, but not bad for a couple of hours of work.

Notes are live! 👍

Testing again, 456.

Testing, 123.