Finally fixed login

Login on this site has been a bit flaky for a while since in my never-ending fight against AI bots I had switched to a multiprocess configuration to give the site a bit more robustness, but which had the side effect of most logins only having a 50% chance of working due to fiddly details inside Publ (or, more precisely, Authl, which defaults to only being safe for single-process configurations).

So, Publ finally implements multiprocess-safe token storage, which is something I’d been meaning to add since approximately forever ago (although it seems I never opened an actual issue to track it, oops), and this should make user login reliable again.

Thanks to Spud who finally lit a fire under my butt to fix this annoying issue.

Read more…

The state of the fluffy (late December 2025 edition)

Time for another proverbial cheese sandwich post1. Thinking about the end of the year and what’s coming up for me.

This isn’t my annual aspiration wrap-up post; that’ll come later.

Read more…

The original Publ design doc

I was just going through some old files while preparing some hardware migration stuff (ugh) and I came across a file entitled distributed social network.md, dated December 13, 2014. This was the start of my ideas about what would eventually result in Publ.

Obviously things drifted a lot between 2014 and 2017 when I finally started implementing Publ, and a lot has changed with my goals since then as well.

Don’t use this as a roadmap, is what I’m saying.

Read more…

Sockpuppet website updates!

I finally got a bunch of stuff working on the new Sockpuppet website, including the music browser. Now people will have the ability to actually find something in my vast sea of content!

I still need to finish tagging a bunch of stuff to make it useful but having the functionality in place gives me motivation to do so.

I’ve also improved the “buy box” and added way more streaming providers to the sources (which of course requires more content to be filled out, too), and there’s a bunch of other functionality like being able to browse lyrics and song notes and such from album pages.

The really neat thing is that most of this stuff, even the dynamic stuff, is done using pure CSS! There’s a little bit of Javascript for a couple of things but I have some ideas about how I can remove that stuff, and it’s not like the javascript is particularly heavyweight anyway.

At some point I should release the templates as Publ samples, so that others can use this as a basis for building their own music sites too. Or something. I’m doing a lot of stuff that’s really taking advantage of Publ functionality under the hood.

Anyway, for those who follow me via a feed reader but haven’t added that site yet, it’s definitely ready to be added at this point, and I’ll be posting most of my music-related blogging over there from now on.

Publ’s insurmountable technical debt

Back when Publ was brand-new I was using a fairly common ORM for managing my database. It was okay but I had some issues with how the project was being run, particularly in how the core maintainer treated bug reporters who were reporting things that he didn’t personally agree with.

So I switched to Pony ORM, which has a much nicer, more-Pythonic API, and whose maintainers are friendly and helpful. It’s missing a few important functions such as migrations but for Publ it doesn’t matter so much and they were always claiming that migrations were coming “real soon now” for a while.

Unfortunately, some changes in Python 3.11 broke Pony completely, and progress on getting it working again has been, well, slow.

Back when I switched to Pony I mused about just dropping SQL entirely and moving to a more primitive indexed data store, such as lmdb. But I really do not have it in me to completely redo all that stuff in Publ again, especially with all of the weird regressions that always occur due to subtle differences in locking behavior and so on.

Sometimes I think how now that I actually know how Publ should work I should rewrite it with better testability and a more actively-developed Markdown processor (because misaka has also been abandoned and is in permafreeze status), and if I’m going to do that, maybe I should use it as an excuse to finally learn Rust because honestly the Python ecosystem is kind of a mess right now.

I’ve put so much work into Publ but keeping the project going just feels so… difficult.

Or I mean I could switch to any number of existing site generators out there but then I’d be giving up all of the things that makes Publ unique (friends-only/access-controlled entries, variadic templates, top-notch template-driven image renditions, etc.).

This is one of those things where the decision would be a lot easier to make if people were actually helping to fund Publ development or if it had any actual, y'know, users.

Read more…

Miscellaneous updates

I haven’t felt like blogging lately, but here’s some updates.

Read more…

Full-text search on beesbuzz.biz

I finally got around to enabling search, as an experimental feature. Publ’s full-text search functionality is kinda janky right now and I really want to rework it. But people were asking, so here you go.

Also god damn my templates are getting hard to maintain.

There’s also so much stuff I really want to rewite in Publ, while I’m feeling grumpy.

EDIT: Oh right, also what started me down this path was also fixing Authl’s login flow for email links on email providers which generate link previews, e.g. Outlook and Hotmail. So I mean folks who were getting “invalid token” errors while signing in by email should have a better time now.

Current goings-on

Still on disability leave, and still in considerable pain. I’m trying not to work too hard on things, but it’s hard not to do things.

For example, I worked on a song with my friends Ken and Huan-Hua for this week’s Song Fight!; we entered the “We Did Everything We Could” fight under the band name Richard Donner Party. It was a fun song to make. Fortunately I didn’t have to even so much as look at a guitar. Most of my work was vocals, light keyboard work, and editing.

Read more…

Private, friends-only, IndieWeb stuff

Yesterday I participated in the IndieWeb sensitive data pop-up, or at least the first half of it (I had to disappear for my refrigerator delivery). It was really great to have some further discussion about what people want out of this stuff and how we’re all going to agree to get it.

Authentication stuff

One of the biggest pain points that keeps on coming up is there being no support for people to be able to get private posts without having to log in or be notified about them in side channels. Lots of people are doing things like making pages with unguessable URLs and then doing side-channel notification, but that’s unwieldy; fewer folks are doing things with actual login mechanisms.

Read more…

💬 Re: Micropublish channel support Notes

In reply to: Re: Micropublish channel support

Oh, cool, I didn’t know channel support was a thing. That just might be what gets me to finally work on Micropub support for Publ, since I couldn’t really wrap my head around how I was going to support posting to arbitrary sections of my site with the current UX on any of the Micropub clients I knew about.

Time to finally brush up on the protocol to see what other excuses I have for not supporting it. 😉