@prologic@twtxt.net I created a script for your book. i have only done the first two chapters. have to do some adjustments to the text so it sounds ok and that takes time..
In the meantime, I tried to add English subtitles, so the international audience has a chance of enjoying some of them, too. There are a bunch of puns, so translations donât work at that great.
I went to an exhibition of my fine arts teacher who passed away last year. He was a pretty cool dude and good teacher. I reckon I had him in 7th and probably also 8th grade. His Schelme (imps) were very famous here in this county and presumably well beyond.
Unfortunately, picture frame glas doesnât mix all that great with a fairly dark light and my camera. So, sorry in adavance for the poor quality. Anyway, I photographed a few funny paintings. Watch out, it may contain saucy contents: https://lyse.isobeef.org/siegfried-wagner-farrenstall-2025-03-15/.
@kat@yarn.girlonthemoon.xyz this is how i find out the videos are capped at a minute
@lyse@lyse.isobeef.org âKann ⊠enthaltenâ? đ€Ł Ein Schelm, dieser Schelm.
@movq@www.uninformativ.de Hahaha, nice! :-D I had to check the solution to get it. Itâs a good one.
@prologic@twtxt.net LSAgIFE6IFdoYXQgZG9lcyBhIGhlbiBkbz8KLSAgIEE6IEl0IGxheXMgZWdncy4K đ
@kat@yarn.girlonthemoon.xyz this is also why most of my sites are pink
@lyse@lyse.isobeef.org That is pretty impressive indeed. đł
@prologic@twtxt.net @lyse@lyse.isobeef.org Time to win the lottery already! Damn, how hard can it be. đ
@kat@yarn.girlonthemoon.xyz I know her from iZombie, which is also pretty good. đ Have it on DVD, even.
@prologic@twtxt.net how come when you reply to eapl.me it doubles up? bug?
Iâd like to know more about what andros and prologic are talking about, I feel lost.
âThis will be managed by Registries.â Are we talking about these registries?
https://twtxt.readthedocs.io/en/latest/user/registry.html
@prologic@twtxt.net thank you! no clue whatâs causing it for me but itâs probably something stupid
@movq@www.uninformativ.de rose mciver!!!!!!! i know her from power rangers lol
@movq@www.uninformativ.de @prologic@twtxt.net Dito. Even though I only had four day weeks and three days of weekend the last month, I feel very exhausted as well. Back to five days next week. :-(
@movq@www.uninformativ.de Thatâs cool! I just canât justify the amount of space it permanently takes. But it fits nicely with the other gauges you have. And with that in mind, it actually is super tiny.
@eapl.me@eapl.me Interesting, I wasnât aware that other parts of the world consider them to be a German thing :-)
@prologic@twtxt.net yes! Of course. However give me some time, I want to define a small proposal for the Registry (v2?)
@arne@uplegger.eu Das ist ein recht zuverlĂ€ssiger Wetterbericht. Wenn die Bauern mit ihren GĂŒllefĂ€ssern hier vorbeifahren, weiĂ ich sofort, dass Regen angekĂŒndigt ist. :-)
Ha, das Lied gefĂ€llt mir auĂerordentlich gut! \o/ Mit Abstand das beste GĂŒllelied. Ich kenn noch ein paar schwĂ€bische, aber die gehen lang nicht so ab wie dieses hier.
@lyse@lyse.isobeef.org Ah, yes, a calendar that shows the past $x
months is great! I have this as a widget in my bar:
Before that I also used something like cal
. It works, but itâs a bit cumbersome.
@eapl.me@eapl.me @bender@twtxt.net @prologic@twtxt.net Not including a photo was a stupid move, sorry. There you go:
This particular one is 95mm wide and 185mm high. Fairly compact.
I can only use it figure out distances to other dates and to do some basic calendar math. Iâm not able to actually schedule anything. But I grew up with a month calendar like you have there where all appointments of the entire family was recorded.
By far most of my paper use is drawing random stuff on scratch paper during meetings. :-D
@arne@uplegger.eu Ah, witzige Geschichte! Ich fĂŒrchte, der Eberhardt wird sich nun bei mir auch festsetzen. ;-)
@prologic@twtxt.net @lyse@lyse.isobeef.org I like to listen to you.
@prologic@twtxt.net If it develops, and Iâm not saying it will happen soon, perhaps Yarn could be connected as an additional node. Implementation would not be difficult for any client or software. It will not only be a backup of twtxt, but it will be the source for search, discovery and network health.
Iâm sharing a short tutorial, in Spanish, for self-hosting #twtxt with Docker:
https://programadorwebvalencia.com/twtxt-desplegar-tu-feed-con-docker/
@lyse@lyse.isobeef.org Nein nein, nichts plattdeutsches. âEberhardt Eichhörnchenâ ist eine nette Alliteration und kommt aus einem Urlaub von vor ein paar Jahren. Auf dem Campingplatz gab es ein Eichhörnchen und der Eberhardt war durch eine Handwerkerwerbung prĂ€sent.
@andros@twtxt.andros.dev If something fits in a CSV file, it typically doesnât require a database. I agree with that. Depending on the application, more complicated queries might benefit from a database, though. I donât know awk very well, but I could imagine that grep, sed and cut reach their CSV processing limits rather quickly when you have to deal with escaped (multiline) fields.
I only very rarely have to deal with CSV files or databases in my day to day life. Maybe, these classic Unix tools offer some tricks Iâm not aware of. When I have some more complicated CSV input, I generally reach for Python.
@eapl.me@eapl.me @arne@uplegger.eu @andros@twtxt.andros.dev Thanks mates!
Hmmm, Eberhardt. Ist das eine plattdeutsche Sache? Dass ich den flinken Nagern so lang zuschauen konnte, war ein seltener GlĂŒcksfall. Normalerweise sind die nach fĂŒnf oder spĂ€testens zehn Minuten wieder aus dem Sichtfeld verschwunden.
@movq@www.uninformativ.de Yeah, horizontal scrolling is an invention right from the devil himself. :-D Itâs awful, I canât stand it.
pls elaborate on a âp2p databaseâ, âall storyâ and âRegistriesâ.
My first thought takes me to something like secure-scuttlebutt
which itâs painful to sync data using clients, and too slow compared to downloading a text file.
Also Iâd like for twtxt to avoid becoming an ActivityPub. Works well but itâs uses too many resources IMO.
https://kingant.net/2025/02/mastodon-the-cost-of-running-my-own-server/
Iâm defending being able to self-host your Web client (like youâd do with a Wordpress, twtxt is a micrologging, at the end), instead of federated instances, so in a first thought Iâd say Registries have many disadvantages being the first one that someone has to maintain them active.
What does the #twtxt community think about having a p2p database to store all history? This will be managed by Registries.
@prologic@twtxt.net We often turn to a database when we can use a plain text file, such as a CSV. With sed or awk, you can run simple queries without using a database.
Did I get the context right? đ
@lyse@lyse.isobeef.org Bei mir heiĂen Eichhörnchen immer âEberhardtâ (unisex). Den Tierchen könnte ich stundenlang zuschauen.
Trotz âZoomschwĂ€cheâ: Tolle Bilder.
@aelaraji@aelaraji.com not sure but i will check when i can! git status is a good idea yeah
Iâd need to think about it deeply, but at a first sight, nanoblogging
would be a simple text (like the original twtxt spec, aimed for TUIs), and microblogging
(like Twitter was a few years ago), would be about sharing texts, images, videos, GIFs, links, and perhaps Markdown styling.
Why? You have shorter messages than in a blog, but you may add almost anything you could do in a blog.
Buuut⊠who knows?
@aelaraji@aelaraji.com I cannot tell you either. I donât know the difference. :-)
@aelaraji@aelaraji.com Thatâs nice, enjoy it while it lasts! Rain can be something wonderful. Stay safe.
@aelaraji@aelaraji.com Thatâs how twtxt started: As microblogging. Yarn shifted up some gears and now itâs more like social media â more powerful, but a bit different. đ
@kat@yarn.girlonthemoon.xyz @prologic@twtxt.net When I make dev
on current master, I get a proper version. Same with make server
. Assuming you cloned the repo, do you have any (uncommited) changes? What does git status
tell you?
Of course, @bender@twtxt.net, anytime! As our number one bug finder, your service has to be rewarded. :-)
twtxt is a decentralised, minimalist microblogging service for hackers.
The keyword here is microblogging
. But it doesnât feel like weâve been (relatively speaking) doing much of that lately⊠maybe I go the concept of microblogging
wrong.
@prologic@twtxt.net make server actually because i donât need the client on my server, also i run make deps before just in case lol
@prologic@twtxt.net HIII MISSED YALL
@prologic@twtxt.net huh interesting! yeah i was stumped for a bit i was like WHAT config.json file are these logs talking aboutâŠ. but then it worked after i moved the old meta.json file lol!
@kat@yarn.girlonthemoon.xyz it was likeâŠ. meta.json was corrupt or well it was empty actually whatever idk. ended up moving that elsewhere temporarily, rebuilding the binary, restarting server⊠and it worked?!?!? shit was confusing
@prologic@twtxt.net oops, Iâm sorry to see disagreement leading to draining emotions.
It remind me a bit of the Conclave movie where every part wanted to defend their vision and there is only a winner. If one wins the other loses. Like the political side of many leaders and volunteers representing a broad community. I donât think thatâs the case here. Most of us (in not all) should âwinâ.
I can only add that isnât nice to listen that âmy idea and effortâ is not what the rest of the people expect. I personally have a kind of issue with public rejection, but I also like to argue, discuss and even fight a bit. âA gem cannot be polished without friction, nor a man perfected without trials,â they say.
This exercise and belonging to this community also brings me good feelings of smart people trying to solve a human and technical problem, which is insanely difficult to get ârightâ.
I genuinely hope we can understand each other, and even with our different and respectful thoughts on the same thing, we might reach an agreement on whatâs the best for most people.
Good vibes to everyone!
#testing @ Hi Bob, nice to meet you!
Why not just use registry? It can be personal or hosted by someone like registry.twtxt.org. Just need to be adapt to support hashes
If we donât keep insisting on simplify and âThe beauty of twtxt is, you put one file on your server, done. One.â, then people should just use ActivityPub-based software like Mastodon, PixelFed, etc. which are getting a lot of attention and uses migrating to the fediverse from meta/x here in Denmark over the last couple of months.
@prologic@twtxt.net We canât agree on this idea because that makes things even more complicated than it already is today. The beauty of twtxt is, you put one file on your server, done. One. Not five million. Granted, there might be archive feeds, so it might be already a bit more, but still faaaaaaar less than one file per message.
Also, you would need to host not your own hash files, but everybody elseâs as well you follow. Otherwise, what is that supposed to achieve? If people are already following my feed, they know what hashes I have, so this is to no use of them (unless they want to look up a message from an archive feed and donât process them). But the far more common scenario is that an unknown hash originates from a feed that they have not subscribed to.
Additionally, yarndâs URL schema would then also break, because https://twtxt.net/twt/<hash>
now becomes https://twtxt.net/user/prologic/<hash>
, https://twtxt.net/user/bender/<hash>
and so on. To me, that looks like you would only get hashes if they belonged to this particular user. Of course, you could define rules that if there is a /user/
part in the path, then use a different URL, but this complicates things even more.
Sorry, I donât like that idea.
@prologic@twtxt.net Hahaha, I love that! :-D Something to laugh during these hard times. Hope youâre doing alright.
@arne@uplegger.eu GlĂŒckwunsch, das ist in der Tat doch mal eine erfreuliche Abwechslung. :-)
Thanks, @xuu@txt.sour.is, great explanation. In another project Iâve structured it exactly like you wrote. The mock storage over there extends the SQLite storage and provides mechanism to return errors and such for testing purposes:
- storage/ defines the interface
- sqlite/ implements the storage interface
- mock/ extends the SQLite implementation by some mocking capabilities and assertions
- sqlite/ implements the storage interface
Here, however, there are no storage subpackages. Itâs just storage
, thatâs it. Everything is in there. The only implementation so far is an SQLite backend that resides in storage
. My RAM storage is exactly that SQLite storage, but with :memory:
instead a backing file on disk. I do not have a mock storage (yet).
I have to think about it a bit more, but I probably have to do exactly that in my tt
rewrite, too. Sigh. I just have the feeling that in storage/sqlite/sqlite_test.go I cannot import storage/mock for the helper because storage/mock/mock.go imports and embeds the type from storage/sqlite. But Iâm too tired right now to think clearly.
@lyse@lyse.isobeef.org OK. So how I have worked things like this out is to have the interface in the root package from the implementations. The interface doesnât need to be tested since itâs just a contract. The implementations donât need to import storage.Storage
- storage/ defines the
Storage
interface (no tests!)
- storage/sqlite for the sqlite implementation tests for sqlite directly
- storage/ram for the ram implementation and tests for RAM directly
- storage/sqlite for the sqlite implementation tests for sqlite directly
- controller/ can now import both storage and the implementation as needed.
So now I am guessing you wanted the RAM test for testing queries against sqlite and have it return some query response?
For that I usually would register a driver for SQL that emulates sqlite. Then itâs just a matter of passing the connection string to open the registered driver on setup.
https://github.com/glebarez/go-sqlite?tab=readme-ov-file#connection-string-examples
@lyse@lyse.isobeef.org Das war ein sehr glatter Ritt mit der Bahn. Ebenso heute auf der Autobahn.
(gesendet aus ThĂŒringen)
@arne@uplegger.eu Hals- und Beinbruch! Die Bahn hat ja nur die vier Feinde: FrĂŒhling, Sommer, Herbst und Winter. Wurdest Du heute positiv ĂŒberrascht?
@prologic@twtxt.net You just have to stay in the center. Itâs supposed to be calm in there I heard. Just getting there is the tricky part. Good luck!
@prologic@twtxt.net Thank you đ
@lyse@lyse.isobeef.org Oh, so thatâs the problem! đ
@prologic@twtxt.net Brace for impact. 𫣠How stormy is it at the moment?
You can find the #twtxt-el channel in Libera IRC to talk about the twtxt.el client, I will keep my connection open so you can ask me questions. Thank you!
@movq@www.uninformativ.de âThermometer must not be installed near aircraft turbine exhaust.â
@xuu@txt.sour.is My layout looks like this:
- storage/
- storage.go: defines a
Storage
interface
- sqlite.go: implements the
Storage
interface
- sqlite_test.go: originally had a function to set up a test storage to test the SQLite storage implementation itself:
newRAMStorage(testing.T, $initialData) *Storage
- storage.go: defines a
- controller/
- feeds.go: uses a
Storage
- feeds_test.go: here I wanted to reuse the
newRAMStorage(âŠ)
function
- feeds.go: uses a
I then tried to relocate the newRAMStorage(âŠ)
into a
- teststorage/
- storage.go: moved here as
NewRAMStorage(âŠ)
- storage.go: moved here as
so that I could just reuse it from both
- storage/
- sqlite_test.go: uses
testutils.NewRAMStorage(âŠ)
- sqlite_test.go: uses
- controller/
- feeds_test.go: uses
testutils.NewRamStorage(âŠ)
- feeds_test.go: uses
But that results into an import cycle, because the teststorage
package imports storage
for storage.Storage
and the storage
package imports testutils
for testutils.NewRAMStorage(âŠ)
in its test. Iâm just screwed. For now, I duplicated it as newRAMStorage(âŠ)
in controller/feeds_test.go.
I could put NewRAMStorage(âŠ)
in storage/testutils.go, which could be guarded with //go:build testutils
. With go test -tags testutils âŠ
, in storage/sqlite_test.go could just use NewRAMStorage(âŠ)
directly and similarly in controller/feeds_test.go I could call storage.NewRamStorage(âŠ)
. But I donât know if I would consider this really elegant.
The more I think about it, the more appealing it sounds. Because I could then also use other test-related stuff across packages without introducing other dedicated test packages. Build some assertions, converters, types etc. directly into the same package, maybe even make them methods of types.
If I went that route, I might do the opposite with the build tag and make it something like !prod
instead of testing. Only when building the final binary, I would have to specify the tag to exclude all the non-prod stuff. Hmmm.
@lyse@lyse.isobeef.org No, itâs always in the shadow. But thereâs not a lot of wind, maybe other things around it heat up ⊠đ€
lang=en @xuu@txt.sour.is gotcha!
From that PR #17 I think it was reverted? We could discuss about metadata later this month, as it seems that Iâm the only person using it.
Iâve added a [lang=en]
to this twt to see current yarn behaviour.
@prologic@twtxt.net Best wishes!
@movq@www.uninformativ.de Did you place it in the sun? We only got 15°C today.
Hi everyone,
Iâve drafted a Request for Comments (RFC) to improve how threads work in twtxt:
https://git.mills.io/yarnsocial/twtxt.dev/issues/18
Iâd love your feedback! Please share your thoughts on anything that could be better explained, check if the proposed dates work for everyone, and I invite you to join the discussionâŠ
I have released new updates to the twtxt.el client.
- New feature: View and interact with threads.
- Optimisation of ordering for long feeds.
- Minor fixes.
In the next version you will be able to see all your mentions.
Enjoy!
@prologic@twtxt.net Ouch, thatâs heading right towards you, eh? đ
@eapl.me@eapl.me@eapl.me@eapl.me I saw a few a while back.
@prologic@twtxt.net Damn! :-( Yeah, I wonât build that into my client. Not worth it for the many things that are still undetectable and the low frequency it happens.
@bmallred@staystrong.run Oh, I hear you! Itâs always after carefully proofreading and publishing that a typo suddenly pops up. :-) Not sure if amending your edit implementation is really worth it, but happy hacking in case you do.
@movq@www.uninformativ.de Luckily, theyâre not made of steel as I would not have made it home with such heavy weights. :-D
@movq@www.uninformativ.de Fuck! So there arenât any non-criminal printer vendors out there anymore. Very sad. I really donât understand why this is not highly illegal in the entire world.
@prologic@twtxt.net Got you bro.
@prologic@twtxt.net What the heck. đ«
@lyse@lyse.isobeef.org Lyse, the man with feet of steel. đŠŸ
@prologic@twtxt.net sure thing!
What about discussing it in https://git.mills.io/yarnsocial/twtxt.dev ?
The only con I see is that everyone would need to create an account there to participate.
@eapl.me@eapl.me There are several points that I like, but I want to highlight number 7. https://text.eapl.mx/a-few-ideas-for-a-next-twtxt-version #twtxt
@prologic@twtxt.net No edits anymore! \o/
I show you the website of Baldo, my little black cat (the pocket panther).
Website: https://baldo.cat/
Twtxt: https://baldo.cat/twtxt.txt
#catsoftwtxt
interesting.. my pod was looking for him as https://eapl.me/twtxt.txt but the correct path is https://eapl.me/tw.txt
I think @movq@www.uninformativ.de removed support for it in jenny. đ«
@prologic@twtxt.net eapl.me comes up not found for me.
2025-03-02T13:20:00-07:00 (#<fmgas3a https://twtxt.net/user/prologic/twtxt.txt?t=2025-03-02T10:12:13Z>) @<prologic https://twtxt.net/user/prologic/twtxt.txt> its hard to change by consensus. Some things are won in implementation.
@prologic@twtxt.net its hard to change by consensus. Some things are won in implementation.
@movq@www.uninformativ.de Yeah, the ground was wet here, too. Some sections of esp. smaller paths had turned into mud holes. There are a few notorious spots. Oh well, you just have to press on. :-)
Forest animals also have to do the laundry, they even have a proper clotheshorse! See: https://lyse.isobeef.org/wanderung-zu-den-schurrenhoffuechsen-2021-05-15/07.jpg :-D
@movq@www.uninformativ.de Hahaha, stimmt! :-D
@bmallred@staystrong.run I forgot one more effect of edits. If clients remember the read status of massages by hash, an edit will mark the updated message as unread again. To some degree that is even the right behavior, because the message was updated, so the user might want to have a look at the updated version. On the other hand, if itâs just a small typo fix, itâs maybe not worth to tell the user about. But the client doesnât know, at least not with additional logic.
Having said that, it appears that this only affects me personally, noone else. I donât know of any other client that saves read statuses. But donât worry about me, all good. Just keep doing what youâve done so far. I wanted to mention that only for the sake of completeness. :-)
@andros@twtxt.andros.dev Iâve commented on the ticket: https://git.mills.io/yarnsocial/twtxt.dev/issues/14#issuecomment-19142
In all reality, though, I donât see that our community will come to an agreement. Some folks just donât want to give up on the content-based addressing scheme.
@prologic@twtxt.net I formed my opinion about this before reading/watching any additional media coverage. And yes, this is extremely bad. These two have no place on the âworld stageâ. They are deciding on our future. (And I am well aware that my country is heading into a similar direction â unless we stop it.)
I like this syntax, you have my vote, although Iâd change it a bit like
#<Alice https://example.com/twtxt.com#2024-12-18T14:18:26+01:00>
Hashes are not a problem on PHP, I dont know why itâs slow to calculate them from your side, but I agree with your points.
BTW, did you have the chance to read my proposal on twtxt 2.0? I shared a few ideas about possible improvements to discuss:
https://text.eapl.mx/a-few-ideas-for-a-next-twtxt-version
https://text.eapl.mx/reply-to-lyse-about-twtxt
@prologic@twtxt.net I wonder if we watched the same video.
@lyse@lyse.isobeef.org Lalala, ich höre nix. đ
Aber total unrealistisch. Die âFokuszeitâ hĂ€tte ĂŒberbucht sein mĂŒssen durch ein anderes, wichtiges Meeting. Sonst war ja kein Platz mehr dafĂŒr.
@lyse@lyse.isobeef.org Looks like a nice day. đ I tried to go on a quick walk, but it was really cold. And everythingâs wet at the moment. Bah.
Clothespins in the woods, who would have thunk? đ„Ž
@lyse@lyse.isobeef.org What do you think about this? https://git.mills.io/yarnsocial/twtxt.dev/issues/14
@bmallred@staystrong.run Not an issue if youâre the doctor working there. :-)
@bmallred@staystrong.run Any edit automatically changes the twt hash, because the hash is built over the hash URL, message timestamp and message text. https://twtxt.dev/exts/twt-hash.html So, it is only a problem, if somebody replied to your original message with the old hash. The original message suddenly doesnât exist anymore and the reply becomes detached, orphaned, whatever you wanna call it. Threading doesnât break, though, if nobody replied to your message.
@thecanine@twtxt.net I like the clipboard function of HeliBoard very much.
@prologic@twtxt.net @david@collantes.us Good question, was this on live TV? I think it was? đ€