#dev 2023-05-25

2023-05-25 UTC
#
[0x3b0b]
I suspect there are a lot of little reasons that also contributed. One thing I think I remember reading at some point was that it was influenced by underline being uncommon to use for emphasis in electronic media, which in turn was influenced by the browser default of rendering links with an underline and people therefore tending to expect underlined text to be a link.
#
bkil
Well, I'd say the explanation is just the opposite: browsers had chosen to underline links as it was not typically used for text markup. HTML didn't include any of i, b, or u in its first draft: https://www.w3.org/History/19921103-hypertext/hypertext/WWW/MarkUp/Tags.html And while standardizing i, b, em and strong, had only mentioned underline as an optional or "possible" feature to implement https://datatracker.ietf.org/doc/html/rfc1866#section-5.7.1.3
#
bkil
Dumb tty screens similarly only contained a single font. They gained the ability to display colors (or shades of gray) for emphasis and underlining was typically also supported due to the way the cursor can already be rendered in hardware and how the bottom half of characters were reserved as a calm space.
#
bkil
bottom 1-2 lines
#
[0x3b0b]
Wouldn't surprise me if it perpetuated as a cycle that started in print. I'm pretty sure I remember style/design recommendations in the mid-late aughts that suggested you should avoid underlining things that weren't links on web pages because people would try to click on them and be annoyed.
#
[0x3b0b]
But it makes sense that it would have started for one reason and then perpetuated because it became what was expected.
#
bkil
That's correct. But that's way into the mid nineties.
#
[0x3b0b]
Let's see. I would have first started having any interest whatsoever in the creation of web content around 1997, probably in doing it well or according to any conventions or standards in late 2000 at the earliest and more likely not until 2005, until at least 2008 I would have been mostly constrained by predetermined choices, and I'd guess that I first encountered Textile in 2009. So yeah, I was late to that conversation.
#
bkil
Says here that ANSI escapes/VT100 did specify how italics could be marked up, but support for that was poor in comparison to underlines https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_(Select_Graphic_Rendition)_parameters
#
bkil
Then again, we were talking about how an author could mark up content for themselves in a lightweight textual format, not how the web page should appear. I.e., using _ in the markup could appear as italics for most web users and as underline for Opera Mini users or those using a text browser.
#
bkil
Similarly how your markup for hyperlinks should be clickable on the web and in postscript and PDF (preferably behind a meaningful and informative phrase), while it should appear in full or as a footnote in print. You could generate both formats from the same source.
#
bkil
So many great ideas collected here: https://en.wikipedia.org/wiki/Italics#Substitutes
JanMiksovsky, KMF, greglopez, IWDiscordRelay, mouse[d], petermolnar, gRegor, gerben, IWSlackGateway, holiday_medley, geoffo, [tantek] and holiday_1 joined the channel
#
[tantek]
[snarfed] this one sounds like it's for you (and me and everyone else that uses Bridgy Fed) https://mastodon.social/@Jeremiah@alpaca.gold/110429738257155546
jonnybarnes joined the channel
#
[tantek]
from https://indieweb.org/Bridgy_Fed#IndieWeb_Examples kongaloosh [gRegorLove] jamievtanna aciccarello
gRegor, [jacky], [schmarty] and [snarfed] joined the channel
#
[snarfed]
I only partially understand the question
#
[snarfed]
I guess I get the gist of the OP, but hard to tell if he's specifically distinguishing subdomains from pay-level domains, and also confusing why AP is part of the q
#
[snarfed]
but I can reply
#
aaronpk
sounds like OP is complaining about the @-@ in AP and wishing they had used just the domain/subdomain instead
#
aaronpk
e.g. thinking that it could have been username.mastodon.social for AP
geoffo joined the channel
#
[snarfed]
on an unrelated note, "The expectations of people on the Fediverse are sometimes just weird" 💯 https://alpaca.gold/@helge@mymath.rocks/110429811997721192
#
aaronpk
what in the world
#
aaronpk
i can't handle the whole FEP thing tbh
#
[snarfed]
eh it's just a lightweight pre-standardization process, like lots of standards have, and programming langs etc
#
[jacky]
gives me XEP energy
#
aaronpk
it seems to cause a lot of drama
#
sknebel
same question as last time: which implementations work with "FEP"s?
#
[jacky]
AFAIK, there's no means of "announcing" what you support (maybe through nodeinfo?)
#
sknebel
would more expect in the sense of "devs participating in discussions, discussing implementation, ..."
#
IWDiscordRelay
<c​apjamesg#4492> FEP?
geoffo joined the channel
#
[tantek]
I'm not a fan of the *EP structure/culture tbh. It's too confusing and frankly XEPs from XMPP didn't really work out so well in helping XMPP move forrward, get more adoption, evolve etc.
#
[tantek]
that being said, if it's a group of implementers choosing to use it as a mechanism/process to discuss things amongst themselves to interoperate, it really doesn't matter what it's called or how it works, because they are motivated to continuously improve it to achieve interop as their actual goal, not a social club
sebbu and [KevinMarks] joined the channel
#
[KevinMarks]
PEP's for Python have worked well, but ti depends a lot on community stewardship
#
[tantek]
I think it has more to do with what % of the participants/community are implementers than that
geoffo joined the channel
#
[tantek]
once you dilute that down too much, it's too much effort (on behalf of implementers) for too little return (actual building/improving implementation interop)
#
bkil
aaronpk: About user subdomains vs. handles. The reason historical was probably that around the first heydays of The Fediverse around 2008-2012 where PHP-based implementations dominated, it allowed admins to easily and cheaply self-host an instance on shared (free) web hosting plans. Supporting subdomains requires more complicated implementation, quite a bit of fiddling and also only possible on a VPS.
#
bkil
Although this went out of fashion long ago, Friendica still supports not just users living under a subpath, but even installing the whole Friendica instance under a folder of its own instead of on our own subdomain for this reason (i.e., older and cheaper shared hosting plans did not give you even a single subdomain of your own and some tildeverse hosts still don't).
[pfefferle] and geoffo joined the channel
#
[tantek]
curious that none of the "direct" implementations of ActivityPub in the examples here use just domain as username: https://indieweb.org/ActivityPub#IndieWeb_Examples — I wonder why that is. aaronpk, did you document why you chose your email-like `@aaronpk@aaronparecki.com` rather than @aaronpk.com@aaronpk.com or @aaronparecki.com@aaronparecki.com ?
#
aaronpk
afaik it's not possible to properly federate with mastodon with a plain domain username
#
[snarfed]
no, he's talking about the username part of the handle, not the whole handle
#
aaronpk
oh I see
#
aaronpk
given that a plain domain wasn't possible, it seemed more natural to fit the user@domain pattern
#
aaronpk
Plus I don't think I had my short aaronpk.com domain at the time and my full domain seemed a bit ridiculous as domain@domain
#
[tantek]
I think that's a false sense of "natural", because it is misleading (is this an email? 💁‍♂️🦋)
#
[tantek]
@domain@domain avoids the confusion of, is this thing "like" an email address? can/should I email it?
#
[tantek]
in the Mastodon UI, it only ever shows the domain once, so full @domain@domain in the plain text is fine
#
[snarfed]
yeah Mastodon's (really the fediverse's) @-@ UX and rendering is pretty nice, the whole handle is easily available but in general only the username part is shown/emphasized by default, which also has this nice side effect for @domain@domain handles
#
[tantek]
exactly, there's no reason to feel awkward or self-conscious about @domain@domain because the prevalent UI patterns both simplify it for users, while providing unambiguous @-reference (whereas short @-names could be anyone on any server)
#
[tantek]
I really need to write up my various notes on @-@s and @domain into a longer blog post, a wiki article, or both
#
[tantek]
I'm starting my listing those various notes in my reply to Jeremiah 😂
#
[tantek]
by* listing
#
[tantek]
let's see how Bridgy Fed replies are working today
#
Loqi
[preview] [Tantek Çelik] @jeremiahlee.com (@Jeremiah@alpaca.gold) you’re right that the #IndieWeb is more of a movement. It’s a community based on shared values & principles¹, one of which is plurality², explicitly prioritizing interoperability over any “particular p...
#
[tantek]
looks like it linked up properly! yay! BridgyFed++
#
Loqi
BridgyFed has 7 karma in this channel over the last year (11 in all channels)
#
Loqi
😃
#
[snarfed]
sadly one minor nit there is that the user mentions end up as just links, not real AP user mentions. we're still struggling to get mention interop working, https://github.com/snarfed/bridgy-fed/issues/493
#
Loqi
[preview] [gRegorLove] #493 Add support for publishing mentions
jarenado joined the channel
#
[tantek]
gRegor++ for filing that issue before I got around to it 🙂
#
Loqi
gRegor has 31 karma in this channel over the last year (91 in all channels)
#
[tantek]
should I summarize @domain mentions etc. with what I've figured out so far? or should I create a bsky account, setup POSSE to that, and figure out how to incorporate bsky @-mentions into that strategy?
#
[tantek]
leaning towards summarize what seems to be stable for two bims so far, and procrastinate bsky experiments/learnings to separate follow-on posts, and eventually another update later that incorporates that too
[manton] joined the channel
#
[manton]
This is barely IndieWeb-related, but… I’m playing more with Nostr and wondering how far I should go to securely store someone’s private key on a server. Unlike passwords and tokens which can be revoked or changed if compromised, a Nostr private key _is_ your account, so if it’s leaked your account is ruined and you have to start over with nothing. Thoughts?
#
[tantek]
that sounds like a "hard" security problem
#
[manton]
Indeed.
#
[tantek]
I'm not even sure there's *any* user-desirable solution that involves storing someone’s private key on someone else’s server
#
[manton]
Yeah. There is risk no matter what… Makes me think this might be a deal-breaker for adoption. It’s fine to securely store client-side e.g. in the iOS keychain, but that is limiting too for some apps.
#
[tantek]
this "feels" like the user-undesirable property of various crypumpto etc. of unreversability
#
bkil
The common solution to this is to password protect the key file before storage.
#
[tantek]
citation / examples needed for any such assertion about a security practice
#
[tantek]
if it's "common" it should be "easy" to cite
#
bkil
And also introduce a new account (with new private key, etc) on the server if it needs to relay data in a MITM position.
#
[tantek]
otherwise tbh I wouldn't trust any such "common" advice about security
#
bkil
If your question was for me, type in ssh-keygen or gpg --gen-key. It will ask for a password for storing your key in a file.
#
[tantek]
^ this is a good example
#
[tantek]
it also sets a bar (and perhaps ceiling?) for usability, i.e. don't be worse than ssh/gpg (and good luck trying to be better!)
#
bkil
You can store your ssh/gpg key on a hardware token that requires keying in a physical PIN after inserting into your computer as well as an alternative. What is the use case again [manton] ?
#
[manton]
The related problem is then you have another password that needs to be stored somewhere, preferably not in the same database as the private key that is encrypted. 🙂 To be clear, if I’m automatically sending data to Nostr, I need to be able to access the key without prompting the user.
#
bkil
I mean, Matrix also supports backing up your client side E2EE encryption keys on your HS after encrypting it with a user password. I can search for a reference if you want, but it's common knowledge as Element asks for it on first setup.
#
[manton]
Thanks, I’ll look into what they’re doing.
#
[snarfed]
[manton] the other common term you can search for is "secrets vault," that's what this kind of system is commonly called
#
[snarfed]
hashicorp was early to this. also many cloud vendors call it a KMS, key management system
#
[manton]
Got it, thanks. I haven’t paid close attention to this in the past (and try to avoid passwords altogether when I can).
#
[manton]
The fact that you can’t recover a Nostr account if it’s compromised is making me pause. Much worse than losing a Twitter password, etc.
#
[snarfed]
yuuup. that community sees it as a feature, but yeah the lack of recourse for lost keys is a key achilles heel of purely decentralized systems like these, including most public blockchains
#
bkil
Precisely why we have added properties to our analysis on https://bkil.gitlab.io/secuchart/ about Account recovery after device compromise and Account deactivation after device compromise
#
bkil
Note that solutions would exist to this in decentralized systems, it's just that existing implementations usually don't prioritize it.
#
[snarfed]
yup. coincidentally I was reading https://github.com/nostr-protocol/nostr/issues/45 literally moments ago. the answer from fiatjaf and much of the community seemed to boil down to, "out of scope, users should take care of their keys, git gud"
#
Loqi
[preview] [catleeball] #45 Key distribution, rotation, and recovery
#
[snarfed]
back to secrets storage, [manton] in case it helps as moral support, I've had to store users' sensitive API tokens in Bridgy for 11y, and AP private keys for Bridgy Fed users for 6y, and it's fine. be security conscious, do the obvious right things, publish a responsible disclosure policy, and you'll generally be ok
#
[tantek]
wow. well good luck with that: "users should take care of their keys, git gud"
#
bkil
Without any of these, you basically have to keep track of how you had originally made first verified contact with each peer in the past (preferably printed on paper or by heart) and repeat it (i.e., manual revocation propagation).
#
[snarfed]
[manton] one simple technique is to encrypt users' private keys in storage, password-protect the master key you encrypt them with, and require typing in that password when you boot your backend servers. depends on details of your stack and hosting setup, but works well
#
[tantek]
snarfed, API tokens can be revoked & regenerated, so that seems like a different class of "key"
#
[snarfed]
true! wasn't trying to claim equivalence, just a related risk
#
[tantek]
also keys related to service usage (ephemeral API usage) have very different sensitivity properties than keys tied directly to identity
#
bkil
Odd that you mention this, I just had an idea of keeping the keys and private data of your clients decrypted for as little time as possible in memory every day (every week) in rotation to reduce the surface for exposure and attack https://github.com/bkil/freedom-fighters/blob/master/en/server/encrypted-vm-storage.md#user-content-scoped-encryption
#
[snarfed]
sometimes yes, but services vary widely in how fine grained scopes are. some tokens are surprisingly powerful, and don't always have ways to avoid that
#
[manton]
[snarfed] Thanks! Re-typing on server boot is interesting and would definitely be more secure than not.
#
[snarfed]
also notably, unlike Nostr keys, AP keys can at least be rotated and recovered, due to the relationship with instances. federation vs true p2p decentralization
#
[manton]
Right. Losing an AP key would be annoying but seems fairly recoverable.
#
[tantek]
thanks for the wikipedia links and the key phrase (no pun intended) [snarfed]. This seems like a good place to start with this sort of thing [manton]: https://en.wikipedia.org/wiki/Key_management
#
[tantek]
that was meant to be "thanks for the wikipedia links" bkil++
#
Loqi
bkil has 4 karma in this channel over the last year (10 in all channels)
#
[manton]
Thanks y’all. I’ve got some stuff to think on. Also, that Nostr thread on GitHub… Yikes. Very hard problem for sure.
#
capjamesg
[snarfed] I just saw https://www.thoughtworks.com/en-gb/radar that you mentioned on bsky. That's cool!
#
Loqi
capjamesg: [tantek] left you a message 21 hours, 8 minutes ago: during HWC you asked how I markup (or should) the virtual headings I have for Glossary and References and I noted they are plain text. The longer answer is, they’re a part of "block level" auto-markup (in contrast to inline level auto-linking etc.), and I have some ideas for that in the latter part of the table in https://tantek.com/w/Markdown#BeforeandAfter
#
aaronpk
wow i'm surprised nostr is doing that... I thought we had moved past any model where there is just one private key for the account and it is the "key" to everything
#
aaronpk
as in, I thought there were plenty of other projects out there that have already addressed this in various ways (not necessarily "solved", but at least tried various versions of key management)
#
[snarfed]
yes, that's all true, but also the blockchain/libertarian decentralized community seems to now see this kind of as a feature. or at least as "proof" that it's decentralized, censorship resistant, etc, and anything else might not be
#
aaronpk
oh, that's unfortunate
[chrisbergr] joined the channel
#
[snarfed]
yeah. kind of an implicit purity test. somewhat speculation on my part though.
#
aaronpk
what's bluesky's story on this? I have an account on their server right now, so my domain just points to their service. which one is the "canonical" account tho, it's the key still right?
#
[snarfed]
your identity is technically a DID, not a key, but yes. your domain is just a user-visible handle for the DID
#
[snarfed]
there are two keys, one your server uses day to day, one you use to migrate or otherwise override it
#
[snarfed]
whoa, new Twitter API tier just dropped, 1M tweets/mo for $5k/mo, https://twitter.com/TwitterDev/status/1661790253886177280
#
[snarfed]
thanks but no thanks
[snarfed]1, [jacky]1, [pfefferle]1 and bret_ joined the channel
#
[tantek]
Yeah nope
#
[tantek]
The bsky approach to keys seems more intentionally design for user-friendliness than nostr for sure
geoffo, benji and jonnybarnes joined the channel
#
[KevinMarks]
[capjamesg] bsky.link is 502 again - did you push my patch?
jeremycherfas joined the channel
#
capjamesg
I have now.
#
[jacky]
[manton] That bit about Nostr (and tbh the same with Secure Scuttlebutt) is something I've been antsy about.
#
[jacky]
There's a solution that's been floated around (that I like, tbh) and have slowly been squeezing to Sele via https://darkcrystal.pw/
#
[jacky]
it follows an idea of social trust (like _literal_ social - not the implied ones we make through subscriptions but more on how one defines trust) to do this
#
[tantek]
I like this principle: "emphasising trust between peers rather than individual responsibility"
#
[jacky]
the idea is that one could ask people to be their backups (and could even ask a remote service to be one - which seems no different than how we currently trust IdPs like Google and Apple)
#
[tantek]
I mean in general, beyond key management
#
[jacky]
agreed; I'm noticing that when some of these attempts _start_ with that, you've forced to make tradeoffs that can uphold that
#
[tantek]
would love to figure out a way of weaving that into IndieWeb practices & methodologies
#
[jacky]
my current idea was making (yet another) extension to IndieAuth that could lean on rel=me/XFN to do this
#
[snarfed]
interestingly Facebook has done that kind of social account recovery forever now too, feels like a decade
#
[jacky]
the trusted contacts functionality? yeah 🙂
#
[jacky]
the only reason why I've hesitated on opening a PR because I don't know what this would be good for
#
[jacky]
the most immediate idea I had for this was porting any sort of key history between instances of Sele (like if one wanted to move between IdPs) or Koype (if they wanted to also move private/encrypted content between instances)
#
[tantek]
I think it could be a good way to do IndieAuth "recovery" as well
#
[tantek]
as well as IndieAuth migration (from one domain to another)
#
[jacky]
that's an interesting use-case (switching IndieAuth domains)
#
[jacky]
it could even allow you to do it if you lose your own domain!
#
[tantek]
precisely!
#
[tantek]
it would make using IndieAuth for your identity feel "safer"
cdravcte joined the channel