MoreRSS

site iconRobb KnightModify

I am the lead developer at Radweb working on InventoryBase and related products. I also work part-time as a developer for MacStories.
Please copy the RSS to your reader, or quickly subscribe to:

Inoreader Feedly Follow Feedbin Local Reader

Rss preview of Blog of Robb Knight

Pepsi Max Pencil Case

2025-07-31 21:05:03

When I was at school there was no pencil case cooler than one that looked like a can of Pepsi, Lucozade, or Coca Cola. At the time, I had a Pepsi Max one for a while but I had forgotten all about it until last week when I happened upon someone selling one on Vinted so of course I immediately bought it.

It arrived yesterday and it's as glorious as I remember.

A black Pepsi Max pencil case in front of a keyboard on a desk

Also, I made this based off another version of the logo for no reason other than it slaps[1].

Pepsi Max logo but it says Robb Knight

  1. So does Pepsi Max, the superior cola.

Weeknote #1959

2025-07-30 20:07:25

I'm at the end of my first journal and starting a new one on Friday. I've learnt some lessons about what does and doesn't work for me, spent some time setting up some collections for ideas to keep track of those and of course I setup the mildliner sample pages again. I'm also excited to use my yellow EF TWSBI Eco which doesn't write nicely in my current journal.

I picked up a slide for Baby Knight which just barely fit in my car and made the drive back pretty precarious but she bloody loves it so it's all worth it.

I had a lot of fun with KnightPrint. I think I'll turn it on for a bit longer tomorrow.

The Ruminate sticker for St Jude fundraising this year is designed and ready to go. I started with one idea, scrapped that, and a new one came together really quickly. Stayed tuned for updates very soon[1].

Testing is continuing on EchoFeed rules and profiles. I want to make sure I get this right so it's taking longer than I originally hoped.

I entered the TRMNL hackathon with a fun movie-adjacent plugin. Winners will be announced Friday and I'll put a post up about it after that.

Lettervoxed "is a tool that extracts esoteric words from about 25,000 movies from the past century" and feels like something I wish I'd thought of. Incredible work that led me to remembering this classic line from Ali G Indahouse (2002), one of only three movies in the corpus to use the word "knobbing":

We is knobbing two birds with one connie.

I've been enjoying the new Tony Hawk and I happened upon this community list of all the different fonts used in the games.

Mel built and released an 11ty starter kit specifically for photos, very cool.

rssrssrss can combine multiple RSS feeds into one.

This Steve Caballero house tour is wonderful (via Dan).

Pocket has been saved and is now Folio. John has the details on MacStories.

Want to render every road in a city? Of course you do. You can customise the colours and export as a PNG or SVG too.

Vert is a local file conversation webapp that supports a boatload of formats.

Pointer Pointer is very silly and I love it.

You owe it to yourself to watch this video of Vienetta being made.

David came to the same conclusion as I did about BuJo:

I just want a nice way to stay organized, not a cult!

Jordan Elver came to the same conclusion as I did about Blackpool and I didn't even get to see a big Tesco.

If you have nothing good to say don’t say anything at all, however, highlights were the very fancy car park in the centre, and the massive Tesco Extra - really, it has to be seen to be believed.

Finally, no notes on this local Facebook group post:

[local area] is a community, not a cuntmunity


  1. It's almost nearly September

Unorganised Thoughts about Tony Hawk's Pro Skater 3 + 4

2025-07-29 21:12:07

A skateboarder grinding a rail in an airport. In the background are five surfboards that spell Aloha

I've played a good ten or so hours with the new Tony Hawk game and it does more or less what was promised, and what I expected. The game plays just like the 1+2 remaster, no surprises there.

Bam is back 🥳.

I'm surprised how little of the original soundtrack made it to this version but the most of the new tracks are very good. I made a playlist on Apple Music.

There's some Back to the Future themed boards and clothing to unlock so of course I need them all. I have the board, wheels, and the life preserver so far.

Carnival isn't there at all in THPS4. It's not my favourite level by any stretch but it was a solid one and it's exclusion is noticeable. I don't care about Chicago being missing though, that was always a bad level.

There's a cash nugget on a flying remote control plane in Suburbia and it shows a complete lack of understanding of the series. There's no line to skate to get this; it feels totally out of place.

The skitching tutorial is wild — revert off a skitch? Chaos.

I have 20 years of muscle memory in these games so it's hard to judge the new levels but I'll give it a go:

  • Movie studio: I think there might be some good lines here but they weren't immediately obvious. It's fine.
  • Water Park: This one is great. At first glance it looks chaotic but actually there are some solid skating lines here.
  • Pinball machine: It's fun but it's a bit too chaotic for my liking.

The biggest change is the lack of the THPS4 career mode and if I'm honest I don't really miss it. THPS4 was crazy difficult and filled with crap goals. I'd still prefer a full remake if only to experience it at higher quality but I don't care all that much.

I haven't completed the pro goals yet but it seems like you can't do the goals once for each skater but I didn't look that hard.

I also got this hilarious bug in the LA earthquake cut scene where the car was missing.

A brige that is breaking in an earthquake and a woman driving a car but the car isn't there, she's holding an invisible steering wheel.

Nuby RapidCool Formula Maker

2025-07-28 19:18:08

When you have a kid you're bombarded with suggestions for products that will solve some problem you have, usually related to keeping said child fed and watered and from my experience most of these are bollocks. Maybe they're slightly better than the alternative way but never enough to justify the cost[1].

My wife had mentioned the Nuby RapidCool a few times and I was dubious: they claim to make formula the correct temperature, from boiling water, in under two minutes. We went ahead and ordered them anyway despite my doubts and to my surprise they actually do what they say. Chuck the formula and water in, shake it up, wait until it lights up green and you're done.

It's been really handy to be able to have formula ready that quickly. Previously we'd be in the 10 minute range to have something ready, now it's under three minutes. The lid, which is the bit with the thermometer in it, doesn't have a user-replaceable battery so it either runs on magic, or it's gunna die at some point. That's the only thing that bothers me about it but by that point hopefully we won't need it any more.


  1. All kids stuff is stupidly expensive

KnightPrint's First Run

2025-07-26 04:28:40

Last week my wife and I bought what is commonly known as a Cat Printer: it's a very cheap (< £10) thermal printer that has a cat face on it. The official way of using it is with one of many terrible apps - each company who sells these tweaks the models a bit and has their own app but I was interested to see that some folks have reversed engineered the printers to print from various places including my favourite, the web. And I knew exactly what I wanted to do with it: let people toot me and it get printed.

The UI of KnightPrint showing buttons and a toot on the left, and a logging panel showing info about the printer on the right

I have what I think is a newer model, an MXW01. This meant that it wouldn't work with a majority of the libraries as they all support the same set of models. I thought I was out of luck until I punched in the model number into GitHub search and found this project. This person not only worked out the Bluetooth protocol for the model, but setup an image and receipt printer web page. This is what I based the KnightPrint code on.

Note

The code for this isn't on GitHub right now. It has API keys and all sorts in it. As soon as I've cleaned it up, I'll link it here. If you're reading this note, it's still not available.

I hacked away at the cat printer code until I had it rendering abritrary text and an image, and making a request to an endpoint on an interval.

Once I had that working I setup an account, @[email protected], on my GoToSocial instance, grabbed the API key, and setup this very quick endpoint to fetch new mentions, download the images to a tmp directory, and also have a way to save the IDs of toots I've already printed.

<?php

$method = $_GET['type'] ?? 'mentions';

$curl = curl_init();

header("Content-Type: application/json");

if ($method === 'mentions') {
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://hub.7622.me/api/v1/notifications?types[]=mention',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer lolnope'
),
CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3',
));

$response = curl_exec($curl);

curl_close($curl);

$data = json_decode($response);

$ids = json_decode(file_get_contents('ids.json'));

$data = array_filter(array_map(function($mention) use ($ids) {
$printed = in_array($mention->id, $ids);
if ($printed) {
return null; // Skip already printed mentions
}

$attachment = $mention->status->media_attachments[0] ?? null;
$attachmentPath = null;
if ($attachment && $attachment->type === 'image') {
$url = $attachment->preview_url;
$attachmentPath = './tmp/' . basename($url);
if (!file_exists($attachmentPath)) {
ini_set('user_agent', 'KnightPrint');
file_put_contents($attachmentPath, file_get_contents($url));
}
}
return [
'id' => $mention->id,
'name' => $mention->account->display_name ?? $mention->account->username,
'account' => $mention->account->acct,
'content' => strip_tags(str_replace('</p><p>', "\n\n", $mention->status->content)),
'image' => $attachmentPath ? [
'url' => $attachmentPath,
'width' => $attachment->meta->small->width ?? null,
'height' => $attachment->meta->small->height ?? null,
] : null,
];
}, $data));

echo json_encode($data);
} else if ($method === 'printed') {
$ids = json_decode(file_get_contents('ids.json'));
$newIds = explode(',', $_GET['ids']);

$ids = array_merge($ids, $newIds);

file_put_contents('ids.json', json_encode($ids));

echo json_encode([
'status' => 'success',
'message' => 'ID added successfully',
'ids' => $ids
]);
}

The front end then hits this endpoint, checks for new toots, renders them to a canvas, and prints them. Once they're printed, it sends the IDs to the API endpoint which then saves them to a JSON file so I don't print the same ones twice.

Then I set it loose:

Let's try this. In theory, anything you send to @knightprint for the next 20 minutes (or until I turn it off), will just print out on my lil thermal printer.

The first handful came it and it all worked perfectly but I noticed that I hadn't put the person's username on the printout so I edited the endpoint while it was listening for new toots:

- 'content' => strip_tags(str_replace('</p><p>', "\n\n", $mention->status->content)),
+ 'content' => strip_tags(str_replace('</p><p>', "\n\n", $mention->status->content)) . "\n\n - @" . $mention->account->acct,

I turned it off after about 20 minutes to see what had been printed and was presented with, for the first time in my life, a list literally longer than my arm. Then I turned it on again because it's fun.

Two photos of a thermal printer being held up to a wall with a lot of toots printed out

I'll turn it on again at random and I have some other ideas I could pull off with this as well.

Weeknote #1956

2025-07-11 20:01:36

Hot innit. Too fucking hot.

Wednesday night we went up Portsdown Hill with the kids for dinner because we couldn't be bothered to cook so we got burgers from Mick's. It also gave Baby Knight the First somewhere to run around like a lunatic to burn off some energy. It didn't work but she did have fun.

My wife wanted an instant printer to print some photos of the kids for her journal and it was Prime Day so we had a look around. I'd decided, as CTO of our house, that the Kodak P300R was perfect for what we wanted but then I noticed for an entire one pound extra, we could have the C300R which is the same thing, but with a camera built-in as well. It's a fun item and it'll make a nice friend for our Instax Mini.

A Kodak camera that is yellow and black, below it are some photos that have been printed with it showing some children

I'm not a designer so I'm not getting frothy knickers to give my hot takes on Liquid Glass, with the exception of this toot, but this Glass3D CSS generator is pretty natty. I used something similar with an initial version of Portal Kombat and looks good when used correctly.

The Death Generator is a collection of game screens with dialog or text that you can edit to make your own. The Pokémon one would have saved me so much time when I did these posts.

A screnshot showing Ted from Bill and Ted. A speech bubble says "What a most excellent blog post, Robb! Party on!"

Bears will be Boys looks at how animals are gendered in books as well as by people in general.

Macrowave is a fascinating project. "...a native macOS and iOS app that makes it easy to share system audio with friends to listen to music together". And it looks incredible as well.

I've been playing around with using the 8BitDo Micro controller as an automation tool, like John talked about here on MacStories. I won't go into it too much, I'm saving that for Ruminate.