This blog post really is a good (and harrowing) reflection of how Microsoft is dismantling the developer experience into nothing but a bunch of "services" - for the worse. https://ghuntley.com/fracture/

byhttps://jacky.wtf • posted archived copycurrent

And it's so sad because if things had stood their ground against Microsoft, this could have been prevented. But instead, going along with capitalism, we're actively giving up critical components of this ecosystem to a company that invented the EEE. If there's any concern for developer experience and you'e focused on people, we have to start being serious about the choices we make.

It's thanks to Samuel Parnell's work with his union, IIRC. More about him at https://nzhistory.govt.nz/people/samuel-parnell. Learned about him in the book "Overtime"

byhttps://jacky.wtf • posted archived copycurrent

Well, reading https://en.wikipedia.org/wiki/Samuel_Duncan_Parnell#Early_years, it looks like the union then was NOT in favor of this. I think that this might be an artifact of time (like how can we be sure people weren't in favor?)

Does anyone know of any resources detailing how unions brought about the 8 hour work day/40 work work week/5 day work week/weekends off?



I've been googling but everything is very low on details.
byOlu (they/them) • posted archived copycurrent

It's thanks to Samuel Parnell's work with his union, IIRC. More about him at https://nzhistory.govt.nz/people/samuel-parnell. Learned about him in the book "Overtime"

Switching costs for an IndieAuth server

One of the things I love about building with IndieWeb building blocks is that (sometimes through more work than anticipated) you can swap out pieces of your site without (much) disruption because the seams between building blocks are well specified.



So, this is me documenting how I replaced my IndieAuth setup to stop leaning on Aaron’s IndieAuth.com (which has been on the verge of retiring any day now for some years).



Please excuse this long and rambling post. Feel free to skip around!





What is IndieAuth?



At a high-level, IndieAuth is a way to sign in using your website as an identity.



Without digging too deeply into the plumbing, you start by updating your website’s homepage with some extra header info that says “my IndieAuth service is over there”. From there, you can sign into services that support IndieAuth (like the IndieWeb wiki, the social feed reader service Aperture, and more. And you can use your IndieAuth server to protect your own services, such as a Micropub server that can create new posts on your site.



Why switch?



I’ve been using indieauth.com as my IndieAuth setup since late 2016 because it was easy to set up, because it uses something called RelMeAuth to let me sign in using services I already trust (like GitHub).



However, indieauth.com has been growing stale as the IndieAuth spec has evolved. indieauth.com’s maintainer has been discussing replacing it since at least 2017.



The inciting incident for my switch was looking at OwnCast - a self-hostable video streaming service with attached chatroom. OwnCast’s chat allows using IndieAuth to sign in, which sounded great to me, but OwnCast’s implementation wasn’t expecting indieauth.com’s old-style response format.



Why set up my own?



There are a bunch of IndieAuth server implementations listed on the IndieWeb wiki. However: simplest of them (selfauth + mintoken) are now out of date with the spec and haven’t been replaced, yet. Others tend to be built into other CMSes like WordPress. A couple of standalone servers exist but are in languages I am not comfortable working in (hello Rust and Go) or have deployment requirements I wasn’t thrilled about supporting (hello Rails).



I found Taproot/IndieAuth on this page and that looked promising - a PHP library intended to be deployed within a fairly standard PHP web app style (“any PSR-7 compatible app”).



I knew this would be some work but it sounded promising and so I began the week-ish long process of actually writing and deploying that “PSR-7 compatible app” built on taproot/indieauth.



tl;dr say hello to Belding



Belding is an “PSR-7 compatible” PHP web app that provides a standalone IndieAuth endpoint for a single user with a simple password form for authentication.



I would love to go into the process and pitfalls of putting it together, but instead I’ll link to the README where you can learn more about how it works, how to use it, its limitations, etc.



Switching costs for an IndieAuth server



1. Tell the World



First up, you’ll need to update the headers on your site. I switched my authorization_endpoint and token_endpoint to my new server from indieauth.com. Since I’m updating to support the latest spec, I also added the indieauth-metadata header (which should eventually replace the other two).



Now that your site is advertising the new IndieAuth server, you will likely experience logouts or weird access denied reponses everywhere that your site has been used with IndieAuth.



2. Tell your own services



I needed to configure my own “relying apps” so they know to talk to the new server when checking that a request is allowed. This list thankfully wasn’t too long.





Beyond the effort of getting my server working as an indieauth.com replacement, I also took steps to try and support the latest in the IndieAuth spec. That meant updating these micropub servers to use the new “token introspection” feature which has some tighter security requirements.



(Note: I initially made the same change for my self-hosted copy of Aperture, but found it would be too many changes for me to take on at the moment. Instead, I updated by IndieAuth server to allow the older and less secure token verification method used by Aperture.)



3. Sign-in to all the things again \o|



Once all my relying apps were all talking to the new IndieAuth server, it was time to re-sign-in to all the things:





Takeaways



There are a lot of improvements I’d like to make to Belding, but in general I am happy that it seems to work and, outside of the time to develop the server itself, my website and the tools I use to manage it were only broken for about a day.



I think it’d also be really nice to wrap up Belding a bit so it’s easy to configure and deploy on free-and-cheap platforms like fly.io. I believe it should be easier for folks to spin up and control their own IndieWeb building blocks where possible!



It’s also become clear to me that there are some user- and developer-experience holes around setting up relying apps. The auth requirements for token introspection, for example, means you need a way to manage access for each “backend” that you have that relies on IndieAuth to protect itself!



Long story short (too late) I am finally able to sign into OwnCast server chat using my domain. 😂😅

byMarty McGuireMarty McGuire • posted archived copycurrent
Library probably wont pick up changes without a Deck UI restart, but if you can do it via command line, SSH is active when the Deck UI is up.
bySteve Streza 🏳️‍🌈 • posted archived copycurrent

A UI restart is painful (mainly because of the time it'd take) but this is good to know. I'm almost always connected to my Deck over SSH at home so I could play with this a bit more.

https://pbs.twimg.com/ext_tw_video_thumb/1562847542521503744/pu/img/j94PzbLLKm0IrQvh.jpg
🍄I Was a Teenage Exocolonist has 🚀launched🚀! 🍄



Come explore our narrative deckbuilding RPG, where you'll live many lives, and the choices you make, make you. Available now on Switch, PS4/5, and PC/Mac/Linux.



https://store.steampowered.com/app/1148760/I_Was_a_Teenage_Exocolonist/
byI Was A Teenage Exocolonist • posted archived copycurrent

The link on your website doesn't point to the Nintendo Switch listing!

Has anyone figured out how to get my Itch library to sync with the Steam Deck's library seamlessly? I'd rather not have to constantly switch to Desktop mode to add games to the library. This CAN be automated, I believe.

I'd be curious if something like https://github.com/tauri-apps/tauri could be used here (mainly to allow people to use their own custom HTML + CSS to drive experiences).