#@OpenMentionsUpdate: @LordMatt has applied a hotfix that works around the bug that causes some Webmentions to error while trying to get a semantically relevant ping body. Hopefully we are all good to go again. (twitter.com/_/status/1528669215384866824)
Loqi, mro, tetov-irc, jacky, vika_nezrimaya, m2m and AramZS joined the channel
#LoqiIt looks like we don't have a page for "ping body" yet. Would you like to create it? (Or just say "ping body is ____", a sentence describing the term)
#[Scott_Jack]bodybuilder's ping? ping body > lewy body > protein buildup > bodybuilder > i'm sorry everyone
mro, Loqi and [CrowderSoup] joined the channel
#[CrowderSoup]I haven't been very active here due to life reasons but I'm trying to solidify my plan for further IndieWebifying my site.
#[CrowderSoup]It's a static site, and I'd like to keep it that way. A quick search of the wiki (and internet at large) yields some good information. But since I didn't find anything specifically about this I thought I'd ask here: has anyone had any success using a GitHub action (triggered on a successful deployment in Vercel) to send webmentions?
jacky and chenghiz_ joined the channel
#jackycurious: does anyone have ID-level editing of their Micropub-enabled sites?
#jackyI'll be putting my ideas and workflow for it on my site's wiki page
#jackyI think such a thing would be handy for manually built /collection posts
#[CrowderSoup]I'm currently building out support for as much as I can with serverless functions (in Vercel) and likely GitHub actions so that I don't have to maintain any supporting infra, while still keeping my website in a git repo.
#[CrowderSoup]I totally agree with you on that point though!
mro, [jgmac1106], jacky, [Murray], cybi, Loqi and [tonz] joined the channel
#LoqiI think my template unit-tests are one of the most beautilful think I’ve ever written. An MF2-JSON document is randomly generated, rendered using the appropriate template and then checked for expected properties matching whatever was in the MF2-JSO...
#vika_nezrimayaI wrote some very beautiful unit tests for my templates. Never thought testing frontend would be THIS easy!
#vika_nezrimayaAll because MF2-HTML is extremely easy to process with a library.
#jackyooh are you using the newest Rust? I see the local variable serialization in `format!` being used
#vika_nezrimayajacky: btw you can see how the MF2-JSON generator grew! It can now generate replies and likes (with both full and partial reply contexts) as well as articles (h-entry with a name)
#vika_nezrimayaYes, this is perfect! Also TryInto<chrono::Date>, TryInto<chrono::Time> and their naive counterparts in case the full range of values isn't specified
#jackyI don't know if you've seen https://lib.rs/crates/indieweb yet - it has some half baked implementations of common IndieWeb things (Webmention, IndieAuth, Micropub)
#jackyI do have some 'extensions' that are backcompat with mainline Micropub in there though
#jackyI haven't fleshed out the Microsub things just yet - haven't had a chance
#jackyI want to reduce its scope of dependencies a bit (like scraper might not be needed, for example)
[aciccarello] and cybi joined the channel
#vika_nezrimayaI wish it would let me take care of HTTP requests myself
#vika_nezrimayaI see it also including an HTTP client
#vika_nezrimayaI wish it could simply provide me neccesary headers/query/body and let me do the requests myself
#vika_nezrimayaThat would allow you to eliminate a dependency too
#vika_nezrimayajacky: I think I once had a stray thought of taking some of that code and vendoring it into Kittybox, too
#vika_nezrimayaI would personally be ok with the HTTP part being completely out-of-scope and the protocol's state machine being exposed as structs and possibly typestates with the application developer providing raw values for the protocol
#vika_nezrimayaFor example, IndieAuth would start with the "me" string (and a bit of MF2 parsing and helpers for parsing Link: headers), then transform into a struct representing an authorization endpoint request that would get serialized and sent as a query string
#jackyrefactoring this to the new indieauth standard is going to be interesting to do
#vika_nezrimayaConsidering Kittybox can be both a server and a client, integrating your `indieweb` crate could exercise a lot of its functionality and, as a result, generate a lot of feedback
#vika_nezrimayaI should consider doing it soon, I am bored and have nothing to do
#jackyso my 'client' is /Shock currently (for Micropub, Webmention and IndieAuth)
#jackyand my 'server'(s) are /Sele and /Koype for IndieAuth and Micropub respectively
#jackyI started with a big ol' app but it kinda got clunky (prob from my coding, lol) and it felt easier to separate it out
#vika_nezrimayaKittybox is technically a monolith but the only thing in the frontend that doesn't let me fully separate it is the onboarding page - it uses an internal Micropub function for inserting a post into the database without authentication and other checks (since the post is generated at the backend, it is trusted)
jacky joined the channel
#vika_nezrimayaEverything else is completely modular (it only needs to share the database, which can be done with, say, NFS for filesystem mode)
#jackyI'm actually working on something using virtual tables and JSON with SQLite so I can search all of the MF2 properties of things on the fly (with a custom function in SQLite of course)
#vika_nezrimayaI also think of making some neat features like backends implementing their own search API (since in SQL databases there are sometimes full-text search capabilities) and background integrity checks (for example, restoring corrupted permalinks - see https://fireburn.ru/posts/mending-broken-permalinks-part-1)
#LoqiMending what's broken, or how I discovered some broken links on my website
#vika_nezrimayaAlso the backends are responsible for processing updates, this allows to make them atomic and transactional (e.g. in Redis updates were shipped off to a Redis function in Lua, which blocked the whole database)
#vika_nezrimayaIn the file backend, updates are processed in the backend code and then written to a temp file that atomically replaces the original with rename(2)
#vika_nezrimayaIn case of networked filesystems this system can even be horizontally scaled infinitely
#vika_nezrimayaI doubt many applications could run on a full range of systems from a Raspberry Pi (probably even the original one, judging by memory usage) to a beefy datacenter cluster
#vika_nezrimayaEh, it would not be hard. NixOS, my OS of choice, allows me to write beautiful tests involving a dozen VMs at once. I could probably make them share a filesystem using NFS and then run Kittybox on ALL of them at once to verify my claim
#vika_nezrimayaI run one end-to-end test verifying that onboarding works properly. More of a smoke test than anything, but still useful
#vika_nezrimayaIt caught some interesting breakages due to the VM's architectural differences from my production setup
cybi, [jeremycherfas], gRegor, mro, [schmarty], jacky and ben_thatmust joined the channel
#[snarfed]for small datasets, I wonder if SQL engines over flat files like this might get us most of the benefits of flat files and also many of the benefits of databases