-
Worse Is Better
Gabz latest post about ChatGPT’s ability to write “good” reviews gave me pause:
Here is the thing, every now and then I write about things that I like, among them, video games. I am also aware that although I am not a professional reviewer, I’d like my posts to come across with a certain level of, I don’t know, some quality/standards/mission/quest. […] Whenever I write a post about something I liked it is in a very unprofessional manner, or informal manner, rather, as if I was just talking to you. I just capture my thoughts as I type and perhaps that is the reason I am always digressing and all over the place.
Continue reading → -
Photo Bucket Galleries and Using the HTML Popover API
Spent a bit more on Photo Bucket this evening. Tonight I started working on galleries, which’ll work more or less like albums.
At the moment you can create a gallery and add a photo to it. Most of the work so far has been backend so the UI is pretty rough. Eventually you’ll be able to do things like rearrange photos within galleries, but for the moment they’ll just be added to the end.
Continue reading → -
Yep, I think 22 minutes at 150°C works for toasting frozen hot cross buns in a cold oven. Toasty and warm without being burnt or too hot to eat. Might even be able to push it to 23 minutes but I probably wouldn’t go higher than 25.
-
I kinda wish there was a fan edit of Mad Men that condensed all 7 seasons into one that contain only the avertising aspets of the show. All the domestic, love interest, personal flashbacks, etc. aspects — unless they relate directly to the advertisement plot lines — I can probably live without.
-
Message Simulator Client
Years: 2017 — 2020
Status: Gone
I once worked at a company that was responsible for sending SMS messages via an API. Think one time passwords when you log into websites, before time-based OTP apps were a thing. And yeah, this did involve some “marketing” messages, although we were pretty strict about outright spam or phishing messages.
Anyway, since sending messages costed us money, we had a simulator setup in our non-prod environments which we used for testing. The features were pretty minimal: basically get the list of messages sent through the API, send a status message back, and simulating a reply from the receiver. The messages were kept in memory and there was no UI: everything was done via a web frontend generated from a Swagger spec.
Continue reading → -
Photo Bucket lives, at least in an alpha state. It’s being used for the Folio Red Gallery, which would eventually consist of project screenshots that didn’t make it into the posts themselves. It looks ugly, and there are pretty large feature gaps, but it’s finally serving images.
-
Lost Album, Found
For the past 3.5 years, I’ve been searching on and off for a particular album: the original soundtrack to the David Attenborough series The Private Life of Plants. This lost album was quite elusive. It wasn’t on any of streaming services, and I couldn’t find a digital copy to buy. The only place I found that had anything was some defunct online music store, archived by the Wayback Machine, that offered a handful of tracks to download.
Continue reading → -
Another attempt at working out how best to heat up hot cross buns from the freezer in a cold oven. Tried 150°C for 20 minutes. It’s better. I think it’s pretty close. But still not warm enough. Maybe 22 minutes next time.
-
Holding pattern.
-
Implicit Imports To Load Go Database Drivers Considered Annoying (By Me)
I wish Go’s approach to loading database drivers didn’t involve implicitly importing them as packages. At least that way, package authors would be more likely to get the driver from the caller, rather than load a driver themselves.
I’ve been bitten by this recently, twice. I’m using a GitHub Linux driver to build an ARM version of something that needs to use SQLite. As far as I can tell, it’s not possible to build an ARM binary with CGO enabled with these runners (at-least, not without installing a bunch of dependencies — I’m not that desperate yet).
Continue reading → -
Deciding where data files should be placed on a Linux system. It’s a bit strange how
/var/libwas chosen for this, instead of something like/var/local. I would’ve thought that’d make more sense, much like how binaries are placed in/usr/local. -
Shows how much of a romantic I am: it took a 10 minute tram ride before I realised why so many people were carrying flowers. 💐
-
Via A Learning a Day by Rohan. It resonated with me as well.
-
Spent some time this evening working on my image hosting tool. It’s slowly coming along, but wow do I suck at UI design (the “Edit Photo” screen needs some rebalancing).
-
It’s hot cross bun season again, and as always, I have to relearn how I heated them up last year. I thought the 15:150 rule would suffice: 15 minutes from frozen in an 150°C oven from cold. They were editable, but they weren’t warm enough for my taste. I’ll have to bump it up next time.
-
Back at Fitzroy Gardens for the PGBC Grand Final. Weather’s absolutely stunning. May even have a chance of winning this year. 🏆
-
For those who celebrate… 🐉🧧
-
For anyone else who has recently installed Vivaldi, and wants to get rid of the unnecessary padding around the address bar that seems to be the default now, this forum post worked a treat.
-
Safari, what the fudge do I need to do to get you to recognise that I go to Google Photos quite frequently, so as to stop you from deleting the authentication cookie? Having to constantly login is so unbelievably frustrating! 😡
That’s it! I’ve had enough of Safari’s shenanigans. I’m moving to Vivaldi.
Ok, rocking Vivaldi on this machine now. Feel much better.
-
Reading Greg Morris’s post about self-censoring on his own blog got me wondering why more blogging CMS’s don’t support private posts. Well, I guess I do know why: generally a blogging CMS is to make posts available on the open web. But for CMS’s that are geared towards individuals that just want a place to write, it seems like having the ability to publish a post that is only visible to yourself would be a nice feature. And yeah, I know there are some CMS’s that do support this, but it would be nice to see this on the newer ones that have been released.1
-
And no, drafts or “in review” posts don’t count; they need to be fully published posts, completely integrated into the timeline and nav that are otherwise hidden from public view. ↩︎
-
-
🔗 RS.S Joy
This was shared in the Hemispheric View Discord a few days ago. A lot of really good blogs listed (enrolled? As in blogroll?) there. I took a look at it yesterday and was just ducking in and out of blogs for ages.
-
Must say rebinding the keyboard shortcut for Keyboard’s Maestro’s Clipboard Picker has been quite successful. It’s definitely easier to remember and invoke, and I’m using the clipboard picker a lot more now than I was previously (which was never).
-
Rubber-ducking: On Context
I’m torn between extracting auth credentials in the handler from a Go Context and passing them as arguments to service methods, or just passing the context and having the service methods get it from the Context themselves.
Previously, when the auth credentials just had a user ID, we were doing the former. But we’re now using more information about what the user has access to and if we were to continue doing this, we’ll need to pass more parameters through to the service layer. Not only does this make things a little less neater, it’ll mean the next time we do this, we’ll have to do the whole thing again.
Continue reading → -
Had a rubber-ducking session with myself between passing auth info within the Go Context through to the service methods, or passing them as explicit parameters.
I decided to go with passing it as explicit parameters. It’s kinda painful to see both the auth info passed through in both the Go context and a parameter. But it will result in more readable code, and it does make it clear that this information is needed. Plus, we’re already doing this already in the codebase I’m working on already (previously it was just the user ID, but we’re going to be including some additional auth info alongside it).
I am kinda glad that this tension has been resolved. It’s been weighing on me a little.
Also, for a bit of fun, I wrote this rubber-ducking session in a post. Well, it’s not entirely for fun: that’s how I was able to work through the problem. But writing it as a dialogue and posting it online was fun.
-
Rubberducking: On Context
I’m torn between extracting auth credentials in the handler from a Go Context and passing them as arguments to service methods, or just passing the context and having the service methods get it from the Context themselves.
Previously, when the auth credentials just had a user ID, we were doing the former. But we’re now using more information about what the user has access to and if we were to continue doing this, we’ll need to pass more parameters through to the service layer. Not only does this make things a little less neater, it’ll mean the next time we do this, we’ll have to do the whole thing again.
Continue reading → -
It would be nice if the CSV diff in Gitlab had a “row order not important” mode, in that any changes in row order are treated almost like whitespace changes. It won’t be something that’ll apply to all CSV files. But more often that not, the CSV files I deal with are not dependent on any row order.
-
Oof, turns out you can’t trust a browser to tell you the right MIME type for a file upload. I expected some logic involving magic numbers, but it just looks like a mixture of guessing based on file extension, deferring to the OS, and giving up and sending you
application/octet-stream.That said, I do feel a little sorry for browser devs, particularly those that have to support Windows. Found this gem while poking around the Chromium source code:
// This is a primary mapping (overrides the platform) rather than secondary // to work around an issue when Excel is installed on Windows. Excel // registers csv as application/vnd.ms-excel instead of text/csv from RFC // 4180. See https://crbug.com/139105. {"text/csv", "csv"},Yeah, of course Excel would do that. 🤦♂️
-
Spent the last few days building a small site which will convert an OPML file of RSS subscriptions into an HTML list of links to their respective websites. I needed it for a blogroll I’m planning to add, but I figured this might be something others may find useful.
-
Goland Debugger Not Working? Try Upgrading All The Things
I’ve been having occasional trouble with the debugger in Goland. Every attempt to debug a test would just fail with the following error:
/usr/local/go/bin/go tool test2json -t /Applications/GoLand.app/… API server listening at: 127.0.0.1:60732 could not launch process: EOF Debugger finished with the exit code 1My previous attempts at fixing this — upgrading Go and Goland — did get it working for a while, but recently it’s been happening to me again. And being at the most recent version of Go and Goland, that avenue was not available to me.
Continue reading → -
I’m a bit surprised that Jira doesn’t have a notion of drafts. You start writing a task, then you think that it might be best to know whether it’s worth doing. What do you do with this half written task? Do you create it? At the moment I just keep them in an open browser tab, which is… not ideal.
-
Need to find a way to represent a collection of IDs in Go, all representable in different ways, with each one having a different type. Kinda wish Go had algebraic data type like Elm or Haskell, or even just enums with associated data like Java or Swift. Would be so useful for this.
-
Discovered a new artist through a YouTube channel I watch. They make some pretty good chill-out music. I can recommend Synths Working Overtime and Music For Podcasts 6, particularly “Cloudloop” (track 6) and “Systematic” (track 7). 🎵
-
Falling into the trap of not using a particular mug because it’s “special”. I bought the mug to be used, I should actually use it. As the appraisers on Antiques Roadshow are wont to say, it’s a real shame that such a special thing never leaves the cupboard.
-
It’s about time I started seriously using the clipboard support that comes with Keyboard Maestro. I think the first step is making it easier to show the history. I’ve remapped the history picker to ^ ⌥ ⌘ ⇧ which feels easier to invoke, and probably easier to remember. We’ll see how it goes.
-
So after logging in this morning, I had to:
- Enter my 1Password master password,
- so I can get to my laptop password to log into the VPN,
- so I can enter my admin passwords in Settings,
- so that MacOS knows I have admin rights,
- so I can enter my admin password again to upgrade Slack.
Yep, we truly live in a golden age. 😒
-
People Are More Interested In What You're Working On Than You Think
If anyone else is weary about posting about what projects they’re working on, fearing that others would think they’re showing off or something, here’s two bits of evidence that I hope would allay these fears:
Exhibit 1: I’m a bit of a fan of the GMTK YouTube channel. Lots of good videos there about game development that, despite not being a game developer myself, I find facinating. But the playlist I enjoy the most is the one where Mark Brown, the series creator, actually goes through the process of building a game himself. Now, you’re not going to learn how to use Unity from that series (although he does have a video about that), but it’s fun seeing him making design decisions, showing off prototypes, overcoming challenges — both external and self imposed, and seeing it all come together. I’m aways excited when he drops one of these videos, and when I learnt today that he’s been posting dev logs on his Discord, so interested am I in this topic that I immediately signed up as a Patreon supporter.
Continue reading → -
Well, it’s around 4:15 on a Friday and the last code change I pushed didn’t fix the bug I was working on. Looks like that’s something to look at again on Monday.
Now to clock off and put on my Friday after-work music. Oh, wait! That’s an opportunity for a new Album Whale list.
-
Posted my first “real” list on Album Whale: my list of new and rediscovered albums of 2023. It’s a little on the small side, but that’s because I tend to listen to familiar stuff most of the time. I do have plans to post those as well, but we’ll start with something small.
-
🔗 Pika
Seeing this makes me want to try it. I think I have a problem: I want to try all of the blogging CMSes. But I have no need for it now, so I’ll just keep a link to it here for later.
-
Github Actions, Default Token Permissions, And Publishing Binaries
Looks like Github’s locked down the access rights of the
GITHUB_TOKENrecently. This is the token that’s available to all Github actions by default.After taking a GoReleaser config file from an old project and using it in a new one, I encountered this error when GoReleaser tried to publish the binaries as part of a Github Release:
failed to publish artifacts: could not release: PATCH https://api.github.com/repos/lmika/<project>/releases/139475588: 403 Resource not accessible by integration []After a quick search, I found this Github issue which seemed to cover the same problem. It looks like the way to resolve this is to explicitly add the
Continue reading →content: writepermission to the Github Actions YAML file: