Problems are Solved by Method\" 🇦🇺👨💻👨🦯🏹♔ 🏓⚯ 👨👩👧👧🛥 -- James Mills (operator of twtxt.net / creator of Yarn.social 🧶)
@movq Yeah well I've put in an order for a much better quality Ocarina 😅 The one I originally started with was a bit on the "cheap" side. It's been okay, but the high notes are a bit "meh" (airy).
@bender Haha 🤣 Not sure where I'll find such a costume from, but I'll ask my girls 🧒
@rdlmda Yeah the "web" is pretty broken™ right? 😅
yhe sourde code is available so you can inspect it 😅
Hmm I think it's a bug in the Javascript. It's meant to be 
I turned off indexing and anonymous access i think? 🧐
@rdlmda I never saw the point of a registry to be honest, as it defeated the point of what I believed to be a truly decentralised non-social social ecosystem. What can and does work however is a search engine and crawler. I used to run one, but I took it down, mostly because it got expensive to operate, at least the implementation I built... Maybe one day i'll try again with a SQLite backend.
@rdlmda We see and read yout mutterings just fine 😅
@rdlmda I mean, if you're talking about a "Follow me" button you can put on your site somewhere and it somehow magically™ works, yeah we haven't figured out a good way to do this honestly.
Replies aren’t actually broken, I just… need to add myself to the follow list?! That’s quite counter-intuitive and (IIRC) not mentioned in the docs. But… It seems to be working now, which is nice (I still don’t know how webmentions and webfinger works, so can’t speak about this so far)
yarnd (what runs here at twtxt.net) actually does this automatically by default. I think it's just an implementation detail to be honest. There's nothing about this in the specs over at https://twtxt.dev
@rdlmda Haha 😆 I mean I try to, as time poor as I am 🤣 Welcome to our little corner of the Yarniverse as some call it 😅
@movq I know it's crazy right 🤯 these things are just tools. They're not even remotely intelligent at all. In fact they are actually quite stupid. If you feed it garbage you get garbage out! The only interesting thing is that you get somewhat intelligible garbage out 😂
@movq Oh dear god have we lost our way 🤣 I mean seriously?! Can we no longer think for ourselves? This isn't even "AI Slop" this is just poor pathetic lack of discipline 🤦♂️ -- And, frankly, no leadership.
@rdlmda You need to use the RFC3339 format. I would recommend you read the specs at https://twtxt.dev -- This is what is used by many moden clients these days 😅
@rdlmda But I am gad you at least have figured out how to have a feed description and avatar, that's always nice 👍
@rdlmda You also minimally need to be calculate message hases at some point, if you want to form threads that is (copying existing ones is easy) 😅
@bender That's not what tehy really want at all 🤣
@bender I see. Well that's not how I think of the term "Isomorphic" 🤣 I keep thinking about graphics and isomorphic games 😅
@bender Here is a properly formatted version of your message:
Not yet — but that’s probably a good idea.
Instructions:
- Clone the repository
git clone https://git.mills.io/saltyim/saltyim.git
cd saltyim
- Check out the
v2branch
git checkout v2
- Build and install the CLI/TUI
make DESTDIR=$HOME/bin install
After installation, run:
salty-chat @lyse Oh! 🤔 Did you link the wrong video or something? 🤔
@lyse I just watched this. And whilst it's very good and insightful, good history of MySQL and how Martin helped built a good solid Open Source + Commercial model, I'm not seeing the "why people don’t wanna work at your company" bit? What am I missing? 🤔 In any case, he does talk to great length on the importance of Culture and the insane notion of "centrlaised office working", which I 100% agree with.
@bender Whwn do i see you start to use Salty IM more? 😅
Some pretty pics to illustrate the much improved reference Salty.im client, salty-chat.

@movq Good point! I'll update the site a bit more 👌
@movq Man I listened to aht first one, what good shit™ 💩 Haha 🤣 Loved it! 😍
@bender That's the plan! Once I'm happy with this v1 (and we find no other obvious bugs/issues) updating "Changes" with user-facing / human-freidnyl changes is part of the release process!
@bender Thanks for letting me know it was Mobile Safari! I just did some testing real quick and things are not working very well 🤔 I think I've introduced some regressions last night as I was putting this into prod 😅 services me right for late-night deployment 🤣 I've taken it down for now, will spend a bit more time on testing making sure things all work properly!
@movq I dunno 🤷 You should see all the things™ my wife does 🤣 I guess we're both the same, we just do it 😅
Has a bit of a long history story behind this, where last year at work we were reading this book called Engineering a Safer World and initially came across a service called Speech Reply that allowed me to upload a PDF copy of the book and start to read it, but unfortunately, the free trial right now before I can finish reading it turns out that Speech Reply service cost a whopping US$30 a month and expected me to pay a full year upfront, which was well over US$300 just for one fucking book! So I sent their sales and support staff a message kindly asking if it were possible to just pay for the audio transcription of just a single book or to change to a monthly subscription fee, to which they refused, so basically in the end I got very angry and told them to go fuck themselves and built my own service. A year later here we are :-)
@kiwu No embedding works! I'll have a look at what you did here 👌
@bender Only missing roots would trigger that kind of sync IIRC. And that only works if another peering pod has the root twt. What you're remembering, possibly, is an attempt to do what you were thinking of... But I tried it, turned out to be too expensive of an operation to do auotmatically.
@bender Fixed 🤣 Nobody was following that feed 😅 yarnd had no reason to "pull" it in.
I'm kind of curious to know how much Assembly I need vs. How much of a microkernel can I build purely in Mu (µ)? 🤔
I've only got a handful of syscalls working right now. Taking inspiration from the calling convention of the Linux kernel and even made the service/interrupt handler int 0x80h 🤣 I've only got read, write, alloc and exit working righ tnow 🥲
@movq Yes!
Did you do the whole dance with BIOS boot and everything?
Yup! Fark'n LBA shit and all, loading up the GDT, TSS and switching to x86_64 long mode 🤣
Whohoo! 🥳
You have no idea how great a feeling this is! This includes the Mu stdlib and runtime as well, not just some simple stupid program, this means a significant portion of the runtime and stdlib "just works"™ 🤣
@movq Anything we can do? Lend a listening ear? 👂
@kiwu Oh? 🤔 What's up? Can you share? Or just having a hrd time? 🤗
@shinyoukai Whoohoo! That's a start to cross-platform support 🤣
@shinyoukai Okay I pushed a commit that hopefully fixes this. I hope!
@shinyoukai Yes; however the interpreter is also platform dependent and relies on making raw syscalls. This is so the runtime semantics remain the same between the two execution modes.
I'll see if I can add support for linux/amd64 and netbsd/amd64 for the VM at least.
@shinyoukai if you don't show me the actual full stacktrace, I can't fix the problem 😢
Most of it should work on other platforms, the bytecode VM that is. You may run into some platform quirks though that rely on syscall() -- Let me know what you run into and I'll try to fix them nw. The problem right now is I haven't even begun to start work on another platform/architecture yet.
@movq I quite like this part:
Many people write programs, but few stick with a program long enough to distill it.
@bender No, I had my break/holiday earlier. I chose to work through, except the public holidays of course.
@movq Ahh nice! It's been several decades since I've played that! Probably 3 actually come to think of it 🤣
I basically worked through the Christmas break last year. I already had my holidays in Vietnam a few weeks earlier. 😆
@shinyoukai Oh no, fuck that 🤣 That's why I built an FFI so I can call C-functions via shared libraries 🤣
@movq What I wish for once on this miserable planet is for coporations one day ohave a different set of reasons to exist and thrive other than:
but since the only goal of that manufacturer is to make money, they do it
Life becomes very boring and uninteresting when your only goal in life is to "make more fucking money" 💰 Fuck 🤬 Fuck this Corporatocracy we live in 🤦♂️
@shinyoukai I can't believe Trace and Edgewall Software is still around and in use 🤣
@lyse It's actually not nearly as half bad as I really thought it would be. Just having to eventually deal with the "lowering down" to machine code / ARM64 assembly in the end once you've verified the semantics in the VM.
@lyse A "Hello World" binary is ~372KB in size. I currently have peephole optimization and deac code optimizations in play, and a few other performance related ones, but nothing too fancy. I have a test case that ensures fib(35) doesn't regress too badly as I continue to evolve the language.
@movq This is fuck'n great shit™ Where did you find this? 🤔 Got any more shit™ like this? 🙏
@ionores Very nice! 😊 Happy New Year to you too!
@movq Mu (µ)'s startup latency appears to be ~10ms on my machine:
$ time ./bin/mu ./foo.mu
real 0m0.011s
user 0m0.004s
sys 0m0.006s @lyse I can tell you this right now, writing assembly / machine code is fucking hard work™ 😓 I'm sure @movq can affirm 🤣 And when it all goes to shit™ (which it does often), man is debugging fucking hard as hell! Without debug symbols I can't use the regular tools like lldb or gdb 😂
@lyse Yeah I remember you said some days back that your interest in compilers was rekindled by my work on mu (µ) 😅
@zvava The problem you now then is you lose integrity of the message content if you compute the hashes at runtime rather than on the way in. So if your message content or database becomes corrupt in any way, so do your hashes.
@shinyoukai Nah it's more like there's a lot of repeated code, because when you go from source language to intermediate representation to machine code, well you just end up writing a lot of the same patterns over and over again. I need to dedupe this I think.
The compiler technique I'm using here is to not "emit" most of the runtime if it's actually never used in your program, and also dropping dead code in the SSA pass.
@movq I've managed to bring a simple "Hello World!" in mu (µ) (at least on macOS / Darwin / ARM64) down to ~86KB (previously ~146KB) 🥳
@movq I think I can get binaries even smaller with a bit more work and effort 🤔 But yeah still working on the native code generation (at least for macOS targets)
@movq Oh that's fine, Mu can compile to native code and so far binaries. at least on macOS are in the order of Kb in size 😂
@movq It'd be cool if you could get µ (Mu) running in your little toyOS 🤣 You'd technically only have to swap out the syscall() builtin for whatever your toy OS supports 🤔
@movq I watched a few of these thanks to you! Very cool shit™ 😎
@thecanine Is it because you've used white pixels around it to sort of give it aht 3D look? 👀 Hmm? 🤔
@bender It's fun living in the future isn't it 🤣
@movq From 2:50 PM to 3:23 PM AEST (+10 UTC) there was an outage. Everything went "up" on Down Detector, my EU region went offline, numerous sites were unavailable, and so on. Basically everything to/from the EU appeared to basically go kaput.
@movq @kiwu it just so happens to be a happy coincidence that I'm extending mu's capabilities to now include a native toolchain-free compiler (doesn't rely on any external gcc/clang or linkers, etc) that lowers the mu source code into an intermediate representation / IR (what @movq refers to as "thick layers of abstractions"...) and finally to SSA + ARM64 + Mach-O encoder to produce native binary executables (at least for me on my Mac, Linux may some later?) 🤣
@movq Pretty sure all my mu solutions are very slow, but not so slow as I optimized most of the implementations to avoid as much brute forcing as I could.
@movq This is the total amount of cpu time consumed right?
@movq I shrank Day 9 Part 2 from “cover the whole map” to “only track the interesting lines.” By compressing coordinates to just the unique x/y breakpoints, the grid got tiny. I still flood-fill and do the corner-pair checks, but now on that compact grid with weighted prefix sums for instant rectangle checks. Result: far less RAM, way less CPU, same correct answer.
@shinyoukai Funny you should say that, I designed a new Prolog(ish) Symbolic Reasoning Engine and DSl over the holidays 🤣
That's the right answer! You are one gold star closer to decorating the North Pole. [Continue to Part Two]
Whoo! Making progress! With AoC 2025 solutions implemented in my own toy language 🤣
Ahh that's because I forgot to call main() at the end of the source file. mu is a bit of a dynamic programming language, mix of Go(ish) and Python(ish).
$ ./bin/mu examples/aoc2025/day1.mu
Execution failed: undefined variable readline @aelaraji probably a bug on my end with the bridge. I'll figure it out with your help when I get home from my holidays.
@bender that's kind of what I was getting it initially yeah
@movq @zvava I think people get sick of everything changing all the time and so don't bother adopting things to change when things are already good enough 🤷
Ba Na Hills and it's basically clouds at this point 🤣
@movq I think WebP being new just hasn't seen widespread adoption everywhere (yet) 🧐
i'm always open to suggestions: PRs also welxome 🤣
@bender No no we did!!! Just the photos are rubbish 😂
@klaxzy do you know what I also find equally just as stupid and dumb is having to upgrade the software license on something just to be able to get OIDC or OAuth support ffs 🤦♂️
can somebody please transcribe what he said and post it here? 🙏 I think it's too good just to waste in a video it needs to be preserved. 🤣
@bender i'm just pointing out that it's one of those fundamental RS 232 standards that will never die 🤣
@movq I think even modern PC still come with serial ports they just don't wire them up anymore right? They're still there in the board itself, though just unwired.
This is an example of the kind of garbage release notes from this conventional commit autogenerated crap 🤣

This ☝️ I proxy my SSH traffic and it requires a valid account check to occur.
@lyse I couldn't agree more! I think good commit messages are very useful, however, and I'd much prefer the conventional mood style for Commit messages, but rather prefer telling a story rather than this weird syntax all over the shop!
@itsericwoodward Aren't yhere onlu 12 puzzles this year? 🧐
@shinyoukai Are you using your Gitea username instead of got@ ? Are you forwarding auth?
@bender are you able to send me a video recording of how that sounds because I don't think that that's what they called it at the breakfast? 🤣
@movq well I've got several minutes of at least three people's attention now didn't it? 🤣
@bender actually I think it's a little more nuance than that because for example with salty chat, we have support for DNS based delegation via SRV records and your identity is associated with your Apex Dom name and of course the keys.
I actually don't understand why Federation and activity pub is so goddamn hard to migrate from one instance to another 🧐
@bender Same. I think i might have played with it at some point!
@bender ha ha it started the V something and I don't understand how to reproduce Vietnamese name 🤣
@aelaraji does that mean your identity gets associated with your Apex domain or your sub domain?
@shinyoukai that has to be one of my stupid designs of activity pub 😆
@aelaraji I like the sounds of this technique a lot redirecting these AI crawling assholes to multi gigabyte files! The only concern I have is how do you do it in such a way that you don't end up destroying your own ISP speed test servers?
@itsericwoodward So you're found for Javascript eh? 🧐
@bender Would you like me to say moar words ? 🤣
@shinyoukai carrying an MQTT broker isn't exactly very simple though 😆
@kiwu I'd recommend the one i linked you to a 2nd hand Sony 👌
Before smartphones people used to use the Sony Camcorders, but even though they still exist today, they're uber expensive 😂
@kiwu Only thing i can find that meets your requirements is the ORDRO HDV-V12 HD 1080P Video Camera Recorder Is 80m of video rexorsinimg enough for you?
@bender Haha 🤣 I need a good break after this insane year 😂
I actually can't progress to day two till I get home 🤣 -- I haven't pushed the code for the mu compiler yet 🤦♂️ So no-one can check my work even if they were so kind 🤣
For those visiting Hanoi in the Old Quarters that are beer snobs like me; highly recommend this place called Local Craft Beer 🤩
completely untested as i have no remote way of running mu code from Vietnam 🤣
The most interesting part about mu is that the language is actually self-hosted and written in itself. There is a stage zero compound written and go on a stage one compiler written in mu
@bender No, but if there's a problem i want to know about it so i can address it 😆
@movq Lots of things stop me 🤣 crappy wifi, no international roaming, no remote access (by design) just to name a few 😆
@movq Oh damn ! I'm on holidays in Ciwtnam 🤣 I'll be late to the party !
@shinyoukai What do you mean by that? 🧐 Clients don't care about the order of twts in a feed. For display clients usually sort by timestamp.
@bender Yeah. something i'm trying to avoid in this 2nd attempt 🤞
there's also a constant veil of what I believe to be cold dust in the air and smog 😢
That's going to be most of our holidays next year 🤣 Mostly because we bought a van to go "glamping" about the country 😆
It's only been really @manton that's new on yhe disxover cure? 🧐 And only because i'm following him (only person whose Fediverse handle i could remember 🤣)
Even on piss poor in-flight Wi-Fi it works pretty well 👌
@movq All good! 👌 Likely bug on my end (bridge)
The token isn't secret in anyway, just proving that you control / own the feed.
@shinyoukai Yea or as a comment in your feed somewhere
@movq So that's movq@tilde.zone ? I'll first have to put it into the bridge...
Maybe someone else can help with more testing? 🧐
@therealprologic Sweet! Mentions are fixed! 👌 Now just have to fix threading!
@therealprologic Okay so the mention translation is. busted and umm the threading is busted. But other than that, so far so good 😊
Oh my god! 🤣 It works! 🥳 My first Twt into the Fediverse (stil some improvements to be made of course), but still 😳 Wow! 🤩 
@shinyoukai I don't even know how to fix that 🤣 Do you? 🤔
@aelaraji It's definately been a long and fast year that's for sure 👍 Don't worry!
@aelaraji I think I'll just end up using the Official CrowdSec Go library 🤔
@shinyoukai If you're after a list of bad ASN(s) I have such a list handy here 😂
@aelaraji Ahhh! That would be even funnier and even more brilliant! 🤣 If you can find this, I would happily employ this tactic next time and make 'em pay 💰 Bahahahaha 🤣
@shinyoukai You would have to pull main and build from source 🤣 I promise I'll make a new major release soon™ -- Only been promising that for a while now, but it will happen this year 🤣
@aelaraji Yeah and I think I can basically pull the crowssec rules every N interval right and use this to make blocking decisions? -- I've actually considered this part of a completely new WAF design that I just haven't built yet (just designing it).
@bender That's not the problem. The problem is the complex DNS setup and delegation. I've gotten it working once before, but it's not that easy if you don't intend to run it on the APEX Domain.
@movq sorry dude I think we're getting our language confused. I think I actually meant private Internet connections.
@bender Maybe so. But running Mastodon or GotoSocial is actually not as easy as you'd think 😂
@movq If by that you mean ISP(s)? No. so far most are hosting providers by the looks? 🧐
@aelaraji Ahh that would be awesome!!! I'd also somehow need read access to logs so i can figure shit out on my own 🧐
@bender Just a donations thiny I knew about from years ago that I never setup properly. Now an acceptable form of donation on my prologic.dev site 👌 (if anyone ever does that is!)
@shinyoukai I'm mostly against it because it forces Javascript™ on the client(s) at a blanket level. Doing "Proof-of-Work" explicitly IMO is fine™, but not at an Ingress/Edge level IMO -- Which is why I haven't adopted it myself.
@movq @bender I'll also start spamming from my upcoming Vietnam holiday (flying out this Friday) for a couple of soliday weeks 🤣
@movq Seems fine to me! Plenty of time to get our shit™ in order! 🙌
@shinyoukai Welcome back! 🤟 You have been missed! 😅
At this point I'm considering starting a class action lawsuit for all the self-hostess and little-web folks that want to host a small thing or two and sue these fucking inconsiderate fucking corporate giants, hopefully win, and make them respect others on the web.
@bender Don't even think that was on the cards I'm afraid 😳 But yes I've said that in a message to the recruiter.
@kiwu I'm glad you're liking the updates haha 😆
@lyse @bender Pfft, they want folks to relocate to Sydney. Fuck that 🤣 Sydney is a bit like San Francisco, I'm not actually sure which is worse. Fuck'n expensive as hell, the only palce you'd be able to afford to buy or rent is at least ~2hrs out of the city by public transport (i.e: train) and by that time you've just pissed your life down the toilet, because you'd be expected ot work a 9-10hr day + 2-3hrs of travel each way, buy the time you factor in having to wake up super early to get ready to travel in to work, you basically have zero time for anything else, let alone your ufamily,
Fuck that.
@bender Haha 🤣 Spoken like someone that's done this before 😅
@arne @lukas In fact, Yarn.social's yarnd client implementation actually uses (or did, still kinda does today) PicoCSS 🤟 It was/is a good CSS library! 👍
@quark It's very nice mate 😅 I didn't know you were this good at CSS 🤣
@bender That's actually kind of what I was going for, just with a stylized "t" and some blue/purple/red shades 🤣
What I wanna know at this point @bender is this; What is this "Notes" thing. Is it just a uugo static site you maintain or something else? 🤔 Did you write all the CSS yourself? 😅
@lyse @bender that's also what Yarn.social's logo is, and just happens to be the yarnd default. Hmmm figured times for a change? 🤔
@therealprologic It works! 🤣 Now I'm quite sure we haven't got threads working yet 🤔
@movq unison seems pretty fast for me, and quite nice looking on my macOS desktop. It's bsed on GLFW, but it seems to work quite well 🤔
@bender It's good enough ti iron out any bugs 🐛 Can I haz an account? 🙏
Someone, on the Bridge, this is meant to have sent @manton a "Follow Request" via Activity Pub hmmm 🧐
@bender I need another side that I can unblame 🤣
I think because it still inserted the wrong alias in my following list:
# follow = manton@bridge.twtxt.net https://bridge.twtxt.net/twtxt/remote/d428c49928a4a0d1.txt I'm not currently sure why this is tab-completing incorrectly hmmm 🧐
I need some test Activity Pub / Mastodon users to test with 🤔
Haha 🤣 I wonder what the reliability of executing a sleep in a 200 billion year loop cycle is? 🤔
technically I can put the Bridge verificaiton code in my feed's metadata so no-one really ever sees or notices it 🤔 Maybe I'll add a first-class button/field thingy in yarnd so users can "register their feed" straight from their pod? 🤔
@bender Twtxt <-> ActivityPub (2nd time's the charm? 🤣)
I spent a few mins on teh tilde website, and for the life of me I can't find a way to contact anyone responsible/accountable for this wonderful little service 🤣
Is it worth me reaching out to the operator and helping build some solution for their userbase to detect followers? 🧐
I have now permitted the following media types:
image/*
audio/*
video/*
text/* Done ✅ Will be available on this pod as soon as the publish workflow finished successfully.
@bender yeah it wasn't so much of a browser thing, more of a security/abuse thing. If you upload large media, we downsize/downscale it, etc.
@bender The only problem with uploading is the procesing. Do you expect any server-side processing of the WebP or just store and host?
@bender That we can do easily. Just supporting tendering .webp inline eight? 🧐
@movq Yeah ! 👍 I'm trying to build my first micro-SaaS and get more lay-people to protect their own inboxes and identify 🤣 -- Hopefully it all works out 💪
@eldersnake I'll make a release this weekend (today)
@eldersnake What version are you running btw? It's probably time you upgraded and time I released a new version finally 😂 If you're running a version that's pre-SQLite-cache, then yeah I'm not surprised. The SQLite cache version is honestly much better 🤣
Thanks for sharing your thoughts! I'm going to bed, but I'll have a closer read/think tomorrow 🤞
@bender We could -- It's just never became "strong enough"™ of a demand that I ever extended the possibility of supporting other mime types.
@bender Same I only have one registrar too (OnlyDomains).
@bender It's not even available on my registrar anyway 🤣
@bender Makes me wonder whether somethingarather.zip is a good primary domain for the service I'm building? 🤔
@bender I think that's where it sends the capture verification requests. It's based on PoW, so it has to perform validation somehow. It actually looks pretty decent as far as a way to prevent spam/abuse of forms on the open web (e.g: Waitlist on SnipMail).
You do raise very good points though, but I don't think any of this is particularly new because there are many other examples of technology and evolution of change over time where people have forgotten certain skills like for example, changing a car tyre
@movq I am genuinely curious as to why you think Geminis summarization and the categorization of your gopher post was and is as you say misunderstood?
I asked this very genuinely because before reading @bender's comments and Gemini summarization I actually went and unplugged your post into flood gaps go for proxy, and then listen to the text intently with my own human ears 👂
What is this about? I don't run my Gopher proxy anymore 😅
Hmm anyone got a contact detail for Andrew? @eldersnake – The emails/contacts I have have all bounced 😭
@bender Hmm anyone got a contact detail for Andrew? @eldersnake -- The emails/contacts I have have all bounced 😭
@kiwu I wouldn't go that far haha 🤣 I'm not sure I'm all that wise 😂
@kiwu really? 🧐 msn I already feel old and broken and um not even that old 🤯
I had a looksie (just to be sure) at the database, and they were thankfully legit test events. But this did spark/trigger me to make sure I have some form of anti-spam measures in place. So I added some per-event / per-rsvp rate-limiting and honeypot(s).
@movq That and no sane person writes Java™ anymore right? 🤣
Cool. I think I've improved this abit. Update going out shortly... Also added optional support for displaying gravatar(s) if you supply your email address (optional of course).
@lyse Also thanks mate! 🥰
In fact, it’s a great little invention
Actually. Looking at the template and the BeerCSS docs, I think I'm just using the wrong elements and doing the wrong thing in the template/partial structure itself 🤔 Probably need to wrap text in something else other than a plain 'ol <p>
@lyse To be fair, I'm not convinced of the web design / user interface decisions either. I just hacked this together over a couple of days. I'm not sold on any of the UI/UX thus far. Open to suggestions, improvements, hell even a complete CSS rewrite 🤣 UI/UX nor CSS is my strong suite 😂
@movq What about more modern alternatives based on GLFW?
@bender LOl so much or building a RSPVP thinty™ ma bob 🤣
@bender It certainly doesn't here. I've even traced it's network calls. it makes none.
@movq I guess I wasn't talking about the speed of interesting text/context, but more the "slowness" of these tools. I think I can build/ solutions and fix bugs faster most of the time? Hmmm 🤔 I think the only thing it's able to do better than me is grasp large codebases and do pattern machines a bit better, mostly because we're limited by the interfaces we have to use and in my ase being vision impaired doesn't help :/
Hmmm nope. I think I've fucked up my network for use with self-hsoted WebRTC. This isn't a PeerCalls thing at all, this is just me.
@lyse Ahh cool! Gatherly needs a "Maybe" for RSVP(s) :)
@bender It used to work just fine™ - I wonder if it's my WAF? Lemme turn the WAF off for this tie...
@bender I think so. Have to retest it though :)
All that's true! -- However I am very competitive (usually with myself!)
@movq I think if I was younger, with more energy, and wasn't blind with leber's disease (look it up) I'd be fine™ But yeah I get the whole "exhausting" apart. I'll join you this year, since there's only 12 puzzles and as you say, we can "take our time" it might actually be fun! (as opposed to exhausting and pressured).
@movq This is actually a good positive change I think!
Personally, I’ll probably stretch it out over 24 days. Giving myself more time to solve each puzzle and I really want this event to last the entire month. 😅
I might even do AoC this year with the elevated stress/pressure! -- The last few times I've tried, I've always felt far too much pressure and felt like a failure 😞 (mostly ya know because of my vision impairment, I couldn't keep up!)
Like these Car Manufacturers, like GWM, Toyota, Mercedes, BMW and whoever else does this stupid shit™ need to pull their heads out of their asse. :O
Obviously none of this requires an Internet connection, let alone a Network connection. All of it can be done over Bluetooth! Just like Carplay itself!
@movq Yeah, this is similar to my 2025 GWM Cannon Ute (truck) that we recently bought. It has this app called the "GWM App" that lets you view various health/stats of the vehicle, open/close the door, locks, control the A/C etc, all from your Mobile Phone. -- But... Guess what?! :D It has a goddamn fucking SIM card in the head unit (dash) somewhere that once you "consent" and agree it signs up to some god knows what local cellular service and all that wonderul functionality is controlled by, guess what... A fucking goddamn CLOUD service! da actual flying fuck is wrong with these people?! -- Are we some of the only people in the world that realize how fucking dumb all this Internet-connect shit™ really is?
@movq Speaking of "clusterfucks". Every fucking time I try to type something on my fucking goddamn iPhone's little tiny ass on-screen keyboard it ends up typing out "I love you!" 🤟 For fucks sake 🤦♂️ -- Given the size of the fucking goddamn on-screen keyboards on these things and folks with limited/poor vision, can't we figure out what I meant to type instead of spitting out total garbage nonsense that I had no intention of typing that makes me just look silly and stupid?! 🤬 Ask @bender how many times this has happened on IRC whenever I've been on my phone 📱
@xuu Haha 🤣 I'm already have "conversations" with my junior engineers on "how to best use" and "how to avoid" 😂
@arne Yeah SSE + HTMX is basically all you need really. The whole complicated/complex JavaScript ecosystem is overkill.
@bender Is dealing with spam fun though? DDoS attacks? DoS attacks? Scans for all kinds of stupid shit™? Malware? Advertising? Tracking? Spying? ..
@movq I wouldn't consider this a "dark web", no. It'd just be a new web on top of an already existing "physical" infrastructure, where the web that grew out of that is total garbage.
@movq Oh dear 😅 We're starting to see this "garbage software" too over here 👈
@bender So far so good 😊 I'll let you know how things go though!
@important_dev_news Fuxk me decision makers are fuxking stupid sometimes 🤣
The people that design these bills and laws are unhinged.
@movq Where do you stand on this nonsense? 🧐😆🤣
@lyse Cool! 😎 You might be interested in my own learnings and toying around with building my own container engine / tooling (whatever you wanna call it) box. I had to learn a bunch of this stuff too 😅 Control Groups, Namespaces, Process Isolation, etc.
@bender See the problem is you don't live in the "busy" enough 😂 There are roaches everywhere here! 🤣 LOL snakes too! Plovers, Magpies, Crows, Spiders, even Deer for fucks sake 😂
@bender We have quite a few that are basically part of our friendly neighborhood. They knew we won't chase them aware, scare them, etc. In fact some of us find little cockroaches to feed them, tose 'em up in the air and watch them sweep in and grab the little suckers 🤣
@movq damn! those are some fine looking chickens 😆
@zvava feeds are fetched at least every 5m (if they've changed)
@bender Yes! What you're seeing in the demo is just demoing the routes file and redirects, etc/. Pathing more.
@movq Yeah I was gonna say 😅 The problem isn't that bad 🤣 But still we should fix this soon™ 🔜
@movq You were seeing that mayn hash collisions for you to notice this? 😱
@bender I've made several improvements today, tightened up the line height and density of the text plus a few other nice things too! I think I'm ready to start migrating my blog over to this 😅
@bender I agree ! I reckon the line height could be a bit smaller 👌
@bender Shh yes 🤣 this is the problem with politics 😆 by that definition; I'm not conservative 🤣
@bender Yes but I guess what I'm saying is; "so what about it?" Aren't most places in the world these days "multicultural" to some degree or another? 🤔
@bender Well see that's just what the freak'n tests say about me haha 🤣
immigration and multiculturalism
What about it? I grew up in a multicultural country.
@movq I'm glad it make sense for you 😅 I will never understand it. All I know is that I'm a conservative socialist and there's a lot of "stupid shit"™ happening in the world (including my own country). I still blame extreme Capitalism.
@movq See here's the thing... I just don't fucking gt this whole "left" vs. "right" shit™ anymore. None of it makes any sense whatsoever. When my wife tries to explain it to me it's completely the opposite to what you just said just now 😱 -- So from here on, I'm just going to keep things simple" nutters" and "normal" 🤣
@bender I feel you buddy 🤗 At one point we have quite a vibrant community. Phil was great, jlj too and Adi was well just Ado 😅
@bender Yup! Fixing that now! 👌 Also the Tags page and the size of the trags is intentional, as more posts are tagged with the same tag, those will result in larger size rendered tags in a kind of "tag cloud" -- At this this is the intention.
@bender Ahh yes I see what you mean. no indicate of when the post was made right? That should be ideally displayed on the page somewhere? Would you expect it in the url as well, because not having /posts/yyyy/mm/dd/.... was actually intentional. But yeah I should figure out where to put some additional metadata on the page.
the single posts have no date (intended?)
What do you mean by this? 🤔
@alexonit Yeah I think we're overstating the UNIX principles a bit here 🤣 I get what you're trying to say though @zvava 😅 If I could go back in time and do it all over again, I would have gotten the Hash length correct and I would have used SHA-256 instead. But someone way smarter than me designed the Twt Hash spec, we adopted it and well here we are today, it works™ 😅
@alexonit Yes well I'm pretty big on self-hosting. I've even tried to start a small business/company around it (but that's another story for another day!) -- Meanwhile I would encourage you to have a look at the work we've done in Salty.im 👌
@alexonit Well we have to really use the same spec or threading doesn't really work in a truly decentralized manner 😉
@zvava I axtually latest did and I wasn't the only one 🤣
And I need to make something absolutely clear as well here. Twtxt was completely and utterly dead back in {Aug 2020](https://yarn.social/about.html) when I came across the spec and its simplicity and realised the lost opportunity. Since then we've continued to grow a small but thriving community. The extensions we've built over time have stood and lasted the test of time for the past ~5 years. We need not break things too badly, because what we have today and was designed years ago actually works quite well™ (despite some flaws).
Put another way, what you are proposing/pushing for requires hundreds of lines of code to change across a half dozen or so clients and lots of breaking changes, not to mention unknowns.
What I want us to do is make only a few half dozen or so lines of code changes to our clients and minimize the breaking changes and unknowns.
@zvava Going to have to hard disagree here I'm sorry. a) no-one reads the raw/plain twtxt.txt files, the only time you do is to debug something, or have a stick beak at the comments which most clients will strip out and ignore and b) I'm sorry you've completely lost me! I'm old enough to pre-date before Linux became popular, so I'm not sure what UNIX principles you think are being broken or violated by having a Twt Subject (Subject) whose contents is a cryptographic content-addressable hash of the "thing"™ you're replying to and forming a chain of other replies (a thread).
I'm sorry, but the simplest thing to do is to make the smallest number of changes to the Spec as possible and all agree on a "Magic Date" for which our clients use the modified function(s).
@bender Well honestly, this is just it. My strong position on this is quite simple:
Do the simplest thing that could work.
It's one of the age old UNIX philosphies.
Therefore, the simplest thing™ to do here is to just increase the hash length, mark a magic™ date/time as @lyse has indicated and call it a day. We'll then be fine for a few hundred years, at which point there'll be no-one left alive to give a shit™ anyway 🤣
@alexonit My problem is I don't see a world where we don't employ some form of cryptography to use as keys for threads in databases and other such things honestly. I'm not going to use url#timestamp as keys.
@bender Yes I did about a week or so ago. It took me a lot of effort to get the content even rendered in the first place. LOL I had to basically export my blog as HTML (can you believe that?!) -- The Hugo export just didn't work at all 🤣
@movq Yes it's kind of terrible 😞 -- Let's not do this 🤣
This is possibly the only other threading model I can come up with for Twtxt that I think I can get behind.
Example:
Alice starts thread #42:
2025-09-25T12:00:00Z (tno:42) Launching storage design review.
Bob replies:
2025-09-25T12:05:00Z (tno:42) (ofeed:https://alice.example/twtxt.txt
) I think compaction stalls under load.
Carol replies to Bob:
2025-09-25T12:08:00Z (tno:42) (ofeed:https://alice.example/twtxt.txt
) Token bucket sounds good. Of course we still have to fix the hashing algorithm and length.
I would personally rather see something like this:
2025-09-25T22:41:19+10:00 I was trying to say (badly):
That's kind of my position on this. If we are going to make significant changes in the threading model, let’s keep content based addressing, but also improve the user experience. Answering your question, yes I think we can do some combination of both.
@alexonit Holy fuck! 🤣 I just realized how bad my typing was in my reply before 🤣 🤦♂️ So sorry about that haha 😆 I blame the stupid iPhone on-screen keyboard ⌨️
@alexonit Yhays kind of love you!! Stance and position on this. If we are going to make chicken changes in the threading model, let's keep content based addressing, but also improve the use of experience. So in fact, in order to answer your question, I think yes, we can do some kind of combination of both.
@lyse I don't think there's any point in continuing the discussion of Location vs. Content based addressing.
I want us to preserve Content based addressing.
Let's improve the user experience and fix the hash commission problems.
Here is just a small list of things™ that I'm aware will break, some quite badly, others in minor ways:
- Link rot & migrations: domain changes, path reshuffles, CDN/mirror use, or moving from txt → jsonfeed will orphan replies unless every reader implements perfect 301/410 history, which they won’t.
- Duplication & forks: mirrors/relays produce multiple valid locations for the same post; readers see several “parents” and split the thread.
- Verification & spam-resistance: content addressing lets you dedupe and verify you’re pointing at exactly the post you meant (hash matches bytes). Location anchors can be replayed or spoofed more easily unless you add signing and canonicalization.
- Offline/cached reading: without the original URL being reachable, readers can’t resolve anchors; with hashes they can match against local caches/archives.
- Ecosystem churn: all existing clients, archives, and tools that assume content-derived IDs need migrations, mapping layers, and fallback logic. Expect long-lived threads to fracture across implementations.
We've been discussing the idea of changing the threading model from Content-based Addressing to Location-based addressing for years now. The problem is quite complex, but I feel I have to keep reminding y'all of the potential perils of changing this and the pros/cons of each model:
With content-addressed threading, a reply points at something that’s intrinsically identified (hash of author/feed URI + timestamp + content). That ID never changes as long as the content doesn’t. Switching to location-based anchors makes the reply target extrinsic—it now depends on where the post currently lives. In a pull-based, decentralised network, locations drift. The moment they do, thread identity fragments.
@kat Mine shows 1/1 of 14 Twts 😆 I think this is a bug 🤯
@alexonit I took it down mostly because of continued abuse and spam:l. I intend to fix I and improve the drive and its sister at Summer point 🤞
@alexonit Yeah same 🤣 There's also this @news-minimalist feed that shows up the most important shit™ anyway (when/if that happens).
@bender Seriously I have zero clue 🤣 I don't read or watch any news so I have no idea 🤦♂️
@thecanine Id like that too, it just can't come from me, because native mobile dev just isn't my thing 😢
@zvava And yes yarnd does have a well documented API and two clients (CLI and unmaintained Flutter App)
@zvava The first version of what is now yarnd was built over a weekend 😀
@zvava Herw you go: https://git.mills.io/yarnsocial/twtxt.dev/pulls/28
@zvava we have to amend the spec and increase the hash length. We just haven't done so yet 😆
@kat @kat Pretty sure I have many more mentions in the database than the one and only one I see hmmm 🤔 -- I'll have a look at the code when I can and the SQL query it's using
@zvava Yes congrats and well done! Keep going! 🥳
@dce Ooops 😅 Hope you still have enough money for the basics 🤗 I'm doing okay though!
Chances are the database bought wasn't cheap at all and was aold by some scam company that probably ripped them from six figures or more for a database that's full of rubbish. 🤣
@movq Right now I'm basically just blocking entire ASN(s) at this point and large blocks of IP(s) from Anthropic, OPenAI, Microsoft and others.
@bender I've been cutting back too 😅 Trying to avoid drinking (with alcohol) 24hr before fixtures (🏓) and before training 🤣
@dce No worries 😌 It's all documented in our soecs, it's not such a common thing that we've felt the great need to really solve, we're aware folks want to sometimes have their feed on several protocols, and that's totally fine™ 😅
@movq Yeah, we've seen how this plays out in practice 🤣 @dce My advice, do what @movq has hinted at and don't change the 1st # url = field in your feed. I'm not sure if you had already, but the first url field is kind of important in your feed as it is used as the "Hashing URI" for threading.
@dce these are some of the same reasons that I enjoy Yarn.social/Twtxt 🙌
@dce Twet is a far better command line client. Yea 👌
@movq Yeah I'm worried about this too. What's the systemic problem at paay here? Capitalism at it's extreme? 🤔
To combat malware and financial scams, Google announced today that only apps from developers that have undergone verification can be installed on certified Android devices starting in 2026.
This requirement applies to “certified Android devices” that have Play Protect and are preloaded with Google apps. The Play Store implemented similar requirements in 2023, but Google is now mandating this for all install methods, including third-party app stores and sideloading where you download an APK file from a third-party source.
@movq Yeah I just got a bit curious after watching your video and reading your OP 😅
@movq Haha yeah rightio, and yeah inches suck 🤣
@movq What do you define as "expensive"? 🤔 (I've always thought of modern-day painters as a "rip", and the ink my god 🤯)
@movq Is there like a TL;DR of this standard? I can't say I remember this tbh 🤔
@movq Are you sure?
because there is virtually no market for these devices anymore, meaning new ones are very, very expensive.
I think dot matrix printers are still pretty common in many Point of Sales (POS) registers right? At least here in AU they're very common. I had a quick look myself today, there seems to be quite a solid market for these types of printers. In fact even EPSON still sell Dot Matrix printers themselves 🤣
@movq Kind of curious now... Is there a (to buy new) dot matrix printer you'd recommend if someone wanted to get into this sort of thing (sending plain 'ol bytes to a printer port)? 🤔 (I remember this back in the ye 'old days!)
@twtxtory it is designed that way on purpose 🤣
@thecanine Haha I thought myself there might ahve been too many pixels on the tail, but I'm no expert in this field 🤣 It's still a nice canine though! 👌
@thecanine My daughter (who is pretty good already at art and only 10 :D) says this looks like a "blob" 🤣 I tried to explain to her that this is pixel art, but I'm not quite sure she has the same appreciation (yet) 😅
@eric Name change is no worries! 😉 Interesting/funnily enough my client yarnd seems to have picked it up automatically which is nice (I've historically always had a few bugs to iron out there 🤣)
@eric I prefer to call what we've built here really an "ecosystem". A network isn't really an apt description. Twtxt/Yarn is arguably IMO the purest decentralised non-social social media ecosystem I think in existence today 🤣
@xuu Your ingress is via some kind of tunnelling too right?
@eldersnake Haha, yeah well "thinking" isn't really something we even know how to define, let alone simulate 🤣
But maybe, just maybe this is why they're pushing so hard to have this "Age Verification" bullshit. So they can then shut people down like me that routinely "speak up" and "against the status quo". Bend over backwards? I think not! Assholes 🤣
I realize I'm a nobody, and no-one will care or listen. But to the various UK, EU and AU politicians pushing for this "Online Safety Act" bullshit.... You're all fucking utter morons! I can't wait for the backflash of what will come next. Idiots.
@jost Yeah replying is pretty easy if you see the first reply. Just preserve the so-called "Subject" 🤣
@kat Oh sweet! I was gonna say, setting up those rules is a bit "complicated" 🤣 But I'm glad you worked it out! 👌
There is a missing feature I've been intending to add to though, which is that any link that looks like a URL that might be an image, for example, ends with .png or .jpg or whatever, we should just render that as an image and not expect users to wrap it in Markdown image links 
@kat Ahh what do you mean by images don't embed? They definitely should! By default however all domains are blocked, so you might want to either allow some domains or just put in a .* entry to allow all/any domsins. Screenshot attached 
@important_dev_news Oh gawd, is the EU doing this "age verification" bullshit too!? Not just Australia?! 🇦🇺 Farrrrk!!!!! Help!!!!
@kat Just do it 🤣 I do this daily for work. It's great!
@movq Don't worry, this hype will end as quickly as the last one haha 🤣
@movq Haha 😆 But OTOH not nearly as much as you think. Plus you get to build what you want!
To be honest though, for a mid-range and moderately priced truck, even though it's made in China (what isn't?!), it's actually a very nice truck.
@bender I plan to trade it in within it's warranty period 🤣 It has 7yr warrants on everything, I said to the dealer, I'll see you in 5 🤣
Our truck can comfortably tow 3T (its rated for 3.5T but I'm trying to keep a fair bit of buffer and headroom all-round).
@bender That was one of the inputs into my research 🧐 So that's already factored in. We bought our new truck (2025 GWM Canon) recently to replace the 'ol 2nd hand Nissan Navara we bought that just had too many things go wrong with it, and I don't have time or energy to learn to be a diesel mechanic haha 🤣 -- So yes, the SCT-16 has a Tare (unladen weight) of 2150Kg and a maximum legal (ATM) weight of 2,800Kg.
@bender Yes! You guys have this thing called a "5th wheeler" 🤣 We (Aussies) just don't normally have big enough trucks to drag those "House on wheels" though 😅
@bender are they really though when you factor in the weaker AUD? 🧐
@movq This is a really good example of "simplicity" but achieves the intent and goals 👌
(Now, I don’t know if your screen reader can work with this. Let me know if it doesn’t.)
I don't use a screen reader fortunately (actually they're pretty garbage). So all good 👍 (I juse use full-screen zoom).
For example, I reckon software should treat stdout and stderr with care and never output logs or other such garbage to stdout that cannot possibly be useful in a UNIX pipeline 😅
@movq Yeah that's why I'm striking this conversation with you 😅 Not only do I respect your opinion quite highly 🤣 But like you say (and I've read their philipshpy) it can be a bit "elitism" for sure. I'm genuinely interested in what we think of as software that "doesn't suck". Tb be honest I haven't really put thought to paper myself, but I reckon if I did, I'd have some opinions/ideas...
@movq So you wouldn;t consider things written in Go to be "suckless"-esque? 🤔
@eldersnake Yeah well when you put it like that 🤣
@movq Curious what you would define as "suck less" software? (language agnostic of course!)
@eldersnake Yeah for sure! The thing that annoys me about a lot of this, is the sheer fact you can't really self-host let alone self-train these things I've been playing around with AI at home over the past few months and building my own neural networks from scratch (in Go) with genetic algorithms on a few tasks and training sets, but man it's hard™ 🤣 I feel like we're doing something wrong here...
@eldersnake This was an interesting read for sure! 👍 I don't think it had anything I hadn't already considered in terms of the ethical/moral points of view. I'm not sure where I stand myself either to be honest. I've forced myself to get familiar with the ecosystem and tooling, because in my line of work as a tech lead (staff engineer in sre) you don't want to be that one guy that ya know 😉 Ethically/Morally though, I'm definitely with the sentiment of this post 😅 Much like the whole Crypto hype yaers back (if y'all remember?!) this is also one of the most energy hungry pieces of "tech" (if you can call it that?) in a while. Then there's these other issues "stealing people's work", "reliance is causing humans to become cognitively weak and neural connections to shrink", to name a few...
@movq Because we keep fucking with the planet's environment and climate patterns? 🤔
We're feeling some pretty intense winds up here in Brisbane too right on the outer edge which are exceeding 100 km an hour winds 🤣
@movq We did indeed! 😅 I'll share photos soon™ 🔜 Was completely "off-grid", no connectivity to anything anywhere 🤣
@movq Is this much different to Go's error handling as values though really? 🧐🤣😈
@bender Ahh I see hmmm I don't know this either 🤣
@movq I think it's here on MIT's website: Your Brain on ChatGPT: Accumulation of Cognitive Debt when Using an AI Assistant for Essay Writing Task 🤔
i.e: the "~30-40% drop in cognitive capabilities" for chronic users of Chatp GPT 🤣
@movq I was more interested in the MIT research tbh 😅
@movq Hahaha 😂 This is gold! I've been following along with our ramblings on Rust. What's it gone and done to you now? 🤔 I don't think I can ever be friends personally, I feel "too stupid" to learn Rust 🤣
@bmallred Oh sorry I should have explained those terms 🤦♂️
@bmallred Ahhh this is an agent I'm tryining to play the game of Connect3. It uses a library written in Go I've been working on that supports Neuroevolution using Genetic Algorithms. Some features include: Mutation, Speciation, Lamarckian Evolution/Inheritence.
@bender I know I know! I don't know why I ever signed up and used it and still continue to pay for the silly thing. Twtxt/Yarn is so much better in every way 🤣
@bender Maybe one day I'll take back over my prologic.blog domain from µBlog and redoit with my handy zs tool with some nice CSS 🤣
@bender I just babble on Twtxt 🤣 I honestly find that I don't realy have the time nor the energy to "blog" in full really, I rarely do 😢
@movq Me too 😅 -- Speaking of which i know you've lost a bit of "mojo" or "energy" (so have i of late), rest assured, I want to keep the status quo here with what we've built, keep it simple and change very little. What we've built has worked very well for 5+ years and we have at least 3 very strong clients (maybe 4 or 5?).
@movq Ahh but it kind of is mine 😅 Or at least I've done this kind of thing at least 3 or 4 times now 🤣
@bender yes but my point is my handcrafted set up also achieves the same thing 🤣
@bender What's awesome about it btw? I use WireGuard pretty heavily here. And my entire family also use it to keep a VPN connection back to our home network
@movq Considered building your own language and compiler? 🤔
@movq This was always my belief too re likes, etc.
@bender remind me to look into this a bit later because I'm starting to suspect there's a weird behavior in the system 🧐
@movq LOL 🤣 I don't think I could ever take Rust seriaujly 🤦♂️
@bender @aelaraji Sorry this was my fault 🤦 For whatever reason my pod had never seen that particular Twt from @movq -- And... There's a bit of a "behavioral" problem with the Trusted Peers functionality that means operators have to periodically re-trust peers manually 😭 Need to rework this 🤞
@bender Well it's really just for other fellow humans that might not know better and what Microsoft does with your hard™ work 🤣
For context, this is a funny Interaction between an engineer and copilot on Microsoft's core programming Language 🤣🤯
Fuck 🤣 Building and learning about machine learning and evolutionary processes is hard™ 🤣
Ultimately, Go sits in the sweet spot on the complexity vs performance chart:
- Minimal syntax & concepts → low learning curve
- Compiled speed → high throughput
- Built-in CSP concurrency → scalable by default
See Rob Pyke's presentation on Expressiveness of Go
One of the nicest things about Go is the language itself, comparing Go to other popular languages in terms of the complexity to learn to be proficient in:
- Go:
25keywords (Stack Overflow); CSP-style concurrency (goroutines & channels) - Python 2:
30keywords (TutorialsPoint); GIL-bound threads & multiprocessing (Wikipedia) - Python 3:
35keywords (Initial Commit); GIL-bound threads,asyncio& multiprocessing (Wikipedia, DEV Community) - Java:
50keywords (Stack Overflow); threads +java.util.concurrent(Wikipedia) - C++:
82keywords (Stack Overflow);std::thread, atomics & futures (en.cppreference.com) - JavaScript:
38keywords (Stack Overflow); single-threaded event loop &async/await, Web Workers (Wikipedia) - Ruby:
42keywords (Stack Overflow); GIL-bound threads (MRI), fibers & processes (Wikipedia)
@bender Here's a short-list:
- Simple, minimal syntax—master the core in hours, not months.
- CSP-style concurrency (goroutines & channels)—safe, scalable parallelism.
- Blazing-fast compiler & single-binary deploys—zero runtime dependencies.
- Rich stdlib & built-in tooling (gofmt, go test, modules).
- No heavy frameworks or hidden magic—unlike Java/C++/Python overhead.
@bender There is no aim. Just learning 😅 That way I can actually speak and write with authority when it comes to these LLM(s) a bit more 🤣 Or maybe I just happen to become that random weirdo genius that invents Skynet™ 😂
This is one of my attempts:
$ go build ./cmd/xor/... && ./xor
Generation 95 | Fitness: 0.999964 | Nodes: 9 | Conns: 19
Target reached!
Best network performance:
[0 0] → got=0 exp=0 (raw=0.000) ✅
[0 1] → got=1 exp=1 (raw=0.990) ✅
[1 0] → got=1 exp=1 (raw=0.716) ✅
[1 1] → got=0 exp=0 (raw=0.045) ✅
Overall accuracy: 100.0%
Wrote best.dot – render with `dot -Tpng best.dot -o best.png` @sorenpeter Also not very readable. Quite cryptic really 😅 I have no idea how this works 🤦♂️
My vision with this newsletter is to have a slower medium for communicating about my art as well as ideas and projects I'm working on regarding how we can use digital technology to our own benefits instead of being exploited by big tech.
Twtxt not sloe enough for you? 🤣
@thecanine I think I know what you mean now.
@sorenpeter What will you be writing about? What's your target audience? 🤔
@thecanine I admit I'm a little unclear of your position. What do you mean by "not the right approach"? What's your position here? 🤔 -- I have a funny feeling we actually algin, just getting our wires all mixed up in communicating it 🤣
The only true way to write is full of typos, spelling mistakes and gramatical errors right? 😅
@thecanine @movq So I actually agree with you! I think Dustin is taking a bit of a "deep and dark" path here (depression), and there are many parallels to other types of activities that we can all talk to. "AI" or "LLM"(s) here should be no different. Use them, Don't use them. I don't really see how it takes away our creativity or critical thinking.
@movq I'm more worried about Dustin Curtis's take on Thoughts on Thinking piece 🤔 It's a worrying time we're facing, where all human creativity, critical thinking and having to "think" at all just goes out the window 🪟 wow 🤯
@kat I kind of need some more details if you can. Logs, observations anything! Please 🙏
@kat Haha I did that for a couple of days last week 🤣 What was I doing you ask?! 😅 Studying and learning how Artificial Neural Networks with Evolutionary Adaptation work 🤣
@aelaraji Cool! 😎 Mind joining the same IRC space? 🙏
Honestly for these types of services, there probably isn't much point, as the layer4 module in Caddy doesn't do inspection/filtering anyway I think? 🤔
@bender It's still a straight-through to the Eris backend that itself uses a Let's Encrypt cert now. Haven't tried to also terminate TLS at the Edge yet.
@bender basically because we don't readily use or support range hunters when requesting feeds it's ideal to keep feed small for the time being at least until we think about writing up a formal specification for this, but it's also only for Http hosted feeds
@movq You reckon that's a real possibility? 🤔
@bender I normally don't myself either, but that saide, I think that's kind of @movq's point right? This new unauthenticated rate limit is absurd! 😱 You may as well just fucking 403 Forbidden and be done with it 🤣
@bender Basically the way I'm reading this is 1 RPM. This is a rather aggressive rate limit actually. This basically makes Github inaccessible and useless for basically anything unless you're logged in. You can basically kiss "pursuing" casually, anonymously goodbye.
Imagine if I imposed that kind of rate limit on twtxt.net?! 🤣
@movq Also the so-called "deadline" isn't set it stone. We're all busy people with day jobs and lives, so we may have to move it anyway 😅
@xuu Good point! What did you have in mind? 🙏
I'm also thinking of adding eye-off icon next to every Twt that, when clicked, hides that feed (tooltip: "Hide this feed"). This would work with the filters as a "temporary additive filter" to restrict/control the current view.
@javivf Sorry. 😂 Meet me on IRC at irc.mills.io in #edgeguard 👌 I'm @james there 😅
@javivf Hit me up on IRC or something and we'll get started 👌
@movq Yeah I actually use sift a lot these days for most "searching" -- at least code and text searching. For finding files by name I still use find | grep.
@kat It's also perfectly safe to nuke your cache as well. i.e: rm data/cache* and it's all good, things will just get rebuilt 👌
@kat I totally recommend zs 🤣 It powers all my sites! 😅 https://twtxt.dev https://yarn.socia/ https://prologic.dev etc 😎
@kat Hmmm Please if this happens again, help me reproduce it. Any clues in the logs? Hmm? 🧐 My own pod has been running flawlessly for weeks now 😅
@movq Same here, you do get used to things over time and build a sort-of "muscle memory". But you're right, maybe they have terrible interfaces and usage options? 🤔
@bender Yeah I know 😢 Don't have Disney+, hell I don't have many streaming services at all really 🤣
@bender Ahh I see. That reminds me, I was going to start watching something someone recommended here hmmm 🧐
@kat Ahh but you're like one of a very few that actually own domains and do interesting things 😅
@bender How do you explain mine then? Unless it was registered before me, then let go of and I re-registered it later? 🤔
@bender I'm not sure this is accurate, if you lookup mine:
$ whois shortcircuit.net.au 2>&1 | grep -i creat
created: 1986-03-05
I think this has to be the registrar's creation date no? 🤔
Yeah I can't figure out when I registered shortcircuit.net.au 😭
According to a very old email one of my more personal family domains was registered in 2013 making it 12 years old, so I was closed 🤣 my public facing one is much much older 🤣
@anth I actually don't have a clue how old my public-facing domain is 🤣 I have another more personal one that's probably around ~15 years, but I'm not even sure how to check tbh 😅
And yes I'm taking some inspiration from Anubis here 😅
One thing about my design here is that it would no longer incorporate "regex"-based rules like OWASP, mostly because my experience thus far has taught me that these rules are kind of overly sensitive, produce false positives and I'm not sure they are really very effective. For example, why is the point of performing SQL injection detection at the Edge using a WAF if you already handle SQL properly in the first place? (seriously does anyone still construct SQL queries by hand with effectively printf?!)
@kat You'll have to forgive me 🙏 My vision impairment is getting in the way of seeing this "prompt box" thingy 🤣
Or is it Textadus (hmm not sure I can even spell it 😱) now? 🤔
@sorenpeter Hah 😅 Just like how we 'all just talk about Twtxt right? 🤣
@kat Look into using something like pyrra for creating and managing SLO(s) with Prometheus 👌 I use this myself actually, plus I also use HetrixTools for external monitoring with SLO-style measures via status.mills.io 👌
Move beyond basic threshold alerts! Define clear Service Level Objectives (SLOs) and measure Service Level Indicators (SLIs) to track real user impact. Use Prometheus to alert when your SLOs are at risk, ensuring you focus on what truly matters to your users. #Monitoring #SRE #Prometheus
@kat I'd recommend alerting off of Prometheus 👌
@bender I think this would be a good idea as @movq and @andros have done ✅ I may even join the experiments if I have any spare time to hack a custom yrand branch and run it up on say something like a yarnexp.mills.io or something 🤔
@sorenpeter No because as the spec statd originally, and we didn't change that syntax at all:
Mentions are embedded within the text in either @source.nick or @<source.url> format
So the lextwt parser we use will simply call this an invalid mention, which it does.
@sorenpeter Unfortunately it does break all clients, because the original spec stated:
Mentions are embedded within the text in either @source.nick or @<source.url> format
@kat Make sure you're up-todate with main 🤣 I'm fixing little things here and there. Also please report bugs 🐞
Hopefully I haven't missed or messed anything upu 😅
* 101f3eb0 - (HEAD -> main) Fix a bunch of UX to do with following/unfollowing, bookmarking and unbookmarking (3 seconds ago) <James Mills>
Testing UI/UX is hard™ 😉
On a public holiday here (Labor Day, ironic really considering the labor party here in Australia has won their 2nd term this election haha 🤣)
@lyse Yeah to avoid cutting off bits at the end making hashes end in either q or a 🤣
@kat No no, it's just barks at the slightest thing going on around the neighborhod 😃 like it just goes a bit nuts often 🤣 it was a rescue dog, two years old, and it wasn't treated very well, a street dog. I think it's just basically afraid of every human in the world 😢
@andros Programming is art. You become good at art by practising your art. You learn artistic patterns by being inspired by and reading others art works. The most importance however is that you practise your art.
@lyse You are of course right! 🤣 There are some low level components that can and should be unit tested for sure! 👌
@bender Bahahah 🤣😂 mate, me and one of my SRE colleagues actually came up with the terminology ourselves! 😛
@lyse Heh I have to wear gloves now when swining an axe or it hurts my hands 🤣
I'm not even being facetious here either. I'd llove to see you "unit tests" this: 
@lyse Well you are being slightly rude 🤪 Sure you could write unit tests for this, but in practise testing emergent properties and behaviors of a system is actually a lot harder than you might realize. But I'm happy to always be proven wrong 😑
@kat Yeah right now I'm trying to see if I can "spread the CPU usage of fetching N feeds across M duration" so basically "smooth" out the spikes in CPU usage.
@kat I've almost fixed this btw 🤗 Just testing it thoroughly and polihsing the code. In case you're curious, I do this style of development called "Observability Driven Development" (ODD) whereby I make observations of the system via metrics and internal observations and adjust the system's overall behavior to the desired outcome 😅
@@twtxt.net The fact that it has an SDK and process management is quite amazing g! 🤯
@kat Please git pull and rebuild 😂 Off of main. I merged the catcher branch already!
@bender You're kind of right though 😄 It makes it more engaging IMO 😅
"Monosyllabic replies" refers to responses that consist of a single syllable. These types of replies are typically brief and concise, often used in situations where a simple, direct answer is given. Examples include words like "Yes," "No," "Okay," or "Sure."
😂 Can I imply you're not interested in things like "LIke", "Report", etc?! 😂
@bender I knew you wouldn't be interested in a Twtxt+ActivityPub 😂 Now I have to go figure out what "monosyllabic replies" means 🤣
@movq Shall I add this to the spec I'm writing? ✍️
The reason I think this can work so well and I'm in full support of it is that it's the least disruptive way to resolve the issue of:
where did this hash come from?
@movq I think we can make this work 👌 As long as it's just a client hint.
Otherwise assume normal behavior. Pretty easy to implement I think.
@movq If we're focusing on solving the "missing roots" problems. I would start to think about "client recommendations". The first recommendation would be:
- Replying to a Twt that has no initial Subject must itself have a Subject of the form (hash; url).
This way it’s a hint to fetching clients that follow B, but not A (in the case of no mentions) that the Subject/Root might (very likely) is in the feed url.
@kat Unless you've found buds in this branch it should be fine 😆 Um running yhe dame!
@kat No new peers shoyls show up automatically.
@sorenpeter You're welcome 🤗 We'll run into each other again. I'm sure! 🤞
@thecanine Yeah this is where I think all the hype really falls down. It's all just a really really expensive search engine and auto-complete 🤦♂️ That's it!
@kat MinIO is a good choice for a self-hosted Object Storage (compatible with S3 APIs) 👌
@kat Don't be nervous, I make sure I test the shit™ out of things before anyone else does 🤣
@thecanine Sorry, but you were expecting what now?! 🤣
I also fundamentally do not believe in the notion that Twtxt should be readable and writable by humans. We've thrown this "argument" around in support of some of the proposals, and I just don't buy it (sorry). As an analogy, nobody writes Email by hand and transmits them to mail servers vai SMTP by hand. We use tools to do this. Twtxt/Yarn should be the same IMO.
@eapl.me I honestly believe you are overreacting here a little bit 🤣 I completely emphasize with you, it can be pretty tough to feel part of a community at times and run a project with a kind of "democracy" or "vote by committee". But one thing that life has taught me about open source projects and especially decentralised ecosystems is that this doesn't really work.
It isn't that I've not considered all the other options on the table (which can still be), it's just that I've made a decision as the project lead that largely helped trigger a rebirth of the use of Twtxt back in July 1 2020. There are good reasons not to change the threading model right now, as the changes being proposed are quite disruptive and don't consider all the possible things that could go wrong.
@bender LOL how would I have guessed that?! 🤣
@javivf 12 Hlirs without power? 🧐 Where do you reside?! 🤣
@lyse likewise I don't have the energy for a fundamental shift in any of our specifications that would inevitably cause a lot of toil and try and change in our clients implementations and unforeseen problems that we haven't really fully understood:
I really do wish we would wake up and smell the roses here 🤦♂️ This whole sets of wars is utterly pointless. Senseless waste of precious human beings 😢
@lyse Hahahaha 🤣 I mean it's "okay" every now and then, but what's the point of having good clients and tools if we don't use 'em 🤣
I will be adding the code in for yarnd very soon™ for this change, with a if the date is >= 2025-07-01 then compute_new_hashes else compute_old_hashes
@bender Hehe good sleuthing 🤣 I swear it was an edit ✍️ Haha 😂 yarnd now "sees" both every single time, where-as before it would just obliterate the old Twt, but remain in archive. Now you get to see both 😅 Not sure if that's a good thing or not, but it certainly makes it much clearer how to write "code logic" for detecting edits and doing something more UX(y) about 'em 🤔
@lyse Very nice! 👌 So lovely and green 😅 -- What's with the sign in
? 🧐
Interesting edit observed by the new yarnd powering this pod twtxt.net 🧐
@movq I've tried and there's little interest so I've given up for now 😭
Hmm not sure how that link is 404'kng for you 🧐 It doesn't here 🤦♂️
@bender What you talk'n about 🤣 It's not broken, it's perfectly functional 🤣
@javivf Ahh! So this is your client implementation? 🧐
Also you have too much time on your hands 🙌 Haha 😂
Was just looking at the client you're using Twtxtory 🤔 Very nice! 👍 is this your client, did you write it? I'd not come across it before!
@bender It isn't @aelaraji's fault at all here 😅 I think the only way I can improve this somewhat is by introducing a similar convergence that I believe @movq built for Jenny which would fetch the mentioned feed temporarily to see if it contains the subject being replied to (in case it's not in the cache).
I'll think about doing this too, but I have to do it carefully so as not to cost too much in terms of resources or performance...
@bender Nah it's there but it's a reply to a thread that isn't found here hmmm 🤔
@bender Well... I don't believe it's possible to prevent or avoid all system accidents. However, managing system safety and putting in control structures goes a long way 👌
@bender Not quite sue I understand your reaction 🤣
These ideas are dr the two books:
- Drift into Failure: From Hunting Broken Components to Understanding Complex Systems by Sidney Dekker (2011)
- Engineering a Safer World by Nancy Leveson (2011)
The former I haven't read. The later I haven't finished reading 😅
And the idea of asynchronous evolutions comes from system accidents where control failures emerge when system structure, constraints, and evolution are poorly managed.
The idea of drift into failure is small normal adaptations erode safety over time without people noticing.
@bender allow me to try and explain over several Twts...
Here's an example of what you end up with (I don't follow the feed, but it's in my pod's cache) 
@kat Yes see UPGRADE.md -- I believe @xuu is now running this live after a couple of hiccups and a bug fix. So yeah if you can, that would be cool, basically looking for early beta testers (I was the alpha tester 🤣)
@andros Thanks! 🙏 Just re-followed @important_dev_news 👌
Can't say I've been watching Black Mirror no.
@bender Oh yes! 👍 That was completely fucked up haha 🤣
@abucci Haha you'll have to forgive me, this thread is over a week old now and I'm a bit lost now 🤣 even though I can now see the entire thread, what are we saying was messed up and is garbled? 🤔
@kat OMG! You used the video capabilities of yarnd 🤣 Nice! 😊
@kat Ahh my vision impairment (blind) would prevent me from even appreciating anything in paper form 😢
@kat my rule of thumb is try not to drink any caffeine past midday. This is basically based on experience and the half-life of caffeine in your system.
@aelaraji sounds like a panic attack to me 🤯
@bender I wish we could fire presidents and Prime Minister's when the need arises and the people recognize it needs to happen rather than having to wait for the next election
@bender Holy moly 🤣 Bases on your description you've eaten and drunk way more than I have today where all I've had so far is three coffees today
@lyse Love those green roll'n hills 👌 Btw, what's that rickety 'ol shed in 18? 🤔
My Hypothesis for why registries didn't work and why they still won't really work today is because the bend the rules of "true" decentralization a bit. Users have to pick one or more registries to "register" to. Why would they want to do this? What is their incentive to do so? Then on the other hand, users need a client that has registry support, but now which registry or sets of registries do you choose?
@bender I believe that's the only way. We'll deal with it as it comes up I think.
@bender I can fix and make that work in the parser too. But I'm no longer sure how to cater for the general case. It's too much to support all punctuation whilst at the same time as other contradicting rules. For example you cannot both support . in nicknames and then expect to be able to to end a mention with a . 🤦♂️
@bender Yes I know 🤣 It's okay, we just have to build better parsers 😅
There are 5 of such "Twters" on this pod that have periods in their nick 😢
sqlite> select count(distinct(nick)) from twters where nick like '%.%';
count(distinct(nick)) = 5
sqlite> select distinct(nick) from twters where nick like '%.%';
nick = @marado@ciberlandia.pt
nick = eapl.me
nick = eapl.mx
nick = grumpygordie.great-site.net
nick = @chyrp.doesnm.cc I'll see if I can fix this and write a test case for what's going on here. I think this is made difficult now because folks like @eapl.me decide that it's okay to have a . (period) in their # nick 🤣 tbh I think nick(s) should have rules of what they can and cannot be comprised of. i.e: no punctuation 🤦♂️
@bender This story just reminds me of the couple of times we've paid for things in cash 💰 💲 and the stupid banks with the ridiculous "scam alert policy" ask you all kind of dumb ass questions about what you need the cash for 🤦♂️ One of these days I need an excuse to buy something that costs a few $k just so I can answer when asked, "what do you need the cash for?" to which my response will be "drugs and hookers of course!" 🤣
@bender Sounds good to me! Done ✅ Also you did some, so thanks! 🙏
@doesnm.p.psf.lt Because I'm a lazy project manage and I haven't grooomed the backlog in a while 🤣 Since you're there, do you mind cleaning it up for me? 🙏
@kat creating habits or rituals as hard, dropping ones that you no longer need or considered harmful is even harder! Good luck! 🙏
@bender You said:
as long as those working on clients can reach an agreement on how to move forward. That has proven, though, to be a pickle in the past.
I think this is because we probably need to start thinking about three different aspects to the ecosystem and document them out:
- Specifications (as they are now)
- Server recommendations (e.g: Timeline, yarnd, etc)
- Client recommendations (e.g: jenny, tt, tt2, twet, etc)
@bender wut?! Who carries three grand worth of cash in their handbag?! 👜 Haha 😆
@andros Some good points here that I share and empathize with 🙌
@andros Zulu said:
what is twtxt for you?
For me Twtxt is just the underlying format that Yarn.social builds upon 😅
@andros Ahh cool! I'll try following it again 🤣 Mind @-mentioning/linking the feed again? 🙏
@quark I know! I saw three Hacker News posts on it in a row 🤣
@andros Haha 🤣 We've explored this idea in the past and we decided that it's actually a good idea to have an "append-only" feed for various reasons. We've also explored the idea of using Range requests, but opted instead to just archive/rotate our feeds periodically 😅 There really isn't much point in having a feed in reverse chronological order, except (maybe?) so a human read view the new twts at the top of the file?! 🤣
@bender This is just a website that cycles through random Youtube channels? 🤔
@bender Not copy/paste 🤣 Hand on heart! ❤️ However it was a pretty nice article 😅
There we go. Restored all the old settings 👌
I am up to increase the length of a twtxt, though.
Recall what we had this set to for this pod? 🧐
@movq So cool! 😎 Where's the time lapse video you used to have of this tree? 🌳 Hmm 🧐
@movq Yeah I know 🤣 I found another bug in lextwt 🤦♂️ This whole DM / bang-mention thingy has thrown a spanner in the works 🔧 -- Even if I wanted to implement it, I'm not even ready to try at the moment 😢
@kate (as I was trying to say...), Glad you think so👌 My goal with Yarn.social has always been to provide the best (best that I can anyway) truly decentralised (slow) social experience that uses the Twtxt format under the hood 😅
@xuu As I also mentioend on IRC I think this is a. bug?
Holy hell?! When I post this:
<a href="/timeline/profile?url=https://yarn.girlonthemoon.xyz/user/kat/twtxt.txt">@kate</a><a href="https://yarn.girlonthemoon.xyz/user/kat/twtxt.txt" class="webmention"></a> Glad you think so! 👌 My goal with Yarn.social has always been to provide the best (_best that I can anyway!_) truly decentralised (_slow_) social experience that uses the Twtxt format under the hood 😅
Something is swallowing it.
@kate Glad you think so! 👌 My goal with Yarn.social has always been to provide the best (best that I can anyway!) truly decentralised (slow) social experience that uses the Twtxt format under the hood 😅
Glad you think so! 👌 My goal with Yarn.social has always been to provide the best (best that I can anyway!) truly decentralised (slow) social experience that uses the Twtxt format under the hood 😅
@kate Glad you think so! 👌 My goal with Yarn.social has always been to provide the best (best that I can anyway!) truly decentralised (slow) social experience that uses the Twtxt format under the hood 😅
@kate Glad you think so! 👌 My goal with Yarn.social has always been to provide the best (best that I can anyway!) truly decentralised (slow) social experience that uses the Twtxt format under the hood 😅
This expands the usefulness of Twtxt / Yarn.social to:
- Sharing small posts
- Sharing links
- Sharing media
- Having long conversations
- Voting on topics, opinions or decisions
- RSVPing to virtual or physical events
The nice thing here is that any Ui/UX rendering for a "good user experience" is similar to what yarnd does for Youtube/Spotify/whatever embedding. Plus anyone can participate, even if they don't really have a client that understand it, it's just text with some "syntax" afterall.
#event:abc123 Go Meetup – Sat Apr 27, 3pm @ Darling Harbour
#poll:xyz123 Favorite Go framework?
- Gin
- Echo
- Chi
I'd have to write i up in full, but essentially looks a bit like this (contribived examples follow)...
@bender I think I could, but I haven't bothered to do so yet... I'll try that out later...
@bender Hehe, thanks for fixing this (was) broken thread 🧵 Haha 🤣
@sorenpeter I really think you should fix the # url in your feed to be https:// 😅
@bender Sure! 👍
{
...
# Layer 4 Reverse Proxy
layer4 {
# Gopher
0.0.0.0:70 {
route {
proxy <internal_ip>:70
}
}
# IRC (TLS)
0.0.0.0:6697 {
route {
proxy <internal_ip>:6697
}
}
}
} OH nevermind. Ignore me. I think @sorenpeter's feed is a bit weird. Because his url is http:// but he actually hosts a https:// feed with redirects. so things get a bit weird 😢
There are other tasks LLM(s) are far better suited for, which are also its downsides, and gawd so expensive and unrealistic to run yourself 🤦♂️ Do you know what one of these NVIDIA H100's cost? 💲 That's right! 🤣 > $50k USD 😱 And many of the models out there require 8 of these suckers 🤣 Each one consumes around ~400W of power each (not including the machine that houses them!)
@movq Yeah I couldn't agree more. The utility of using it in any way to form "truths" or to do anything that require a high degree of "accuracy" is utterly pointless.
@lyse Very nice! 😊 You must love those yellow dandelions? 🤔
But it is still a giant inefficient use of resources and energy 🤣
@movq Haha 🤣 Figures 🤦♂️ Also no need to be concerned with that here, I've personally blocked the ASN(s) of Microsoft, OpenAI, Claude and Google 😂
@movq Yeah 👍 Haha 🤣 Does your own cache go back this far? 🤔
@movq It's nice to see shit like this still works 🤣 Even years later 😂
I do want to improve the feeds.twtxt.net service one day (soon™) with features like this. But first I'll have to prevent spammers from abusing it by introducing IndieAuth as an authentication layer.
@bender Shall we remove this primary/secondary color sttting? 🧐
@bender Btw, do we want to nuke this compact feature? 🧐
@bender How do you mean? 🧐 Caddy doesn't do L4 by default.
@kate I think it's totally fine. I mean self-hosting costs money too. Power, Hardware, Time/effort, etc.
@bender I recommend this also 👌 My eris was based off of a much much older version of ergo.
@kate I already have my IRC server irc.mills.io running behind Caddy Layer 4. However I don't terminate TLS at the edge in this case.
@kate @movq You could also have a play with eris which I use to power my little tiny server (that almost no-one uses 🤣)
@bender Ahh okay, I must have misread the website 🤔
Seem like it's a server-client thingy? 🤔 I much prefer tools in this case and defer the responsibility of storage to something else. I really like restic for that reason and the fact that it's pretty rock solid. I have zero complaints 😅
Timeline of Evolution of Twtxt/Yarn.social:
- 2016 – Twtxt created by John Downey: plain text + HTTP = minimalist microblogging
- 2017–2019 – Community builds CLI tools, but adoption remains niche
- 2020 – Yarn.social launched by @prologic with federation, threading, UI
- 2021–2023 – Pods sync, user mentions, blocking, search, and media support added
- 2024+ – Yarn.social becomes the reference Twtxt platform, with active federated pods
@movq From what I can tell, they use strict semantic versioning and backwards compatibility. There are two versions of the storage, v1 and v2, but it doesn't look like v2 is enabled yet.
@aelaraji Haha 🤣 I'd say it's just yet-another-bad-bot 🤖 I've blocked a lot of such bots and often their entire networks (ASN) 🤦♂️
I use restic and Backblaze B2 for offline backup storage at a cost of $6/TB/month. I don't backup my entire ~20TB NAS and its datasets however, so I'm only paying about ~$2/month right now. I only backup the most important things I cannot afford to lose or annot re-created.
@kate I'll cut a release soon™, but still a few more things to iron out 🤣 One of the new challenges is figuring out what to do with the "Discover" view now that is has an unconfined limit, on my pod (at least) it's now basically just "noise" 🤦♂️
@kate Been missing your jovial posts too and your friends 🤣
@quark No editing old Twts that are the root of a thread with replies in the ecosystem. Just results in a fork. Unless the client has an implementation that does not store Twts keyed by Hash.
@bender That's what I'm trying to figure out 🤔
@andros Curious where this root twt is?! 🤣 Apparently my pod doesn't have it and I can't find it anywhere. It's suppose to be <a href="?search=l4doaxa" class="tag">#l4doaxa</a>
@xuu Yeah @-mentioning someone you don't have a local alias for is broken somehow :( I haven't looked into it yet...
@xuu Seems to be fine here?
$ bat https://twtxt.net/twt/yfv5kfq | jq '.text'
"!<dm-echo https://dm-echo.andros.dev/twtxt.txt> U2FsdGVkX1+QmwBNmk9Yu9jvazVRFPS2TGJRGle/BDDzFult6zCtxNhJrV0g+sx0EIKbjL2a9QpCT5C0Z2qWvw==" @bender I don't no. I mostly just use whole themes. And my facourite it AMOLED
@doesnm.p.psf.lt It was always intended to have both Yarn.social and Salty.im integrate together. Yes. This includes having a set of specifications that anyone can write clients to.
@javivf Generally speaking if it has been reviewed, discussed and merged, then we accept it as a standard to the set of specs we support. However we might want to document this process and set some guidelines about this to be clear 🤣 We've been fairly lax/lose here and I think that's okay given teh size of our community 👌
@bender Ahhh ha!!! 🤣 I'm too dumb to have thought of that 🤣
@bender Would they even accept a server from me? 🧐😂
@eapl.me This is one of my concerns too. The moment you post publicly ciphertext, you open yourself up for future attacks on the ciphertext, which you really want to avoid if you can. If you have a read of the Salty.im Spec you'll note we went to great lengths to protect the user's privacy as well as their identity and make it incredibly hard to guess at inboxes. It's still a WIP, but I'd love to see it progressed even further -- I truly feel strongly about a purely decentralised messaging ecosystem 👌
@bender Sadly my earlier Twt back in ~2020 is now gone from at least this pod's cache 🤣 -- It might still exist in other pods though? 🤔 It does! https://txt.sour.is/twt/o6dsrga
I think I would encourage anyone in this community is to care less about supporting "legacy clients" and focus more on value-add whilst balancing the burden of client authors -- which have very precious little "spare time" 🤣
I do think integrating things like Salty.im might actually be a good idea. I can also see a future where we integrate other things like todo.txt and calendar.txt. I'd even love to see decentralised forms of "plain text" voting too.
@andros I don't see any "fighting" here. This is just good experimentation. Unfortunately there hasn't really been enough time or effort by other "client authors" yet, me especially as I've been super busy with ya' know my "day job" that pays the bills and refactoring yarnd to use a new and shiny and much better SqliteCache 🤣 -- I certainly don't think your efforts are wasted at all. I would however like @doesnm.p.psf.lt encourage you to look at the work we've done as a community (which was also driven out of the Yarn.social / Twtxt community years back).
@andros Ahh I see 👌
@prologic Yes, it is a security hole. All dm-echo messages are readable. I intend it to be a debugging tool. Maybe I can include a warning message. If many of you see that it is a serious problem, I can remove the links.
@andros I honestly think IRC is better anyway 🤣
@doesnm.p.psf.lt Why would you want that lol 😂
This is nuts. Lemme eat dinner first (pizza on the way!) and I'll fix this utter nonsense 🤣
Fascinating read on the emerging Model Context Protocol — a new standard for integrating LLMs with agents and tools.
@andros doesn't this defeat the point of public cryptography?
@bender Now you have me thinking, which is better? 🤔
@bender I will figure this out soon™ and fix, it's annoying the fuck out of me 🤣
I personally really like the news minimalist (fuck it mentions are kind of broken atm here in the UI :/) feed myself, really good quality, very high signal 👌
@andros It's good advice 😅 I try to do this myself (please call me out if you ever catch me NOT doing this 🤣)
@andros Q: Why would you publish the private key? Hmmm 🧐
Cool. That's fixed! 🥳 I believe we're now syncing to 6 peers again now. Hopefully with similar behavior as before 🤞
Oops, I think this pod (twtxt.net) just sync ~1k missing root twts with god only knows which peers 🤦♂️ I forgot a couple of important key things:
- Only coverage with a subset of peers
- Only converge with trusted peers
Fuck me 🤣 Ooops. Sorry!
@andros Kind of a cool idea actually! 👌 I'll follow and see what it's like, thanks! 🙏
Broadcast Positioning System, as an alternative to GPS. Very cool 😎
How's that? Please refresh and see if that's fixed? 🙏
@bender There is only one commit that I can think of that might be the cause here. Shall I revert and redeploy? 🤔
Yeah same order of magnitude 👌 No relation mice other than the recent study that precisely measured the number of cells and connections in 1 cubic mm of brain tissue.
I was trying to optimize the SQL query used for the Compact FrontPage (anonymous view for Discovery when the Admin/Operator chooses "one twt per feed").
@thecanine Did you see my revelation earlier today? 🤔
@lyse Just needed to update the version of the tool I packaged as an OCI image 🤣
@bender Did you see the Singaporian president's speech on this whole nonsense?! 😂 (trade wards, tariffs, free markets, etc)
@bender Technically no but we'll talk more about this 👌
@bender It's a bug in the UI for sure. The hash is the primary key.
@bender No, haven't figured out the reproducer yet 🧐
@bender Let's just optimize/fix those annoyances later on once I've finished pagination. Then I'll merge this branch into main.
@bender Hmmm I can't figure out how you did this 🤣
@bendereapl.me@eapl.me A few years ago or decades ago? 🤣
@abucci Apologies, the basic summary is as follows:
- Decided to rewrite the cache backend.
- It will now be a SQLite backend going forward.
- I'm planning on no data migration.
@david yeah @movq and I discovered its a bug in lextwt last night 😢 We'll fix it as soon as @xuu can 🤣
Anyway. this was a good use for search btw. I couldn't find my Twt, so I just quickly searched for it, snap, bingo I found it in a snap! 🫰
@bender Oh fuck you're absolutely right!!! 🤣 I only posted this 13h ago 🤦♂️
@aelaraji Yeah I'm in the process of rewriting (incrementally) the cache storage backend. It's now been live for at least a week now and pagination and peering are the last things left to do 🤞
@aelaraji Ahh this is coming back 403 Forbidden here btw 😅 
Yes you were right. It was technically a failure. It is very difficult to reconcile the differences between a distributed network and one that's truly decentralized.
@kate it will if we continue to support the community on the ecosystem 🤣
@lyse @movq I mean I have a camper trailer here out the front so we probably have plenty of room for a Yarn party in real life 🤣
@lyse Also very nice! Mf favourite has to be
👌
@thecanine I mean I can restore whatever anyone likes, the problem is the last backup I took was 4 months ago 😭 So I decided to start over (from scratch). Just let me know what you want and I'll do it! I used the 4-month old backup to restore your account (by hand) and avatar at least 🤣
@thecanine I'm so sorry I fucked things up 🥲 I hope you can trust I'll try to do a better job of backups and data going forward 🤗
OH wait! 😳 Why am I storing the timestamp as created = 2025-04-07T19:59:51Z ?! 😱 @movq's feed shows:
2025-04-07T19:59:51+00:00 I'm so confused. None of this code has changed in yarnd at all. Hmmm 🤔
@movq Not according to the output of ./yarnc debug <your feed url>:
znf6csa 2025-04-07T19:59:51+00:00 Doesn't look like it Hmmm
sqlite> select * from twts where content LIKE '%Linux installation%';
hash = znf6csa
feed_url = https://www.uninformativ.de/twtxt.txt
content = I wonder if my current Linux installation will actually make it to 20 years:
$ head -n 1 /var/log/pacman.log
[2011-07-07 11:19] installed filesystem (2011.04-1)
It’s not toooo far into the future.
It would be crazy … 20 years without reinstalling once … phew. 🥴
created = 2025-04-07T19:59:51Z
subject = (<a href="?search=znf6csa" class="tag">#znf6csa</a>)
mentions = []
tags = []
links = [] I'm thinking you may have edited. Lemme check actually... yarnd (on this branch) will now restore every version, and maybe I might have introduced a bit of a weird behavior there. One moment...
@movq Apparently you wrote it :D The hash doesn't lie? 🤣 https://twtxt.net/twt/znf6csa
@kate Fair enough! 😂 Also a good approach, change the environment 🤣
Definitely open to taking on users 👌I only have open registrations turned off because of spam accounts and my pod being the most popular amongst spammers 🤣
@xuueapl.me@eapl.me This is actually pretty cool 😎
Can you confirm the fix temporarily in browser before I make the CSS change? I'm rubbish at CSS 🤣
Ahhh! It's all Soren's fault 🤣
commit ea9eaaf3d3977701dcb84b927c77c4f921bdbf43
Author: sorenpeter <sorenpeter@noreply@mills.io>
Date: Sat Sep 24 23:34:07 2022 +0000
Replacing Pico.css with Simple.css (<a href="?search=990" class="tag">#990</a>)
Replacing pico.css with simple.css along with some small UI changes @bender It does right 🤣 (no highlights though, will have to figure out how I refactor the display code to support that)
@lyse I'm open to other suggestions 🤣 But hopefully both adding the additional prompt, not allowing it to enter shell history and removing from my shell history prevents me from doing such silly things in haste by pressing ^R and using fuzzy search which if you type fast you sometimes get wrong 😑
I had a day like that just today, in fact I've had one of those weeks, actually no wait, I've had one of those months! 🤯
This is an example of what I believe every SRE should master and whatever Post Incident Review (PIR) should focus on. Where did the system fail. What are the missing or incomplete Safety Controls.
Then I cleaned up my shell history of all of the invocations I ever made of dkv rm ... to make sure I never ever have this so easily accessible in my shell history (^R):
$ awk '
/^#/ { ts = $0; next }
/^dkv rm/ { next }
{ if (ts) print ts; ts=""; print }
' ~/.bash_history > ~/.bash_history.tmp && mv ~/.bash_history.tmp ~/.bash_history && history -r So I re-write this shell alias that I used all the time alias dkv="docker rm" to be a much safer shell function:
dkv() {
if [[ "$1" == "rm" && -n "$2" ]]; then
read -r -p "Are you sure you want to delete volume '$2'? [Y/n] " confirm
confirm=${confirm:-Y}
if [[ "$confirm" =~ ^[Yy]$ ]]; then
# Disable history
set +o history
# Delete the volume
docker volume rm "$2"
# Re-enable history
set -o history
else
echo "Aborted."
fi
else
docker volume "$@"
fi
} @bender Please remind me to fix this after I'm done with this cachet branch and it's merged 🤞
Does mentioning @prologicdoesnm.p.psf.lt not work? 🧐
@bender I know! 😂 Thankfully I think I fixed most problematic bugs 🤞
@lyse Haha yeah 🤣 And thanks I'll take a look but honestly it'll be fine 😆
@movq Nah it's okay 🤣 It would only be a partial restore anyway 😭
@movq We'll recover just fine right ? 😆 It's only 4 months worth of posts 😅 Not like it's the end of the world 😂
Timeline Sandbox 






















Nice! 😊