@bender@twtxt.net Big photo capability upgrade?
# follow_notify = gemini://foo/bar
to your feedās metadata, so that clients who follow you can ping that URL every now and then? How would you even notice that, do you regularly read your gemini logs? š¤
@aelaraji@aelaraji.com Nice hack! š
@bender@twtxt.net I doubt Iāll be able to watch it live 𤣠But by all means, please Yarns all the goodies š
@bender@twtxt.net Kind of mirrored the ssh
and ssh-keygen
utilities. No reason really.
$ echo 'hello world' | ./salty -i ./test_ed25519 --ssh-key --sign
@bender@twtxt.net Ahh yeah sorry about that 𤣠You were getting confused between salty.im and salty. The later of which salty.im actually uses and formed the basis of everything else. Itās a simple robust library and command-line tools with good test coverage. The lowest building block š
@prologic@twtxt.net excellent, thanks!
@movq@www.uninformativ.de That bad eh? š
For example:
$ echo 'hello world' | ./salty -i ./test.key -s | ./salty -i ./test.key -v
# signed by: kex1yfzzthmsdlqhgwzafy9zpjze6a0asxf6y552dp4yhvq66a4jje0qxqapvd
hello world
@bender@twtxt.net Yes of course it can š Sorry I missed your question on IRC š¢
#MaradoWeekly #WeeklyRecord Week 37
@jmjl@tilde.green howdy! Sorry for mistaken you with https://blog.nfld.uk/ (jlj), but glad to connect. Cheers!
@mckinley@twtxt.net To answer some of your questions:
Are SSH signatures standardized and are there robust software libraries that can handle them? Weāll need a library in at least Python and Go to provide verified feed support with the currently used clients.
We already have this. Ed25519 libraries exist for all major languages. Aside from using ssh-keygen -Y sign
and ssh-keygen -Y verify
, you can also use the salty
CLI itself (https://git.mills.io/prologic/salty), and Iām sure there are other command-line tools that could be used too.
If we all implemented this, every twt hash would suddenly change and every conversation thread weāve ever had would at least lose its opening post.
Yes. This would happen, so weād have to make a decision around this, either a) a cut-off point or b) some way to progressively transition.
@bender@twtxt.net Holy shit that pod is still alive?! š¤
url
field in the feed to define the URL for hashing. It should have been the last encountered one. Then, assuming append-style feeds, you could override the old URL with a new one from a certain point on:
@sorenpeter@darch.dk WebFinger requires additional setup that whilsts helps to solve the āidentityā problem in an āabstractā way, that extra infra that needs to be setup a) isnāt trivial and b) hard to support on āshared hostingā.
Sharing hosting is also the reason why you canāt just use part of a URL really.
On my blog: Developer Diary, Chrysanthemum Day https://john.colagioia.net/blog/2024/09/09/chrysanthemum.html #programming #project #devjournal
url
field in the feed to define the URL for hashing. It should have been the last encountered one. Then, assuming append-style feeds, you could override the old URL with a new one from a certain point on:
how little data is needed for generating the hashes? Instead of the full URL, can we makedo with just the domain (example.net) so we avoid the conflicts with gemini://
, https://
and only http://
(like in my own twtxt.txt) or construct something like like a webfinger id nick@domain
(also used by mastodon etc.) from the domain and nick if there, else use domain as nick as well
Where all folks?!
url
field in the feed to define the URL for hashing. It should have been the last encountered one. Then, assuming append-style feeds, you could override the old URL with a new one from a certain point on:
@movq@www.uninformativ.de Peobably not and I wouldnāt expect them to either š
But in all seriousness Iāve only ever wanted to improve Twtxt without sacrificing its simplicity too much.
@movq@www.uninformativ.de Sorry haha I didnāt mean for it to sound like that š¤£
@mckinley@twtxt.net Hmmm? Care to elaborate? š¤£
@falsifian@www.falsifian.org tag:twtxt.net,2024-09-08:SHA256:23OiSfuPC4zT0lVh1Y+XKh+KjP59brhZfxFHIYZkbZs
? :)
Key rotation
Key rotation is useful for security reasons, but I donāt think itās necessary here because itās only used for verifying oneās identity. Itās no different (to me) than Nostr or a cryptocurrency. You change your key, you change your identity.
It makes maintaining a feed more complicated.
This is an additional step that youād have to perform, but I definitely wouldnāt want to require it for compatibility reasons. I donāt see it as any more complicated than computing twt hashes for each post, which already requires you to have a non-trivial client application.
Instead, maybeā¦allow old urls to be rotated out?
That could absolutely work and might be a better solution than signatures.
HTTPS is supposed to do
My first thought when reading this was to go to my typical response and suggest we use Nostr instead of introducing cryptography to Twtxt. The more I thought about it, however, the more it made sense.
- It solves the problem elegantly, because the feed can move anywhere and the twt hashes will remain the same.
- It provides proof that a post is made by the same entity as another post.
- It doesnāt break existing clients.
- Everyone already has SSH on their machine, so anyone creating feeds manually could adopt this easily.
There are a couple of elephants in the room that we ought to talk about.
- Are SSH signatures standardized and are there robust software libraries that can handle them? Weāll need a library in at least Python and Go to provide verified feed support with the currently used clients.
- If we all implemented this, every twt hash would suddenly change and every conversation thread weāve ever had would at least lose its opening post.
š§® USERS:1 FEEDS:2 TWTS:1087 ARCHIVED:78676 CACHE:2491 FOLLOWERS:17 FOLLOWING:14
@lyse@lyse.isobeef.org This looks like a nice way to do it.
Another thought: if clients canāt agree on the url (for example, if we switch to this new way, but some old clients still do it the old way), that could be mitigated by computing many hashes for each twt: one for every url in the feed. So, if a feed has three URLs, every twt is associated with three hashes when it comes time to put threads together.
A client stills need to choose one url to use for the hash when composing a reply, but this might add some breathing room if thereās a period when clients are doing different things.
(From what I understand of jenny, this would be difficult to implement there since each pseudo-email can only have one msgid to match to the in-reply-to headers. I donāt know about other clients.)
MNT Pocket Reform: Linux-Powered Mini Laptop with Rockchip RK3588 or Amlogic A311D CPU Modules
The MNT Pocket Reform is now officially available for purchase, following the successful delivery of crowdfunded units via Crowd Supply. This 7ā³ modular mini laptop offers a range of customization options, making it a suitable option for open-source enthusiasts and developers. Users can select from multiple CPU modules, including the A311D (Banana Pi) and t ⦠ā Read more
NanoPi R3S is a $30 Router Board with Dual GbE and FriendlyWrt OS Support
The FriendlyElec NanoPi R3S is an open-source platform designed for IoT applications such as NAS systems and other network-intensive tasks. The device runs on the FriendlyWrt operating system, which is based on OpenWrt. This compact board is powered by the Rockchip RK3566 SoC, featuring a quad-core ARM Cortex-A55 processor clocked at up to 1.8GHz. It
Six years after my current laptop was purchased, I am going to replace it. The initial cause: one component I cannot find a replacement for - a dilated fan. In the meantime, I also got issues with the keyboard, which a replacement might possibly be found - I didnāt check since the fan issue has no apparent solution.
It is sad that I am being made to replace it before the #RightToRepair European directive was transposed to Portuguese law, but I am still hoping that soon this sort of #ewaste is a thing of the past.
āFun factsā:
- Laptops account for about 40% of all e-waste generated in the European Union;
- Over 90% of a laptopās environmental impact occurs during the production stage.
LILYGO T3 S3 LR1121: Low-Power LoRa Transceiver for IoT Applications
The LILYGO T3 S3 LR1121 is a development board that supports low-power, long-range wireless communication using LoRa technology. It features the ESP32-S3 System-on-Chip, which offers 2.4 GHz Wi-Fi and Bluetooth Low Energy connectivity, making it suitable for various IoT projects. At the core of the board is the ESP32S3FH4R2 microcontroller, which includes dual-core Xtensa LX7
On my blog: Holding Universal Access to All Knowledge Hostage https://john.colagioia.net/blog/2024/09/08/internet-archive.html #politics #rant
@movq@www.uninformativ.de True š
@movq@www.uninformativ.de Tbey all hate me for stomping on their precious dear twtxt š¤£
url
field in the feed to define the URL for hashing. It should have been the last encountered one. Then, assuming append-style feeds, you could override the old URL with a new one from a certain point on:
@lyse@lyse.isobeef.org Hmmm interesting idea š¤
@movq@www.uninformativ.de Another idea: just hash the feed url and time, without the message content. And donāt twt more than once per second.
Maybe you could even just use the time, and rely on @-mentions to disambiguate. Not sure how that would work out.
Though I kind of like the idea of twts being immutable. At least, itās clear which version of a twt youāre replying to (assuming nobody is engineering hash collisions).
In fact, maybe your public key idea is compatible with my last point. Just come up with a url scheme that means āthis feedās primary URL is actually a public keyā, and then feed authors can optionally switch to that.
@prologic@twtxt.net Some criticisms and a possible alternative direction:
Key rotation. Iām not a security person, but my understanding is that itās good to be able to give keys an expiry date and replace them with new ones periodically.
It makes maintaining a feed more complicated. Now instead of just needing to put a file on a web server (and scan the logs for user agents) I also need to do this. What brought me to twtxt was its radical simplicity.
Instead, maybe we should think about a way to allow old urls to be rotated out? Like, my metadata could somehow say that X used to be my primary URL, but going forward from date D onward my primary url is Y. (Or, if you really want to use public key cryptography, maybe something similar could be used for key rotation there.)
Itās nice that your scheme would add a way to verify the twts you download, but https is supposed to do that anyway. If you donāt trust https to do that (maybe you donāt like relying on root CAs?) then maybe your preferred solution should be reflected by your primary feed url. E.g. if you prefer the security offered by IPFS, then maybe an IPNS url would do the trick. The fact that feed locations are URLs gives some flexibility. (But then rotation is still an issue, if I understand ipns right.)
Inside the out feeling
On the Subject of Feed Identities; I propose the following:
- Generate a Private/Public ED25519 key pair
- Use this key pair to sign your Twtxt feed
- Use it as your feedās identity in place of
# url =
as# key = ...
For example:
$ ssh-keygen -f prologic@twtxt.net
$ ssh-keygen -Y sign -n prologic@twtxt.net -f prologic@twtxt.net twtxt.txt
And your feed would looke like:
# nick = prologic
# key = SHA256:23OiSfuPC4zT0lVh1Y+XKh+KjP59brhZfxFHIYZkbZs
# sig = twtxt.txt.sig
# prev = j6bmlgq twtxt.txt/1
# avatar = https://twtxt.net/user/prologic/avatar#gdoicerjkh3nynyxnxawwwkearr4qllkoevtwb3req4hojx5z43q
# description = "Problems are Solved by Method" š¦šŗšØāš»šØāš¦Æš¹ā šāÆ šØāš©āš§āš§š„ -- James Mills (operator of twtxt.net / creator of Yarn.social š§¶)
2024-06-14T18:22:17Z (#nef6byq) @<bender https://twtxt.net/user/bender/twtxt.txt> Hehe thanks! š
Still gotta sort out some other bugs, but that's tomorrows job š¤
...
Twt Hash extension would change of course to use a feedās ED25519 public key fingerprint.
@aelaraji@aelaraji.com My work has this thing called ācompressed workā, where you can buy extra time off (as much as 4 additional weeks) per year. It comes out of your pay though, so itās not exactly a 4-day work week but it could be useful, just havenāt tired it yet as Iām not entirely sure how itāll affect my net pay
@bender@twtxt.net Yes, they do 𤣠Implicitly, or threading would never work at all š Nor lookups 𤣠They are used as keys. Think of them like a primary key in a database or index. I totally get where youāre coming from, but there are trade-offs with using Message/Thread Ids as opposed to Content Addressing (like we do) and I believe we would just encounter other problems by doing so.
My money is on extending the Twt Subject extension to support more (optional) advanced āsubjectsā; i.e: indicating you edited a Twt you already published in your feed as @falsifian@www.falsifian.org indicated š
Then we have a secondary (bure much rarer) problem of the āidentityā of a feed in the first place. Using the URL you fetch the feed from as @lyse@lyse.isobeef.org ās client tt
seems to do or using the # url =
metadata field as every other client does (according to the spec) is problematic when you decide to change where you host your feed. In fact the spec says:
Users are advised to not change the first one of their urls. If they move their feed to a new URL, they should add this new URL as a new url field.
See Choosing the Feed URL ā This is one of our longest debates and challenges, and I think (_I suspect along with @xuu@txt.sour.is _) that the right way to solve this is to use public/private key(s) where you actually have a public key fingerprint as your feedās unique identity that never changes.
@aelaraji@aelaraji.com Join the club! 𤣠How about more days in a weekend?! š± Bringon #FourDayWorkWeek !!! š¤£
Message-Id
. Email is a federated system, but by no means is it "decentralised". You still have to send your email somewhere, not just post it on a website on your own server like Twtxt š
@bender@twtxt.net Haha, easy to demonstrate. Iāll start an email thread with myself, then you see if you can join in š¤£
We can also make use of comments in the feed to build support for detecting/declaring Twts(s) were edited in a feed that are ignored by clients that donāt understand the comments. By design clients ignore comments anyway, but the parser we build for yarnd
(which Iād love to turn into a C library that others can just import) can do some interesting things here. @xuu@txt.sour.is can probably talk more on thisā¦
I think Email Message-Id(s) only ever worked because typically you are exchanging emails with recipients you know and vice versa. Itās much easier to cope with the problems above, because you just ensure your client preserves the Message-Id
. Email is a federated system, but by no means is it ādecentralisedā. You still have to send your email somewhere, not just post it on a website on your own server like Twtxt š
There are some subtitles differences like this that makes Message/Thread Id(s) not really that suitable IMO.
@bender@twtxt.net The problem with the approach Email clients do things is;
- How do you come up with the message/thread id in the first place? Iām pretty sure most clients just use a UUID.
- How do you know what youāre replying to if you donāt see the message/thread id in the first place?
- How do two different users that donāt know each other, but follow the same feed (say /.) make two independent responses forming a thread? What message/thread id do they use? (see above)
@bender@twtxt.net Sorry, trust was the wrong word. Trust as in, you do not have to check with anything or anyone that the hash is valid. You can verify the hash is valid by recomputing the hash from the content of what it points to, etc.
@falsifian@www.falsifian.org Yes;
I donāt think twtxt hashes are long enough to prevent spoofing.
The current spec needs to be updated to expand the hash length to 11 characters to avoid hash collisions (which will happen at some point with 7, if not already).
The issue isnāt dealing with āspoofingā, itās about solving how clients in a decentralised model agree on the threading model and identity of a thread. Message ID(s) suffer from the fact that as @movq@www.uninformativ.de points out, clients have to āobeyā this unwritten rule, but theyāre otherwise just arbitrary. Whereas Twt Hashes (I didnāt come up with the idea originally, some smart fellow in cryptography did) are content addressable, meaning that clients donāt have to agree on anything, they can trust that the hash is a cryptographic representing of the thread theyāre replying to, no matter what.
@falsifian@www.falsifian.org I like this idea actually for edits.
@movq@www.uninformativ.de @prologic@twtxt.net Another option would be: when you edit a twt, prefix the new one with (#
@movq@www.uninformativ.de Care to share your thoughts here?
I donāt know what happened behind the scenes that killed off twtxt (I have a few guesses, though), but the sad truth is that itās gone.
Agreed
@bender@twtxt.net A Fred changed its url metadata field š¤£
On my blog: Free Culture Book Club ā Aumyr, part 1 https://john.colagioia.net/blog/2024/09/07/aumyr-1.html #freeculture #bookclub
After unfollowing and refollowing on the new feed URL, Iām now 100% certain this is what happened for @cuaxolotl@sunshinegardens.org 𤣠The real problem is really this:
How do we identify a feed?
It cannot be the URL, because the author could change where they serve it from. This was as āgoodā as we could get it, but time and time again this has proven to be problematic for, well, a few folks that change their mind, which frankly should be allowed š
For supporting edits, I was thinking more along the lines of: If a client edits a Twt already published, it should put the hash of the previous Twt. Something like:
2024-09-05T13:37:40Z (edit:mp6ox4a) Hello world!
For supporting edits, I was thinking more along the lines of: If a client edits a Twt already published, it should put the hash of the previous Twt. Something like:
2024-09-05T13:37:40+00:00 (edit:mp6ox4a) Hello world!
To be honest, I donāt really see āeditingā as a problem. I see that as a natural behavior of āforkingā in the first place, that just forms a. new sub-tree. Whatās really problematic here is when a feed author changes the āidentityā of their feed and changes the # url =
metadata field, which is what I believe @cuaxolotl@sunshinegardens.org has just done, though Iām not 100% certain, Iām like 98% sure haha š
@lyse@lyse.isobeef.org Did you check your pocket? š¤£
@movq@www.uninformativ.de Sorry but whatās a partial hash exactly? š¤
@cuaxolotl@sunshinegardens.org Did you recently change the url
metdata key of your feed?
# url = https://sunshinegardens.org/~xj9/twtxt/tw.txt
Was this at one point # url = https://sunshinegardens.org/users/xj9/twtxt/tw.txt
?
@lyse@lyse.isobeef.org Please for the love of god, elaborate š
@lyse@lyse.isobeef.org da fuq?! same here, what did you just reply to?! š¤
@lyse@lyse.isobeef.org da hell are you replying to?! š¤£
Offline backups currently cost me around ~$2.00 AUD per month.
Spent the day performing backups (hadnāt done it in a while š±) and wrote a full backup definition internal document that defines my backup process, scope, security, frequency, backup locations, capacity and backup and restoration procedures. Very happy with the doc and the updated (now fully documented) plan and scheduled backup frequency (once per month, which Iāll put into my calendar as itās done by hand for now, with tools). So far backing up ~410GB out of a possible ~12.8TB worth of data in two locations ā I deliberately donāt backup everything as much of the data can be re-created (music, videos, tv shows, etc). #Backups #Data
RDK X3 Development Board: Raspberry Pi 4B Form Factor with 5TOPs BPU
The D-Robotics RDK X3 Development Board, recently showcased by Waveshare, is a versatile platform designed for edge AI applications, offering a powerful combination of processing and inference capabilities. The board comes in a form factor similar to the Raspberry Pi 4B, including a 40-pin GPIO for easy expansion. According to the product page, the board
Iāll share my opinion on this later š¤£
What do we think about this? š
Swa this pop up in my Github news feed today š¤ Which links to https://github.com/musingstudio/go-subclub
A Go (golang) library for interacting with the sub.club API.
So I got curious and had a peek š
Letās fund the Fediverse
Posting or hosting on the open social networks no longer means you have to do it for free. Developer Preview now available.
And further down:
Monetize your feeds
If you post quality content and youāve developed a loyal audience, you should be able to ask your most passionate followers to support you with a premium subscription.
Thatās a promise not available on the Fediverse ā¦until now.
Hmmm š¤
@slashdot@feeds.twtxt.net I can only see a mass exodus of uses fleeing telegram as the service becomes less secure or less privacy focused and basically more shit.
@quark@ferengi.one cheers š»
it might have made sense in the days of hose and buggy and smoke signals to centralise everything, but these days we have a globalized interconnected society with fast transport and communications. There is no reason for this model anymore š¤£
@slashdot@feeds.twtxt.net Can we please stop this whole āBack to the Officeā garbage nonsense?! š± If a job does not require the physical presence of a person(s) to perform their role, or they are not ācustomer facingā or in a job thatās required to āserve the publicā, letās just stop this utter nonsense. As much as I want my shares in Cromwell to go up, I really donāt care. Let the corporate office buildings burn to the ground for all I care, turn them into cheap housing estates or apartments. Why we ever thought centralizing in once place to live and work is beyond me š¤¦āāļø
@cuaxolotl@sunshinegardens.org No youāre not the only one. I do this too, I often think about a problem in my head, even imagine the code, sometimes for weeks, hell even months, before I even write a line of code š§āš»
@lyse@lyse.isobeef.org Thankfully itās quite cool here so far š
On my blog: Toots 𦣠from 09/02 to 09/06 https://john.colagioia.net/blog/2024/09/06/week.html #linkdump #socialmedia #quotes #week
Telegram Disables āMisusedā Features As CEO Faces Criminal Charges
Following the arrest of its CEO Pavel Durov last month, the encrypted messaging service said it has disabled some āoutdatedā and āmisusedā features used by anonymous users. The Verge reports: The first changes to the app following his arrest in France last month affect its built-in blog posts and a āPeople Nearbyā location-based feature.
Telegram Disables āMisusedā Features As CEO Faces Criminal Charges
Following the arrest of its CEO Pavel Durov last month, the encrypted messaging service said it has disabled some āoutdatedā and āmisusedā features used by anonymous users. The Verge reports: The first changes to the app following his arrest in France last month affect its built-in blog posts and a āPeople Nearbyā location-based feature.
One can tell the weekend is fast approaching, as things around these parts tend to slow down then. Cheers everyone! :-)
Je cherche un espace où publier une sorte de blog. Juste du texte. Un truc comme faisait rawtext.club ou midnight.pub, mais qui accepte les nouvelles inscriptions. Vous auriez des suggestions? #smolweb
PwC āTipping the Balanceā of Hybrid Working and Will Start Tracking Its Workersā Locations
PwC has demanded staff spend less time working from home ā and itās going to start tracking their location to ensure they comply. From a report: The accountancy firm informed its 26,000 U.K. employees in a memo that from January theyāll be expected to be at their desks ā or with clients ā at leas ⦠ā Read more