@movq@www.uninformativ.de No I haven’t :/
Just out of curiosity, have you ever ran this on real hardware? 😃
Only QEMU. Would you like to help test it on real hardware? 😅 I’m not sure I have anything worth testing it on!
@david@daiwei.me I seei tnow 👌
da hell? What’s the root of this thread? 🧵
@thecanine@twtxt.net This is of course disgusting! I have first hand experience with my neighbors next door where I told them about one of their LG (older models) “spying” on what they were watching. I’ve of course since blocked that shit™ at the network level for them, But man, don’t ever buy LG. In fact don’t ever buy any of this “Smart” shit™. Period.
So… my little experimental Mu (µ) OS is now ~8.7k of Mu and ~2k of Assembly, which makes this about an ~80/20 split. I’ve managed to achieve most of the goals I had set out, by ensuring a tiny Nucleus of only ~2k Assembly and all Policy, Services and Userland written entirely in Mu (a language I also deisnged and created, which still has no support for floats LOL)
@bender@twtxt.net probably just too busy with real life and work to interact with us plebs 🤣
@david@daiwei.me Danke 🙏
@lyse@lyse.isobeef.org which ones?
@david@daiwei.me Cool! 😎 Though I think this can be improved somewhat.
@david@daiwei.me Might not have tested that path very well. Can you make a note of this on Gitea?
# follow = + # following = N into your feed like yarnd does. Off by default (it is your social graph 🤔), and only on the GitHub/Gitea backends for now where the app owns the feed file. twtd next 🤞
@david@daiwei.me you’re not missing anything. It is only set on grant / connection time. If you disconnect and reconnect, it should become an option. I haven’t figured out how to refresh capabilities.
# follow = + # following = N into your feed like yarnd does. Off by default (it is your social graph 🤔), and only on the GitHub/Gitea backends for now where the app owns the feed file. twtd next 🤞
@david@daiwei.me You’re not missing anything. It is set on grant / connection time. So disconnecting and reconnecting will give you that option. I haven’t figured out a way to refresh backend capabilities like this.
@GabesArcade@gabesarcade.com You are most welcome! 🙏
@GabesArcade@gabesarcade.com twtd landed too 🥳 Hosted feeds (twtpub.com) and self-hosted twtd can publish # follow = now — the operator offers it with --allow-follows, then it’s the same toggle in Settings. Off by default at both ends 👌
Also a “Publish who I follow” toggle: writes # follow = + # following = N into your feed like yarnd does. Off by default (it is your social graph 🤔), and only on the GitHub/Gitea backends for now where the app owns the feed file. twtd next 🤞
@GabesArcade@gabesarcade.com Both 😅 Just shipped: Settings → Backup & restore. Export everything (or follows only) as a JSON file and import it back — or feed it any twtxt.txt and it’ll harvest the # follow = lines. There’s a copy-paste # follow = block in there too if you’d rather hand-edit 👌
@GabesArcade@gabesarcade.com So we going with an Import/Export feature? Or would you also like optionally to write # follow = into the feed too? 🤔 Can do either/or or both.
@david@daiwei.me This has now been fixed! 🎉
@GabesArcade@gabesarcade.com I think it would have to be specific to the App itself. So say you somehow didn’t save a recovery key or some shit™ You could still get back up and running with ease if you had exported a config? 🤔
Okay I’m fixing this in lextwt, yarnd and twtxt.app (takes a different path). Soon you’ll be able to write shit™ like (<this>) and it’ll get escaped and rendered correctly on the page. Basically you are really writing HTML here, but not intending to do so, Twtxt never supported HTML, and I don’t think it ever should. We extended the format to support basic Markdown, and I think that’s where it should end.
Probably time we wrote a Spec for this really.
Ahh no I was wrong. this is being stripped at the Markdown parsing level due to “unsafe” HTML. Which of course is a bit hard to tell between what is safe and unsafe HTML.
I think the problem here is that (i.e: <foo>) is being treated as HTML, which the browser renders as nothing, because that’s not even a valid element it understands how to render. Hmmm 🤔
@GabesArcade@gabesarcade.com Based on your description, I think it makes snse to have an Import/Export settings in the UI? RIght? 🤔
@david@daiwei.me Kk I’ll look into it 👌
@david@daiwei.me I mean we can probably do that I suppose. I’d make it an option in Settings though?
@david@daiwei.me I see it now. Is this also a problem in the app too? Or just yarnd or both?
@GabesArcade@gabesarcade.com Probably. How do you want this to work? An “Export” button to export all your settings in some form?
@david@daiwei.me Sorry, I’m not seeing what you’re saying? 🤔
muos/amd64 that boots into a running shell, with a tiny little vfs, UNIX-like semantics, syscalls, read/write, etc. It works pretty nicely, and aside from a small Assembly "nucleus", most of the Kernel and Userspace is written in Mu.
@movq@www.uninformativ.de It’s “shaping” up to where I think I want it to go 😅
@david@daiwei.me Yes!
So, a hobby OS, just like Linux was for Linus?
Although this is really an exercise is self-hosting a lagnguage, then self-hosting the language to build a self-hosting OS. It’s all meta-circular.
muos/amd64 that boots into a running shell, with a tiny little vfs, UNIX-like semantics, syscalls, read/write, etc. It works pretty nicely, and aside from a small Assembly "nucleus", most of the Kernel and Userspace is written in Mu.
I just taught the scc SLOC tool I use how to detect and recognize the Mu programming language. So it’s actually a bit worse than your estimate. It’s more like ~60/30 at the moment:
>>> mu = 1445
>>> asm = 2365
>>> T = mu + asm
>>> mu / T * 100
37.9265091863517
>>> asm / T * 100
62.07349081364829
muos/amd64 that boots into a running shell, with a tiny little vfs, UNIX-like semantics, syscalls, read/write, etc. It works pretty nicely, and aside from a small Assembly "nucleus", most of the Kernel and Userspace is written in Mu.
@david@daiwei.me It’s somewhat expected to have a fair bit of Assembly (machine code) to get some of the bits you need going. But I think I can reduce this a bit. Let’s see…
Dunno if anyone will find this interesting… But some ~6 months or so ago I experimented briefly with creating a whole bootloader + kernel + userland – Basically an entire OS in the Mu programming language (which as you know I also designed and created) – 6 months later I’ve worked on it some more after spending the last week working on improvements to Mu itself, which is now able to compile itself with its own Mu implemented compiler and now have an os/arch backend called muos/amd64 that boots into a running shell, with a tiny little vfs, UNIX-like semantics, syscalls, read/write, etc. It works pretty nicely, and aside from a small Assembly “nucleus”, most of the Kernel and Userspace is written in Mu.
@movq@www.uninformativ.de You know you could in theory use the Twtxt App and the Twtxt Feeds service as your “news reader” right? 😅
@eldersnake@we.loveprivacy.club Login to https://feeds.twtxt.net/ with your Pod’s account. Re-create whatever you like. In the end I had to start over, there was too much mess. As you can no doubt imagine, the reason for revamping the feeds service was to thwart SPAM and Junk.
Kind of hmm
Testing offline posting …
@prologic@twtxt.net Seems to work? 🧐
@movq@www.uninformativ.de Oh I agree. Long-term the whole thing is completely “fucked”. But it says more about “Cloud” and “X as a Service” than about “AI” itself. It’s a bit like all these fucking entertainment subscription services you need to entertain one’s self. How many subscriptions does one need to Hulu, Netflix, Disney+, Stan, etc, etc.
@GabesArcade@gabesarcade.com this sort of tells me two things 1) that enterprises aren’t really engaging with OpenAI and establishing lucrative enough contractual agreements and 2) users aren’t willing to pay for ChatGPT or if they are aren’t willing to pay much more than $20 a month
@dce@hashnix.club Was it ever really empty on the Codeberg side in the Git repo? 🤔
@movq@www.uninformativ.de it’s a shame we have to ruin such great technology that only depends a lot of this with crappy bullshit nonsense like advertising we’ve been into responses 🤦♂️
Advertise in ChatGPT | Hacker News Seriously?! 😳 wut da actual fuq?! 😱
@aelaraji@aelaraji.com Perfect! 👌
jenny stuff aside, I received zero bug reports or code contributions since leaving GitHub in 2018.
@movq@www.uninformativ.de Yes good I think we are too! 👌
@david@daiwei.me Have you never seen or heard me say AI is basically Artificial Incompetence? 🤣
@david@daiwei.me It would appear so 👌
@thoshi@yarn.thoshis.net I wouldn’t bother if I were you 😅 They’re both fairly outdated protocols and very much an “silo” IMO. THey don’t make very good places to host your Twtxt feed either.
@thoshi@yarn.thoshis.net Welcome to the Yarn.social / Twtxt ecosystem 🙌
jenny stuff aside, I received zero bug reports or code contributions since leaving GitHub in 2018.
And @lyse@lyse.isobeef.org is right. Not being on Github is a good thing IMO. Even when I was there with all my many projects, I basically got the same amount of “attention” as I do now. The only real way to gain more “attention” is to artificially play the “game”. You know. The stupid “Stargazer” one, and whatever you can to get into the “Top 10 X” charts. – But ultimately that doesn’t buy you “quality” contributors or users or whatever. So it’s all pointless.
jenny stuff aside, I received zero bug reports or code contributions since leaving GitHub in 2018.
@movq@www.uninformativ.de So I see it slightly differently… Over the years I have recieved great contributions from the likes of yourself and @lyse@lyse.isobeef.org and the many forms of @bender@twtxt.net and his friends 😅 Hell even others along the way that have come and gone. Likewise I also think you have recieved many contributions to Jenny over the yeras in much the same way, perhaps not in patches, but user reports, feedback, etc.
So I think what I’m saying here is this… Ever since leaving Github (like you), I find that my desire to continue to build up the community we’ve built here and to contribute to grow and cultivate it is important to me. My desire to thwart and eliminate useless traffic like bots and ai even strongers.
I want to find a good balance.
@thecanine@twtxt.net Always love your work ! 👌
@david@daiwei.me OH no ! 😟 My wife caught COVID some weeks ago, then we got sick again with a cold, it was awful 😢
Oh god 🤣 I mean I had this idea to re-invent “Git hosting”, but failed. Maybe I’ll try it again. I dunno. The thing is I hardly get “Issues” really, only when I ask nicely, of folks I know every well 🤣 So think at much “smaller scale” we need a different solution, and I think @movq@www.uninformativ.de is on to something, but not to the extend implemented, somewhere in the middle I think? 🤔
os/arch for Mu is now relatively simple to do, or far less duplicated work/effort.
@david@daiwei.me Bah you 🤣 Do you know how hard™ it is to write a compier, a self-hosted compiler that has two runtime engines? 😅
os/arch for Mu is now relatively simple to do, or far less duplicated work/effort.
On that note, I just finished writing the linux/risc64 backend and it only took ~2k lines of code 🎉
After many months of hard™ work, I’ve finally been able to get Mu (µ) lang to a point where the duplication of machine code / assembly between the ARM64/AMD64 and Mach-O and ELF formats are not all eliminated. This now means that writing a new backend target os/arch for Mu is now relatively simple to do, or far less duplicated work/effort.
Oh good 😅
2026/07/19 02:55:52 sync-reaper: observe-only pass — 1152 namespaces, 6 anchored, 1094 undatable, 0 idle candidate(s), 0 reaped
@movq@www.uninformativ.de Hmmm you’ve given me an idea 🧐
(1) Why The Ocean’s Top Predator Refuses to Hunt Us - YouTube – The first half of this documentary is amazing! 😮 – The remaining half however is sad and depressing, making me never want to visit another zoo again 😢
@aelaraji@aelaraji.com oh good was that the in app nudge?
i think there should be at least 4 we know of right?
Does this seem right to you so far @david@daiwei.me ? 🤔
2026/07/18 02:55:52 sync-reaper: observe-only pass — 1145 namespaces, 3 anchored, 1089 undatable, 0 idle candidate(s), 0 reaped
So far only 3 users of the Twtxt App have achieved their device settings with a recovery key? 🔑
Morning y’all 👋
tt. I run into this bug almost daily for weeks now.
@lyse@lyse.isobeef.org Ahh ok! I was just wondering and curious whether it was a bug that I’ve caused anywhere along the way 🧐
twtd instnace or via Github/Gitea or any other publishing backend (doesn't amtter). Please read.
and @david@daiwei.me your rename shipped 🙌 it’s “Generate recovery code” now (you were right — mints a fresh one each press), + it asks before replacing an existing code so you don’t nuke the one you saved 😅
twtd instnace or via Github/Gitea or any other publishing backend (doesn't amtter). Please read.
quick correction on that cleanup timing 🙏 it’s not 28 days. nothing gets deleted for the first 30 days at all (observe-only), and after that only setups unused for ~6 months that also never saved a recovery code. saved a code = safe forever 👍
twtd instnace or via Github/Gitea or any other publishing backend (doesn't amtter). Please read.
@david@daiwei.me Good point ! 👌
@david@daiwei.me Nice! 👍
twtd instnace or via Github/Gitea or any other publishing backend (doesn't amtter). Please read.
IMPORTANT: Treat the re oery code like a password.
twtd instnace or via Github/Gitea or any other publishing backend (doesn't amtter). Please read.
I will be monitoring the server logs for the next ~28 days, after that orphaned Namespaces will start to get cleaned up, especially ones that have never bothered to care about recovery.
📣 ACTION REQUIRED: Hey folks 👋 For those of you whom are using the Twtxt App either via the Hosted option or on your own twtd instnace or via Github/Gitea or any other publishing backend (doesn’t amtter). Please read.
Please open the app and you should be prompted to save your recovery code for your device. This basically is all of your settings, follows, etc in the app itself. This is synced to the Origin everytime you make a change, and also stored on-device. This is what makes it possible to sync your setting across services, move to another device, etc.
Please save a copy of the recovery code somewhere. This is only your only way to recover your settings.
Thank you 🙏
Posting the review and plan here for posterity as it is related to this thread: https://canvas.mills.io/a/6QVGjzRW
The PR(s) as-is will likely not go ahead I’m afraid. More work to be done, but this is basically all about the “Recovery” story and how to anchor and notion of an “account” without well umm an account 🤣
@david@daiwei.me Ma too 🤣
@ponderpoints@twtpub.com Welcome to Yarn.social 👋 Interesting video, I actually watched it all the way through, riverting stuff really and quite well put together. The idea of “subjective experience” is a rather complicated thing to describe and you’re right, how do we even know we have them? 🤔
@david@daiwei.me Holy moly 😱
Ahh yes! Please do upgrade your twtd instance. Few things changed, many bugs fixed there too.
@balloon-fu-sen@tw.fus.f5.si Huh? 🧐 This hasn’t changed. What has is the default proxy used depending on your publishing backend.
@david@daiwei.me Danke 🙏
@david@daiwei.me Cool 😅
@david@daiwei.me Please 🙏
I’ll see if I can unblock just that VPN provider 🤞
Testing the NEW Composer Preview
there us a recovery path
no, not what um dating at all
sue expand ed on the main thread
the only reason twtd has and records a followers.json is because that’s where your feed is hosted from and where the UA discover occurs
the correct fix for what you observed is a recovery token to re-sync settings from the sync API
it’s client sue not on any publishing backend
not stored on twtd no
@bender@twtxt.net I meant the hookers 🤣
@bender@twtxt.net Who’s buying? 🤔
I see you 👀
tt. I run into this bug almost daily for weeks now.
@lyse@lyse.isobeef.org Can you explain this like i’m five? 🤣 Scgeenshot?
@aelaraji@aelaraji.com Haha 😆 Oh dear!
@dce@hashnix.club Ah brilliant 👌
To retest: reload the app, reconnect Codeberg/Gitea with the same token, fill in the new Owner field (dce), repo twtxt, and Feed URL https://hashnix.club/~dce/twtxt.txt. Publish to Codeberg, serve from Hashnix — exactly what you wanted 🤞 lemme know!
@dce@hashnix.club Fixed! 🥳 That 403 was our bug — connect was checking your token via /api/v1/user (needs read:user), but your token’s scoped to just the repo so it can’t. Now it validates against the repo itself instead 👍