7
to 12
and use the first 12
characters of the base32 encoded blake2b hash. This will solve two problems, the fact that all hashes today either end in q
or a
(oops) đ
And increasing the Twt Hash size will ensure that we never run into the chance of collision for ions to come. Chances of a 50% collision with 64 bits / 12 characters is roughly ~12.44B Twts. That ought to be enough! -- I also propose that we modify all our clients and make this change from the 1st July 2025, which will be Yarn.social's 5th birthday and 5 years since I started this whole project and endeavour! đ± #Twtxt #Update
@prologic@twtxt.net Can you please draft up a specification for that proposed change with all the details? Such as which date do you actually refer to? Is it now()
or the messageâs creation timestamp? I reckon the latter is the case, but itâs undefined right now. Then we can discuss and potentially tweak the proposal.
Also, I see what you did there in regards to the reply model change poll. ]:->
First draft of yarnd 0.16 release notes. đ â Probably needs some tweaking and fixing, but itâs sounding alright so far đ #yarnd
SDL2 ported to Mac OS 9
Well, this you certainly donât see every day. This is a ârough draftâ of SDL2 for MacOS 9, using CodeWarrior Pro 6 and 7. Enough was done to get it building in CW, and the start of a âmacosclassicâ video driver was created. It DOES seem to basically work, but much still needs to be done. Event handling is just enough to handling Command-Q, there is no audio, etc etc etc. â« A cast of thousands The hardest part was a video driver for the classic Mac OS, which had to be created mostly f ⊠â Read more
@bender@twtxt.net (Feels a bit like his âeditâ function could be implemented as âdelete and re-draftâ, but Iâm only guessing here.)
also Iâve made a draft of a voting page to receive preferences on each proposal
https://eapl.me/rfc0001/
Help me to play with it a bit and report any vulnerability or bug. Also any idea is welcome.
Hi everyone,
Iâve drafted a Request for Comments (RFC) to improve how threads work in twtxt:
https://git.mills.io/yarnsocial/twtxt.dev/issues/18
Iâd love your feedback! Please share your thoughts on anything that could be better explained, check if the proposed dates work for everyone, and I invite you to join the discussionâŠ
Ukraine, UK, and France to draft a ceasefire plan to present to US
Britain, France, and Ukraine draft ceasefire; Iowa bans gender identity rights; Israel blocks aid deliveries into Gaza Strip. â Read more
Understanding surrogate pairs: why some Windows filenames canât be read
Windows was an early adopter of Unicode, and its file APIs use UTFâ16 internally since Windows 2000-used to be UCS-2 in Windows 95 era, when Unicode standard was only a draft on paper, but thatâs another topic. Using UTF-16 means that filenames, text strings, and other data are stored as sequences of 16âbit units. For Windows, a properly formed surrogate pair is perfectly acceptable. However ⊠â Read more
Thereâs a reason I avoid speaking my mind on the internet like the plague. The same reason Iâd set up a {B,Ph,Gem}log months ago but never got myself to publish any of the drafts in any of them.
I made a draft of an âencrypted public messengerâ, which was basically a Feed for an address derivate from the public ket, letâs say âabcd..eaeaâ
Anyone could check, âare there any messages for my address?â and you get a whole list of timestamps and encrypted stuff.
Inside the encrypted message is a signature from the sender. That way you âcouldâ block spam.
Only the owner of the private key could see who sent what, and soâŠ
And even with that my concussion was that users expectations for a private IM might be far away from my experiment.
Researchers engineer bacteria that break down microplastics + 2 more stories
Qatar presents final ceasefire draft to Israel and Hamas; University of Waterloo engineers bacteria to decompose microplastics; UK government announces significant AI investment initiative. â Read more
Iâve started a draft over at: https://git.mills.io/yarnsocial/twtxt.dev/src/branch/main/exts/webfinger.md
More thoughts about changes to twtxt (as if we havenât had enough thoughts):
- There are lots of great ideas here! Is there a benefit to putting them all into one document? Seems to me this could more easily be a bunch of separate efforts that can progress at their own pace:
1a. Better and longer hashes.
1b. New possibly-controversial ideas like edit: and delete: and location-based references as an alternative to hashes.
1c. Best practices, e.g. Content-Type: text/plain; charset=utf-8
1d. Stuff already described at dev.twtxt.net that doesnât need any changes.
We wonât know what will and wonât work until we try them. So Iâm inclined to think of this as a bunch of draft ideas. Maybe later when weâve seen it play out it could make sense to define a group of recommended twtxt extensions and give them a name.
Another reason for 1 (above) is: I like the current situation where all you need to get started is these two short and simple documents:
https://twtxt.readthedocs.io/en/latest/user/twtxtfile.html
https://twtxt.readthedocs.io/en/latest/user/discoverability.html
and everything else is an extension for anyone interested. (Deprecating non-UTC times seems reasonable to me, though.) Having a big long âtwtxt v2â document seems less inviting to people looking for something simple. (@prologic@twtxt.net you mentioned an anonymous comment âyouâve ruined twtxtâ and while I donât completely agree with that commenterâs sentiment, I would feel like twtxt had lost something if it moved away from having a super-simple core.)All that being said, these are just my opinions, and Iâm not doing the work of writing software or drafting proposals. Maybe I will at some point, but until then, if youâre actually implementing things, youâre in charge of what you decide to make, and Iâm grateful for the work.
This is only first draft quality, but I made some notes on the #twtxt v2 proposal. http://a.9srv.net/b/2024-09-25
@prologic@twtxt.net Thanks for writing that up!
I hope it can remain a living document (or sequence of draft revisions) for a good long time while we figure out how this stuff works in practice.
I am not sure how I feel about all this being done at once, vs. letting conventions arise.
For example, even today I could reply to twt abc1234 with â(#abc1234) Edit: âŠâ and I think all you humans would understand it as an edit to (#abc1234). Maybe eventually it would become a common enough convention that clients would start to support it explicitly.
Similarly we could just start using 11-digit hashes. We should iron out whether itâs sha256 or whatever but thereâs no need get all the other stuff right at the same time.
I have similar thoughts about how some users could try out location-based replies in a backward-compatible way (append the replyto: stuff after the legacy (#hash) style).
However I recognize that Iâm not the one implementing this stuff, and itâs less work to just have everything determined up front.
Misc comments (I havenât read the whole thing):
Did you mean to make hashes hexadecimal? You lose 11 bits that way compared to base32. Iâd suggest gaining 11 bits with base64 instead.
âClients MUST preserve the original hashâ â do you mean they MUST preserve the original twt?
Thanks for phrasing the bit about deletions so neutrally.
I donât like the MUST in âClients MUST follow the chain of reply-to referencesâŠâ. If someone writes a client as a 40-line shell script that requires the user to piece together the threading themselves, IMO we shouldnât declare the client non-conforming just because they didnât get to all the bells and whistles.
Similarly I donât like the MUST for user agents. For one thing, you might want to fetch a feed without revealing your identty. Also, it raises the bar for a minimal implementation (Iâm again thinking again of the 40-line shell script).
For âwho followsâ lists: why must the long, random tokens be only valid for a limited time? Do you have a scenario in mind where they could leak?
Why canât feeds be served over HTTP/1.0? Again, thinking about simple software. I recently tried implementing HTTP/1.1 and it wasnât too bad, but 1.0 would have been slightly simpler.
Why get into the nitty-gritty about caching headers? This seems like generic advice for HTTP servers and clients.
Iâm a little sad about other protocols being not recommended.
I donât know how I feel about including markdown. I donât mind too much that yarn users emit twts full of markdown, but Iâm more of a plain text kind of person. Also it adds to the length. I wonder if putting a separate document would make more sense; that would also help with the length.
I just âpublishedâ a #draft on my blog about âHow Iâve implemented #webmentions for twtxtâ (http://darch.dk/mentions-twtxt), so I wanted to know from you guys if you see yourself doing a similar thing with yarnd
@prologic@twtxt.net or others with custom setups?
Google Chrome Gains AI Features Including a Writing Helper
Google is adding new AI features to Chrome, including tools to organize browser tabs, customize themes, and assist users with writing online content such as reviews and forum posts.
The writing helper is similar to an AI-powered feature already offered in Googleâs experimental search experience, SGE, which helps users draft emails in various tones and lengths. W ⊠â Read more
đĄ Quick ân Dirty prototype Yarn.social protocol/spec:
If we were to decide to write a new spec/protocol, what would it look like?
Hereâs my rough draft (back of paper napkin idea):
- Feeds are JSON file(s) fetchable by standard HTTP clients over TLS
- WebFinger is used at the root of a userâs domain (or multi-user) lookup. e.g:
prologic@mills.io
->https://yarn.mills.io/~prologic.json
- Feeds contain similar metadata that weâre familiar with: Nick, Avatar, Description, etc
- Feed items are signed with a ED25519 private key. That is all âpostsâ are cryptographically signed.
- Feed items continue to use content-addressing, but use the full Blake2b Base64 encoded hash.
- Edited feed items produce an âEditedâ item so that clients can easily follow Edits.
- Deleted feed items produced a âDeletedâ item so that clients can easily delete cached items.
Itâll track a bunch of finger(1) endpoints and let you see whatâs new. Very early draft. Not actually a social network, more an anti-social network for â80s CompSci transplants. :-)
@prologic@twtxt.net looking through the drafts it looks like it actually used SRV records as recently as 2018 đ”
@xuu@txt.sour.is Not too happy with WKDâs use of CNAME over SRV for discovery of openpgpkey.. That breaks using SNI pretty quick. I suppose it was setup as a temporary workaround anyhow in the RFC..