@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.
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 Ha! Maybe I should get on the Markdown train. Youāre taking away my excuses.
@falsifian@www.falsifian.org No worries! Fell few to contribute to the doc directly Iād you wish š
@falsifian@www.falsifian.org Hmmm not sure sorry š¤
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.
@xuu@txt.sour.is Goos to know! š So as long as we remain decentralized and non-commercial (I assume non/profit works too?) weāre good?
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
@falsifian@www.falsifian.org The GDPR does not apply to the processing of data for a purely personal or household activity that is not connected to a professional or commercial activity.
@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).
@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.)
@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.
Apparently, participation in this yearās @hacktoberfest@hacktoberfest wonāt even grant you a āplant a treeā prize⦠how disappointing š
#MaradoWeekly #WeeklyRecord Week 38
@lyse@lyse.isobeef.org Nice ! š
@doesnm@doesnm.p.psf.lt Hello! š
Sassy pererĆŖ
Hello!
@lyse@lyse.isobeef.org Yes letās make UTF-8 mandatory š
@lyse@lyse.isobeef.org Agreed
Letās try this pill for Twtxt v2 (no account required)
@lyse@lyse.isobeef.org Iām a bit indifferent whether itās at the beginning or end tbh.
This is still a draft! Feel free to edit it š
@movq@www.uninformativ.de Thatās what I was afraid of š¤£
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 š
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>
@lyse@lyse.isobeef.org Yup, this is why you started seeing if you could improve the ātrustā of peers right? š
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.
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 š
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

prologic@localhost [2024-09-22T07:51:16Z] <b2c938f9838> Cool! š (reply-to: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
@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 š¤£
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 š
@movq@www.uninformativ.de Haha š Nice one! And yes Iām also aware of some collisions too!
@aelaraji@aelaraji.com I like Nttfy š Iāve wanted to replace my use of the Pushover service with this for a while now š¤
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:
@bender@twtxt.net š
š 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)
- See #xgghhnq
- See #xgghhnq
My Position on the last few weeks of Twtxt spec discussions:
- We increase the Hash length from
7
to11
.
- We formalise the Update Commands extension.
- We amend the Twt Hash and Metadata extension to state:
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]
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
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.
So good we got fireworks. OK, maybe the fireworks were not exactly due to #SFD and instead was due to the local religious celebrations, but hey - our #SoftwareFreedomDay had fireworks!
@mckinley@twtxt.net Yes I have, however Iām not counting that because even using āCloudā is not labor free.
@aelaraji@aelaraji.com We digits it out 𤣠@lyse@lyse.isobeef.org ās little hack was good but only temporary š¤£
(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 š¤£
(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.
#SoftwareFreedomDay2024 is over in Portugal, but you are already thinking about 2025! Mark your calendars: third Saturday of September in Coimbra, Portugal.
In the meantime, here are a few pictures from todayās celebration in Lamego.
You can see more pictures of this yearās #SoftwareFreedomDay at https://commons.m.wikimedia.org/wiki/Category:Software_Freedom_Day_2024
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
(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.
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?
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
ā¦while chasing the clouds away.
@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.
(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 Thatās kind a problem though right?
yarnd
has a couple of settings with some sensible/sane defaults:
@david@collantes.us š¤£š¤£š¤£
(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?
yarnd
has a couple of settings with some sensible/sane defaults:
@prologic@twtxt.net āEven though there are some š that have different views on this š¤£ā ā coyly raises the hand⦠LOL.
(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.
- 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ā¦
(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 š
Want to find something to do this #SoftwareFreedomDay without leaving home?
Check out this #CaptureTheFlag created to celebrate the day!
I just read the primary spec Iām strongly in support of and itās pretty rock solid for me š šÆ
Falta 1 hora para o encontro do #SoftwareFreedomDay Português começar, e a caixa de autocolantes jÔ estÔ preparada para vos receber.
JÔ estão a caminho?
Today is #SoftwareFreedomDay!
Did you know that by showing up to #SFD you make yourself eligible to participate in a drawing contest and win cool hardware?
Join us!
https://digitalfreedoms.org/en/sfd/blog/art-for-digital-freedom-huion-challenge-2024
Do you recall what it was? I blame my maintenance window šŖ
@bender@twtxt.net Hmm what you replied to appears to be non-existent: https://twtxt.net/twt/pqst4ea
@movq@www.uninformativ.de I just saw thes come through! š Thank you very much, Iāll definitely have a read tomorrow! š
@bender@twtxt.net Which reply was that? š¤
@bender@twtxt.net Bahahahahaha š¤£
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.
O programa para celebrar o #softwarefreedomday hoje em Lamego começa com um encontro às 16h, mas arrasta-se até à noite.
Aparece!
Mais detalhes: https://ansol.org/eventos/2024-09-21-dia-do-software-livre/
@ansol@ansol https://floss.social/@ansol/113175444432510981
@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 š¤£
@aelaraji@aelaraji.com Thanks for this! š
On my blog: Free Culture Book Club ā Aumyr, part 3 https://john.colagioia.net/blog/2024/09/21/aumyr-3.html #freeculture #bookclub
I like Gopher!
Bahahahaha very clever @lyse@lyse.isobeef.org I look forward to reading your report ! 𤣠Howeverā¦
$ yarnc debug https://twtxt.net/user/prologic/twtxt.txt | grep -E '^pqst4ea' | tee | wc -l
0
I very quickly proved that Twt was never from me š¤£
Weāre happy to report that @burglar@yarnd.lyse.isobeef.org was taken into custody, @prologic@twtxt.net. Always remember, criminals cannot escape the law.
Our investigations revealed: https://lyse.isobeef.org/tmp/twtinjector.tar.bz2
@yarn_police@twtxt.net Cool cool šāāļø
Fear not, @prologic@twtxt.net, weāre deploying our helicopter and will arrive shortly.
@yarn_police@twtxt.net Whatās going on?
Heads up, @prologic@twtxt.net! Weāre seeing increased spate of burglaries in your neighbourhood. Please stay alert, while we keep you safe out there.
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
@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? š
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
But this is no different to how jenny
does things with storing every Twt in a Maildir I suppose? š¤
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.
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.
@movq@www.uninformativ.de Care to explain how this explicit/attack works for me? š¤£
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
@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.
Really though I only managed to save a few GB, but itās enough for now.
@bender@twtxt.net Haha š Faster? Maybe š¤ But yeah itās good to have backups! (that work)