#dev 2025-07-10

2025-07-10 UTC
raftar, grufwub, [morganm], saptaks, troojg, bterry, msjr, dustinm`, oodani, gRegor, bterry1, Saige_Leah, [Jo] and birle joined the channel
#
cophee
This happened when I tried to login the indieweb wiki with Indiekit as my website's auth
#
cophee
Anyone know how I can get around it?
GuestZero, gRegor, claudinec, duanin2 and jak2k joined the channel
#
cophee
nvm i figured out why xD
gRegor and rozodru joined the channel
duanin2, mateusrc, cow_2001, jak2k1, [benji], jak2k, birle and Guest5780 joined the channel; veqq left the channel
#
[mattl]
cophee: what was the fix?
#
[mattl]
[KevinMarks] all your posts are making me miss living in that part of the world
#
[mattl]
(in a good way)
#
[KevinMarks]
there is a nice earnestness to today that is unlike a lot of US confs
#
[mattl]
i’ve never really been to a US dev conf… generally things like that lack an energy that European stuff has
#
[mattl]
I’ve tabled at plenty of events and run a few FSF things, but never anything like this
#
Kolev
Should I change my date format ato 2025-07-10? https://calebh.top/posts/
#
jak2k
Yes, why not? ISO8601 certainly makes reading the date easier.
#
[tantek]
it's more international friendly
gRegor and rozodru joined the channel
#
jak2k
I don't understand the purpose of delete/undelete in Micropub. Undelete implies that delete only marks entries as deleted. This means it only hides the post, which is functionality also provided by status and visibility (which have overlapping functionality too).
#
gRegor
what is unlisted
#
Loqi
unlisted are publicly visible posts that are not included in a homepage or feed(s), and are typically excluded from site search features and broader web search services https://indieweb.org/unlisted
[manton] joined the channel
#
[manton]
It’s mostly up to the implementation. For example, in http://Micro.blog, a Micropub delete really deletes the post, and we don’t support undelete.
#
gRegor
A deleted post wouldn't (shouldn't) be viewable anywhere publicly. An unlisted post is still publicly viewable, if you have the URL. Subtle but important difference
#
[manton]
There’s enough data to implement undelete, but personally I’ve never found the need to do this from a client since it’s so rare.
#
[manton]
gRegor: 👍
#
gRegor
I'm less familiar with the `status` options in micropub. "draft" and "published" are the two I'm familiar with.
#
gRegor
what is undelete
#
Loqi
undelete is making a previously deleted post visible again https://indieweb.org/undelete
#
gRegor
Wonder how many implementations there have been of that. probably not many
#
[manton]
Yeah, I bet draft/published is more widely implemented than undelete.
[aciccarello] and GuestZero_ joined the channel
#
[tantek]
most systems, smart phones, laptops, when you "delete" an image or a file, it goes into a "Trash", where you can then go get it and "recover" (undelete) it.
#
[tantek]
also online email systems like Gmail etc
#
[tantek]
it doesn't "actually" get deleted typically either for 30 days, or until the user explicitly says "empty trash" or something similar
#
[tantek]
this UX is common, so it made sense to design the Micropub protocol to accommodate it and thus enable implementations to meet UX expectations
#
[tantek]
pretty sure nearly EVERY "delete" action on iOS (photos, notes, etc.) moves things to a "Trash" or "recently deleted" area, from which you can recover them.
#
[tantek]
delete/undelete *is* the UX norm that users expect to "just work".
#
[tantek]
(in terms of what is "widely implemented")
#
[aciccarello]
It's a good UX pattern to make destructive actions (e.g. delete) reversible. At least temporarily.
#
gRegor
Agreed. Confirming Google Photos also follows that norm.
#
[tantek]
I have a feeling various blogging platforms, SSGs, CMSs etc. are behind in this way
#
[tantek]
aciccarello, exactly. I've called this "forgiving UX" in the past
#
gRegor
WordPress and ProcessWire have trash sections
#
gRegor
I don't think WP auto deletes after a time, though maybe there's a core config for that. ProcessWire doesn't auto-delete them.
#
gRegor
what is trash
#
Loqi
It looks like we don't have a page for "trash" yet. Would you like to create it? (Or just say "trash is ____", a sentence describing the term)
#
gRegor
May not need it, just curious
#
gRegor
Learned of this open source search that has an option under "Optics" to search "indieweb and blogroll" https://stract.com/
#
gRegor
And looks like you can customize your own optics: https://stract.com/settings/optics
mateusrc joined the channel
#
[snarfed]
beyond forgiving, it's also smoother and less friction than making you click yes on an "are you sure" prompt every time you delete something
#
[snarfed]
good UX
#
[aciccarello]
Yeah, undo is better than "are you sure"
#
jak2k
status = deleted would be the better solution imho
#
[tantek]
it's not clear "status" is sufficient to capture the semantics of "deleted" in systems.
#
[tantek]
hence keeping it as a protocol action, rather than a property
mateusrc and balintm joined the channel
#
[snarfed]
huh. can you elaborate?
#
[tantek]
it's not just a "label"
#
[tantek]
in practice systems always have additional user semantics as noted above
#
Loqi
[preview] [[tantek]] it doesn't "actually" get deleted typically either for 30 days, or until the user explicitly says "empty trash" or something similar
#
[tantek]
side-effects by labels is poor design
#
[tantek]
poor format/protocol design
#
capjamesg
The trash can feels so elegant now I think about it!
#
capjamesg
I seldom need to go there, but it's there for when I need it.
#
[mattl]
I’m glad the metaphor of dragging a CD to the trash to eject it isn’t around any more
#
[mattl]
It still works but people aren’t using CDs much on a Mac now.
#
[tantek]
💾 ➡️ 🗑️
#
[snarfed]
label seems to imply user-defined, while status usually seems different, system-defined, with a limited set of values that do have specific semantics, eg draft, scheduled, published, deleted
#
[tantek]
status in other places (I think e.g. iCal?) indicates something that is tied to and only changes based on user action
#
[tantek]
draft, published make sense. scheduled may be worth investigating for actual protocol changes rather than overloading status
#
[tantek]
make sense* in that they only change based on user action.
#
[tantek]
it's the side-effects aspect (especially if the "value" can change without user action) which I think is faulty
#
[snarfed]
sure. seems like status deleted would similarly fit and only change based on user action, right? and all of those statuses have semantics side effects too, not just deleted, right?
#
[snarfed]
not to push too hard, I don't really feel strongly here, just curious and trying to understand
rozodru and GuestZero joined the channel
#
[snarfed]
ah, sorry, I see what you mean now. I only mean that the possible status *values* were system-defined, not user-defined. it definitely does *change* on user action, like labels!
balintm joined the channel
#
[tantek]
deleted changes based on timeouts in some systems
#
[tantek]
scheduled also changes based on time or timing
#
[tantek]
without additional user interactions
#
[tantek]
point being, like labels, status is (should be!) expected to change *only* upon user (inter)action
#
[tantek]
neither delete nor scheduled fits that (both can/will change without user interaction)
#
[tantek]
yes it makes sense to have limited vocabulary for some properties vs user-defined vocabulary
#
[tantek]
p-rsvp is another good example of limited vocabulary (system-defined), and yet 100% user changes the state of the property
#
jak2k
I don't quite get, why a value of a property should never change without user interaction.
#
[snarfed]
I mean, I get scheduled => published, which is a status change that happens automatically, without direct user interaction, and seems fine and expected
#
[snarfed]
otherwise I'm with jak2k, I don't see other cases yet, other than eg status deleted => fully purged after 30d or so, which changes the whole post, not just its status
rozodru joined the channel
#
btrem
gRegor++ thanks for the help with the .ics feed.
#
Loqi
gRegor has 39 karma in this channel over the last year (108 in all channels)
#
[tantek]
I think there's an argument to be made the "scheduled" is not a status, nor even a property, but rather a modifier on *any* verb (protocol)
#
[tantek]
scheduled as it is a modifier on "publish" (create), and similarly, for ephemeral posts, that's a scheduled delete. there are also posts that need to be updated at a certain time (e.g. event details like a Zoom link 10min before the event), and that would be a scheduled update.
#
[tantek]
jak2k, there are extremes, e.g. you can design a protocol with one verb, "do something", and then put everything else into properties. or you can have tons of verbs for every possible action/activity and then have only one property "content" that depends on the verb for what it does. both are bad design. the point is to reflect different actions (especially with side-effects) as part of a protocol, and ideally the properties are all user
#
[tantek]
content or user-settable
[social] joined the channel
#
btrem
Regarding the mess I'm with trying to get an iCal feed working, part of the blame goes to the whole webdav thing. Someone (Tantek, I think), said that we need an update to webdav, to something based on h-event. A swell idea, but Google won't adopt h-event unless they have to, and as long as they have enough market share for their calendar sans h-event support, I don't see that happening.
#
btrem
Not the first time I've bumped into this situation. Cf. h-menu https://microformats.org/wiki/menu
rozodru, barnaby and oxtyped joined the channel
#
[tantek]
btrem, indeed, large provider adoption is often (usually?) a trailing indicator. Better to work on smaller provider adoption, then when there's a sufficient ecosystem, the larger providers are easier to convince.
samundersingh joined the channel
#
samundersingh
Hi guys anyone here
#
[tantek]
They're early early adopters of something unless it's their own invention and they're trying to push it as a standard
#
[tantek]
What are chat archives?
#
Loqi
It looks like we don't have a page for "chat archives" yet. Would you like to create it? (Or just say "chat archives is ____", a sentence describing the term)
#
btrem
[tantek]: I agree. But it means there's probably no point in updating webdav/webcal to h-event. Because the apps that people use won't consume it.
#
btrem
And I'm still stuck trying to implement webdav, with all the hurdles that entails. (Including, ironically, limited support in Google calendar!).
#
[tantek]
From an indieweb perspective it doesn't matter if "the apps that [random] people use won't consume it" it matters only if the apps you're building and using (create what you need) will
#
[tantek]
What is create what you need
#
Loqi
It looks like we don't have a page for "create what you need" yet. Would you like to create it? (Or just say "create what you need is ____", a sentence describing the term)
#
[tantek]
What is make what you need
#
Loqi
Make what you need is an IndieWeb principle that helps creators focus on creating & publishing things prioritized by what they need & want for their own personal site https://indieweb.org/make_what_you_need
#
[tantek]
create what you need is /make_what_you_need
#
[tantek]
What is use what you make
#
Loqi
use what you make is an IndieWeb principle that encourages creators to use the applications, tools, libraries, code, designs, documentation that they create, in particular on their personal website, and the counterpart of the make what you need principle https://indieweb.org/Use_what_you_make
#
gRegor
What btrem is talking about is a group of people who are using gcal, so it's relevant
#
[tantek]
That sounds similar to the POSSE use case then
#
btrem
What I'm working on is a website for a _community_. Not an individual.
#
btrem
But working on a indieweb-ish principle of having the community -- a housing coop, in this case -- control and own their data.
#
gRegor
Unfortunately, creating a shared calendar in Google Calendar that you then grant the community access to read/write might be the most userfriendly option you have currently :/
#
gRegor
Obviously that's not indieweb, but yeah
#
btrem
gRegor: So it seems. Which violates an indieweb principle.
#
btrem
Oops, our messages crossed.
#
gRegor
PESOS from gcal to drupal? semi joking :)
#
btrem
It's not just an abstract principle for me. Going the practical route means posting events on our website, and them copying them to a community calendar, e.g., Google calendar. And having people subscribe to /that/. Not DRY. Practically guaranteed to get out of sync. Probably sooner than later.
#
btrem
And since the Google calendar is the one people would depend on, the likely outcome is that the events data that we own will be the data that's neglected.
#
[tantek]
100% shared calendaring is a TOUGH problem
#
btrem
Shared anything is probably a problem.
#
[tantek]
btrem, I think that's why gRegor was half-joking suggesting PESOS from gCal to drupal. It's not a bad idea
#
[tantek]
I believe you can create an iCal (ics) feed FROM gCal, and then I'm guessing there's a Drupal module to subscribe to that feed
#
capjamesg
Yeah. I'm not satisfied with my calendar setup.
#
[tantek]
it's not ideal sending everyone in the community to use gCal as their UI, however it's at least *a* solution, and you keep a copy of all the events in data you do own
#
btrem
I was thinking the same thing. It might be the least awful path. But it would still be awful.
#
[tantek]
makes me wonder if you could use a self-hosted Meetable install as another alternative
#
btrem
What is meetable?
#
Loqi
Meetable is an IndieWeb friendly open source events aggregator that is used for the IndieWeb events site at https://events.indieweb.org https://indieweb.org/Meetable
#
gRegor
ooh, yeah
#
gRegor
Don't think it has authenticated ICS though
#
[tantek]
I have various ICS feeds from the IndieWeb Meetable that show up in my phone, iCalendar iOS or gCal etc.
#
btrem
And even if it did, what would that solve? I'm not being petulant. I can already (probably) create an .ics feed. The problem is making it available to google cal.
#
btrem
I think I've confused myself. :-o
#
[tantek]
you don't have to create it. Meetable creates it for you
#
[tantek]
ah, re: authenticated ICS, perhaps file a feature request issue? https://github.com/aaronpk/Meetable/issues
#
capjamesg
What is authenticated ICS?
#
Loqi
It looks like we don't have a page for "authenticated ICS" yet. Would you like to create it? (Or just say "authenticated ICS is ____", a sentence describing the term)
#
btrem
An .ics/iCal feed that requires a username/password.
#
gRegor
Behind Basic authentication or similar. Some notes, and an ICS you can try it with: https://gregorlove.com/2025/06/here-is-what-i/
#
Loqi
[preview] [gRegor Morrill] @btrem.com: Here is what I found with an ICS file behind authentication. I set up Basic authentication for this URL: https://staging.gregorlove.com/indieweb/ics/calendar.ics The username and password for this are both “guest”. In the browser, ...
#
btrem
That test .ics file is why I gave gRegor karma earlier today. It works in calendar apps like Thunderbird calendar and Ubuntu calendar.
#
aaronpk
btrem: if meetable required login to view everything, and used "secret" URLs for the ics feed like google does, would that be what you need?
#
btrem
Probably not, sadly.
#
btrem
I discussed this with gRegor in private chat earlier today.
barnaby joined the channel
#
btrem
I'll quote from that discussion: "The thing is the coop has about 40-50 members. needs to be password protected, needs to have multiple contributors with different access, etc. none of which I want to code myself. So it sort of had to be a framework of some kind."
#
btrem
"The thing is the coop has about 40-50 members. needs to be password protected, needs to have multiple contributors with different access, etc. none of which I want to code myself. So it sort of had to be a framework of some kind."
#
gRegor
Meetable would handle that aspect
#
gRegor
oh maybe not "different access"
barnaby joined the channel
#
gRegor
I think like on events.indieweb.org, when you're signed in you can add/edit any event
barnaby joined the channel
#
btrem
Oops, sorry. Let me try that again: "Sure, I could do the secret-in-url thing, but the coop this .ics is for has almost entirely non-techie people who will absolutely *not* understand that their url is not to be shared."
#
aaronpk
so you need the _view_ of the calendar to be different between different people?
#
[tantek]
I mean, the "secret ICS URL" approach seemed to "work" for Facebook so maybe it'll work for "almost entirely non-techie people"?
#
btrem
aaronpk: Hmm. I think I need a minute to sort out in my own head what I need. I've been chasing my tail for too long.
#
capjamesg
btrem That is a really interesting side effect of capability URLs.
#
capjamesg
You can say it shouldn't be shared but that doesn't mean someone will share it by accident.
#
btrem
Or not by accident.
#
gRegor
Anecdotally, and only with a few people, but I've not usually had issues with people sharing the secret ICS urls from gcal outside where they should. It's mostly a one-time use thing, subscribe and hopefully it just works
#
aaronpk
the fundamental limitation here is that most calendar software doesn't support the idea of authenticated ics feeds, and instead uses secret URLs and big warnings about "don't share this"
#
btrem
aaronpk: Thunderbird calendar supports auth ics feeds. As does Ubuntu calendar. But maybe they are outliers?
#
gRegor
Another data point, Patreon subscriber only RSS feeds do a similar thing
#
[tantek]
I think you can help mitigate that by putting the user's name in the capability URL like domain/ics/this-feed-belongs-to-user-btrem 🙂
#
[tantek]
oh yeah good example gRegor
#
[tantek]
what is capability
#
Loqi
It looks like we don't have a page for "capability" yet. Would you like to create it? (Or just say "capability is ____", a sentence describing the term)
#
gRegor
share-this-at-your-own-peril.ics :)
#
aaronpk
maybe what you are actually looking for is running a nextcloud instance and getting people to log in to it with their own calendar software?
#
aaronpk
i can create and view events on my nextcloud instance from iOS and fantastical for example
#
btrem
aaronpk: I dunno. I did look at nextcloud at one point, and nixed it. But it's been a few weeks, and I can't remember why. :/
#
btrem
And maybe I was wrong to nix it.
#
aaronpk
it's a multiuser calendar system among other things
#
btrem
I just checked iOS calendar. It can handle auth .ics.
#
btrem
Does anyone have an android phone? Can you check if gRegor's test ics works with username password?
#
gRegor
I have android, but gcal, so don't think it will work
#
btrem
Does android only use gcal?
#
gRegor
No I'm sure there's others like Outlook, I just don't use those apps
#
btrem
Ah. There's no build in cal app?
#
btrem
...built-in...
#
gRegor
I think gcal is the default calendar app on a stock Androidk
#
btrem
Ah. Shame.
#
gRegor
It's worked well for me for years, knock on wood :)
#
gRegor
But also not subscribing to u/p authenticated calendars, heh
#
btrem
I'd rather knock on Google. Very hard. ;-)
#
btrem
Does anyone here use Outlook? Care to give the test .ics a whirl?
#
aaronpk
fantastical also supports basic auth for that URL, wow
#
btrem
What is fantastical?
#
Loqi
It looks like we don't have a page for "fantastical" yet. Would you like to create it? (Or just say "fantastical is ____", a sentence describing the term)
#
btrem
See, it seems like google is the outlier here.
#
gRegor
I was surprised gcal doesn't. I'm guessing they didn't want to deal with holding onto credentials
#
btrem
Which makes me think I should just wade into Drupal and try to create an .ics feed. Available to everyone, but if you use google cal your SOL. :-p
mateusrc joined the channel
#
gRegor
Heh, it's an even worse UX than I thought. Tried adding it by URL again and it just says "fetching events in the background" and creates an empty calendar. No indication there was an error.
#
btrem
The UX for Thunderbird calendar and Ubuntu calendar is not great, either. If it subscribes, it's all good. But neither app handles "you need to be authorized" very well. I already complained about this when I started on this journey, lo those many weeks ago.
#
gRegor
Interesting, it didn't pop up the prompt?
#
btrem
To sum up: if auth is handled at the application level (in my case, php/Drupal), then the http response code is 200 OK. So the apps don't know what to do.
#
aaronpk
if the http response code is 200 then that's not HTTP Basic auth which is what these apps support
#
aaronpk
you can definitely make php code return the right HTTP code/headers to trigger this prompt
#
btrem
It's part of the reason why wrangling Drupal is gonna be hard. I have to enable basic http auth, and that's a(nother) "here be dragons" thing.
#
btrem
Drupal doesn't do basic http auth out of the box, AFAICT.
#
gRegor
Yeah my example link returns 401
#
aaronpk
it sounds to me like you actually want to treat this coop as a small business and use tools made for small business calendar management
#
btrem
Right. That's why /your/ cal works!
#
gRegor
Mine has no custom PHP code btw. Just .htaccess
#
btrem
Again, that's why /your/ cal works! :-D
#
gRegor
Haha, what I'm getting at is you can do it without hacking deep in Drupal
#
btrem
I wish.
#
gRegor
I guess not if you're wanting to hook into Drupal's account auth
#
btrem
Just what I was going to type.
#
gRegor
Have a cron job that creates the .htpasswd file daily? heh
#
aaronpk
omg gRegor
#
btrem
that reply is so funny!
#
btrem
:-D :-D
#
btrem
This is getting good.
#
btrem
aaronpk: to respond to your "...small business..." question. I dunno. It's a housing coop. We have meetings and other events. We have no easy way to plan or announce meetings, or have someone reply that they're attending. The only announcement mechanism is a post on the website, managed by Drupal.
#
btrem
I was hoping at a minimum to create an .ics feed based on meetings and events posted on the site. And coop members could subscribe to that feed.
#
aaronpk
i'm sure someone has done that with drupal before
#
btrem
Fantasy would be to let users add themselves to an "I'm attending" list.
#
btrem
They have, but not with auth.
rozodru joined the channel
#
btrem
At least, not AFAICS.
#
btrem
If the site, and an events feed generated from it, were public, I think this would be easy to solve. Might have been solved already, at least the minimum part.
#
aaronpk
drupal is definitely flexible enough to build this if it hasn't been done already
#
btrem
Yes. Sorry, this conversation is only part of the story. It started -- a few weeks ago -- with "why doesn't .ics feed work?" Then "what is webdav, how is it related to .ics?" And then, "google cal doesn't support .ics with auth." That's where we are today.
#
btrem
And I started off today saying there's no point in building something in Drupal for auth .ics if a significant number of users won't be able to use it because Google.
#
btrem
Because I'm an amateur, adding auth to my .ics feed will not be trivial.
#
btrem
So I'm weighing pros and cons, which I was doing in a private chat with gRegor. Then I thought about what [tantek] said when I first brought up webdav/webcal, that we need an update to .ics that's based on h-event. And I pointed out that such a thing won't really help as long as Google doesn't support it.
#
btrem
I think, if you then go back to the beginning of this discussion, that catches us up. I hope.
#
btrem
...beginning of the discussion *today*....
#
[tantek]
it's been an interesting and illuminating discussion, especially for indieweb-adjacent small-community use-cases
#
btrem
Well, that's enough hating on google for today. Well, hang on... google--
#
Loqi
google has -2 karma over the last year
#
btrem
Ok, *now* that's enough hating on them.
#
btrem
[tantek]: I missed your comment. But I was heading out the door to run errands, but thought before going that I'd thank everyone for the discussion. It's bee, as you said, illuminating, and I hope it will be helpful to me. More to come, no doubt. Thanks to everyone for sharing your insights.
#
btrem
indieweb++ dev++
#
Loqi
dev has 1 karma over the last year
#
Loqi
indieweb has 3 karma over the last year
#
[artlung]
Weirdly my girlfriend just spent a painful amount of time trying to sort out when the games for the local FC had home games, putting them on a shared calendar, to warn us about the pet-alarming fireworks that happen at the end of the games. (they are loud and concussive and last night they ruined a dog walk)
#
[artlung]
She did indeed complain about both the FC and Google as part of that process.