In-reply-to » Another interesting side effect of changing from content-based addressing to location-based addressing is that switching from 7-byte keys to 2025-character keys for 3.5 million entries would expand the database size from 24.5 MB to about 7.09 GB—an increase of roughly 7.06 GB!

@bender@twtxt.net I can’t see myself personally, increasing the infrastructure and costs to run this pod to support this as we switch over potentially and as things continue to grow in scale. You would never get your infinite search and infinite timeline features that you’ve always wanted for example and I would have to drastically reduce what is visible or even searchable at any given point in time to much less than what it is today.

⤋ Read More

Another interesting side effect of changing from content-based addressing to location-based addressing is that switching from 7-byte keys to 2025-character keys for 3.5 million entries would expand the database size from 24.5 MB to about 7.09 GB—an increase of roughly 7.06 GB!

⤋ Read More
In-reply-to » (#zqpkfla) @prologic Thanks for writing that up!

@bender@twtxt.net

Sorry, you’re right, I should have used numbers!

I’m don’t understand what ā€œpreserve the original hashā€ could mean other than ā€œmake sure there’s still a twt in the feed with that hashā€. Maybe the text could be clarified somehow.

I’m also not sure what you mean by markdown already being part of it. Of course people can already use Markdown, just like presumably nothing stopped people from using (twt subjects) before they were formally described. But it’s not universal; e.g. as a jenny user I just see the plain text.

⤋ Read More

MS-CF16 Fanless Low-Power Pico-ITX SBC with Alder Lake-N and Amston Lake Processors
The MS-CF16 is a compact Pico-ITX single-board computer designed for fanless, low-power, high-performance applications in harsh environments. Powered by Intel Alder Lake-N or Amston Lake Series SoCs, the board features a 2.5GbE LAN port, a GbE LAN port, and SATA 3.0 for storage. Unlike the previously covered MS-CF17, this model offers configurable Intel processors, each

⤋ Read More
In-reply-to » (#266jaka) Yeah I'm curious to find out too beyond just "here say". But regardless of whether we should or shouldn't care about this or should or shouldn't comply. We should IMO. I'd have to build something that horrendously violates someone's rights in another country.

@prologic@twtxt.net Do you feel the same about published vs. privately stored data?

For me there’s a distinction. I feel very strongly that I should be able to retain whatever private information I like. On the other hand, I do have some sympathy for requests not to publish or propagate (though I personally feel it’s still morally acceptable to ignore such requests).

⤋ Read More
In-reply-to » LOl šŸ˜‚ Not only have a tried to write up a full Twtxt v2 specification, I've also written a Bash shell script that implements the new spec šŸ˜…

@lyse@lyse.isobeef.org I’d suggest making the whole content-type thing a SHOULD, to accommodate people just using some hosting service they don’t have much control over. (The same situation could make detecting followers hard, but IMO ā€œplease email me if you follow meā€ is still legit twtxt, even if inconvenient.)

⤋ Read More
In-reply-to » Okay folks, I've spent all day on this today, and I think its in "good enough"ā„¢ shape to share:

@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.

⤋ Read More
In-reply-to » I finally decided to do a few experiments with yarnd to see how many things would break and how many assumptions there are around the idea of "Content Addressing"; here's where I'm at so far:

@movq@www.uninformativ.de Makes sense šŸ‘Œ I think it’s fair to implement any spec changes incrementaly for sure šŸ‘Œ

And yea since yarnd has a store it’s a bit easier to support edit / delete actions šŸ˜…

⤋ Read More

So I’m a location based system, how exactly do I reply to one of these two Twts from @Yarns@search.twtxt.net ? šŸ¤”

2024-09-07T12:55:56Z	🄳 NEW FEED: @<twtxt http://edsu.github.io/twtxt/twtxt.txt>
2024-09-07T12:55:56Z	🄳 NEW FEED: @<kdy https://twtxt.kdy.ch/twtxt.txt>

⤋ Read More
In-reply-to » I finally decided to do a few experiments with yarnd to see how many things would break and how many assumptions there are around the idea of "Content Addressing"; here's where I'm at so far:

@movq@www.uninformativ.de Yeah I think what I’m proposing here is a more pragmatic approach to improvements that will last much longer than our first interaction (~4 years and going strong, but running into minor issues with edit/identify and some collssions_). This scope of changes is much easier to implement for yarnd and I suspect jenny too. and as indicated in here quite easy to have a reference implementation written in Bash with standard UNIX tools.

⤋ Read More
In-reply-to » Okay folks, I've spent all day on this today, and I think its in "good enough"ā„¢ shape to share:

It’s even sorta/somewhat compatible with our existing feeds (kind of) 🤣 – Bit too stupid to figure out how to write enough correct Bash to make threads display inline nicely in an indented/tree-like fashion, but oh well šŸ˜…

⤋ Read More
In-reply-to » Okay folks, I've spent all day on this today, and I think its in "good enough"ā„¢ shape to share:

Example:

$ ./twtxt-v2.sh reply 242561ce02d "Cool! šŸ‘Œ"
Posted twt with hash: b2c938f9838
...
$ ./twtxt-v2.sh timeline
...
prologic@twtxt.net [2024-09-22T07:26:37Z] <242561ce02d> Okay folks, I've spent all day on this today, and I _think_ its in "good enough"ā„¢ shape to share:

**Twtxt v2**:

- Specification: https://docs.mills.io/uJXuisaYTRWYDrl8A2jADg?both
- implementation: https://gist.mills.io/prologic/afdec15443da4d7aa898f383f171ec1b

 ![](https://twtxt.net/media/Wb9MtAiQyEkzNQB5dyVvUR.png)
prologic@localhost [2024-09-22T07:51:16Z] <b2c938f9838> Cool! šŸ‘Œ (reply-to:242561ce02d)

⤋ Read More
In-reply-to » Bahahahaha very clever @lyse I look forward to reading your report ! 🤣 However...

@aelaraji@aelaraji.com No that is absolutely correct. Without cryptographic identities and signatures there is no way to verify authenticity. That is correct. And I don’t think we need to necessarily. What I was just showing and proving was that I didn’t write that spoofed Twt in the first place, which was only provable at the time of @lyse@lyse.isobeef.org short-lived attack 🤣 He essentially forked yarnd, hosted it temporarily (I think locally) and used it to poison the caches of a few production pods.

Thankfully the gossip protocol used by yarnd as part of its ā€œpeeringā€ between pods isn’t fully trusted, twts are not archived for example into permanent storage. So the moment my pod re-fetched my own feed, the spoofed Twt was obliterated šŸ˜…

Eventual consistency 🤣

⤋ Read More

šŸ‘‹ Reminder folks of the upcoming Yarn.social monthly online meetup:

I hope to see @david@collantes.us @movq@www.uninformativ.de @lyse@lyse.isobeef.org @xuu@txt.sour.is @sorenpeter@darch.dk and hopefully others too @aelaraji@aelaraji.com @falsifian@www.falsifian.org and anyone else that sees this! šŸ™ We’re hopefully going to primarily discuss the future of Twtxt and the last few weeks of discussions 🤣

  • Event: Yarn.social Online Meetup
  • When: 28th September 2024 at 12:00pm UTC (midday)
  • Where: Mills Meet : Yarn.social
  • Cadence: 4th Saturday of every Month

Agenda:

  • Let’s talk about the upcoming changes to the Twtxt spec(s)

#Yarn.social #Meetup

⤋ Read More

My Position on the last few weeks of Twtxt spec discussions:

Feed authors that wish to change the location of their feed (once Twts have been published) must append a new # url = comment to their feed to indicate the new location and thus change the ā€œHashing URIā€ used for Twts from that point onward.

This has implications of the ā€œorderā€ of a feed, and we should either do one of two things, either:

  • Mandate that feeds are append-only.
  • Or amend the Metadata spec with a new field that denotes the order of the feed so clients can make sense of ā€œinlineā€ comments in the feed. – This would also imply that the default order is (of course) append-only. Suggestion: # direction = [append|prepend]

⤋ Read More

Low-cost Makerdiary board with iMX RT1011 Crossover MCU and Zephyr Support
Makerdiary recently introduced the iMX RT1011 Nano Kit, a compact, high-performance development board featuring NXP’s iMX RT1011 Crossover MCU. With an Arm Cortex-M7 core running at up to 500 MHz, it delivers strong CPU performance and real-time responsiveness The iMX RT1011 Nano Kit includes 128 KB of on-chip RAM, configurable as Tightly Coupled Memory or

⤋ Read More

I finally decided to do a few experiments with yarnd to see how many things would break and how many assumptions there are around the idea of ā€œContent Addressingā€; here’s where I’m at so far:

Basically I’m at a point where spending time on this is going to provide very little value, there are assumptions made in the lextwt parser, assumptions made in yarnd, assumptions in the way storage is done and the way threading works and things are looked up. There are far reaching implications to changing the way Twts are identified here to be ā€œlocation addressedā€ that I’m quite worried about the amount of effort would be required to change yarnd here.

⤋ Read More
In-reply-to » Ever wondered what it would cost to self-hosted vs. use the cloud? Well I often doubt myself every time I look at hardware prices, and I know I have to do some hardware refresh soonā„¢ for the Mills DC (something I don't have a regular plan or budget for), here's a rough ball park:

@mckinley@twtxt.net Yes I have, however I’m not counting that because even using ā€œCloudā€ is not labor free.

⤋ Read More
In-reply-to » (#crmwgxq) I’m still more in favor of (replyto:…). It’s easier to implement and the whole edits-breaking-threads thing resolves itself in a ā€œnaturalā€ way without the need to add stuff to the protocol.

@sorenpeter@darch.dk Lins of agree with dealing with this kind of social nonsense which we’ve all done in the past 🤣

⤋ Read More
In-reply-to » (#crmwgxq) I’m still more in favor of (replyto:…). It’s easier to implement and the whole edits-breaking-threads thing resolves itself in a ā€œnaturalā€ way without the need to add stuff to the protocol.

@movq@www.uninformativ.de I think your scenario doesn’t account for clients and their storage. The scenario described only really affects clients that come along later. Even then they would also be able to re-fetch mossing Twts from peers or even a search engine to fill in the gaps.

⤋ Read More

Protectli Vault V1410: Fanless 4-Port 2.5GbE Network Appliance with Intel N5105
The Protectli Vault V1410 is a fanless network appliance designed for applications that demand robust performance and reliable connectivity. Key features include four 2.5GbE Ethernet ports and multiple expansion slots, making it a versatile solution for a wide range of networking environments. The device comes equipped with the Intel N5105 processor, a quad-core Celeron chip

⤋ Read More
In-reply-to » (#crmwgxq) I’m still more in favor of (replyto:…). It’s easier to implement and the whole edits-breaking-threads thing resolves itself in a ā€œnaturalā€ way without the need to add stuff to the protocol.

@movq@www.uninformativ.de I cases of these kind of ā€œabuseā€ of social trust. Then I think people should just delete their replies, unfollow the troll and leave them to shouting in the void. This is a inter-social issue, not a technical issue. Anything can be spoofed. We are not building a banking app, we are just having conversation and if trust are broken then communication breaks down. These edge-cases are all very hypothetical and not something I think we need to solve with technology.

⤋ Read More
In-reply-to » Alright, before I go and watch Formula 1 šŸ˜…, I made two PRs regarding the two ā€œcompetingā€ ideas:

Been thinking about it for the last couple of days and I would say we can make do with the shorter (#<DATETIME URL>)since it mirrors the twt-mention syntax and simply points to the OP as the topic identified by the time of posting it. Do we really need and (edit:...)and (delete:...) also?

⤋ Read More

Open-Source Oscilloscope with 1 GS/s High-Speed Data Streaming and Flexible Measurement Capabilities
Crowd Supply recently launched a campaign for ThunderScope, an oscilloscope that combines powerful hardware with open-source software. It captures data at 1 GS/s and streams it to a computer via Thunderbolt, USB4, or PCI Express for real-time processing, offering greater flexibility for complex measurements across various timescales. The Thunde … ⌘ Read more

⤋ Read More
In-reply-to » Ever wondered what it would cost to self-hosted vs. use the cloud? Well I often doubt myself every time I look at hardware prices, and I know I have to do some hardware refresh soonā„¢ for the Mills DC (something I don't have a regular plan or budget for), here's a rough ball park:

@prologic@twtxt.net You’ve done extremely well for ~$125/month, but that’s not figuring in labor. I’m sure you’ve put a lot of hours into maintenance in the last 10 years.

⤋ Read More
In-reply-to » (#crmwgxq) I’m still more in favor of (replyto:…). It’s easier to implement and the whole edits-breaking-threads thing resolves itself in a ā€œnaturalā€ way without the need to add stuff to the protocol.

I just realized the other big property you lose is:

What if someone completely changes the content of the root of the thread?

Does the Subject reference the feed and timestamp only or the intent too?

⤋ Read More
In-reply-to » (#crmwgxq) I’m still more in favor of (replyto:…). It’s easier to implement and the whole edits-breaking-threads thing resolves itself in a ā€œnaturalā€ way without the need to add stuff to the protocol.

@bender@twtxt.net Yeah I’ll be honest here; I’m not going to be very happy if we go down this ā€œlocation addressingā€ route;

  • Twt Subjects lose their meaning.
  • Twt Subjects cannot be verified without looking up the feed.
    • Which may or may not exist anymore or may change.
  • Two persons cannot reply to a Twt independently of each other anymore.

and probably some other properties we’d stand to lose that I’m forgetting about…

⤋ Read More
In-reply-to » (#crmwgxq) I’m still more in favor of (replyto:…). It’s easier to implement and the whole edits-breaking-threads thing resolves itself in a ā€œnaturalā€ way without the need to add stuff to the protocol.

@movq@www.uninformativ.de One of the biggest reasons I don’t like the (replyto:…) proposal (location addressing vs. content addressing) is that you just introduce a similar problem down the track, albeit rarer where if a feed changes its location, your thread’s ā€œidentifiersā€ are no longer valid, unless those feed authors maintain strict URL redirects, etc. This potentially has the long-term effect of being rather fragile, as opposed to what we have now where an Edit just really causes a natural fork in the thread, which is how ā€œforkingā€ works in the first place.

I realise this is a bit pret here, and it probably doesn’t matter a whole lot at our size. But I’m trying to think way ahead, to a point where Twtxt as a ā€œthingā€ can continue to work and function decades from now, even with the extensions we’ve built. We’ve already proven for example that Twts and threads from ~4 years ago still work and are easily looked up haha šŸ˜

⤋ Read More
In-reply-to » Alright, before I go and watch Formula 1 šŸ˜…, I made two PRs regarding the two ā€œcompetingā€ ideas:

I just read the primary spec I’m strongly in support of and it’s pretty rock solid for me šŸ‘Œ šŸ’Æ

⤋ Read More

Ever wondered what it would cost to self-hosted vs. use the cloud? Well I often doubt myself every time I look at hardware prices, and I know I have to do some hardware refresh soonā„¢ for the Mills DC (something I don’t have a regular plan or budget for), here’s a rough ball park:

The Mills DC has cost me around ~$15k to build and maintain over the last ~10 years or so. Roughly speaking. I’ve never actually taken a Bill of Materials or anything, but I could if anyone is interested in more specifics.

The equivalent of resources if run in the ā€œCloudā€ would cost around:

  • ~$1,000 for virtual machines
  • ~$12000 for storage

So around ~$2,000/month to run.

Keep this in mind anytime anyone ever tries to con you into believing ā€œCloud is cheaperā€. It’s not.

⤋ Read More
In-reply-to » (#266jaka) @movq @falsifian @prologic Maybe I don't know what I'm talking about and You've probably already read this: Everything you need to know about the ā€œRight to be forgottenā€ coming straight out of the EU's GDPR Website itself. It outlines the specific circumstances under which the right to be forgotten applies as well as reasons that trump the one's right to erasure ...etc.

@aelaraji@aelaraji.com This is one of the reasons why yarnd has a couple of settings with some sensible/sane defaults:

I could already imagine a couple of extreme cases where, somewhere, in this peaceful world one’s exercise of freedom of speech could get them in Real trouble (if not danger) if found out, it wouldn’t necessarily have to involve something to do with Law or legal authorities. So, If someone asks, and maybe fearing fearing for… let’s just say ā€˜Their well being’, would it heart if a pod just purged their content if it’s serving it publicly (maybe relay the info to other pods) and call it a day? It doesn’t have to be about some law/convention somewhere … 🤷 I know! Too extreme, but I’ve seen news of people who’d gone to jail or got their lives ruined for as little as a silly joke. And it doesn’t even have to be about any of this.

There are two settings:

$ ./yarnd --help 2>&1 | grep max-cache
      --max-cache-fetchers int        set maximum numnber of fetchers to use for feed cache updates (default 10)
  -I, --max-cache-items int           maximum cache items (per feed source) of cached twts in memory (default 150)
  -C, --max-cache-ttl duration        maximum cache ttl (time-to-live) of cached twts in memory (default 336h0m0s)

So yarnd pods by default are designed to only keep Twts around publicly visible on either the anonymous Frontpage or Discover View or your Timeline or the feed’s Timeline for up to 2 weeks with a maximum of 150 items, whichever get exceeded first. Any Twts over this are considered ā€œoldā€ and drop off the active cache.

It’s a feature that my old man @off_grid_living@twtxt.net was very strongly in support of, as was I back in the day of yarnd’s design (nothing particularly to do with Twtxt per se) that I’ve to this day stuck by – Even though there are some šŸ˜‰ that have different views on this 🤣

⤋ Read More

Upcoming I-Pi SMARC Embedded Prototype Kit Adopts Intel Amston Lake CPU
The I-Pi SMARC Amston Lake is a prototyping kit built on Intel’s Amston Lake architecture, designed to accelerate embedded system development. Key features include dual 2.5GbE LAN ports with Time-Sensitive Networking support and CAN interfaces for industrial applications. This kit includes the I-Pi SMARC Plus carrier and the LEC-ASL SMARC module, which features an Intel

⤋ Read More
In-reply-to » (#l5452vq) Another thing: At the moment, anyone could claim that some feed contained a certain message which was then removed again by just creating the hash over the fake message in said feed and invented timestamp themselves. Nobody can ever verify that this was never the case in the first place and completely made up. So, our twt hashes have to be taken with a grain of salt.

@movq@www.uninformativ.de Yes that’s true they are only integrity checks. But beyond a malicious pod (ignore yarnd’a gossiping protocol for now) how does what @lyse@lyse.isobeef.org presented work exactly? šŸ˜…

⤋ Read More

ATOMS3R Dev Kit Equipped with 0.85″ color IPS screen and 6-axis IMU
The ATOMS3R development kit is a compact and versatile programmable controller based on the ESP32-S3-PICO-1-N8R8 module. Designed for embedded smart device applications, it combines robust processing power with built-in Wi-Fi, making it effective for a wide range of IoT and motion-sensing projects. The ATOMS3R development kit is built around the ESP32-S3-PICO-1-N8R8 SoC, a dual-core Xtensa

⤋ Read More
In-reply-to » (#w6f7hpa) @falsifian Do you have specifics about the GRPD law about this?

This has specifically come up before in the form of ā€œinformal complaintsā€ against yarnd because of the way it permanently stores and archives Twts, so even if you decide you changed your mind, or deleted that line out of your feed, if my pod or @xuu@txt.sour.is or @abucci@anthony.buc.ci or @eldersnake@we.loveprivacy.club (or any other handful of pods still around?) saw the Twt, it’d be permanently archived.

⤋ Read More
In-reply-to » (#w6f7hpa) @falsifian Do you have specifics about the GRPD law about this?

Yeah I’m curious to find out too beyond just ā€œhere sayā€. But regardless of whether we should or shouldn’t care about this or should or shouldn’t comply. We should IMO. I’d have to build something that horrendously violates someone’s rights in another country.

⤋ Read More
In-reply-to » (#l5452vq) Another thing: At the moment, anyone could claim that some feed contained a certain message which was then removed again by just creating the hash over the fake message in said feed and invented timestamp themselves. Nobody can ever verify that this was never the case in the first place and completely made up. So, our twt hashes have to be taken with a grain of salt.

@movq@www.uninformativ.de Care to explain how this explicit/attack works for me? 🤣

⤋ Read More
In-reply-to » (#ezhsc5a) I've also put up this PR Add compatible methods for Index to behave as the Archiver (transition) #1177 that will act as a transition from the old naive archiver to the new bluge-based search/index. I will switch my pod over to this soon to test it before anyone else does.

Well that was bloody awful. This PR bokr my pod for some strange reason I can’t figure out why or how 😱 The process just kept getting terminated from something, somewhere (no panic). weird. I’ve reverted this PR for now @xuu@txt.sour.is

⤋ Read More
In-reply-to » (#w6f7hpa) @falsifian Do you have specifics about the GRPD law about this?

@prologic@twtxt.net I have no specifics, only hopes. (I have seen some articles explaining the GDPR doesn’t apply to a ā€œpurely personal or household activityā€ but I don’t really know what that means.)

I don’t know if it’s worth giving much thought to the issue unless either you expect to get big enough for the GDPR to matter a lot (I imagine making money is a prerequisite) or someone specifically brings it up. Unless you enjoy thinking through this sort of thing, of course.

⤋ Read More