Reporting for Jury Duty 👨⚖️
{
"type": "entry",
"published": "2022-08-01T07:43:13-07:00",
"url": "https://aaronparecki.com/2022/08/01/6/",
"syndication": [
"https://www.swarmapp.com/user/59164/checkin/62e7e681014931243aa8e149"
],
"content": {
"text": "Reporting for Jury Duty \ud83d\udc68\u200d\u2696\ufe0f",
"html": "Reporting for Jury Duty <a href=\"https://aaronparecki.com/emoji/%F0%9F%91%A8%E2%80%8D%E2%9A%96%EF%B8%8F\">\ud83d\udc68\u200d\u2696\ufe0f</a>"
},
"author": {
"type": "card",
"name": "Aaron Parecki",
"url": "https://aaronparecki.com/",
"photo": "https://aaronparecki.com/images/profile.jpg"
},
"checkin": {
"type": "card",
"name": "East County Courthouse",
"latitude": "45.518719",
"longitude": "-122.472653",
"url": "https://foursquare.com/v/4f3c2c16e4b04caf0190245a"
},
"post-type": "checkin",
"_id": "30601293",
"_source": "16"
}
Love my new sticker! Thanks @MoveOn for all you do!
{
"type": "entry",
"published": "2022-08-01T12:11:31+00:00",
"url": "https://twitter.com/afitnerd/status/1554077365222907904",
"photo": [
"https://pbs.twimg.com/media/FZExIC9WIAM-aJO.jpg"
],
"content": {
"text": "Love my new sticker! Thanks @MoveOn for all you do!",
"html": "Love my new sticker! Thanks <a href=\"https://twitter.com/MoveOn\">@MoveOn</a> for all you do!"
},
"author": {
"type": "card",
"name": "Micah Silverman - #StopWar",
"url": "https://twitter.com/afitnerd",
"photo": "https://pbs.twimg.com/profile_images/1169746170740137984/R7RpX8Q7.jpg"
},
"post-type": "photo",
"_id": "30599116",
"_source": "2773"
}
így (@ Central Library @OodiHelsinki in Helsinki, Uusimaa) swarmapp.com/c/hHmYMgZikKY
{
"type": "entry",
"published": "2022-08-01T10:46:24+00:00",
"url": "https://twitter.com/slsoftworks/status/1554055943863795714",
"photo": [
"https://pbs.twimg.com/media/FZEdpURX0AA9SHG.jpg"
],
"content": {
"text": "\u00edgy (@ Central Library @OodiHelsinki in Helsinki, Uusimaa) swarmapp.com/c/hHmYMgZikKY",
"html": "\u00edgy (@ Central Library <a href=\"https://twitter.com/oodihelsinki\">@OodiHelsinki</a> in Helsinki, Uusimaa) <a href=\"https://www.swarmapp.com/c/hHmYMgZikKY\">swarmapp.com/c/hHmYMgZikKY</a>"
},
"author": {
"type": "card",
"name": "flaki",
"url": "https://twitter.com/slsoftworks",
"photo": "https://pbs.twimg.com/profile_images/749678683514896385/7gxIRnoC.jpg"
},
"post-type": "photo",
"_id": "30597800",
"_source": "2773"
}
Incredible. And then Whoopi got to star in the second Star Trek series!
4. Whoopi Goldberg on the impact Nichelle Nichols had on her life.
{
"type": "entry",
"published": "2022-08-01T06:18:27+00:00",
"url": "https://twitter.com/jaredcwhite/status/1553988510255706112",
"quotation-of": "https://twitter.com/yashar/status/1553821918599360512",
"content": {
"text": "Incredible. And then Whoopi got to star in the second Star Trek series!"
},
"author": {
"type": "card",
"name": "Jared White",
"url": "https://twitter.com/jaredcwhite",
"photo": "https://pbs.twimg.com/profile_images/1431863008288931841/hsLQJBv4.jpg"
},
"post-type": "note",
"refs": {
"https://twitter.com/yashar/status/1553821918599360512": {
"type": "entry",
"published": "2022-07-31T19:16:28+00:00",
"url": "https://twitter.com/yashar/status/1553821918599360512",
"photo": [
"https://pbs.twimg.com/media/FZBIzIiVQAA-AJ-.jpg"
],
"in-reply-to": [
"https://twitter.com/yashar/status/1553818853343277058"
],
"content": {
"text": "4. Whoopi Goldberg on the impact Nichelle Nichols had on her life."
},
"author": {
"type": "card",
"name": "Yashar Ali \ud83d\udc18",
"url": "https://twitter.com/yashar",
"photo": "https://pbs.twimg.com/profile_images/1475314622332764161/tzLI4Zeb.jpg"
},
"post-type": "reply"
}
},
"_id": "30594914",
"_source": "2773"
}
Are you comfortable any old place during eternal Caturday?
{
"type": "entry",
"published": "2022-08-01T00:14:09-0400",
"url": "https://martymcgui.re/2022/08/01/001409/",
"category": [
"caturday"
],
"video": [
"https://res.cloudinary.com/schmarty/video/upload/vc_h264/mmmgre/fe/a8/4f/64/7b493e773cf4a673250754bdcde7c81ca567ee107bf6c1089b4b721b.mov"
],
"content": {
"text": "Are you comfortable any old place during eternal Caturday?",
"html": "<p>Are you comfortable any old place during eternal Caturday?</p>"
},
"author": {
"type": "card",
"name": "Marty McGuire",
"url": "https://martymcgui.re/",
"photo": "https://martymcgui.re/images/logo.jpg"
},
"post-type": "video",
"_id": "30593994",
"_source": "175"
}
I wonder if the folks dunking on Lockheed-Martin know who built the Javelins that destroy Russian tanks and the HMARS that target Russian artillery in Ukraine.
{
"type": "entry",
"published": "2022-08-01T01:00:47+00:00",
"url": "https://twitter.com/karabaic/status/1553908567907770369",
"content": {
"text": "I wonder if the folks dunking on Lockheed-Martin know who built the Javelins that destroy Russian tanks and the HMARS that target Russian artillery in Ukraine."
},
"author": {
"type": "card",
"name": "jack the nonabrasive",
"url": "https://twitter.com/karabaic",
"photo": "https://pbs.twimg.com/profile_images/1256785873384861696/QfRzUvne.jpg"
},
"post-type": "note",
"_id": "30592751",
"_source": "2773"
}
From @ScottGottliebMD’s Uncontrolled Spread, p 288. Socialized medicine kicked American healthcare’s ass often, even in the design of practical clinical trials.
Americans pay too much for too little health care.
{
"type": "entry",
"published": "2022-08-01T00:23:06+00:00",
"url": "https://twitter.com/karabaic/status/1553899082812338177",
"photo": [
"https://pbs.twimg.com/media/FZCO-tgVEAA-ryg.jpg"
],
"content": {
"text": "From @ScottGottliebMD\u2019s Uncontrolled Spread, p 288. Socialized medicine kicked American healthcare\u2019s ass often, even in the design of practical clinical trials.\n\nAmericans pay too much for too little health care.",
"html": "From <a href=\"https://twitter.com/ScottGottliebMD\">@ScottGottliebMD</a>\u2019s Uncontrolled Spread, p 288. Socialized medicine kicked American healthcare\u2019s ass often, even in the design of practical clinical trials.\n\nAmericans pay too much for too little health care."
},
"author": {
"type": "card",
"name": "jack the nonabrasive",
"url": "https://twitter.com/karabaic",
"photo": "https://pbs.twimg.com/profile_images/1256785873384861696/QfRzUvne.jpg"
},
"post-type": "photo",
"_id": "30592426",
"_source": "2773"
}
I had thought that a muzak version of My Heart Will Go On would be the least expected song to hear at a Ecuador volcano lodge, but, no, Wind of Change by Scorpions takes the cake tonight.
{
"type": "entry",
"published": "2022-08-01T00:12:49+00:00",
"url": "https://twitter.com/kitt/status/1553896497367973888",
"content": {
"text": "I had thought that a muzak version of My Heart Will Go On would be the least expected song to hear at a Ecuador volcano lodge, but, no, Wind of Change by Scorpions takes the cake tonight."
},
"author": {
"type": "card",
"name": "Kitt Hodsden \ud83c\udfd4",
"url": "https://twitter.com/kitt",
"photo": "https://pbs.twimg.com/profile_images/1328422362962743296/Mz9RZKvo.jpg"
},
"post-type": "note",
"_id": "30592299",
"_source": "2773"
}
Cathy spotted me going on a supply run across the bridge, getting 5 steps and deciding biking was smarter 😂
Night & Day. @OregonDOT @PBOTinfo @repblumenauer Bridge Day opening with @RescueEwe @bikeloudpdx @anomalily @pedalpalooza
{
"type": "entry",
"published": "2022-08-01T00:09:13+00:00",
"url": "https://twitter.com/anomalily/status/1553895591259688962",
"quotation-of": "https://twitter.com/CathyTuttle/status/1553840947066052610",
"content": {
"text": "Cathy spotted me going on a supply run across the bridge, getting 5 steps and deciding biking was smarter \ud83d\ude02"
},
"author": {
"type": "card",
"name": "Lillian Karabaic",
"url": "https://twitter.com/anomalily",
"photo": "https://pbs.twimg.com/profile_images/1455236306162761732/jPv9ROKG.jpg"
},
"post-type": "note",
"refs": {
"https://twitter.com/CathyTuttle/status/1553840947066052610": {
"type": "entry",
"published": "2022-07-31T20:32:05+00:00",
"url": "https://twitter.com/CathyTuttle/status/1553840947066052610",
"video": [
"https://video.twimg.com/ext_tw_video/1553838053348610048/pu/vid/720x1280/wo-z7BrUY9v2azj0.mp4?tag=12"
],
"in-reply-to": [
"https://twitter.com/CathyTuttle/status/1553621845722550272"
],
"content": {
"text": "Night & Day. @OregonDOT @PBOTinfo @repblumenauer Bridge Day opening with @RescueEwe @bikeloudpdx @anomalily @pedalpalooza",
"html": "Night & Day. <a href=\"https://twitter.com/OregonDOT\">@OregonDOT</a> <a href=\"https://twitter.com/PBOTinfo\">@PBOTinfo</a> <a href=\"https://twitter.com/repblumenauer\">@repblumenauer</a> Bridge Day opening with <a href=\"https://twitter.com/RescueEwe\">@RescueEwe</a> <a href=\"https://twitter.com/bikeloudpdx\">@bikeloudpdx</a> <a href=\"https://twitter.com/anomalily\">@anomalily</a> <a href=\"https://twitter.com/pedalpalooza\">@pedalpalooza</a>"
},
"author": {
"type": "card",
"name": "Cathy Tuttle supports Good Trouble",
"url": "https://twitter.com/CathyTuttle",
"photo": "https://pbs.twimg.com/profile_images/1130219593958449152/OEthrILG.png"
},
"post-type": "reply"
}
},
"_id": "30592300",
"_source": "2773"
}
Just got a push poll from @CheriHeltOR’s organization. They are asking trans-baiting questions about @cstephensonOR advocating for health care in Clatsop County. Pretty disgusting.
{
"type": "entry",
"published": "2022-07-31T23:38:35+00:00",
"url": "https://twitter.com/karabaic/status/1553887880891600896",
"content": {
"text": "Just got a push poll from @CheriHeltOR\u2019s organization. They are asking trans-baiting questions about @cstephensonOR advocating for health care in Clatsop County. Pretty disgusting.",
"html": "Just got a push poll from <a href=\"https://twitter.com/CheriHeltOR\">@CheriHeltOR</a>\u2019s organization. They are asking trans-baiting questions about <a href=\"https://twitter.com/cstephensonOR\">@cstephensonOR</a> advocating for health care in Clatsop County. Pretty disgusting."
},
"author": {
"type": "card",
"name": "jack the nonabrasive",
"url": "https://twitter.com/karabaic",
"photo": "https://pbs.twimg.com/profile_images/1256785873384861696/QfRzUvne.jpg"
},
"post-type": "note",
"_id": "30591962",
"_source": "2773"
}
Well, this is a twist on the 50 Best experience. m.youtube.com/watch?v=CAWZMs… #themenu
{
"type": "entry",
"published": "2022-07-31T23:30:12+00:00",
"url": "https://twitter.com/kitt/status/1553885772436103170",
"content": {
"text": "Well, this is a twist on the 50 Best experience. m.youtube.com/watch?v=CAWZMs\u2026 #themenu",
"html": "Well, this is a twist on the 50 Best experience. <a href=\"https://m.youtube.com/watch?v=CAWZMssP3gM\">m.youtube.com/watch?v=CAWZMs\u2026</a> <a href=\"https://twitter.com/search?q=%23themenu\">#themenu</a>"
},
"author": {
"type": "card",
"name": "Kitt Hodsden \ud83c\udfd4",
"url": "https://twitter.com/kitt",
"photo": "https://pbs.twimg.com/profile_images/1328422362962743296/Mz9RZKvo.jpg"
},
"post-type": "note",
"_id": "30591833",
"_source": "2773"
}
I haven’t been able to find any prediction markets with a bet on when monkeypox will establish a confirmed animal reservoir in North America. In this case, reverse zoonosis, “zooanthroponosis”, establishes a zoonotic reservoir so monkeypox becomes endemic.
My guess: 30 Jun 2023.
{
"type": "entry",
"published": "2022-07-31T23:03:45+00:00",
"url": "https://twitter.com/karabaic/status/1553879117308710913",
"content": {
"text": "I haven\u2019t been able to find any prediction markets with a bet on when monkeypox will establish a confirmed animal reservoir in North America. In this case, reverse zoonosis, \u201czooanthroponosis\u201d, establishes a zoonotic reservoir so monkeypox becomes endemic.\n\nMy guess: 30 Jun 2023."
},
"author": {
"type": "card",
"name": "jack the nonabrasive",
"url": "https://twitter.com/karabaic",
"photo": "https://pbs.twimg.com/profile_images/1256785873384861696/QfRzUvne.jpg"
},
"post-type": "note",
"_id": "30591662",
"_source": "2773"
}
Stopped by the opening party of the new pedestrian/cycling #BlumBridge this morning for a quick photo! @PBOTinfo @bonbpdx
{
"type": "entry",
"published": "2022-07-31T13:42:30-07:00",
"url": "https://aaronparecki.com/2022/07/31/10/blumbridge",
"category": [
"pdx",
"blumbridge"
],
"photo": [
"https://aaronparecki.com/img/1240x0/2022/07/31/10/photo.jpg"
],
"syndication": [
"https://twitter.com/aaronpk/status/1553843102678364160"
],
"content": {
"text": "Stopped by the opening party of the new pedestrian/cycling #BlumBridge this morning for a quick photo! @PBOTinfo @bonbpdx",
"html": "Stopped by the opening party of the new pedestrian/cycling <a href=\"https://aaronparecki.com/tag/blumbridge\">#BlumBridge</a> this morning for a quick photo! <a href=\"https://twitter.com/PBOTinfo\">@PBOTinfo</a> <a href=\"https://twitter.com/bonbpdx\">@bonbpdx</a>"
},
"author": {
"type": "card",
"name": "Aaron Parecki",
"url": "https://aaronparecki.com/",
"photo": "https://aaronparecki.com/images/profile.jpg"
},
"post-type": "photo",
"_id": "30590175",
"_source": "16"
}
Stopped by the opening party of the new pedestrian/cycling #BlumBridge this morning for a quick photo! @PBOTinfo @bonbpdx
{
"type": "entry",
"published": "2022-07-31T20:40:39+00:00",
"url": "https://twitter.com/aaronpk/status/1553843102678364160",
"video": [
"https://video.twimg.com/ext_tw_video/1553842820644945920/pu/vid/1280x720/_T3sOiIVKfvAi-Kx.mp4?tag=12"
],
"content": {
"text": "Stopped by the opening party of the new pedestrian/cycling #BlumBridge this morning for a quick photo! @PBOTinfo @bonbpdx",
"html": "Stopped by the opening party of the new pedestrian/cycling <a href=\"https://twitter.com/search?q=%23BlumBridge\">#BlumBridge</a> this morning for a quick photo! <a href=\"https://twitter.com/PBOTinfo\">@PBOTinfo</a> <a href=\"https://twitter.com/bonbpdx\">@bonbpdx</a>"
},
"author": {
"type": "card",
"name": "Aaron Parecki",
"url": "https://twitter.com/aaronpk",
"photo": "https://pbs.twimg.com/profile_images/1477113672803622912/ljLUwFLP.jpg"
},
"post-type": "video",
"_id": "30590106",
"_source": "2773"
}
In red states, hospital ethics committees now decide when pregnant patients are close enough to death to justify an abortion.
Here's how these panels make life-or-death...
{
"type": "entry",
"published": "2022-07-31T20:30:04+00:00",
"url": "https://twitter.com/karabaic/status/1553840441845432321",
"quotation-of": "https://twitter.com/mjs_DC/status/1553049882516127744",
"content": {
"text": "Oh look death panels\ntwitter.com/mjs_dc/status/\u2026",
"html": "Oh look death panels\n<a href=\"https://twitter.com/mjs_dc/status/1553049882516127744\">twitter.com/mjs_dc/status/\u2026</a>"
},
"author": {
"type": "card",
"name": "jack the nonabrasive",
"url": "https://twitter.com/karabaic",
"photo": "https://pbs.twimg.com/profile_images/1256785873384861696/QfRzUvne.jpg"
},
"post-type": "note",
"refs": {
"https://twitter.com/mjs_DC/status/1553049882516127744": {
"type": "entry",
"published": "2022-07-29T16:08:40+00:00",
"url": "https://twitter.com/mjs_DC/status/1553049882516127744",
"content": {
"text": "In red states, hospital ethics committees now decide when pregnant patients are close enough to death to justify an abortion. \n\nHere's how these panels make life-or-death judgments where abortion is illegal under all but the most dire circumstances. slate.com/news-and-polit\u2026 @Slate",
"html": "In red states, hospital ethics committees now decide when pregnant patients are close enough to death to justify an abortion. \n\nHere's how these panels make life-or-death judgments where abortion is illegal under all but the most dire circumstances. <a href=\"https://slate.com/news-and-politics/2022/07/abortion-ban-hospital-ethics-committee-mother-life-death.html\">slate.com/news-and-polit\u2026</a> <a href=\"https://twitter.com/Slate\">@Slate</a>"
},
"author": {
"type": "card",
"name": "Mark Joseph Stern",
"url": "https://twitter.com/mjs_DC",
"photo": "https://pbs.twimg.com/profile_images/1482122731755868167/n3ZD3Wlv.jpg"
},
"post-type": "note"
}
},
"_id": "30590020",
"_source": "2773"
}
{
"type": "entry",
"published": "2022-07-31T14:32:34-0400",
"url": "https://martymcgui.re/2022/07/31/switching-costs-for-an-indieauth-server/",
"category": [
"site-update",
"IndieAuth"
],
"name": "Switching costs for an IndieAuth server",
"content": {
"text": "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.\n\nSo, this is me documenting how I replaced my IndieAuth setup to stop leaning on Aaron\u2019s IndieAuth.com (which has been on the verge of retiring any day now for some years).\n\nPlease excuse this long and rambling post. Feel free to skip around!\n\n\n\nWhat is IndieAuth?\n\nAt a high-level, IndieAuth is a way to sign in using your website as an identity.\n\nWithout digging too deeply into the plumbing, you start by updating your website\u2019s homepage with some extra header info that says \u201cmy IndieAuth service is over there\u201d. 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.\n\nWhy switch?\n\nI\u2019ve 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).\n\nHowever, indieauth.com has been growing stale as the IndieAuth spec has evolved. indieauth.com\u2019s maintainer has been discussing replacing it since at least 2017.\n\nThe inciting incident for my switch was looking at OwnCast - a self-hostable video streaming service with attached chatroom. OwnCast\u2019s chat allows using IndieAuth to sign in, which sounded great to me, but OwnCast\u2019s implementation wasn\u2019t expecting indieauth.com\u2019s old-style response format.\n\nWhy set up my own?\n\nThere 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\u2019t 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\u2019t thrilled about supporting (hello Rails).\n\nI 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 (\u201cany PSR-7 compatible app\u201d).\n\nI 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 \u201cPSR-7 compatible app\u201d built on taproot/indieauth.\n\ntl;dr say hello to Belding\n\nBelding is an \u201cPSR-7 compatible\u201d PHP web app that provides a standalone IndieAuth endpoint for a single user with a simple password form for authentication.\n\nI would love to go into the process and pitfalls of putting it together, but instead I\u2019ll link to the README where you can learn more about how it works, how to use it, its limitations, etc.\n\nSwitching costs for an IndieAuth server\n\n1. Tell the World\n\nFirst up, you\u2019ll 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\u2019m updating to support the latest spec, I also added the indieauth-metadata header (which should eventually replace the other two).\n\nNow 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.\n\n2. Tell your own services\n\nI needed to configure my own \u201crelying apps\u201d so they know to talk to the new server when checking that a request is allowed. This list thankfully wasn\u2019t too long.\n\nMy Micropub server\nMy Micropub media server\nBeyond 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 \u201ctoken introspection\u201d feature which has some tighter security requirements.\n\n(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.)\n\n3. Sign-in to all the things again \\o|\n\nOnce all my relying apps were all talking to the new IndieAuth server, it was time to re-sign-in to all the things:\n\nThe IndieWeb wiki\n\nMonocle social reader client\n\nQuill Micropub posting client\nOwnYourSwarm\niOS apps\n\nmicro.blog\nIndigenous\n\nManually issue new IndieAuth tokens for automation that uses them:\n\nMy personal YouTube manager\n\nMy command line tool for media uploads\niOS shortcuts like the one I use to post Caturday.\n\nTakeaways\n\nThere are a lot of improvements I\u2019d 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.\n\nI think it\u2019d also be really nice to wrap up Belding a bit so it\u2019s 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!\n\nIt\u2019s 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 \u201cbackend\u201d that you have that relies on IndieAuth to protect itself!\n\nLong story short (too late) I am finally able to sign into OwnCast server chat using my domain. \ud83d\ude02\ud83d\ude05",
"html": "<p>One of the things I love about building with <a href=\"https://indieweb.org/Category:building-blocks\">IndieWeb building blocks</a> 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.</p>\n\n<p>So, this is me documenting how I replaced my <a href=\"https://indieauth.spec.indieweb.org/\">IndieAuth</a> setup to stop leaning on <a href=\"https://aaronparecki.com/\">Aaron\u2019s</a> <a href=\"https://indieauth.com/\">IndieAuth.com</a> (which has been on the verge of retiring any day now for some years).</p>\n\n<p>Please excuse this long and rambling post. Feel free to skip around!</p>\n\n\n\n<h2>What is IndieAuth?</h2>\n\n<p>At a high-level, IndieAuth is a way to sign in using your website as an identity.</p>\n\n<p>Without digging too deeply into the plumbing, you start by updating your website\u2019s homepage with some extra header info that says \u201cmy IndieAuth service is over there\u201d. From there, you can sign into services that support IndieAuth (like the <a href=\"https://indieauth.org/\">IndieWeb wiki</a>, the social feed reader service <a href=\"https://aperture.p3k.io/\">Aperture</a>, and more. And you can use your IndieAuth server to protect your own services, such as a <a href=\"https://indieweb.org/Micropub\">Micropub server</a> that can create new posts on your site.</p>\n\n<h2>Why switch?</h2>\n\n<p>I\u2019ve been using indieauth.com as my IndieAuth setup since late 2016 because it was easy to set up, because it uses something called <a href=\"https://indieweb.org/RelMeAuth\">RelMeAuth</a> to let me sign in using services I already trust (like GitHub).</p>\n\n<p>However, indieauth.com has been growing stale as the IndieAuth spec has evolved. indieauth.com\u2019s maintainer has been <a href=\"https://chat.indieweb.org/dev/2017-12-17#t1513485617181300\">discussing replacing it since at least 2017</a>.</p>\n\n<p>The inciting incident for my switch was looking at <a href=\"https://owncast.online/\">OwnCast</a> - a self-hostable video streaming service with attached chatroom. OwnCast\u2019s chat allows using IndieAuth to sign in, which sounded great to me, but OwnCast\u2019s implementation wasn\u2019t expecting indieauth.com\u2019s old-style response format.</p>\n\n<h3>Why set up my own?</h3>\n\n<p>There are <a href=\"https://indieweb.org/IndieAuth#Server_Implementations\">a bunch of IndieAuth server implementations listed on the IndieWeb wiki</a>. However: simplest of them (selfauth + mintoken) are now out of date with the spec and haven\u2019t 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\u2019t thrilled about supporting (hello Rails).</p>\n\n<p>I found <a href=\"https://github.com/taproot/indieauth\">Taproot/IndieAuth</a> on this page and that looked promising - a PHP library intended to be deployed within a fairly standard PHP web app style (\u201cany PSR-7 compatible app\u201d).</p>\n\n<p>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 \u201cPSR-7 compatible app\u201d built on taproot/indieauth.</p>\n\n<h2>tl;dr say hello to Belding</h2>\n\n<p><a href=\"https://git.schmarty.net/schmarty/belding\">Belding</a> is an \u201cPSR-7 compatible\u201d PHP web app that provides a standalone IndieAuth endpoint for a single user with a simple password form for authentication.</p>\n\n<p>I would love to go into the process and pitfalls of putting it together, but instead I\u2019ll link to the <a href=\"https://git.schmarty.net/schmarty/belding#user-content-belding\">README</a> where you can learn more about how it works, how to use it, its limitations, etc.</p>\n\n<h2>Switching costs for an IndieAuth server</h2>\n\n<h3>1. Tell the World</h3>\n\n<p>First up, you\u2019ll need to update the headers on your site. I switched my <code>authorization_endpoint</code> and <code>token_endpoint</code> to my new server from indieauth.com. Since I\u2019m updating to support the latest spec, I also added the <code>indieauth-metadata</code> header (which should eventually replace the other two).</p>\n\n<p>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.</p>\n\n<h3>2. Tell your own services</h3>\n\n<p>I needed to configure my own \u201crelying apps\u201d so they know to talk to the new server when checking that a request is allowed. This list thankfully wasn\u2019t too long.</p>\n\n<ul><li><a href=\"https://github.com/martymcguire/micropub-1\">My Micropub server</a></li>\n<li><a href=\"https://github.com/martymcguire/spano\">My Micropub media server</a></li>\n</ul><p>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 \u201ctoken introspection\u201d feature which has some tighter security requirements.</p>\n\n<p>(<em><strong>Note:</strong> 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.</em>)</p>\n\n<h3>3. Sign-in to all the things again \\o|</h3>\n\n<p>Once all my relying apps were all talking to the new IndieAuth server, it was time to re-sign-in to all the things:</p>\n\n<ul><li><a href=\"https://indieweb.org/\">The IndieWeb wiki</a></li>\n<li>\n<a href=\"https://indieweb.org/Monocle\">Monocle</a> social reader client</li>\n<li>\n<a href=\"https://indieweb.org/Quill\">Quill</a> Micropub posting client</li>\n<li><a href=\"https://indieweb.org/OwnYourSwarm\">OwnYourSwarm</a></li>\n<li>iOS apps\n\n<ul><li><a href=\"https://indieweb.org/Micro.blog\">micro.blog</a></li>\n<li><a href=\"https://indieweb.org/Indigenous_for_iOS\">Indigenous</a></li>\n</ul></li>\n<li>Manually issue new IndieAuth tokens for automation that uses them:\n\n<ul><li>My <a href=\"https://martymcgui.re/2020/10/03/unsubscribing-from-youtubes-recommender/\">personal YouTube manager</a>\n</li>\n<li>My command line tool for media uploads</li>\n<li>iOS shortcuts like the one I use to post <a href=\"https://martymcgui.re/tag/caturday/\">Caturday</a>.</li>\n</ul></li>\n</ul><h2>Takeaways</h2>\n\n<p>There are <a href=\"https://git.schmarty.net/schmarty/belding#user-content-possible-future-work\">a lot of improvements I\u2019d like to make to Belding</a>, 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.</p>\n\n<p>I think it\u2019d also be really nice to wrap up Belding a bit so it\u2019s easy to configure and deploy on free-and-cheap platforms like <a href=\"https://fly.io/\">fly.io</a>. I believe it should be easier for folks to spin up and control their own IndieWeb building blocks where possible!</p>\n\n<p>It\u2019s 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 \u201cbackend\u201d that you have that relies on IndieAuth to protect itself!</p>\n\n<p>Long story short (too late) I am finally able to sign into OwnCast server chat using my domain. \ud83d\ude02\ud83d\ude05</p>"
},
"author": {
"type": "card",
"name": "Marty McGuire",
"url": "https://martymcgui.re/",
"photo": "https://martymcgui.re/images/logo.jpg"
},
"post-type": "note",
"_id": "30589793",
"_source": "175"
}
"DAO governance attacks, and how to avoid them". Nice analysis. One could also tie voting power to tokens that are acquired through in-system "good" behavior rather than purchased. a16zcrypto.com/dao-governance…
{
"type": "entry",
"published": "2022-07-31T20:00:51+00:00",
"url": "https://twitter.com/Johannes_Ernst/status/1553833089410797568",
"content": {
"text": "\"DAO governance attacks, and how to avoid them\". Nice analysis. One could also tie voting power to tokens that are acquired through in-system \"good\" behavior rather than purchased. a16zcrypto.com/dao-governance\u2026",
"html": "\"DAO governance attacks, and how to avoid them\". Nice analysis. One could also tie voting power to tokens that are acquired through in-system \"good\" behavior rather than purchased. <a href=\"https://a16zcrypto.com/dao-governance-attacks-and-how-to-avoid-them/\">a16zcrypto.com/dao-governance\u2026</a>"
},
"author": {
"type": "card",
"name": "Johannes Ernst",
"url": "https://twitter.com/Johannes_Ernst",
"photo": "https://pbs.twimg.com/profile_images/1482154224800526337/NjdX1tt7.jpg"
},
"post-type": "note",
"_id": "30589666",
"_source": "2773"
}
OMG. Just when you think Ferrari can’t beat itself for worst race strategy of the season, they find a way. What a disaster. They have to make changes over the break. #F1 #HungarianGP
{
"type": "entry",
"published": "2022-07-31T18:08:50+00:00",
"url": "https://twitter.com/cleverdevil/status/1553804897442664448",
"content": {
"text": "OMG. Just when you think Ferrari can\u2019t beat itself for worst race strategy of the season, they find a way. What a disaster. They have to make changes over the break. #F1 #HungarianGP",
"html": "OMG. Just when you think Ferrari can\u2019t beat itself for worst race strategy of the season, they find a way. What a disaster. They have to make changes over the break. <a href=\"https://twitter.com/search?q=%23F1\">#F1</a> <a href=\"https://twitter.com/search?q=%23HungarianGP\">#HungarianGP</a>"
},
"author": {
"type": "card",
"name": "Jonathan LaCour",
"url": "https://twitter.com/cleverdevil",
"photo": "https://pbs.twimg.com/profile_images/1518010782369284096/7Ac_gJRN.jpg"
},
"post-type": "note",
"_id": "30588172",
"_source": "2773"
}
Late check in for @bonbpdx (@ Congressman Earl Blumenauer Bicycle And Pedestrian Bridge in Portland, OR w/ @aaronpk @anomalily) swarmapp.com/c/gv4oJfAWwtX
{
"type": "entry",
"published": "2022-07-31T15:51:53+00:00",
"url": "https://twitter.com/karabaic/status/1553770433207492608",
"photo": [
"https://pbs.twimg.com/media/FZAZ-aGXEAc_Bkf.jpg"
],
"content": {
"text": "Late check in for @bonbpdx (@ Congressman Earl Blumenauer Bicycle And Pedestrian Bridge in Portland, OR w/ @aaronpk @anomalily) swarmapp.com/c/gv4oJfAWwtX",
"html": "Late check in for <a href=\"https://twitter.com/bonbpdx\">@bonbpdx</a> (@ Congressman Earl Blumenauer Bicycle And Pedestrian Bridge in Portland, OR w/ <a href=\"https://twitter.com/aaronpk\">@aaronpk</a> <a href=\"https://twitter.com/anomalily\">@anomalily</a>) <a href=\"https://www.swarmapp.com/c/gv4oJfAWwtX\">swarmapp.com/c/gv4oJfAWwtX</a>"
},
"author": {
"type": "card",
"name": "jack the nonabrasive",
"url": "https://twitter.com/karabaic",
"photo": "https://pbs.twimg.com/profile_images/1256785873384861696/QfRzUvne.jpg"
},
"post-type": "photo",
"_id": "30586220",
"_source": "2773"
}
Not all successful climbs require a summit. I had a great time trying for Cayambe, but I grossly mismanaged my intakes. 5000m will do for this go. Full writeup at ki.tt
{
"type": "entry",
"published": "2022-07-31T13:28:16+00:00",
"url": "https://twitter.com/kitt/status/1553734289082171392",
"photo": [
"https://pbs.twimg.com/media/FY_5B7XWIAEO8J_.jpg",
"https://pbs.twimg.com/media/FY_5CJiWQAARqjA.jpg",
"https://pbs.twimg.com/media/FY_5CVDX0AA0dlA.jpg",
"https://pbs.twimg.com/media/FY_5Cf2XkAEHuL3.jpg"
],
"content": {
"text": "Not all successful climbs require a summit. I had a great time trying for Cayambe, but I grossly mismanaged my intakes. 5000m will do for this go. Full writeup at ki.tt",
"html": "Not all successful climbs require a summit. I had a great time trying for Cayambe, but I grossly mismanaged my intakes. 5000m will do for this go. Full writeup at <a href=\"http://ki.tt\">ki.tt</a>"
},
"author": {
"type": "card",
"name": "Kitt Hodsden \ud83c\udfd4",
"url": "https://twitter.com/kitt",
"photo": "https://pbs.twimg.com/profile_images/1328422362962743296/Mz9RZKvo.jpg"
},
"post-type": "photo",
"_id": "30584487",
"_source": "2773"
}