Monkinetic Weblog

XVI Edition, September 2025

More Navigation

Entries for #Goldfrog

page 1 of 3 next → last →


A Bit Of Blog Complaining

Guess it's time to revisit the blog engine here. I wrote Goldfrog a few years ago and it's been chugging along on this Digital Ocean instance fairly well, but at the time I had in mind a two-way sync between gitlab, where I maintain a separate repository of my archived content, and the filesystem/db in Goldfrog.

It worked, sort of, for a while, but the deployment on DO is NOT simple to remember, uses Ansible and code from 2 different git repos to set up or update the server, and was just 3 times more clever than it should have been.

I also implemented a flexible/configurable POSSE feature that is supposed to send updates to my mastodon account but ... isn't right now? And the logging setup on the site is abysmal.

I still like parts of my system. If I did it again, I'd still want:

  • My custom posting UI that works like the ancient Radio Userland sites did: post form at the top of the home page list of posts:

(SORRY, LOST IMAGE)

And my version in Goldfrog:

(SORRY, LOST IMAGE)

  • A small web app - not a static site generator
  • Content stored ultimately as markdown files so they can be stored in git or similar
  • Content indexed in sqlite for searching. serving various archive pages (tags, etc)

UPDATE: As long as I'm dreaming, I wish it was easier to run a small web app like this off a container. I probably could with Digital Ocean's app platform, I haven't looked into it lately, and I'd still have to solve the "index in a sqlite db file" problem.


Time for bi-yearly web presence maintenance

What with Twitter (aka birdsite, hellsite, muskosite) flailing in the clammy hands of Dr. No, and interest in the federated web re-emerging, I figured it was time to review my own web presence and see what was the situation.

(SORRY, LOST IMAGE)

Dear reader, it was Not Good.

Warning one was hitting this site from my work network and getting a BitDefender screen of doom saying the site was serving a keylogger. NOT GOOD.

Then the site - which was hosted on Linode and runs my own homegrown blog software, Goldfrog - went completely down. After some "where did those ssh keys get to, where is this thing anyway" I got logged in and figured out that my server had been hacked in some way, TLS and letsencrypt removed. I haven't had time to troll the logs for evidence as to how the server was accessed, but I downloaded them and have them set aside to look later.

We Can Rebuild It

Thus entered a week of figuring out once again how the heck Monkinetic is built and deployed, migrating the code from Github to Gitlab (which I'm more familiar with due to $dayjob), and refactoring the Ansible code that builds the server and deploys the blog/content.

Finally today I got it 85% done, which is pretty good for a full migration between hosting providers (I also moved from Linode to Digital Ocean where I already have some other services).

Masto-tootly-don

With the insanity on Twitter, I logged back into my Mastodon account on toot.cafe and enjoyed the huge stream of new folks migrating from Twitter to federated platforms (mostly to mastodon.social since that's the first/largest instance, but folks are making their way from there to smaller instances as they get more comfortable).

Apparently Mastodon 4.0 is out (release candidate) and they've changed the annoying-until-it-was-gone "Toot" to "Publish". I'd have preferred "Post" myself, but 🤷‍♀️.

Maybe servers should just change it to suit their audience?


Stopping work to relax and celebrate my birthday and a late father's day. Left a Sticky for myself so I remember what my next steps are with #goldfrog

(SORRY, LOST IMAGE)


Webmentions in Goldfrog

I might be hitting the wall on my Jekyll-inspired storage system for #goldfrog. GoldFrog uses Jekyll-style markdown posts as the "system of record", but read into SQLite for serving/searching content #webmention activity add a new type of data that I haven't figured out how to store yet.


There a LOT of error cases when writing a #webmention server implementation #indieweb #goldfrog


Working on timezone code for #goldfrog, still the worst


TFW your home-rolled blog application hit the 80/20 mark, well, but you need a feature in the missing 20 #goldfrog


Repaired some stuff in #goldfrog around #webmention handling on weird responses (hello amzn redirects)


Fixed a couple of little bugs in #goldfrog - made it so that the webmention code doesn't barf on servers with non-verifiable SSL certs, and updated the permashortid code so that Twitter doesn't always link to the site for Notes


Ok, I'm tired of putting off writing about what I'm reading just because I don't have custom "read"-handling code in #goldfrog yet. So I'm posting links to books I've read since March 4, 2020...

http://monkinetic.blog/2020/03/23/read-the-forbidden-stars-by-tim-pratt


I'm this close (pinches fingers together) to committing media uploads for Twitter to #goldfrog


Obviously I need to add media uploading to my syndication code #indieweb #goldfrog

http://monkinetic.blog/2020/02/22/txt-fd6090d


Posting UI #experiment #goldfrog

(SORRY, LOST IMAGE)


New Posting UI on Goldfrog

I've started messing around a bit with javascript-enhanced UIs for #goldfrog. Rather than use all of JQuery, I decided on a small subset of Jquery's functionality as implemented by Sprint.JS.

  1. I only load the JS for me, since I'm logged in.
  2. It's only used on the home page to power the new switchable post form, and
  3. It powers a character-counter for the note UI.

Here's the new posting UI:

(SORRY, LOST IMAGE)

I'm trying to implement some basic progressive enhancement - the forms work as is without javascript, but the switcher and the counter are niceties for me, the author.


Learning Can Be... Boring?

(SORRY, LOST IMAGE)

Ran into a friend today at church and he asked me "hey I'm trying to learn Python, do you have any good sites or books to recommend? I'm kinda... bored."

Now some of us geeks can't imagine being bored learning something new, but I went through this when I first started learning Go. I had decided I wanted to learn a new programming language, and Rust was way too... Rust, so I picked Go and started building a small o-nothing web app. I got part way in an realized that I had no interest in what I was doing, and it (and some bits of Go that hadn't matured) was killing my fun. So I put it down.

Fast forward to this year. I was ready to pick up Go again, but this time I also knew that I wanted to start writing again, and that the friction in my blogging process was killing my joy there, too. So I decided to write my own blog software (see #goldfrog), and I was going to write it in Go.

Suddenly I was energized to learn, because I had all these feature ideas for the site, and I had to learn the #golang techniques for tasks I'd only one in #python before. Also, it got me into the golang newbies Slack, and connecting with a community - for me at least - helps.

So my advice to my friend was:

  • Find a project you're passionate about, or at least really interested in
  • Be willing to re-learn things you think you already know
  • Find a #community!

Looks like I need a #bookmark feature in #Goldfrog now: "Agile as Trauma" https://doriantaylor.com/agile-as-trauma


First Goldfrog Webmention in Public

(SORRY, LOST IMAGE)

Evidence of the first Webmention GoldFrog has sent for a post on this site.

Horst just recently implemented Webmentions on his site, so I'm happy to be able to give him a link!


Yesterday I imported 7800+ tweets into Goldfrog, my blog/cms, as part of owning my own content. Tweets (or Notes) will be published on monkinetic.blog and be syndicated to Twitter. See my archive page (20 years worth), blue are posts and pink are notes

http://monkinetic.blog/archive


Goldfrog updates: syndication

If you follow me on social media - Twitter or Mastodon - you may have seen lots of nonsense posts go by recently...

(SORRY, LOST IMAGE)

I've been working on improving my POSSE features here, which meant not only composing my posts and notes locally, and then publishing them to Twitter et al, but also being able to track where they "landed" (ids and links) and make it easy for users to find my content on the syndicated site.

So I dug back into my syndication code, rewrote it several times, learned some things about goroutines, learned how not to do some things with goroutines, and settled on a way that worked. With luck, this post and any other that is also published on Twitter or Mastodon will have links to those sites along with the post, and (at least for Twitter right now) have links to reply, favorite, or retweet the post.

As Dave used to be fond of saying:

Still digging!


...They delved too greedily and too deep

'The Dwarves tell no tale; but even as mithril was the foundation of their wealth, so also it was their destruction: they delved too greedily and too deep, and disturbed that from which they fled, Durin's Bane.' The Lord of the Rings

What it looks like in code:

(SORRY, LOST IMAGE)

page 1 of 3 next → last →