#dev 2024-01-04

2024-01-04 UTC
#
[tantek]
[snarfed] I resent a webmention to attempt to federate my reply
#
[tantek]
looks like the same problem
#
[tantek]
!tell [snarfed] added an attempt at summarizing what you said here about ReST: https://indieweb.org/reStructuredText#Ryan_Barrett — still not sure how you're using it (for what user visible purpose) or on which site in particular, could you edit and add that? Thanks!
#
Loqi
Ok, I'll tell them that when I see them next
bterry joined the channel
#
[snarfed]
[tantek] yeah that bug is deterministic. will fix
#
[snarfed]
non-deterministic bugs would be more embarrassing 😁
#
[snarfed]
and sure, will edit
to2ds joined the channel
#
[tantek]
relieve that it's deterministic, and appreciated. not sure why my fedi responses have cause so much trouble 🤷‍♂️
[KevinMarks] joined the channel
#
[tantek]
I keep meaning to post but I keep having more insights into linkedtext mini formats upon re-analyzing past ideas, with the perspective of recent authoring experiences, and some existing implementations
#
to2ds
Adding "create more deterministic bugs" to my New Year's resolution list to avoid embarassment😄
fluffy joined the channel
#
[snarfed]
[tantek] bug was that it accepted a non-SSL source URL when it shouldn't have, and then got confused
#
[snarfed]
fixed and deployed now, feel free to retry!
#
[tantek]
interesting, I thought I was using https URLs for both source & target
[0x3b0b] joined the channel
#
[tantek]
!tell [chrisaldrich] are you still running your WordPress with the Refback plugin per https://indieweb.org/refback#Chris_Aldrich or have you dropped it since it and the plugin it depends on are no longer maintained?
#
Loqi
Ok, I'll tell them that when I see them next
#
Loqi
Ok, I'll tell them that when I see them next
#
[tantek]
!tell GWG have you maintained / kept up to date the Refback plugin for WordPress and are you still running it on your site? https://indieweb.org/Refback_for_WordPress
#
GWG
[tantek]: No, I just updated that on the refback page
#
GWG
It needs an update due referrer security
#
[tantek]
so which is it? is it no longer working? is it deprecated or otherwise not recommended in its current state? are you still running it yourself?
#
GWG
Updated page
#
[tantek]
have you disabled it on your site?
#
GWG
It is disabled because we merged Semantic Linkbacks with Webmentions
#
GWG
I need to rewrite it to work independently.
#
[tantek]
oh? didn't see a wiki edit come through in #indieweb-meta 🤔
#
GWG
It went to the WordPress room
#
[tantek]
ah right
#
[tantek]
[snarfed]++ thanks for the BridgyFed fix! It worked! My response showed up thread in reply to Michelle's post: https://mastodon.social/@tmichellemoore/111689038439342085
#
Loqi
[snarfed] has 69 karma in this channel over the last year (113 in all channels)
[nsmsn] joined the channel
#
[nsmsn]
Think gRegor and I solved the indiebookclub login issue during HWC Pacific. I was trying to use 'draft' permissions authenticating with my WordPress install, where I should have selected 'create'
#
[snarfed]
[tantek] your retry today was https, but your first attempt last night was http
#
gRegor
Yep, I filed a github issue to remind myself to check for draft status
gerben joined the channel
#
sknebel
capjamesg: you should be able to do caching for the sparkline thing just with your webserver (nginx, apache), yes
geoffo, capjamesg, alecjonathon, ancarda, eb, srushe, roxwize, vikanezrimaya, jeremy, to2ds, Khan, AramZS, ker0r0a, gerben and [snarfed] joined the channel
#
c​apjamesg
sknebel Can you say more?
#
c​apjamesg
I think the idea is that Tantek could have a service on his site that caches the results for a day, after which point the cache expires and he would go to get another sparkline.
#
c​apjamesg
Is that possible with a web server?
#
[tantek]
Yes, very much so. Biggest challenge is figuring out the caching policy/semantics you want, then design a service-oriented REST API accordingly (for your server to support and your frontend content to embed)
#
c​apjamesg
Thinking about the simplest implementation.
#
[tantek]
That's what I was brainstorming a bit last time we discussed it with the 1d cache, or force regen, and filenaming semantics in the API/embed URL
#
c​apjamesg
I have cache.jamesg.blog. I can somehow add a file to it, linked to a URL.
#
[tantek]
My guess is <100 lines of PHP
#
c​apjamesg
Oooh, PHP.
#
c​apjamesg
Very good call.
#
[tantek]
So to speak ;)
#
c​apjamesg
How would the headers work?
#
c​apjamesg
Can you set those in PHP?
#
[tantek]
Bc PHP has good high level primitives for this stuff
#
[tantek]
This wouldn't use any headers tbh bc the point is to generate and cache for all viewers at once, not per viewer
#
[tantek]
Or rather, the http cache headers you use should NOT attempt to replicate the semantics you are actually implementing
#
[tantek]
There's a further optimization of using two images per sparkline, one of the static past, cached forever, and the other for only the most recent "day", that is maybe regenerated once an hour
#
c​apjamesg
Right.
#
c​apjamesg
So the server has a TTL on each image?
#
[tantek]
Generating and caching time based graphics is a fun rabbit hole
#
c​apjamesg
After which point an image "expires" and the server gets a new one?
#
[tantek]
Yeah that's a good way to put it
#
c​apjamesg
Then the server stores the image file and serves it to clients (i.e. my website).
#
c​apjamesg
Maybe I should blog about this...
#
c​apjamesg
It feels like there are security considerations here.
#
c​apjamesg
Like, you need to whitelist everything.
#
c​apjamesg
In this case, I'd only want to cache my sparkline.
#
sknebel
capjamesg: In this case I'm not sure why you'd add another step/domain/service instead of always caching the output of the sparkline API in the webserver in front of it
#
sknebel
for I dont know, a few hours
#
c​apjamesg
So I'd have this logic on the sparkline server?
#
c​apjamesg
> sparkline API in the webserver in front of it - this part isn't clear to me
#
sknebel
presumably there is an nginx or sth in front of the sparkline API?
#
sknebel
you can configure that to cache responses
#
c​apjamesg
Yes.
#
c​apjamesg
Does that solve the problem, though?
#
c​apjamesg
If I get 10,000 views on my home page, doesn't the sparkline site need to process 10,000 requests?
#
sknebel
if the problem is "I want the API server (and thus the wiki API) not to get 10000 requests", yes
#
c​apjamesg
Em...
#
c​apjamesg
This is genius.
#
c​apjamesg
sknebel++
#
Loqi
sknebel has 13 karma in this channel over the last year (37 in all channels)
#
[snarfed]
yeah this is common in many web servers and frameworks, eg https://flask-caching.readthedocs.io/ does it for Flask, which afaik you use some capjamesg?
#
[snarfed]
I use that a ton
#
c​apjamesg
I am using Ruby (Sinatra?) for this service 😄
#
[snarfed]
ok! I bet there's a corollary there
#
[snarfed]
but nginx's will work great
#
c​apjamesg
Ahhhhh you have to pay for that NGINX feature.
#
[tantek]
Cache costs you cash? ;)
#
sknebel
mh? no, caching is in the open source one
#
sknebel
(I think the paid version gives you a tiny bit more options and a GUI dashboard for it?)
#
c​apjamesg
The page I am looking at says "NGINX Plus"
#
c​apjamesg
> When caching is enabled, NGINX Plus saves responses in a disk cache and uses them to respond to clients without having to proxy requests for the same content every time.
#
c​apjamesg
Maybe there's another page?
#
sknebel
yes, because its the documentation for the paid version. obviously it says what the paid version does, without spending too much time telling you that you dont need the paid one for this ;)
#
sknebel
if I remember right the section about the PURGE HTTP verb doesnt apply to the open-source version, otherwise its identical?
#
c​apjamesg
Oh this is ridiculous.
#
c​apjamesg
Yeah.
#
c​apjamesg
"This blog post covers techniques that can help both novice and advanced users see better performance from utilizing the content cache features included in NGINX and NGINX Plus."
firepoet and [Joe_Crawford] joined the channel
#
barnaby
TIL there’s a paid version of nginx with extra verbs
#
[KevinMarks]
For a sparkline, serving stale is not a fail case, so serving the cached one, then deciding whether to regen can be a good choice
gRegor joined the channel
#
[tantek]
yeah it's not like you're showing stock ticker values or anything similar
[aciccarello] joined the channel
#
[tantek]
[snarfed] some visual inspiration for you for a diagram representing Bridgy Fed and other networks/protocols:
#
[tantek]
Look at all those isolated blocky nodes, don't they look like they're on their way to interconnect with others at the tree? Bridgy Fed is obviously the trunk of that tree, and the different main branches are different protocol suites/stacks, with perhaps the web at the top / middle as the main/primary representation, and then others branching out from there, to the newest more experimental protocols dangling on the edges of the tree
#
[tantek]
What is INP
#
Loqi
It looks like we don't have a page for "INP" yet. Would you like to create it? (Or just say "INP is ____", a sentence describing the term)
#
[aciccarello]
I was wondering the same and I already follow a lot of Alex's posts 🙈
#
[KevinMarks]
It's a ui lag measurement, which Google is going to use for ranking from March
gerben joined the channel
#
[aciccarello]
My employer develops a web based app for companies to manage funds. Our old architecture is server rendered but has poor code organization so they want to move everything to react. There doesn't seem to be much concern about performance since it is a logged-in experience and our database is already a bottleneck. But I often wonder when React will bite us.
#
[aciccarello]
Or more accurately, when the "we don't care about page load time" attitude will lead to enough rot that things get really bad.
#
AramZS
Yeah, I mean, it's fine to say it is a logged in experience but customers who are logged in can have a bad time and that can have consequences too.
#
[tantek]
Ooh how do I measure the INP of my own site? That article doesn't clearly link to any tools
#
[aciccarello]
Does lighthouse have that metric?
#
[aciccarello]
AramZS Yeah, that seems to be missed. Or at least the baseline is bad enough that it's not yet a concern.
#
AramZS
I think lighthouse has it, there are a bunch of Google tools for testing CWV
to2ds joined the channel
#
to2ds
Thought INP was a Myers-Briggs kind of thing.
#
AramZS
aciccarello Yeah. I mean, if the problem is poor code organization uhhh.... react isn't going to solve that problem haha
#
[tantek]
lol to2ds++
#
Loqi
to2ds has 1 karma over the last year
#
[aciccarello]
I see DOM Content Loaded, First Contentful Paint, Time To Interactive, and Largest Contentful Paint in the Chrome "Performance Insights" tab. Don't See INP
#
AramZS
Looks like it is PageSpeed Insights that they want you to start with - https://web.dev/articles/inp
kubie joined the channel
#
[tantek]
I'm looking for a URL of the form something?url=http://example.com that I can just replace example with my domain and get a report
#
[tantek]
like validators, microformats parsers. etc.
#
[tantek]
I don't want to install something. web tools should work on the web in web-like ways
jacky and gRegorLove_ joined the channel
#
gRegor
what is PageSpeed Insights?
#
Loqi
Google PageSpeed Insights is a web-based page analysis tool run by Google that loads a page, its necessary resources, analyzes its performance and other factors and provides a score (based on Google Lighthouse performance) https://indieweb.org/PageSpeed_Insights
#
[tw2113]
bow to our google overlords </sarcasm_maybe> 😛 😄
#
AramZS
Looks like only some sites get the INP measure
#
[tantek]
gRegor++ thanks!
#
Loqi
gRegor has 21 karma in this channel over the last year (87 in all channels)
#
[tantek]
which one of those numbers is INP?
#
gRegor
none afaik
#
AramZS
It only shows on some sites apparently, but I found an alternative - https://treo.sh/sitespeed/tantek.com
#
AramZS
and you can just drop your domain in the url structure
#
[tantek]
ooh that's cool
#
[tantek]
I wonder where we should document that
#
AramZS
what is core web vitals?
#
Loqi
It looks like we don't have a page for "core web vitals" yet. Would you like to create it? (Or just say "core web vitals is ____", a sentence describing the term)
#
AramZS
Core web vitals is a set of measurements that help predict user experience of a website's performance.
#
[tantek]
what is Lighthouse
#
Loqi
Lighthouse is a Webmention, Microsub, and WebSub server built by Jacky Alciné to provide a means of handling engagement with other websites https://indieweb.org/Lighthouse
#
rubenwardy
you need enough google traffic for core web vitals to appear
#
rubenwardy
what is google lighthouse
#
Loqi
Google Lighthouse is an open source website testing tool for improving “performance, accessibility, progressive web apps, SEO”, that can be run via a website or in Chrome Dev Tools, and used by several members of the IndieWeb community to improve their personal sites https://indieweb.org/Google_Lighthouse
#
AramZS
what is core web vitals?
#
Loqi
Core web vitals is a set of measurements that help predict user experience of a website's performance https://indieweb.org/Core_web_vitals
#
jacky
ah ha
#
[tantek]
AramZS, perhaps start with moving CWV to a subsection of https://indieweb.org/Google_Lighthouse ? Since there's no documented indieweb relevance yet
#
AramZS
tantek I would hate to map it to a Google tool when it def has more broad implications? I was thinking of starting with the page linking to other pages on documented tools and links to non-wiki-ed tools?
#
[tantek]
is CWV a made up Google thing?
#
rubenwardy
yeah pretty much
#
AramZS
I think tho Google generally has led on CWV a lot of places are using those measurements, even if SEO pushed them to.
#
[tantek]
then it should be scoped to Google's perf tool
#
jacky
no no it's a "community project" sponsored by Google
#
[tantek]
wait for real jacky and not just open/community-washing?
#
rubenwardy
the actual measures inside Core Web Vitals are fairly common though
#
[KevinMarks]
From my pov if Alex is vouching for it, it's likely useful.
#
AramZS
I also think they're good for websites and the web experience generally
#
jacky
that's a bit tounge of cheek play, [tantek], since it uses everyone's site info to make those stats
#
AramZS
A lot of site building tooling projects use them to show their performance as well, tho that's a chicken and egg problem that is hard to deal with when it comes to Google.
#
rubenwardy
I'd say CWV is Google's term for web performance stats that it uses, but the stats themselves are fialry common
#
[tantek]
[KevinMarks] it wasn't a question of whether it was useful or not, it was a question who came up with it, the name, and who gets to decide what's "in it".
#
[tantek]
lol jacky
#
jacky
I gotta use /s more :)
#
rubenwardy
that's specifically lighthouse though, not CWV
#
rubenwardy
+11ty is
#
[tantek]
sounds like the acronym and phrase are a made-up Google things, and Google decides what it means
#
AramZS
Like a lot of things Google has decided matter, its origin and maintenance by Google are irrelevant as it takes on a life of its own just through the sheer gravity Google endows on to any of these type of projects :/
#
[tantek]
the page got deleted on Wikipedia because it was advertising / promotion lol https://en.wikipedia.org/wiki/Core_Web_Vitals
#
[tantek]
hey folks, no reason to help Google with pretending something is a "standard" whether specification or benchmark, when it literally is a made-up Google thing
#
jacky
see that had the knee jerk question of "where/who would maintain this?" which makes me look at the W3C/WHATWG for this tbh
#
jacky
(if not Google)
#
AramZS
I def know outside folks debate the metrics and process with Google to some results.
#
AramZS
'aight I'll move under lighthouse, it just seems odd when part of the point is listing tools that are not lighthouse that provide similar / the same metrics?
#
[tantek]
better to delete the page and recreate with a "Google " prefix since it's literally a Google thing, not a generic industry thing
#
AramZS
Ok, that makes sense
#
[tantek]
^ above Forbes article to substantiate that claim. Google made it up, so name it Google Core Web Vitals
#
[tantek]
re: outside folks debate, yes, the SEO community debate many things about search, doesn't mean they actually control anything about search results
#
AramZS
Oh no, I mean they argue directly with Google about measures and processes. It's caused Google to abandon and replace at least two or three of the measures in Lighthouse with measures that make more logical sense.
#
[tantek]
yup, sounds like free Q&A and bug reporting
#
[tantek]
again, comes back to authority, Google created it, named it, built it, and has the sole authority to "abandon and replace … measures" accordingly. that makes it firmly a Google thing
jacky joined the channel
#
AramZS
Added some more extensive notes around this to the page https://indieweb.org/Google_Core_Web_Vitals
#
[tantek]
AramZS++
#
Loqi
AramZS has 1 karma over the last year
#
rubenwardy
something key about CWV is that it's done as part of their web crawler. Unlike Lighthouse, which is a browser extension/client side tool
#
jacky
ah see
#
rubenwardy
oh wait no, user devices. Not web crawler
#
rubenwardy
so when you see CWV on that Page Insights page, it's crowdsourced from a large number of actual user devices running Chrome
#
[tantek]
sounds like a botfarm 🤖 🤖 🤖 🤖 🤖
#
gRegor
Yeah, we've run into confusion between the device stats that are averaged over time vs running a report one-time in Google Lighthouse in the browser. It's frustrating chasing those numbers, especially on some WordPress sites.
#
[tantek]
I mean Androids are bots so that fits
#
gRegor
Like, thanks Google for warning me that... *checks notes* the Google analytics.js script doesn't have an "efficient" cache policy. Maybe update your own cache policy then?
#
AramZS
yeah, it would be awesome if Google could do something about all of its own stuff that triggers CWVs lol
#
gRegor
iirc they consider efficient to be at least 1 year, so it doesn't matter if we cache something for less than that, Lighthouse warns it's an area for improvement
#
gRegor
At least there's a "show third party scripts" toggle, but it's on by default
#
[tantek]
yeah it's a trap
#
[tantek]
AramZS, they are clearly communicating that you shoudl stop using their stuff that triggers CWVs
#
[tantek]
it's team A dunking on team B
#
AramZS
lol yeah, I do when I can! Sadly, not my choice on some of the projects I work on.