is it a bad idea to overload the subtraction operator on an MF2 post type to produce a difference between the two posts in the Micropub update format?
An addition of a post and a diff would, of course, patch the post with a diff, for symmetry.
is it a bad idea to overload the subtraction operator on an MF2 post type to produce a difference between the two posts in the Micropub update format?
An addition of a post and a diff would, of course, patch the post with a diff, for symmetry.
Just realized Kittybox doesn't even display the p-summary
field anywhere yet. What a shame. Gotta fix that later.
This is a submission for IndieNews, the IndieWeb news aggregator.
Bowl for Kittybox, a new Micropub client, is now released!
This is meant to fill the niche of native desktop Micropub clients for those who prefer old-fashioned native applications instead of web apps or web apps packaged in a shrink-wrapped Google Chrome shell.
It's also a testing ground for my UX experiments. I believe Micropub provides a single well-oiled joint for blog posting, and that any user experience enhancements or additional features can simply live on top of it. The media endpoint standard is actually one of such enhancements — the Micropub endpoint does not strictly need to know about its existence, it can just understand links that the media endpoint gives to the client to insert into the post.
One of these experiments is Smart Summary — an optional summarization feature powered by a large language model. Hitting the Smart Summary button with a blog post in the editor pastes the post into an LLM and tells it to produce a one-sentence-summary. I rarely if ever filled the p-summary
field, but now I guess I have no excuse.
I also plan to make Kittybox collapse long posts in the feed that have summaries, and make an optional query parameter to provide un-collapsed posts (for MF2 feeds?), and helping produce summaries ties nicely into this feature.
Of course, LLMs are not intelligent, cannot understand what they ingest and produce, and most importantly, have no conscience to feel guilty if they lie or mislead their user. So I recommend carefully proof-reading these summaries. Bowl will also under no circumstances support having LLMs write actual post content.
This can be disabled when building, pass -Dllm=false
to Meson when configuring. When disabled, all LLM integration code is completely purged from the binary, leaving it completely unaware of this technology's existence. (The settings schema, however, is unaffected. I may fix that in the future.)
When I add media support, I will also try to make another LLM integration, Alt Text Vision, that could quickly draft an alt-text for an image you upload. (Of course, the user will be given the opportunity to review the output.)
I also am thinking of creating a Microsub client that could summon Bowl to interact with posts. That may require Bowl to become D-Bus activatable and potentially support displaying several windows at once.
I am also thinking about offline support, being able to draft posts while offline and send them once internet connection is available. Micropub also has some extensions for working with drafts, and I can use that to allow syncing the drafts to your own website.
P.S.: When generating the summary for this post using Smart Summary, the LLM confused Bowl and Kittybox, and thought Kittybox is actually the Micropub client. This is a reminder to always double-check the text LLMs write for you.
So nice to see random websites support Webmentions!
Fun fact: I'm building a Micropub posting app, and one of it's features is letting the user automatically draft a summary for the post they're writing; I wonder what would happen if I fed it this post...
Hello! IndieAuth seems to be working in Bowl now. It even stores the tokens in the GNOME Keyring for me!
The code is really janky and I would like to refactor it before actually publishing. But it's good enough to post from, so I guess this is a victory.
It's kinda nice to be able to post from my own Micropub client. Feels liberating.
From #indieweb-dev:
...but it breaks outdated clients that aren't updated... How much ground an I willing to give to outdated software?
why did I ever think it would be a "small" refactor?!
Added a ToastOverlay to the post composer.
Currently thinking to do a small refactor to make the posting logic independent from the UI (currently the UI contains the logic to post, but I want to make the parent component responsible for posting).
I also need to implement the tag list component.
It looks like private posts are working, but aren't shown in the feed. I guess I gotta fix this.
(Also making Ctrl+Enter send posts in Bowl would be nice.)
if you can see this, my new micropub client written in GTK4 and Rust is working! It's called Bowl and I really want to publish it soon!
(but I need to make IndieAuth work first — I had to manually retrieve a token to crate this post.
also i think i need to make the window scrollable.
See that login button in the top right corner? It works now. Try logging in with your website if it supports IndieAuth.
(Note: compatibility with older spec revisions is not guaranteed.)
I don't quite like the idea of using LLMs for writing, or at least I consider their unfiltered output unsuitable for human consumption.
But what about writing drafts? Or reading a post draft and drafting a short one-line summary for it to be pasted into p-summary
. Of course, it would come through a human first, to ensure the summary makes sense.
I feel like this could be a good feature for a post editor. I imagine the UX being something like a ✨ button next to the summary text field that pastes the e-content
field into an LLM and asks it to summarize the post. The output is then inserted into the summary field for the author to edit as needed.
Sometimes, when a big epic quest resolves, or a big event happens, I experience an extremely debilitating form of catharsis which often leaves me completely drained and unproductive for a day or two.
Good thing I managed to schedule today's cathartic events in advance and took tomorrow off.
I'm paid by the hour, I have an incentive to make it perfect.