Slippery when wet.

Auto-generated description: A wet floor caution sign stands in a tiled underground walkway with puddles on the floor.

Seriously, watch yourself when walking through that subway on a wet day. That tiled floor is treacherous.

I was reading through the feeds in my Feedbin account a couple of weeks ago, as one does, and a passing curiosity grabbed me: when did I actually sign up to Feedbin, and what were my first subscriptions? I’m not sure if it’s possible to get this information from the frontend, but it turns out you can get it from Feedbin’s API. So I plugged in my auth details and took a look.

Screenshot of the response of Feedbin's subscription API, showing entries for Marco.org, Daring Fireball, and Six Colors

My first two subscriptions were back on 24 May 2017, for Marco Arment and Daring Fireball, although I’m sure there were others that I’ve since removed. I’m taking that to be the date I actually signed up to Feedbin, and I suspect that these two were part of collection of feeds that I moved from older RSS reader I was using at the time1.

I won’t go through every subscription I have but I will point out a few interesting ones. For instance, I thought I subscribed to Manton Reece much earlier, but apparently it was only on the 6th March 2020. I subscribed to Seth Godin on the 8th December 2020. And the latest subscription was added only a few weeks ago, on the 10th of November of this year.

All up, I’m currently subscribed to 64 feeds. Now, if only I could remember how I discovered these feeds.


  1. That was hand-built, and I should dig it out and see if I can get it working again, just to remind myself how it looked. I do know that it used Google’s Material design language. ↩︎

Delta of the Defaults 2024

It’s a little over a year since Dual of the Defaults, and I see that Robb and Maique are posting their updates for 2024, so I’d thought I do the same. There’ve only been a few changes since last year, so much like Robb, I’m only posting the delta:

  • Notes: Obsidian for work. Notion for personal use if the note is long-lived. But I’ve started using Micro.blog notes and Strata for the more short-term notes I make from day to day.
  • To-do: To-do’s are still going to where my notes go, which is now Strata. Although I’m still using Google Keep for shopping lists.
  • Browser: Safari’s out from all machines. It’s Vivaldi everywhere now. Except iPad, where I don’t have a choice.
  • Presentations: Believe it or not, I haven’t had to make a presentation since last year. I am still paying for iA Presenter, and despite some thoughts, I think I’ll continue to use it for future presentations. I should also add that I’m using iA Writer for prose writing, not that I do much of that either.
  • Social Clients: Still Tusky for now, but I’m wondering how long it’ll be before I install a BlueSky client too.
  • Journalling App: I didn’t include this in last year’s list, but it’s worth mentioning here as I’ve moved away from Day One to a home grown web-app, similar to the one built by Kev Quirk.
  • POSSE: Micro.blog, EchoFeed. Also a new category, now I’m doing this a bit more nowadays.

Wish Go had Java’s :: operator, where you could convert a method into a function pointer with the receiver being passed in as the first argument. Would be super useful for mapping slices.

Upgraded my work laptop to Sequoia. “Love” the experience that this new version provides, especially the mouse-and-patience exercise I get in the morning. πŸ‘Ž

<img src=“https://cdn.uploads.micro.blog/25293/2024/cleanshot-2024-11-26-at-07.30.252x.png" width=“600” height=“541” alt=“Three permission requests stacked up, with the top one displayed asking if an app called “Obsidian” can find devices on local networks, with options to “Don’t Allow” or “Allow”.">

πŸ§‘β€πŸ’» New post on TIL Computer: Don’t Use β€˜T’ RDS Instance Types For Production

Looking for my next project to work on. I have a few ideas but my mind keeps wandering back to an RSS reader for Android. I read RSS feeds quite frequently on my phone and Feedbin’s web app is great, but I think I prefer a native app.

I just need to get over the hump of setting up my Android Studios. There’s something about starting a new project there that just sucks the life out of you.

I wonder if anyone can get anything out of Fandom these days. I went to it yesterday for something, and it was so full of ads that it was barely usable. Got out of there as soon as I could. Didn’t spend a second longer than I needed to. I certaintly wouldn’t choose to casually browse that site.

Playing around with some possible UI design choices for that Android RSS Feed Reader. I think I will go with Flutter for this, seeing that I generally like the framework and it has decent (although not perfect) support for native Material styling.

Started looking at the feed item view. This is what I have so far:

Auto-generated description: A smartphone screen displays a Flutter demo app with a list of text items including an example domain, a note about using 'T' RDS instance types, and a comment about a blog post.

Note that this is little more than a static list view. The items comes from nowhere and tapping an item doesn’t actually do anything yet. I wanted to get the appearance right first, as how it feels is downstream from how it works.

The current plan is to show most of the body for items without titles, similar to what other social media apps would show. It occurred to me that in doing so, people wouldn’t see links or formatting in the original post, since they’ll be less likely to click through. So it might be necessary to bring this formatting to the front. Not all possible formatting, mind you: probably just strong, emphasis, and links. Everything else should result with an ellipsis, encouraging the user to open the actual item.

Anyway, still playing at the moment.

πŸ“Ί House of the Dragon: Season 1 (2022)

Title: House of the Dragon Metadata: Season 1 (2022) - Ryan Condal Score: Good Review: Ah, nice to be back in Westeros again. I was late to this, but people said it was good, and they were right. This was an enjoyable watch. Stunning cinematography and sound design. The acting was decent, although maybe a little too dramatic. And the plot was excellent. I can understand and believe everyone's motivation, and it didn't descent into fan service (it would've been so easy to have Mr. Stark show up for no good reason. I'm glad they resisted). Looking forward to starting the next season.

Looking At Coolify

While reading Robb Knight’s post about setting up GoToSocial in Coolify, I got curious as to what this Coolify project actually is. I’m a happy user of Dokku, but being one with magpie tendencies, plus always on the lookout for ways to make the little apps I make for myself easier to deploy, I thought I’d check it out.

So I spun up a Coolify instance on a new Hetzner server this morning and tried deploying a simple Go app, complete with automatic deployments when I push changes to a Forgejo repository. And yeah, I must say it works pretty well. I haven’t done anything super sophisticated, such as setting up a database or anything. But it’s almost as easy as deploying something with Dokku, and I’m please that I was able get it working with my Forgejo setup1.

Anyway, this post is just a few things I want to make a note about for next time I want to setup a Coolify instance. It’s far from a comprehensive set-up guide: there’s plenty of documentation on the project website. But here are a few things I’d like to remember.

Changing the Proxy to Caddy: Soon after setting up your Coolify instance, you probably want to change the proxy to Caddy, just so that you can easily get Lets Encrypt certificates. Do this before you setup a domain as you’ll need direct access to Coolify via the port.

Go to “Servers β†’ localhost” and in the “Proxy” tab, stop the current proxy. You then have the option of changing it to Caddy.

Setting Up a Domain For Coolify Itself: Once you’ve change the proxy, you’d probably want to setup a domain so as to avoid accessing it via IP address and port number. You can do so by going to “Settings,” and within “Instance Settings” changing “Domain”.

If you prepend your domain with https, a certificate will be setup for you. I’m guessing it’s using Lets Encrypt for this, which is fine. I’d probably do likewise if I had to set it up manually.

Deploying From a Private Forgejo Repository: To deploy from a private Forgejo repository, follow the Gitea integration instructions on setting up a private key. This is basically creating a new key in “Keys And Tokens”, and adding it as a key in Forgejo.

The Add Key modal showing options to generate an RSA or elliptical curve key
The Add Key modal

As far as I’m aware, it’s not possible to change an application source from a public Git repo to a private one. I tried that and I got a few deploy errors, most likely because I didn’t set the key. I had to delete it and start from scratch.

Setting a Domain For a Project: Setting up a domain is pretty simple: just add a new A record pointing to the IP address of the service the application is running on. Much like the Coolify domain, prefacing your domain with https will provision a TLS certificate for you (docs):

The Domain settings for the deployable project resource
The Domain settings for the deployable project resource

Unlike Dokku, your app doesn’t need to support the PORT environment variable. You should be able to start listening on a port and simply setup a mapping in the project page. The default seems to be port 3000, just in case you’re not interested in changing it:

Automatic Deployments From Forgejo: Coolio looks to have some nice integrations with Github, but that doesn’t help me and my use of Forgejo. So the setup is a little more manual: adding some web-hook to automatically deploy when pushing commits to Forgejo. In Coolify, you’d want to use the Gittea web-hook:

The web-hook settings for the deployable project resource, with the Gittea web-hook highlight
The Gittea web-hook is the one to use

You’ll need to generate the web-hook secret yourself. Running head -c 64 /dev/urandom | base64 or similar should give you something somewhat secure.

Setting up the web-hook on Forgejo’s side was a little confusing. Clicking “Add Webhook” just brought up a list of integrations, which I’m guessing are geared towards particular form of web-hook payloads. You want to select the “Forgejo” one.

Project web-hooks in Forgejo, with the Gittea domain from Coolify set as the target URL, the secret set, and everything else left as the default
How the web-hook looks on Forgejo's side

Use the URL that Coolify is showing for the Gittea web-hook, leave the method as “POST” and set the secret you generated. The rest you can configure based on your preferences.

So that it. So far I’m liking it quite a bit, and I look forward to going a bit further than simple Go apps that serve a static message (some of the pre-canned applications look interesting). I’d like to try it for a bit longer before I consider it as a replacement for Dokku, but I suspect that may eventually happen.

A screenshot of a browser window with a plain text message saying: 'Hello World. This is deployed via Coolify via a private repo that is auto-deployed.'
Hello Coolify

  1. I say “it’s almost as easy” as Dokku, but one thing going for Coolify is that I don’t need to SSH into a Linux box to do things. When it comes to creating and operating these apps, doing it from a dashboard is a nicer experience. ↩︎

Now this is cool: Hetzner has opened up a region in Singapore. The tyranny of distance is starting to abate.

Screenshot of Hetzner server location, showing Singapore as an option.

Oof! Warm weather usually means flies, and there are a lot of them this morning. Been doing the Aussie salute during my entire walk.

I’m enjoying House of the Dragon, but many of the characters suffer from “vox epica” syndrome. They speak in monotone, with long pauses between sentences. Obviously to underscore the drama, but it takes me out a little. Regular people wouldn’t talk like this.

Heard the fans on my work M1 MacBook Pro for the first time. I guess constantly generating as many JWTs as you possibly can for a whole minute would do that. πŸ˜›

This week’s earworm: Electric Light Orchestra, especially Livin' Thing. 🎡

Kind of ironic to think that you spend so much effort working on a blog, only to be spending most of that time in the CMS admin section, rather than the blog itself. Or at least that’s where I find myself most of the time.

Currently trying to do a web search to find where the logs are for a piece of software that predominantly deal with logs. You can imagine how fruitful the results have been so far. πŸ˜€

Heed the advice of Jim Nielsen and watch out for websites that ask you to enable notifications to “prove you’re not a bot.” It’s usually just an attempt to push spam. Had to walk through turning this off for someone when they started receiving ads via notifications from some crappy site.

πŸ”— Thought Detox

Someone on Micro.blog posted a link to this little web-app years ago, where you can write your thoughts and they float away into the ether, never to be seen again. I didn’t grab a link to it at the time, which I regretted. Well, I’m not making that mistake twice.

Via Anil Dash