Searching txt.sour.is

Twts matching #twtxt.
Sort by: Newest, Oldest, Most Relevant
In-reply-to » @eapl.me@eapl.me I replied in the fork, but essentially there's no reason we can't support two different models here. We already do this anyway with numerous single-user, single hosted and managed feeds + a bunch of multi-user yarnd pods that form a "distributed network".

@xuu@txt.sour.is Yeah looks like an edge case. Because of the way he announces his preferred nick in the feed the “Reply” button spits out @eapl.me@eapl.me@eapl.me for me, which then gets eaten as two mentions, probably matching twice against my following list?

​ Read More

(#oc3snia) @xuu@xuu Yeah looks like an edge case. Because of the way he announces his preferred nick in the feed the “Reply” button spit 

@xuu @txt.sour.is Yeah looks like an edge case. Because of the way he announces his preferred nick in the feed the “Reply” button spits out @eapl.me@eapl.me@eapl.me for me, which then gets eaten as two mentions, probably matching twice against my following list? ⌘ Read more

​ Read More
In-reply-to » What does the #twtxt community think about having a p2p database to store all history? This will be managed by Registries.

@eapl.me@eapl.me@eapl.me@eapl.me I replied in the fork, but essentially there’s no reason we can’t support two different models here. We already do this anyway with numerous single-user, single hosted and managed feeds + a bunch of multi-user yarnd pods that form a “distributed network”.

​ Read More

(#ep5rg4q) @eapl.me@eapl.me@eapl.me@eapl.me I replied in the fork, but essentially there’s no reason we can’t support two different models here. 

@eapl.me @eapl.me @eapl.me @eapl.me I replied in the fork, but essentially there’s no reason we can’t support two different models here. We already do this anyway with numerous single-user, single hosted and managed feeds + a bunch of multi-use 
 ⌘ Read more

​ Read More

(#j3xacqa) @eapl.me@eapl.me@eapl.me@eapl.me I think the general idea that we’re settling on here is that maybe we can build a simple solution 

@eapl.me @eapl.me @eapl.me @eapl.me I think the general idea that we’re settling on here is that maybe we can build a simple solution to this whole “wtf is this hash?” problem. yarnd already forms a sort-of “distributed network” amongst its pe 
 ⌘ Read more

​ Read More
In-reply-to » I got a small desk calendar as advertising gift. It shows three months at once. I'm using this thing since the beginning of this year and I have to say that it turned out to be super useful. I'm happily surprised.

@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 :-)

​ Read More
In-reply-to » Heute auf dem Heimweg roch es leicht gĂŒllig vom Stadtrand her. Is denn all wedder GĂŒlletied? đŸ„đŸ–đŸ’©đŸšœđŸ€ą https://m.youtube.com/watch?v=STPvOxUDekU

@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.

​ Read More
In-reply-to » I got a small desk calendar as advertising gift. It shows three months at once. I'm using this thing since the beginning of this year and I have to say that it turned out to be super useful. I'm happily surprised.

@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:

Image

Before that I also used something like cal. It works, but it’s a bit cumbersome.

​ Read More
In-reply-to » I got a small desk calendar as advertising gift. It shows three months at once. I'm using this thing since the beginning of this year and I have to say that it turned out to be super useful. I'm happily surprised.

@eapl.me@eapl.me @bender@twtxt.net @prologic@twtxt.net Not including a photo was a stupid move, sorry. There you go:

Image

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

Image

​ Read More
In-reply-to » @lyse 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.

@arne@uplegger.eu Ah, witzige Geschichte! Ich fĂŒrchte, der Eberhardt wird sich nun bei mir auch festsetzen. ;-)

​ Read More
In-reply-to » What does the #twtxt community think about having a p2p database to store all history? This will be managed by Registries.

@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.

​ Read More
In-reply-to » The other day, after a discussion online, we came to the conclusion that using awk+sed+tr could replace much of the development that requires a database. However, using SQLite to have a SQL syntax isn't a bad idea either. What do you think?

@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.

​ Read More
In-reply-to » I watched two squirrels this morning for about half an hour: https://lyse.isobeef.org/eichhoernchen-2025-03-11/ They were super crazy fast. Also, they bit off plenty of twigs and carried them around, not sure where they put them. I've never seen them do that before. Once more I realized that I need a better zoom.

@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.

​ Read More
In-reply-to » What does the #twtxt community think about having a p2p database to store all history? This will be managed by Registries.

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.

​ Read More
In-reply-to » The other day, after a discussion online, we came to the conclusion that using awk+sed+tr could replace much of the development that requires a database. However, using SQLite to have a SQL syntax isn't a bad idea either. What do you think?

@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? 😀

​ Read More

(#6z7qt4a) You’re all wrong 😑 @anth@anth will happily tell you (hopefully) that we’ve been doing this whole “microblogging” / “status 

You’re all wrong 😑 @anth @a.9srv.net will happily tell you ( hopefully) that we’ve been doing this whole “microblogging” / “status update” thing decades earlier than anything you’ve ever seen in the form of finger đŸ€Ł and “plan” files 😅 ⌘ Read more

​ Read More
In-reply-to » I watched two squirrels this morning for about half an hour: https://lyse.isobeef.org/eichhoernchen-2025-03-11/ They were super crazy fast. Also, they bit off plenty of twigs and carried them around, not sure where they put them. I've never seen them do that before. Once more I realized that I need a better zoom.

@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.

​ Read More
In-reply-to » twtxt is a decentralised, minimalist microblogging service for hackers.

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?

​ Read More
In-reply-to » It's been ages since the last time we've had as much and as frequent of a rainfall as we've been having this week. The smell, the sounds, the wind pushing against my body ... are taking over my senses with joy, leaving no room for worryℱ (about the possibility of a flood).

@aelaraji@aelaraji.com That’s nice, enjoy it while it lasts! Rain can be something wonderful. Stay safe.

​ Read More

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.

​ Read More
In-reply-to » @kat 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 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!

​ Read More
In-reply-to » @prologic 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.

@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!

​ Read More
In-reply-to » @prologic 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.

@lyse@lyse.isobeef.org deeply honored to be used as an example, when illustrating things that will break! :-D <3

​ Read More
In-reply-to » One of the biggest gripes of the community with the way the threading model currently works with Twtxt v1.2 (https://twtxt.dev) is this notion of:

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

​ Read More
In-reply-to » @prologic 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.

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.

​ Read More

(#tzctugq) @lyse@lyse I also think we need to remove ourselves a bit from the “Twtxt” format as it was originally designed by Buckke 

@lyse @lyse.isobeef.org I also think we need to remove ourselves a bit from the “Twtxt” format as it was originally designed by Buckket.

The beauty of twtxt is, you put one file on your server, done. One.

I’m not talking ( nor ever was here) about that. We should be allowed to and encourage dot evolve its 
 ⌘ Read more

​ Read More

(#6gfpeea) @lyse@lyse Sorry I didn’t mean to upset you or anyone here in the community. I am/was merely trying to solve what I perce 

@lyse @lyse.isobeef.org Sorry I didn’t mean to upset you or anyone here in the community. I am/was merely trying to solve what I perceive to be a problem and an ask in the community:

How do I know what a hash refers to?

I believe the reason for this stems from a curiosity of the user of whether they might 
 ⌘ Read more

​ Read More
In-reply-to » One of the biggest gripes of the community with the way the threading model currently works with Twtxt v1.2 (https://twtxt.dev) is this notion of:

@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.

​ Read More

One of the biggest gripes of the community with the way the threading model currently works with Twtxt v1.2 (https://twtxt.dev) is this notion of:

What is this hash?
What does it refer to?

Idea: Why can’t we all agree to implement a simple URI scheme where we host our Twtxt feeds?

That is, if you host your feed at https://example.com/twtxt.txt – Why can’t or could you not also host various JSON files (let’s agree on the spec of course) at https://example.com/twt/<hash> ? đŸ€”

That way we solve this problem in a truly decentralised way, rather than every relying on yarnd pods alone.

​ Read More

**One of the biggest gripes of the community with the way the threading model currently works with Twtxt v1.2 () is this notion of:

What is t 
**
One of the biggest gripes of the community with the way the threading model currently works with Twtxt v1.2 ( https://twtxt.dev) is this notion of:

What is this hash?

What does it refer to?

Idea: Why can’t we all agree to implement a simple URI scheme where we host our Twtxt feeds?

That is, if you host your feed at https://example.com/twtxt.txt – Why can’t o 
 ⌘ Read more

​ Read More
In-reply-to » Dang it! I ran into import cycles with shared test utilities again. :-( Either I have to copy this function to set up an in-memory test storage across packages or I have to put it in the storage package itself and guard it with a build tag that is only used in tests (otherwise I end up with this function in my production binary as well). I don't like any of the alternatives. :-(

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

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.

​ Read More
In-reply-to » Dang it! I ran into import cycles with shared test utilities again. :-( Either I have to copy this function to set up an in-memory test storage across packages or I have to put it in the storage package itself and guard it with a build tag that is only used in tests (otherwise I end up with this function in my production binary as well). I don't like any of the alternatives. :-(

@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
  • 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

​ Read More
In-reply-to » Dang it! I ran into import cycles with shared test utilities again. :-( Either I have to copy this function to set up an in-memory test storage across packages or I have to put it in the storage package itself and guard it with a build tag that is only used in tests (otherwise I end up with this function in my production binary as well). I don't like any of the alternatives. :-(

@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
  • 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

​ Read More

So
 Cylone Alfred made landfall (whatever that means) last night, and I watched it hit my wife’s Uncle/Aunt’s place on one of the outer isla 

So
 Cylone Alfred made landfall ( whatever that means) last night, and I watched it hit my wife’s Uncle/Aunt’s place on one of the outer islands, then move westwards and sort of fizzle out. It’s now been downgrade to a “Tropical Low” ( I guess not good enough for a Cat X anymore?), but we’re still in the Eye of it, and there’s still a swirling mass of winds ( just not as fast). Now we 
 ⌘ Read more

​ Read More
In-reply-to » Ich fahre gleich zwei Stunden mit dem Zug durch das sonnige Mecklenburg-Vorpommern, um morgen PÜNKTLICH 🐓 mit den Schwiegereltern zur Familienfeier nach ThĂŒringen aufbrechen zu können. Ein Wochenende auf Achse wird das. 🚞🚐😞

@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?

​ Read More
In-reply-to » Dang it! I ran into import cycles with shared test utilities again. :-( Either I have to copy this function to set up an in-memory test storage across packages or I have to put it in the storage package itself and guard it with a build tag that is only used in tests (otherwise I end up with this function in my production binary as well). I don't like any of the alternatives. :-(

@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
  • controller/
    • feeds.go: uses a Storage
    • feeds_test.go: here I wanted to reuse the newRAMStorage(
) function

I then tried to relocate the newRAMStorage(
) into a

  • teststorage/
    • storage.go: moved here as NewRAMStorage(
)

so that I could just reuse it from both

  • storage/
    • sqlite_test.go: uses testutils.NewRAMStorage(
)
  • controller/
    • feeds_test.go: uses testutils.NewRamStorage(
)

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.

​ Read More