Problems are Solved by Method\" π¦πΊπ¨βπ»π¨βπ¦―πΉβ πβ― π¨βπ©βπ§βπ§π₯ -- James Mills (operator of twtxt.net / creator of Yarn.social π§Ά)
π Looking for other interested folks to continue to evolve the development of Salty.im π I've been hardβ’ at work on the v2 branch and @doesnm.p.psf.lt has been incredibly helpful so far. Be great ot have a few more folks to join us, some of the v2 highlights include:
- Double Ratchet by default.
- Group Chat (sender/client fan-out for now)
- Much better TUI with background agent.
- Mobile App coming soonβ’ (iOS in progress, Android next, same codebase)
Well it's ~2am and I finally defeated the AI player in a game of Frontier Crown π
-- On that note I'm now going to bed, I've made so many improvements to the aesthetics (UX) of the game, the mechanics, and it's now quite nicely playable π G'night! π΄
I spent the day today integrating @xuu's double ratcheting work and [ratchet](Blank front page) library back into the reference client/broker implementation saltyim as a v2 branch. I completely redesigned and rewrite the salty-chat TUI client as well, which now includes proper notifications and a background agent that keeps running so you never miss any messages. It all "just works"β’ and I'm quite happy with the outcome! π€© #saltyim #revamp
Btw @movq you've inspired me to try and have a good 'ol crack at writing a bootloader, stage1 and customer microkernel (Β΅Kernel) that will eventually load up a Mu (Β΅) program and run it! π€£ I will teach Mu (Β΅) to have a ./bin/mu -B -o ... -p muos/amd64 ... target.
Mu (Β΅) is coming along really nicely π€£ Few things left to do (in order):
- Finish the concurrency support.
- Add support for sockets
- Add support for
linux/amd64 - Rewrite the heap allocator
- Rewrite Mu (Β΅) in well umm Mu (Β΅) π
Here's a screenshot showing off the builtin help(): 
We'll all my posts are making it to the "Fediverse" https://bridge.twtxt.net/users/c350a5e5fb9d9457
I don't know what this fruit is called! The waiter at breakfast told me the Vietnamese name but I've since forgotten π 
Found this place in Hanoi in Vietnam π₯³ Amazinf beer!!! πΊ 
Hmmmm the AoC site is not mobile friendly π’
Can someone post the puzzles as Twts? π€£
this is apparently a famous lake in Hanoi city in Vietnam. Don't know what it's called though. 
We have arrived at our first hotel. but check-in isn't till 2PM π€£ We arrived at 12:45PM π 
One of the advantages of being vegetarian. you get served your in-flight meal first. before everyone else π€£ 
fark'n hell! why are there so many actors on the bridge?! π€― (shadow twtxt feeds)
@aelaraji Thanks for the account! I figured out one thing at least so far, my WAF was blocking some of the AP requests. Fixed that. Anyway, holiday time π€£ Back in ~2 weeks.
Good to see so many folks starting to come back to our little non-social social ecosystem π Good to also see twtxt.net starting to peer with 7 other pods in the greater network too! π₯³
Speaking of WAF(s) / Web Applicaiton Firewalls -- I actually had forgotten that not only have I designed a new WAF from scratch, but I've actually implemented it already, and done some local testing. I just haven't put it into production yet... What od you think @aelaraji ? π€ https://git.mills.io/prologic/caddy-waf
Sometimes, (just sometimes) my ability to pattern match and remember how to play perfect games of chess is awesome π 
Anyone on my pod (twtxt.net) finding the new Filter(s) useful at all? π€ 
Tired to re-enable the Ege route to git.mills.io today (after finishing work) and this is what I found π€― Tehse asshole/cunts are still at it !!! π€¬ -- So let's instead see if this works:
$ host git.mills.io 1.1.1.1
Using domain server:
Name: 1.1.1.1
Address: 1.1.1.1#53
Aliases:
git.mills.io is an alias for fuckoff.mills.io.
fuckoff.mills.io has address 127.0.0.1
PS: Would anyone be interested if I started a massive global class action suit against companies that do this kind of abusive web crawling behavior, violate/disregards robots.txt and whatever else standards that are set in stone by the W3C? π€
Oh fuck me! I had basically turned off the route to git.mills.io last night and went ot bed at ~2AM after unsuccessfully trying to control the attacks (bad bots) that were behaving like a DDoS attack. Tried to re-enable the route this monring and *BOOM, they're back! As-if they never stopped?! what da actual fuq?!
Anyone have any clever ideas of what I can do here to allows normal users, like you nice folk and block ths obnoxious traffic?!
Fark me again with the bots. This time DDoS-style crawling from hundreds of IPs and dozens of ASN(s) wtf?!
I've had to disale the Ingress to my Git instance for the time being,
i need to sleep and I can't fight this :/
Fark me π€¦ββοΈ I woke up quite late today (after a long night helping/assisting with a Mainframe migration last night fork work) to abusive traffic and my alerts going off. The impact? My pod (twtxt.net) was being hammered by something at a request rate of 30 req/s (there are global rate limits in place, but still...). The culprit? Turned out to be a particular IP 43.134.51.191 and after looking into who own s that IP I discovered it was yet-another-bad-customer-or-whatever from Tencent, so that entire network (ASN) is now blocked from my Edge:
+# Who: Tentcent
+# Why: Bad Bots
+132203
Total damage?
$ caddy-log-formatter twtxt.net.log | cut -f 1 -d ' ' | sort | uniq -c | sort -r -n -k 1 | head -n 5
61371 43.134.51.191
402 159.196.9.199
121 45.77.238.240
8 106.200.1.116
6 104.250.53.138
61k reqs over an hour or so (before I noticed), bunch of CPU time burned, and useless waste of my fucking time.
Test (_did I fix this shitβ’-)?
Hey @manton π Why yes I believe I did!
Anyone run a Mastodon serve rI can have an account on to help test the Twtxt <-> Activity Pub bridge? π
Test @-mentioning an AP actor via the Bridge. Hey @manton π
For those curious, the new Twtxt <-> ActivityPub bridge I'm building (bidirectional) simply requires three things:
- You register your Twtxt feed to the bridge: https://bridge.twtxt.net
- You verify that you in fact own/control the feed by putting the verification code somewhere on/in your feed (doesn't matter where or how)
- You proxy/forward requests for
/.well-known/webfingerto the Bridgebridge.twtxt.net.
I'm still testing through and ironing out bugs π Please be patient! π
Testing new design, architecture and implementation of a Twtxt bridge I'm working on...
verification-token: ee9bc4da3356f4990671
Please ignore.
Thank you for the encouragement and love and kind words, @lyse @movq @bender @doesnm and others along the way I'm not sure of their feed uris π I'll keep at it, but for the time being I will keep my distance, mostly off IRC, because I don't have the energy to spare in that kind of engagement (what//if the worst happens, it's so draining). I need to remember what I ever did any of this for, it was back in ~2020 and I wanted really to build small interconnected communities that any non "tech savvy" person (more or less) could also benefit from ane enjoy. Even if there are aspects of the specs we've built/extended over time that aren't "perfect"β’, they're "good enough"β’ that they've last 5+ years (I believe this is 6 years running now). I want to spend a bit of time going back to why I did any of this in the the first place, and get a little micro-SaaS offering going (barely covering running costs) so encourage more folks to run pods, and thus twtxt feeds and grow the community ever so slightly. Other than that, I plan to get the specs "in order" to a point (with @movq and @lyse's help) where I hope they'll stand the test of time -- like SMTP.
Thank you all ! π
PR to clean up some unwanted specs and cleanup some invalid/bad references. π
I'm building a service that lets you:
create and manage disposable, brandable email aliases so you can track leaks, forward important messages, and keep your real inbox clean.
I've just finishing building it for the most part, and have cut a v0.1.0 release. It's currently closed source (to be decided later) and now open to beta testers. cc @bender π I fully intend to monetize and offer this as a paid service in teh coming weeks/months, but beta/invite-only testers and early adopters/users first π€
Wow! π€© Are folks actually using Gatherly already? π€ 
Fixed following page template bug so cached feed counts render without errors. cc @bender
@itsericwoodward Also just a heads up, GIF(s) aren't supproted as an Avatar type on yarnd (what runs twtxt.net). I'd change this to something that's more supproted like PNG, JPEG, etc.
Been mucking around with designing my own camper (floor plan). 
Feeling a bit bad for the folks and Coffs Harbor and on the coast of Sydney right now π€― 
As promised, here's some photos of love you!! camping trip to Canarcon George in QLD, Australia.

I'm finding this very interesting... An evolved neural network that plays the game of tic-tac-toe and so far is a pretty decent player. Here is a visualization of it's evolved "brain" that underwent GA (genetic algorithm) training with classification learning + self-play. 
I'm thinking of bringing back filters (this time not as a feature flag, just baked in): New filters: Hide Feed, Hide Bots, Hide News, Media Only, No Replies, Local Only β toggle to trim noise & surface the Twts you care about.
@kat / @xuu Recommend you git checkout main && git pull, rebuild and redeploy: make build, and however you deploy. π Lots of fixes (no more stalling) and optimizations to the feed fetcher, smoother cpu usage, better internal metrics.
Hey @kat If you see this, I'm aware of a bug. I'm trying to figure it out and fix it. bare with me π€ It is what's causing things to "stall" and to have to "restart". Sorry π
After yarnd v0.16 is released and the next round of specification updates are done and dusted, who wants me to have another crack at building Twtxt and activity pub integration support?
Finally I propose that we increase the Twt Hash length from 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
And speaking of Twtxt (See: #xushlda, feeds should be treated as append-only. Your client(s) should be appending Twts to the bottom of the file. Edits should never modify the timestamp of the Twt being edited, nor should a Twt that was edited by deleted, unless you actually intended to delete it (but that's more complicated as it's very hard to control or tell clients what to do in a truely decentralised ecosystem for the deletion case). #Twtxt #Client #Recommendations
Just like we don't write emails by hand anymore (See: #a3adoka), we donβt manually write Twts or update our twtxt.txt feeds. Instead, we use modern Twtxt clients that conform to the specifications at Twtxt.dev for a seamless, automated experience. #Twtxt #Twt #UserExperience
I have a great idea for fixing the US economy. Get rid of all the nuclear weapons π€£
Today I added support for Let's Encrypt to eris via DNS-01 challenge. Updated the gcore libdns package I wrote for Caddy, Maddy and now Eris. Add support for yarn's cache to support # type = bot and optionally # retention = N so that feeds like @tiktok work like they did before, and... Updated some internal metrics in yarnd to be IMO "better", with queue depth, queue time and last processing time for feeds.
@twtxtory Hello π Welcome to Yarn.social / Twtxt π
$ bat https://twtxt.net/twt/edgwjcq | jq '.subject'
""
hahahahaha π€£ Does your client allow you to do this or what? π€
A visual flow chart diagram that illustrates how two different but very related concepts can lead to system accidents π 
- asynchronous evolution
- drift into failure
@andros One thing I really liked about the hacker news rss feeds is the link to the comments. Reckon you can add that to the feed? π€
Iβm thinking of building a hardened peering protocol for Yarn.socialβs yarnd: pods establish cryptographic identities, exchange signed /info and /twt payloads with signature verification, ensuring authenticity, integrity, and spoof-proof identity validation across the distributed network.
@xuu or @kat Do either of you have time this weekend to test upgrading your pod to the new cacher branch? π€ It is recommended you take a full backup of you pod beforehand, just in case. Keen to get this branch merged and to cut a new release finally after >2 years π€£
PR to Add improved styles for the logo for twtxt.ndev

My pod twtxt.net feels very clear of late hmmm π§ This is good right? π
Responded to a bunch of Twtxt open issues across multiple repositories today π
π‘ I had this crazy idea (or is it?) last night while thinking about Twtxt and Yarn.social π
There are two things I think that could be really useful additions to the yarnd UI/UX experience (for those that use it) and as "client" features (not spec changes). The two ideas are quite simple:
- Voting -- a way to cast, collect a vote on a decision, topic or opinion.
- RSVP -- a way to "rsvp" to a virtual (pr physical) event.
Both would use "plain text" on top of the way we already use Twtxt today and clients would render an appropriate UI/UX.
@bender I noticed that although the Discover view (and your own Timeline) is much improved with a MaxAgeDays configuration at the pod level, that now some profiles are rather empty. This is only because well, they're a bit "inactive" so to speak π£οΈ Not sure what to do about this at the moment... Open to ideas? π‘
Hmmm there's a bug somewhere in the way I'm ingesting archived feeds π€
sqlite> select * from twts where content like 'The web is such garbage these days%';
hash = 37sjhla
feed_url = https://twtxt.net/user/prologic/twtxt.txt/1
content = The web is such garbage these days π Or is it the garbage search engines? π€
created = 2024-11-14T01:53:46Z
created_dt = 2024-11-14 01:53:46
subject = <a href="?search=37sjhla" class="tag">#37sjhla</a>
mentions = []
tags = []
links = []
sqlite> Btw @andros ; The automated feed you put together for Hacker News... Does it at any point rewrite parts of the feed as it goes along? π€ I've had to unfollow it because I've found in practise it makes a twt, then seems to modify that same twt (observed by content manually) at least twice. This ends up becoming effectively an "Edit" and essentially duplicate (looking) posts π’
I asked ChatGPT what it knows about Twtxt π And surprisingly it's rather accurate:
Twtxt is a minimalist, decentralized microblogging format introduced by John Downey in 2016. It uses plain text files served over HTTPβno accounts, databases, or APIs. In 2020, James Mills (@prologic) launched Yarn.social, an extended, federated implementation with user discovery, threads, mentions, and a full web UI. Both share the same .twtxt.txt format but differ in complexity and social features.
Oh hey @rrraksamam π Welcome back! π Sorry about the data loss π€―
@bender You will be pleased to know that yarnd now only consumes ~60-80MB of memory depending on load π€£ And bugger all CPU π
@kate @eldersnake @abucci -- I've already spoken to @xuu on IRC about this, but the new SqliteCache backend I'm working on here, what are your thoughts regarding mgirations from old MemoryCache (which is now gone in the codebase in this branch). Do you care to migrate at all, or just let the pod re-fetch all feeds? π€
FYI: I've re-opened up search for anonymous use. So things like this now work without having to have an account on this pod or login. π #search #twtxt
Is it just me or is there a display bug for "Yarn"(s) that are duplicating the root twt? π€
I need to get Peering working again on this branch! That will drag in many Twts Twts I now no longer have π
Timeline Sandbox
Our first test over night trip π€







