#dev 2023-07-26

2023-07-26 UTC
epoch, prologic, Saphire, joshproehl, lockywolf, jjuran, GWG, bret and gnoo joined the channel
#
[KevinMarks]
Phanpy flows well, it puts reposts in a sideways scrolling cluster mixed in with the feed, it clumps like and reposts in notifications well.
#
[KevinMarks]
Elk was pretty good, but phanpy just feels better, not sure I can pin it down specifically. Both are a lot better than mastodon default.
#
[KevinMarks]
I haven't tried native apps, as I like web apps better
[timothy_chambe] joined the channel
#
[timothy_chambe]
Example of our early rebuilt version of the previous ActivityPub "test suite" being used: https://indieweb.social/@OpinionatedGeek@mastodon.social/110747313025171378
#
Loqi
[preview] [Geoff] @activitypubtestsuite A wee update. I've run the automated tests in the test suite @steve put up at https://aptestsuite.stevebate.dev/ and my in-development code has now successfully passed the automated C2S tests.I had to make some changes to the te... https://files.mastodon.social/media_attachments/files/110/747/282/968/646/758/original/16f47fcefb5bb11d.png
tei_, tei_1 and btrem joined the channel
#
aaronpk
i'm confused, that c2s test description links to a nonexistent fragment in the spec about how activitypub uses oauth
#
aaronpk
also the link from the test suite is broken somehow
#
aaronpk
also why did they prioritize developing the c2s tests? that is the least used part of activitypub :(
#
[KevinMarks]
They were restoring the original tests I think
[pfefferle]1 joined the channel
eitilt, tei_, gRegor and gRegorLove_ joined the channel
#
[timothy_chambe]
Kevin is exactly right: "They were restoring the original tests I think." Our first task was simply to get the hold test up and running and translated into python to learn from what was there and to see the holes that needed filling or rethinking entirely.
gxt, geoffo and [davidmead] joined the channel
#
c​apjamesg
Is there an IndieWeb Foursquare?
#
c​apjamesg
Or rather Swarm.
btrem joined the channel
#
sknebel
what would that look like?
#
[schmarty]
capjamesg: currently there is Swarm + OwnYourSwarm
#
[KevinMarks]
you can publish checkins on your site, woudl an indieweb swarm crawl those and tell you where people are?
#
[tantek]
what is a checkin
#
Loqi
A checkin is the action of checking into a location and sharing that information https://indieweb.org/checkin/
#
[tantek]
^ capjamesg, that's how you can create Foursquare/Swarm like posts on your own site, or PESOS them automatically from Swarm using OwnYourSwarm
#
[tantek]
if you are looking for a /reader view of checkins, that's an entirely different question 🙂
#
[schmarty]
yeah i guess the question is what you're looking to do. if publishing checkins, there isn't really a standalone micropub client for that.
#
[schmarty]
i've got some proof-of-concept pieces for building one where i've played w/ browser location API, crawling my own checkin posts to build out a list of "known" venues, and setting up a copy of Manton's Meridian project (https://latl.ong/) which does venue proximity lookups using openstreetmap data.
#
[schmarty]
i keep procrastinating on it because it feels like a big project _and_ because i'm conflicted about publicly posting my location anyway.
#
[KevinMarks]
known has a check UI, and some of the other micropub clients do I think
#
[tantek]
indeed: "isn't really a standalone micropub client for that". I collected some checkin/venue creation UX brainstorming on my "to implement" page/section here: https://indieweb.org/Falcon#Indie_Venues_and_Checkins (figuring out that UX is more important than the micropub-ness IMO)
#
[tantek]
(obviously because it's on the wiki if any of those ideas resonate with you please take them and re-use as you see fit)
#
[tantek]
re: "conflicted about publicly posting my location" strongly agreed [schmarty]
#
[schmarty]
tantek: ooh thanks for this brainstorming link. UX has been one of the more fun sticking points.
#
c​apjamesg
I want something between Breakfast and Coffee and Swarm.
#
[schmarty]
i've had similar thoughts to a lot of these! levels of access may be the stickiest, for me. all content on my site is public for now. i have a separate site (also micropub-enabled) that is purely private. i have no in-between for select audiences.
#
c​apjamesg
The ease of Swarm, but the publishing of Breakfast and Coffee.
#
c​apjamesg
I’d like to be able to curate personal maps on b&c maybe.
#
[schmarty]
capjamegs: which features of Swarm in particular?
#
[schmarty]
checking in to a venue? seeing the check-ins of others? points, leaderboards, and gamification??
#
c​apjamesg
[schmarty] more the usability than the points etc.
#
Loqi
[preview] James' Coffee Blog ☕
#
[schmarty]
that's also a Google Maps feature
#
[schmarty]
(custom maps is also a Google Maps feature)
#
c​apjamesg
My setup involves adding lat longs to a CSV file.
#
c​apjamesg
Then using a Ruby script to generate markdown for them.
#
c​apjamesg
Then using my Python static site generator to generate the HTML 🤣
#
[schmarty]
capjamesg: you're describing Swarm as "easy to use" but not _what_ it is easy to to use _to do_.
#
c​apjamesg
I want to be able to check in with ease.
#
[schmarty]
haha perfect thank you :}
#
c​apjamesg
I like the UX of my setup and it would be nice to let others use it.
#
[KevinMarks]
The other thing Swarm does is only show your checkins to people you have in your list
#
[KevinMarks]
classic double opt-in connection rather than a following model
#
[schmarty]
capjamesg: i've gotta ask again - "[you] like the UX of [your] setup" - to do what? sharing links to maps with pinned locations?
#
c​apjamesg
[schmarty] Apologies, I’m on my phone. There may be a medium effect at play. Longer messages are easier to type on a physical keyboard.
#
c​apjamesg
Yeah sharing links to maps with pinned locations.
#
c​apjamesg
This is one of the features on my site I link to the most.
#
c​apjamesg
I should probably add breadcrumbs.
#
[schmarty]
fair enough. i've also thought too deeply about checkins so i might be hallucinating ambiguity where others would not. 😂 thanks for clarifying. capjamesg++
#
Loqi
capjamesg has 41 karma in this channel over the last year (116 in all channels)
#
[tantek]
[schmarty]++ there is LOTS of ambiguity when it comes to checkins, venues, maps use-cases — there are SO MANY to choose from so yeah, it's hard to know what someone in particular "likes" about their "setup" for what use-case
#
Loqi
[schmarty] has 15 karma in this channel over the last year (53 in all channels)
#
c​apjamesg
No worries. I think before anything I want to redesign my map experience.
#
c​apjamesg
Linking between pages isn’t great.
#
c​apjamesg
Oh!
#
c​apjamesg
One second…
#
c​apjamesg
Ah I can’t find it.
#
[tantek]
pet peeve: I really dislike that all (seemingly all) the calculator/conversion tools/sites on the web are 100% dependent on JS. Seems like a great opportunity to fairly easily demonstrate progressive enhancement, like literally handle every computation either clientside or via form submission. do such sites just not exist?
#
c​apjamesg
Breakfast and Coffee generates maps on category pages.
#
c​apjamesg
But it does so in an incredibly inefficient way.
#
[tantek]
like every single arithmetic calculator, units of measure converter, currency converter etc.
#
c​apjamesg
I have been meaning to make a Levenshtein distance calculator. Progressive enhancement would be good to practice here.
#
[schmarty]
tantek: i weirdly prefer these to run in my browser so that they aren't sending data to someone else's server? of course with javascript's security model i have no guarantees about that 😕
#
[KevinMarks]
can you use the CSS validation stuff to do calculations?
#
[tantek]
[schmarty] in general same although I'd almost rather they collect a few random numbers than have unlimited JS access
#
rubenwardy
hosting a server costs money, static is cheaper. Makes more sense to use JS imo
#
[tantek]
for an unknown site that I find via a web search
#
[tantek]
as a user I don't want to trust a random site I find via web search to run JS
#
c​apjamesg
Hm…
#
[tantek]
makes more sense as a user to not have to trust random sites with JS
#
c​apjamesg
Is there a low data JS API?
#
c​apjamesg
There is right?
#
[tantek]
as a user I don't care and have zero knowledge of any server costs etc.
#
[schmarty]
tantek: this is one of the totally broken things about the web imo.
#
c​apjamesg
Ah maybe not.
#
[tantek]
[schmarty] I am here to help fix the "totally broken things about the web"
#
c​apjamesg
My use case is I want to be able to say “hey, I have a poor connection, give me a small site.”
#
[tantek]
^ that's a good reason to ask for a "no JS needed" site
#
[schmarty]
hehe. how about a browser standard that requires the user to approve all network access from javascript? :}
#
c​apjamesg
I got a text saying I was about to hit my fair use cap on data (Instagram was a big contributor, but so too was Firefox, aka the web.)
#
aaronpk
huh, the little conversion sites I would _prefer_ to run via JS instead of do a server side round trip
#
[tantek]
missing the point. it's not either or, it's progressive enhancement
#
aaronpk
JS network access as a prompt would certainly be interesting!
#
c​apjamesg
I would love to be able to indicate to a site that I want a small web page if you have one.
#
[tantek]
capjamesg, when would you NOT want a small web page?
#
[schmarty]
there are lots of tools where i want the data and computation to stay on my device, period. sending it to a remote server is a failure mode. so the classic "progressive enhancement" model of submitting forms is a violation.
#
[tantek]
a small web page should be the default
#
c​apjamesg
Yeah 😅
#
aaronpk
agreed [schmarty]
#
c​apjamesg
[schmarty] yeah.
#
c​apjamesg
Side note: how can 4G work underground?
#
aaronpk
repeaters
#
aaronpk
stick a 4G transceiver underground
#
[tantek]
[schmarty] what I'm seeing is sites that load broken forms that don't do jack (not even let you type!) without JS
#
[tantek]
that's ridiculous
#
c​apjamesg
aaronpk++
#
Loqi
aaronpk has 27 karma in this channel over the last year (91 in all channels)
#
[KevinMarks]
I think you could do certain types of calculation purely using form validation, but it would be a hack
#
[tantek]
progressive enhancement does not mean a "model of submitting forms" — that's a mischaracterization. making sure to support that as a fallback is the point.
#
c​apjamesg
[schmarty] what is the thing that is broken about the web?
#
[tantek]
progressive enhancement (these days) means supporting the full range of form submission, to fully JS interactive without form submission, to fully offline support
#
[schmarty]
tantek: for some use cases, implementing that "fallback" would be a violation of privacy or security.
#
[tantek]
yes I don't disagree, in that case, the "non-implementing" of it should be explicit in the UI or a UI option!
#
c​apjamesg
++
#
[tantek]
instead of sorry, this page is going to look broken and weirdly not work
#
[tantek]
which is what you almost always see instead with js;dr
#
[schmarty]
<noscript>"This site requires Javascript to function"</noscript>??? 😂
#
c​apjamesg
A checkbox like “do my calculation on my device”?
#
[tantek]
at least that yes
#
c​apjamesg
To whom was that addressed?
#
c​apjamesg
I presume [schmarty] 🤣
#
[tantek]
or a default "✅ work offline" checkbox
#
[tantek]
that you can uncheck
#
[schmarty]
capjamesg: i find it broken that the javascript "sandbox" is so permissive. extensions can mitigate bad behaviors a little, but generally allowing JS means trusting it not to do "bad things" which to me includes collecting telemetry, etc.
#
[tantek]
yes that was addressed to [schmarty]'s noscript quip
#
[KevinMarks]
If you use a form with GET you could make a service worker cache previous results so it works offline.
#
c​apjamesg
I do have a Fahrenheit to Celsius DNS server.
#
[tantek]
this is the point, with a service worker, you could handle ALL network requests locally for the site
#
c​apjamesg
I find service workers really hard to comprehend. Any good introductory reads?
#
[schmarty]
disabling javascript makes things "safer" in the sense that there won't be any "invisible" network requests happening without user input. but then you _must explicitly_ send data to servers for any dynamic behavior.
#
c​apjamesg
Adactio’s offline example was nice but I still ran into issues.
#
[KevinMarks]
That's a bit weird though - you're still writing js but you have an html only webpage with the SW doing the js?
#
[schmarty]
capjamesg: i like chris ferdinandi's piece on it for CSS tricks: https://css-tricks.com/add-a-service-worker-to-your-site/
#
[tantek]
capjamesg, you know the usual place to look
#
[tantek]
what is a service worker
#
Loqi
service workers are scripts that run in the background, separate from tabs with the site open, and are commonly used for offline functionality and push notifications https://indieweb.org/service_worker
#
c​apjamesg
We need to get Loqi working on Discord.
#
c​apjamesg
(For what is prompts)
#
c​apjamesg
What is a service worker?
#
[tantek]
[schmarty] do you have a service worker on your site? did you follow the CSS tricks piece instructions to build it? Then add yours to IndieWeb Examples and the article there to the service worker page ^ :)
#
[schmarty]
tantek: i am all for having a service worker as progressive enhancement to let something work offline. if that service worker fails for any reason (there are many) then you're sending data to a server again - which can be a privacy/security failure.
#
c​apjamesg
Hmmmmmm!
#
c​apjamesg
Could I have a service worker serve low-data HTML?
#
c​apjamesg
Also…
#
c​apjamesg
I wonder if I should set up a readability.js proxy for traveling.
#
[schmarty]
tantek: good question. i have only dabbled with them on learning projects and haven't found a use-case for them for my personal site, yet.
#
[schmarty]
capjamesg: a service worker can fully muck with the request and response as long as the destination is a URL on your own site.
#
c​apjamesg
Then I can output only the HTML I care about (like reader mode, but the server is dealing with retrieving the HTML rather than my phone doing everything).
#
c​apjamesg
I wonder about a “low data” checkbox on my site.
#
c​apjamesg
I am trying to solve for two cases: no network connection, and a bad network connection.
#
c​apjamesg
In the former, full offline is key.
#
c​apjamesg
In the latter, being able to offer a minimal rendering experience is ideal.
#
[tantek]
why not always serve the "low data" version then enhance upward on "high speed" connections?
#
[tantek]
there is no reason to burden the user with a "low data" checkbox
#
c​apjamesg
How would I do that, technically?
#
c​apjamesg
Low data would be just the text and some in-line CSS for readability.
#
[tantek]
exactly
#
c​apjamesg
But I mean how to I determine low vs high speed connections?
#
c​apjamesg
?
tei_ joined the channel
#
c​apjamesg
Oooh!
#
c​apjamesg
> Returns true if the user has set a reduced data usage option on the user agent.
#
c​apjamesg
For the saveData() property.
#
[tantek]
[schmarty] one possible use-case for your personal site would be using a service-worker to cache and handle the links from your home page to your own domain. so someone could load your home page, start reading it, and meanwhile a service-worker is caching your https://martymcgui.re/posts/ page, so then when that reader goes underground in the subway and taps your "(See all)" link, it instantly loads and displays! better UX!
#
[tantek]
"cache and handle the links from your home page" literally only one level, i.e. only what your home page directly links to.
#
[schmarty]
lol i keep forgetting that hidden meta description on my posts page 🙈 metacrap--
#
Loqi
metacrap has -1 karma in this channel over the last year (-2 in all channels)
#
[tantek]
capjamesg, no, ignore the APIs to do so. use declarative techniquest
#
[tantek]
lol "hello??"
#
[tantek]
techniques*
#
[schmarty]
Declarative TechniQuest sounds like a good fatberg startup name
#
c​apjamesg
I was going to ask what is a techniquest 🤣
#
c​apjamesg
What do you mean [tantek]?
#
c​apjamesg
I am going to write this on my whiteboard when I get home.
#
c​apjamesg
I want to get this right.
#
[tantek]
capjamesg, e.g. you don't use an API to ask how wide is a window or screen and then custom create some CSS, you use media queries to do so declaratively
#
[tantek]
the declarative option is both more robust (no js;dr bs), and more user privacy respecting
#
c​apjamesg
How do I implement with that approach?
#
[tantek]
if you find yourself asking "what is the API for how I find out this information about the user or their device" just stop
#
[tantek]
you're doing it wrong
#
[tantek]
capjamesg, "How do I implement with that approach" -> learn progressive enhancement
#
[schmarty]
i currently don't think it's "worth it" to force visitors to cache my posts page content due to the way all my content is lumped together. it's likely to be 10+mb of cat gifs!! 😂
#
[tantek]
what is progressive enhancement
#
Loqi
progressive enhancement is the web development practice of building web pages, sites, apps so they are at least readable, and preferably allow for most if not all interactions, from any kind of browser, and optionally take advantage of additional capabilities (like various CSS & JS features) when available https://indieweb.org/progressive_enhancement
#
[tantek]
lol very fair [schmarty]
#
[snarfed]
"The Places dataset, in particular, represents a major, previously unavailable open dataset, with the potential to map everything from new businesses big and small to pop-up street markets located anywhere in the world...an up-to-date, comprehensive database of POIs [places of interest]."
#
[schmarty]
🗺 👀
#
[tantek]
that's quite a lazy article, doesn't even mention OSM and how many POIs are in there
#
c​apjamesg
[tantek] what, specifically, would allow me to provide more for a user who is on a faster network connection in a progressively enhanced way?
#
c​apjamesg
We have ruled out user opt in and JS in this discussion so I am a tad confused 🙂
#
[tantek]
capjamesg, depends on the content use-case. different for text vs images vs video vs stylistic things like background images, border images, background videos etc.
#
[tantek]
progressive enhancement doesn't r
#
[tantek]
doesn't "rule out JS", it rules out DEPENDING on JS
#
c​apjamesg
Suppose I have a blog post. That blog post loads various JS scripts to enable nice features.
#
c​apjamesg
Like dark mode.
#
c​apjamesg
(Already progressively enhanced 😉)
#
[tantek]
dark mode should never require any JS these days. purely doable with CSS
#
c​apjamesg
(JS allows me to opt in / out?, after doing preference checks, etc.)
#
c​apjamesg
I don’t even want to make any JS requests in the first place if a user is on a slow connection.
#
[schmarty]
capjamesg: sounds like the initial delivered HTML and CSS may already be the minimal low-data experience?
#
[tantek]
also "blog post loads various JS scripts" makes me shudder and sad
#
c​apjamesg
The thing is these are nice to haves! If they don’t load, the user’s experience isn’t impacted.
#
rubenwardy
I'd actually like to make a blog post with a lot of JS some time - thinking about teaching something in an interactive way
#
rubenwardy
like ncase.me
#
c​apjamesg
[schmarty] exactly!
#
c​apjamesg
ncase.me is awesome.
#
[schmarty]
there are some signals for browsers to specify they prefer reduced data but support is pretty bad. `prefers-reduced-data` CSS media query has zero support. `Save-Data` http header only works on a few browsers.
#
c​apjamesg
I remember reading about that CSS query.
gRegorLove__ joined the channel
#
sknebel
Also surprisingly tricky for browser to even know what's appropriate
#
sknebel
User-set "metered connection" flags on OS level kinda work, but not much more
#
sknebel
(hm, I wonder if there are DHCP/RA extensions for that on network level)
#
sknebel
"hi client, warning, this is a German train wifi, please just try to avoid traffic at all" 😜
#
[tantek]
^ 100% this
#
[tantek]
also, German train wifi is an *excellent* progressive enhancement / robustness test for websites
#
c​apjamesg
Scotland train wifi too 😉
#
[tantek]
capjamesg, from main channel, read up on the winners of this contest and go view their source too: https://waxy.org/2023/07/the-tiny-awards-winner/
#
Loqi
[preview] [Andy Baio] The Tiny Awards Winner Is…
#
[tantek]
for more on "how to serve minimal HTML + CSS" etc.
#
[tantek]
in particular, checkout https://brr.fyi/ and https://thehtml.review/ — both of which load very fast and function quite well without JS
#
c​apjamesg
Ah it was announced!
#
Loqi
[preview] [tylertreat] comcast: Simulating shitty network connections so you can build better systems.
#
[tantek]
performance << Examples of tiny websites that have high performance: https://brr.fyi/ and https://thehtml.review/ via https://waxy.org/2023/07/the-tiny-awards-winner/
#
Loqi
ok, I added "Examples of tiny websites that have high performance: https://brr.fyi/ and https://thehtml.review/ via https://waxy.org/2023/07/the-tiny-awards-winner/" to the "See Also" section of /performance https://indieweb.org/wiki/index.php?diff=88750&oldid=88383
vilhalmer, tei_, tei_1, Soni, [tw2113_Slack_], IWSlackGateway, [benatwork], geoffo, [tantek] and pharalia joined the channel