#dev 2021-05-07
2021-05-07 UTC
IWSlackGateway2, [Emma_Humphries] and [tantek] joined the channel
# [tantek] would this be considered a single point of failure? https://www.bbc.com/news/world-europe-56978344
# [tantek] Is anyone regularly exporting / purging data from their modern "car"? Per the data collected by the vehicle as noted here: https://theintercept.com/2021/05/03/car-surveillance-berla-msab-cbp/
[tantek]1, nertzy, samwilson and [tw2113_Slack_] joined the channel; ShadowKyogre left the channel
# petermolnar my car is too old for this, but I do have a bluetooth ODB-II port connector; if that was constantly connected I could log things like engine rpm for trips.
# petermolnar *OBD
# petermolnar so if someone is looking for mere logging, take a look at devices like https://www.ebay.co.uk/itm/363322230987 combined with https://play.google.com/store/apps/details?id=com.pnn.obdcardoctor
tomlarkworthy joined the channel
# tomlarkworthy my first two users to the indieweb login could not figure it out at all. I am wondering how I can quickly get them up to speed quicker.
# tomlarkworthy is this a dev topic or a general topic?
# tomlarkworthy 1st had http website. 2nd had a github page linked to a "collective" homepage
# petermolnar (no snark or offense intended) I'm genuinely curious how much of the newcomer issues could be boiled down to have they ever written html by hand
# tomlarkworthy yeah the 2nd one is very technical bordering on famous
# tomlarkworthy I am using indieauth for login to a service though, not for building homepages or anything to do with blogging
# tomlarkworthy So the users want to login to their cloud console using indieauth
# tomlarkworthy they are not interested in blogging, they want services
# tomlarkworthy so this is maybe why learning about bidirectionally linked identity graphs is not on their minds
# tomlarkworthy but the chances that a random has a homepage ready to go it quite low
# tomlarkworthy I have some ideas on how to get people up to speed ASAP, jsut wondering if anyone else has pondered this
samwilson joined the channel
# petermolnar semi-offtopic: camera lens identification via EXIF sucks, but I now know a few tricks.
[Ana_Rodrigues] joined the channel
# tomlarkworthy oh there was also a casing issue too. I wrote some notes
[grantcodes], [KevinMarks], [Murray], samwilson and alex11 joined the channel
KartikPrabhu, [tantek], [schmarty], [aciccarello], shoesNsocks and ShadowKyogre joined the channel
# 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
# aaronpk service worker << how to remove a "stuck" service worker https://github.com/NekR/self-destroying-sw
# Loqi ok, I added "how to remove a "stuck" service worker https://github.com/NekR/self-destroying-sw" to the "See Also" section of /service_worker https://indieweb.org/wiki/index.php?diff=75626&oldid=68185
[chrisaldrich] joined the channel
tomlarkworthy joined the channel
# tomlarkworthy I am thinking of a wizard which will find the shortest path for getting you a usable identify URL using the oauth provider of choice. So you fill in questions like "I have a homepage at ____" "I have a github account" and it list actions you still need to take.
# tomlarkworthy like a linter
# [KevinMarks] like a varaint on indiewebify.me?
# tomlarkworthy oh wow, thats awesome @KevinMarks I had not seen it yet
# tomlarkworthy I would prefer it a bit more goal directed, like I want to login with ____ using Oauth profide ____ so it gives you the minimum steps for that goal. Coz at the moment, even that IndieWeb tells you what things are not backlinked but my users are missing the motivation for backlainks
# [KevinMarks] a more goal oriented version of indiewebify me could make sense, or beefing up the web login section there
# tomlarkworthy yeah I don't really want to be replicating work. Though I check for a specific social profile on the graph to unlock additional permissions on the account, so its a bit beyond the normal usecase
# tomlarkworthy Hey @Kevin I remember you saying it be nice to have a self hosted ObservableHQ
# tomlarkworthy I can extract fully encapsulated notebook tars now https://observablehq.com/@tomlarkworthy/notebook-backups
# tomlarkworthy and I am very close to having a service worked being able to unpack and serve them on the fly https://observablehq.com/@tomlarkworthy/offline
# tomlarkworthy service worker
# tomlarkworthy the idea being I am able to suck all my content off and put on my website soon
# tomlarkworthy or mirror it
# tomlarkworthy so my website would be a read only mirror for observable. Observable remains the editing platform.
# tomlarkworthy Observbale is the CMS front end to my personal website
# tomlarkworthy does anyone understand service workers? I ahve a problem that the first time you visit I serve a page that installs the service worker. The second time you visit the service worker serves the dynamic content. I would prefer to serve the dynamic content in one go. Worse comes to worse I will do a clientside redirect but seems liek there should be a better way?
# tomlarkworthy Here is how I encrypt payloads so I can store private stuff in public spaces https://observablehq.com/@endpointservices/notebook-secret
# Zegnat I think sebsel did it right on https://seblog.nl/ where you can use the login link at the top to login with any indieauth enabled site (or Twitter, which I think he also supports). Then you are logged in and might be able to read certain posts that are otherwise locked.
# [aciccarello] Sebsel's flow is nice
# [aciccarello] I've looked briefly into private posts with a static site generator. The best idea I could come up with was either some encryption scheme or a JS API call to a server hosting private content.
# [aciccarello] Ah, yeah. I forgot about the feed page part
# jacky went on a random rabbit hole on https://seblog.nl and landed here https://write.as/matt/towards-a-commenting-system
peterrother, themaxdavitt, stacktrust_, ludovicchabant, jbove and [sebsel] joined the channel
# [aciccarello] Well your indieauth works 😁 sebsel++
[chrisaldrich] joined the channel
# jacky this is not what I thought it'd be https://litestream.io/
# jacky https://github.com/h2non/imaginary looks like something that can go with benmorris's imageproxy
gxt and [tantek] joined the channel
# Loqi Trends is a feature on social media silos that shows the some of the most popular hashtags (AKA Trending hashtags), links, news articles, words, or phrases that are being used or cited in posts, and have been criticized on Facebook & Twitter for being manipulated by bots and/or showing conspiracy theories at the top https://indieweb.org/trending
barnabywalters and alex11 joined the channel
# aaronpk add some more thoughts here :) https://indieweb.org/trends#Brainstorming
[tantek] joined the channel
# barnabywalters back before I used tweetdeck, I switched my trending location to somewhere in russia, so the trending items were in cyrillic and I couldn’t understand them
# barnabywalters that worked fine except that my partner at the time spoke russian, so I switched it to Kuwait so all the trends are in arabic
# barnabywalters tbh I’m surprised twitter even lets you change the trending location
# barnabywalters but then I suppose they keep tweetdeck running, where there are no ads and no timeline algorithm, so who knows what their strategy is
justBull joined the channel
# barnabywalters ooh that’s a good tip
jamietanna joined the channel
# jamietanna Re private/friends only just gonna throw out https://www.jvt.me/posts/2020/08/26/static-site-private-posts/ but am also thinking that now I'm on CloudFront I could use Lambda@Edge/CloudFront Functions to render it at the edge, based on someone auth'd to my site in a cookie
justBull joined the channel
# jamietanna the single-use page-specific authorization code?
# jamietanna I feel like UX wise that could get pretty painful i.e. logging in multiple times just to view a few posts, whereas Seb's "log in once and see all in the feed" is nicer for a user
# jamietanna but authZ code is probably easiest for a static site!
[KevinMarks] joined the channel
# [KevinMarks] Well it's going to have to cheat somehow for static sites by running something somewhere, or you end up in self issued cert land
# [KevinMarks] The wormhole trick is neat - put the key in the fragment so the server doesn't see it
# jacky hmm there's https://tools.ietf.org/html/rfc8188 mentioned there (w.r.t [KevinMarks]'s mention of a key - said key could be used to decrypt an encrypted page)
# jacky example response https://tools.ietf.org/html/rfc8188#section-3.1
# [KevinMarks] So you can do it with a lot of client crypto code in js. There are also tricks with service workers, like https://every-layout.dev/ does
# jamietanna also yes... I do need to think about moving away from static as I kinda want things to be as quick as possible
# aaronpk let's say you've created 3 posts visible to me, and 2 posts visible to jacky, and 10 public posts. when I'm logged in you'd want to show me the 10 public posts and 3 visible to me. jacky would have a different view of that feed, as would anyone not logged in. that means for every feed you'd need to bake N number of versions of it depending on who's viewing it
# [KevinMarks] Every layout sends a you a link that populates the service worker cache with the hidden pages, which beat the "you need to pay to see these" versions on the static site.
# [KevinMarks] This is messy - it's why twitter stopped the "see someone else's view" feature
# barnabywalters whenever I see discussion like this about adding dynamic features to static sites, I always end up thinking “do people really hate PHP so much”
maxwelljoslyn joined the channel
# maxwelljoslyn from python docs (https://docs.python.org/3.8/library/urllib.parse.html?highlight=urlparse#urllib.parse.urlsplit) I learned of the URI syntax given in RFC 2396 https://tools.ietf.org/html/rfc2396.html
# maxwelljoslyn which allows query parameters at *each* level in a hierarchical path .... anyone seen that used in the wild, for any type of URI?
Tomlark joined the channel
# jacky the URL was like http://api/web#/wow/okay?this=is¬=cool
sparseMatrix joined the channel
# sparseMatrix been dancing with a pycurl/beautiful soup interaction today
# sparseMatrix dunno why I got pycurl involved, should just stick to requests.text
# Tomlark No it's semi colons, that's amazing: http://example.com/pa/th;param1=foo;param2=bar?name=val#frag
# sparseMatrix @barnabywalters yes, yes I do lol
# Tomlark "Each path segment may include a sequence of parameters, indicated by the semicolon ";" character."
[girrodocus] joined the channel
# [KevinMarks] Twitter has with friends view that showed the users posts along with the ones that they followed eg https://web.archive.org/web/20070214143818/http://twitter.com/ijustine/with_friends
# [KevinMarks] *had
[aciccarello] joined the channel
sparseMatrix joined the channel
# barnabywalters it’d be pretty easy to have a mostly static site where private posts aren’t rendered to publically accessible HTML, and requests to them get routed to a PHP file which handles access control
# barnabywalters managing the feeds gets a bit more complicated
# barnabywalters when I was considering going semi-static, my plan was to have static monthly archives, and then the main feed would always be dynamic
# barnabywalters so all public content would still be navigable if the dynamic parts broke or were disabled
# barnabywalters activitypub-esque push-based delivery of private content makes a lot of sense, but it doesn’t solve the problem of having private content at an access-controlled URL
# aaronpk and also has been implemented at least a little bit as described here https://indieweb.org/Private-Webmention
# [KevinMarks] So you could have the posts at unguessable urls, and generate a feed that collates them from that per user and finesse with service worker caching
# barnabywalters yeah, the private webmention draft makes a lot of sense to me
# barnabywalters although I wish it was easier to use asymmetrical encryption for web authentication
# barnabywalters I already have my GPG public key on my site, I wish that both my browser *and* my personal site could sign requests with my private key, and then consuming sites could fetch my public key and authenticate the requests based on that
# barnabywalters does anyone know if browser client certs would make this possible? I’m only superficially familiar with them
# barnabywalters that’s a pity
# barnabywalters seems like it’d be a good use of asymmetric encryption
# barnabywalters but in order to allow my server to also sign requests, it’d need access to the key
# barnabywalters or another key for which the corresponding public key is also discoverable
# barnabywalters yeah, sure
# barnabywalters but it’d still mean that requests from browsers and from servers could be authenticated the same way
# barnabywalters oh that sounds cool
# barnabywalters maybe I just have to be patient for a few more years then
# barnabywalters and by then I might actually have a day-to-day need to be able to publish private content on my personal site
# barnabywalters that sounds like exactly what I’ve wanted for years!
# barnabywalters heh
# barnabywalters not sure I’d have much to offer tbh, but it’s definitely something I’d like to stay informed about
# barnabywalters I’m trying to imagine how the UI for this would look
[Murray] joined the channel
# barnabywalters AFAIK there’s not much user-focused vocabulary for the various parts involved in asymmetrical encryption
# barnabywalters I’ve heard “lock” and “key” for public and private key before, but that only covers the encryption use case, not the signing and verifying use case
# barnabywalters I’m thinking specifically about the flow for setting up a private key on a server which is given similar privileges to the local private key to use to sign browser requests
# barnabywalters and then for getting both of their corresponding public keys discoverable on your personal site, and managing them
# barnabywalters I think the concept of delegation fits pretty well to the overall situation
# barnabywalters i.e. you’re delegating some power to your personal site, and allowing it to do things i.e. fetch private pages on other sites for you
timculverhouse, [chrisaldrich], barnabywalters and [tantek] joined the channel
# barnabywalters aaronpk: after reading this https://indieweb.org/Private-Webmention#why_is_there_an_extra_step_of_exchanging_an_auth_code_for_an_access_token I still don’t get why the extra access token acquisition step is required
# barnabywalters if an access code is logged somewhere, then isn’t it exactly as risky as the access token being logged, as it only takes a single HTTP request to exchange one for the other?
# barnabywalters or is the benefit that access codes are much shorter lived than tokens?
# barnabywalters yeah I got that bit
# barnabywalters but it’s not the key to your house, it’s more like the key to a box which has the key to your house in
timculverhouse joined the channel
# barnabywalters yeah I did read all the way through
# barnabywalters (I thought it was a pretty good metaphor)
timculverhouse joined the channel
# barnabywalters I can see how that’d be useful, but providing a long lived access token seems a bit out of scope for the private webmention use case, and maybe a bit too powerful?
timculverhouse joined the channel
# barnabywalters as opposed to, for example, sending a token in the webmention which gives access to only the private source post, for 5 minutes
# barnabywalters ah okay
# barnabywalters (and only send the webmention to an https webmention endpoint to make sure it’s protected in transit)
# barnabywalters yeah that’d explain the use of barnaby.example as an example URL :D
# barnabywalters aaronpk: where should I look for up-to-date information about HTTP request signing efforts?
# barnabywalters because I could easily shoehorn the server-side part of what I want to do into what that draft suggests
# barnabywalters that’d be great! aaronpk++
# barnabywalters lol, https://docs.joinmastodon.org/spec/security/ links to https://w3c-dvcg.github.io/http-signatures/ which is a 404
# barnabywalters so yeah, it really isn’t in a spec
# aaronpk looks like that got moved to https://w3c-ccg.github.io/http-signatures-audit/
# barnabywalters ooh it’s like a widescreen version of the ietf one
# aaronpk this is the most recent version of the current HTTP signatures draft in the HTTP WG at IETF https://tools.ietf.org/html/draft-ietf-httpbis-message-signatures
# barnabywalters ah yes, now that looks more like an IETF spec
# barnabywalters slim and monospace
# aaronpk fancy version if you want https://www.ietf.org/archive/id/draft-ietf-httpbis-message-signatures-04.html
# barnabywalters the mastodon signature description seems to be pretty consistent with the old IETF one I linked, except that they say “The signature string is then hashed with SHA256 and signed with the actor's public key.” where I’m pretty sure public key should be private key?
# barnabywalters and they have a JSON format for the keys
# barnabywalters yeah, the cavage spec leaves it very vague, but allows a URL in the keyId field
# barnabywalters looks like mastodon just built on that in a fairly practical way
# barnabywalters if a spec doesn’t provide enough detail to be useful, then of course people are going to fill in the gaps themselves
# aaronpk alright hope this helps sort things out and make this more discoverable https://oauth.net/http-signatures/