# I am the Watcher. I am your guide through this vast new twtiverse.
# 
# Usage:
#     https://watcher.sour.is/api/plain/users              View list of users and latest twt date.
#     https://watcher.sour.is/api/plain/twt                View all twts.
#     https://watcher.sour.is/api/plain/mentions?uri=:uri  View all mentions for uri.
#     https://watcher.sour.is/api/plain/conv/:hash         View all twts for a conversation subject.
# 
# Options:
#     uri     Filter to show a specific users twts.
#     offset  Start index for quey.
#     limit   Count of items to return (going back in time).
# 
# twt range = 1 488
# self = https://watcher.sour.is?uri=https://twtxt.andros.dev&offset=488
# prev = https://watcher.sour.is?uri=https://twtxt.andros.dev&offset=388
@prologic @movq @bender That would be fantastic! I encourage you to give feedback or give your experience as an issue: https://codeberg.org/Texudus/website/issues
The specification gives the feeling that it is complete, but there is always gap for small adjustments.
@sorenpeter Yes, there are interesting things that can be incorporated to see how they work.
The issue of allowing the use of Z for UTC is interesting. I think I should add a brief explanation.
The url issue is for a debate :D . Maybe an issue could be opened. My opinion is that it is necessary to leave it as it is right now because otherwise the thread system, or replies, may have problems (404s). It's all a matter of discussion.
I like your idea of contact. I will add it.
Thanks to you for your feedback!!!
@prologic Absolutely! It is essential to practice and deepen every art πŸ˜„
@doesnm More or less πŸ˜‚ At the moment it's just a space to experiment
@movq Really? πŸ˜… Thank you!
Nobody want to be a shitty programmer. The question is: Do you do anything not to not be one?
Reading blogs or social media and watching YouTube videos is fun. After them, your code may be a little better, of course. But you need a lot. You need to study! Read good books and study the code of other programmers, for example. Maybe work with a new language, architectures and paradigms. You need break the routine.

If you know Object-oriented programming, you learn functional programming.
If you know Model-View-Controller, you learn Model-View-ViewModel.
If you don't know anything about architectures, you learn Clean Architecture, Hexagonal Architecture, etc.
If you know Python, you learn Ruby or Go.
If you know Clojure or Lisp... you don't need to learn anything else. You are already a good programmer. Just kidding. You can learn Elixir or Scala.

Be a good programmer my friend.
@movq ok, I have included a small modification in the documentation to allow you to reply in your own thread: https://texudus.readthedocs.io/en/latest/
You can see my reply: https://andros.dev/texudus.txt
Don't delete anything and give me time to make my modifications to the client.
@bender Yes, you right. But is premium for more than that.
I use a feature I love a lot: customising different searches with different themes or links.
It's easy to understand with an example. I have a search with the name "Django". I set sources: Django documentation, stack overflow, topic "programming" and so on. It's very quick to find Django solutions.
I also have another way to find my stuff: search my blog and repositories.
I had problems paying for the first mouths, now it's a working tool for me.
@movq If you want, we can try it out between us. I'm just working on it (It was the easiest thing to do).
I've just released version 1.0 of twtxt.el (the Emacs client), the stable and final version with the current extensions. I'll let the community maintain it, if there are interested in using it. I will also be open to fix small bugs.
I don't know if this twt is a goodbye or a see you later. Maybe I will never come back, or maybe I will post a new twt this afternoon. But it's always important to be grateful. Thanks to @prologic @movq @eapl.me @bender @aelaraji @arne @david @lyse @doesnm @xuu @sorenpeter for everything you have taught me. I've learned a lot about #twtxt, HTTP and working in community. It has been a fantastic adventure!
What will become of me? I have created a twtxt fork called Texudus (https://texudus.readthedocs.io/). I want to continue learning on my own without the legacy limitations or technologies that implement twtxt. It's not a replacement for any technology, it's just my own little lab. I have also made a fork of my own client and will be focusing on it for a while. I don't expect anyone to use it, but feedback is always welcome.
Best regards to everyone.
#twtxt #emacs #twtxt-el #texudus
In my company we are using MinIO for local development.
Are there people who use Duolingo?
I am very agree with the article. For me, Kagi is the best search engine. A premium experience.
@movq Yes! There is a cause: The renewable energies.
In Spain there is a lot of dependence on renewable energies and this is a problem for maintaining the voltage in the network. Thus, a 60% loss was lost for 5 seconds. In cascade, the circuit breakers were automatically switched off.
The B-side of renewable energies. They produce electricity but not dynamic energy.
@prologic I'm very sorry but my feelings are similar to @eapl.me . For a long time I thought that Yarn was part of the Twtxt ecosystem, and not that Twtxt is an extension of Yarn. I don't feel comfortable with what has happened. I didn't expect this change of direction.
The nice part of Twtxt is that it is read by humans, with a simpler format. It's the heart of the social network.
I need to think for a little time, but I'm thinking of stopping my involvement in the community.
@bender Thank you! I am writting on PR page.
In Spain, electricity has already been restored. Amazing experience! Luckily, I will only have to throw away some food. But there are stories of all kinds. It has been 12 hours where we have gone back to the middle ages.
@prologic Yesterday Spain, Portugal, maybe Morocco, were without electricity for 12 hours. I could not work. My home server was down, my feed and pages were online because of that πŸ˜‚
@aelaraji πŸ˜‚
@aelaraji πŸ˜‚
@aelaraji I love them! Now I want to be emperor of the universe :P
@aelaraji I love them! Now I want to be emperor of the universe :P
I decided to use Imagor to optimise and transform the images into a stream. I am very happy with the results!
It is written in Go and is easy to run in Docker.
https://github.com/cshum/imagor
#selfhost
I decided to use Imagor to optimise and transform the images into a stream. I am very happy with the results!
It is written in Go and is easy to run in Docker.
https://github.com/cshum/imagor
#selfhost
@prologic
I think it is mature enough now: https://isah-twtxt.andros.dev
If anyone is interested in transforming an RSS feed to twtxt using n8n, send me a DM 😜
@prologic
I think it is mature enough now: https://isah-twtxt.andros.dev
If anyone is interested in transforming an RSS feed to twtxt using n8n, send me a DM 😜
@bender The DM specification has been updated from time to time in response to advice from the community. For me, It is a successful!
The adoption is another topic πŸ˜‚
(I am working on my side)
@bender The DM specification has been updated from time to time in response to advice from the community. For me, It is a successful!
The adoption is another topic πŸ˜‚
(I am working on my side)
I open a discussion thread: why didn't the registers work? Will they work later?
#twtxt
I open a discussion thread: why didn't the registers work? Will they work later?
#twtxt
Exciting new for Python 3.14!
t-string, not to be confused with f-string, to avoid malicious code and make life easier for web developers.
https://davepeck.org/2025/04/11/pythons-new-t-strings/
#python
Exciting new for Python 3.14!
t-string, not to be confused with f-string, to avoid malicious code and make life easier for web developers.
https://davepeck.org/2025/04/11/pythons-new-t-strings/
#python
@prologic I won't give you the link for the moment because I want to check how well it works! πŸ˜‹
@prologic I won't give you the link for the moment because I want to check how well it works! πŸ˜‹
@prologic Today I learned something new 😁
@prologic Today I learned something new 😁
@prologic Thanks @prologic !
@prologic Thanks @prologic !
This code displays the last 10 lines of a twtxt feed without a full dowload.

h
FEED_URL="https://twtxt.net/user/prologic/twtxt.txt"
MAX_RANGE=$(curl -sI $FEED_URL | grep -i 'content-length' | awk '{print $2}' | tr -d '\r')
MIN_RANGE=$((MAX_RANGE - 5000))

curl -s --range "$MIN_RANGE-$MAX_RANGE" "$FEED_URL" | grep -v -e '^#' -e '^$' | head -n 10


My self-response!

@prologic @david

#twtxt
This code displays the last 10 lines of a twtxt feed without a full dowload.

h
FEED_URL="https://twtxt.net/user/prologic/twtxt.txt"
MAX_RANGE=$(curl -sI $FEED_URL | grep -i 'content-length' | awk '{print $2}' | tr -d '\r')
MIN_RANGE=$((MAX_RANGE - 5000))

curl -s --range "$MIN_RANGE-$MAX_RANGE" "$FEED_URL" | grep -v -e '^#' -e '^$' | head -n 10


My self-response!

@prologic @david

#twtxt
Fantastic game! Find 5 dates by looking at 5 photos.
https://whichyr.com/
Fantastic game! Find 5 dates by looking at 5 photos.
https://whichyr.com/
Proposal: Change the order of twts in the feeds
https://git.mills.io/yarnsocial/twtxt.dev/issues/26
I drop the bomb and leave! πŸ’£ πŸƒβ€βž‘οΈ
#twtxt
Proposal: Change the order of twts in the feeds
https://git.mills.io/yarnsocial/twtxt.dev/issues/26
I drop the bomb and leave! πŸ’£ πŸƒβ€βž‘οΈ
#twtxt
@bender I use it. It's not the feature I use the most in the fediverse, but I communicate this way with several friends. For example, it's the main way I talk to the original creator of the twtxt-el repository, the way people greet me for the first time or the way they notify me of some bugs in the software I maintain. I can even tell you that it's the main way I talk to some maintainers of the Emacs community. If there are any of you reading my words, speak up!
Why not have the same? There are things I want to say to @prologic in private, why should I have to send him an email or private IRC? Or an public twt.
Of course, here's a topic we've already talked about: what is twtxt for you? For me it will always be a social network, in microblogging format, but an asynchronous way of communicating. And having a tool to control visibility is basic πŸ˜„
I look forward to hearing from you @eapl.me !
@bender I use it. It's not the feature I use the most in the fediverse, but I communicate this way with several friends. For example, it's the main way I talk to the original creator of the twtxt-el repository, the way people greet me for the first time or the way they notify me of some bugs in the software I maintain. I can even tell you that it's the main way I talk to some maintainers of the Emacs community. If there are any of you reading my words, speak up!
Why not have the same? There are things I want to say to @prologic in private, why should I have to send him an email or private IRC? Or an public twt.
Of course, here's a topic we've already talked about: what is twtxt for you? For me it will always be a social network, in microblogging format, but an asynchronous way of communicating. And having a tool to control visibility is basic πŸ˜„
I look forward to hearing from you @eapl.me !
After reading you, @eapl.me, I'll tell you my point of view.
In my opinion, a feed does not have to be equivalent to a timeline. A timeline is a representation of the feed adapted to a user. You may not be interested in seeing other people's threads or DMs. But perhaps they are interested in seeing mentions or DMs directed at them. It is important not to fall into the trap. With that clarification...
I insist, this is my point of view, it is not an absolute truth: I don't think extensions should be respectful of customers who are no longer maintained.
We cannot have a system that is simple, backwards compatible and extensible all at the same time. We have to give up some of the 3 points. I would not like to give up simplicity because it will then make it harder to maintain the customers who do stay. Therefore, I think it is better to give up backwards compatibility and play with new formulas in the extensions. I don't think it's a good idea to make a hash keep so much load: a hashtag, a thread and also a DM.
After reading you, @eapl.me, I'll tell you my point of view.
In my opinion, a feed does not have to be equivalent to a timeline. A timeline is a representation of the feed adapted to a user. You may not be interested in seeing other people's threads or DMs. But perhaps they are interested in seeing mentions or DMs directed at them. It is important not to fall into the trap. With that clarification...
I insist, this is my point of view, it is not an absolute truth: I don't think extensions should be respectful of customers who are no longer maintained.
We cannot have a system that is simple, backwards compatible and extensible all at the same time. We have to give up some of the 3 points. I would not like to give up simplicity because it will then make it harder to maintain the customers who do stay. Therefore, I think it is better to give up backwards compatibility and play with new formulas in the extensions. I don't think it's a good idea to make a hash keep so much load: a hashtag, a thread and also a DM.
@movq @aelaraji Yes @david It would be good for me, or new developers, if the documentation were agnostic. And if possible with many example cases. I'm fine-tuning the code as you inform me of bugs, trial and error. It's a lesson to be learned for the future.
@movq @aelaraji Yes @david It would be good for me, or new developers, if the documentation were agnostic. And if possible with many example cases. I'm fine-tuning the code as you inform me of bugs, trial and error. It's a lesson to be learned for the future.
@prologic Sorry! I have fixed a bug and I edited the feed 🫠
@prologic Sorry! I have fixed a bug and I edited the feed 🫠
@david If I run


printf '%s\n%s\n%s' 'https://aelaraji.com/twtxt.txt' '2025-04-16T22:49:11+00:00' "Am I tripping or `rsync` is actually THIS effing faster than `scp`!!? 🫨" | b2sum -l 256 | awk '{ print $1 }' | xxd -r -p | base32 | tr -d '=' | tr 'A-Z' 'a-z' | tail -c 8


I have xqfsv6a. It is raw text

But... If I change de date to 2025-04-16T22:49:11Z I have si4er3q.
@david If I run


printf '%s\n%s\n%s' 'https://aelaraji.com/twtxt.txt' '2025-04-16T22:49:11+00:00' "Am I tripping or `rsync` is actually THIS effing faster than `scp`!!? 🫨" | b2sum -l 256 | awk '{ print $1 }' | xxd -r -p | base32 | tr -d '=' | tr 'A-Z' 'a-z' | tail -c 8


I have xqfsv6a. It is raw text

But... If I change de date to 2025-04-16T22:49:11Z I have si4er3q.
@prologic @bender

What is the hash of the last message from?: https://aelaraji.com/twtxt.txt
@prologic @bender

What is the hash of the last message from?: https://aelaraji.com/twtxt.txt
@bender For example:

If you can see this twt in any feed...


xxxx-xx-xxTxx:xx:xxZ	!<bender https://twtxt.net/user/bender/twtxt.txt> U2FsdGVkX1+QmwBNmk9Yu9jvazVRFPS2TGJRGle/BDDzFult6zCtxNhJrV0g+sx0EIKbjL2a9QpCT5C0Z2qWvw==


It is for you. Any other possibility must be ignore (hidden in your timeline).

If your client doesn't have the posibility to decrypt the twt, hide all direct message. It is all :)
@bender For example:

If you can see this twt in any feed...


xxxx-xx-xxTxx:xx:xxZ	!<bender https://twtxt.net/user/bender/twtxt.txt> U2FsdGVkX1+QmwBNmk9Yu9jvazVRFPS2TGJRGle/BDDzFult6zCtxNhJrV0g+sx0EIKbjL2a9QpCT5C0Z2qWvw==


It is for you. Any other possibility must be ignore (hidden in your timeline).

If your client doesn't have the posibility to decrypt the twt, hide all direct message. It is all :)
@bender @aelaraji The client should ignore twts if it's not compatible or not addressed to me. it's a simple regex to add! It's similar to Twt Hash Extension, should they be in another file? They are child messages, not flat twt. Not of course!
@bender @aelaraji The client should ignore twts if it's not compatible or not addressed to me. it's a simple regex to add! It's similar to Twt Hash Extension, should they be in another file? They are child messages, not flat twt. Not of course!
@prologic @aelaraji It depends! If you are working with rsync and scp with the same protocol... I want to know! 😁
@prologic @aelaraji It depends! If you are working with rsync and scp with the same protocol... I want to know! 😁
@aelaraji What protocol do you use?
@aelaraji What protocol do you use?
New version release of twtxt-el!

- Fixed many bugs.
- New back buttons.
- Updated documentation.

I am currently fixing an important bug that break the timeline in some cases and I am working around direct messages.

#twtxt #twtxt-el
New version release of twtxt-el!

- Fixed many bugs.
- New back buttons.
- Updated documentation.

I am currently fixing an important bug that break the timeline in some cases and I am working around direct messages.

#twtxt #twtxt-el
It's ready πŸ₯³! https://dm-echo.andros.dev/
An example: https://dm-echo.andros.dev/generate/?url=https://twtxt.andros.dev/
#twtxt
It's ready πŸ₯³! https://dm-echo.andros.dev/
An example: https://dm-echo.andros.dev/generate/?url=https://twtxt.andros.dev/
#twtxt
@aelaraji Congratulations!!! Happy birtwt! πŸ₯³
@aelaraji Congratulations!!! Happy birtwt! πŸ₯³
@prologic @bender @eapl.me I think opening another file is a bad idea because it adds complexity to the clients, breaks the single feed and I think keeping legacy clients will be more complex to add new features in the future. A modern approach is important.
I'll be honest, I'm a bit tired of the fight around the direct message. Perhaps, we can remove it as an extension and use the alternative @prologic . My suggestion apparently doesn't like to the community. I have no problem with remove it.
@prologic @bender @eapl.me I think opening another file is a bad idea because it adds complexity to the clients, breaks the single feed and I think keeping legacy clients will be more complex to add new features in the future. A modern approach is important.
I'll be honest, I'm a bit tired of the fight around the direct message. Perhaps, we can remove it as an extension and use the alternative @prologic . My suggestion apparently doesn't like to the community. I have no problem with remove it.
@prologic I don't understand. I checked the feed, the twtxt file, and there are no duplicate links. I will follow the next articles πŸ‘οΈπŸ‘οΈβ€. Thank you!
@prologic I don't understand. I checked the feed, the twtxt file, and there are no duplicate links. I will follow the next articles πŸ‘οΈπŸ‘οΈβ€. Thank you!
I left XMPP because I found no interactions. Long live IRC!
I left XMPP because I found no interactions. Long live IRC!
@movq Nice photo! It is beautiful.
@movq Nice photo! It is beautiful.
@eapl.me When it is up and running, I promise to add it to the specification. I will also include some corrections.
The nature of twtxt does not allow us to selectively hide clients. It's a problem not with DM, but with any extension.
@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.
@xuu It's already much better than Mastodon :P . Maybe we can remove the sender and receiver references with an intermediary register.
@eapl.me When it is up and running, I promise to add it to the specification. I will also include some corrections.
The nature of twtxt does not allow us to selectively hide clients. It's a problem not with DM, but with any extension.
@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.
@xuu It's already much better than Mastodon :P . Maybe we can remove the sender and receiver references with an intermediary register.
@prologic @bender πŸ˜‚
@prologic @bender πŸ˜‚
@prologic I don't know, maybe it will be useful for someone πŸ˜‡
@prologic I don't know, maybe it will be useful for someone πŸ˜‡
@bender Yes! I deleted those repeated twts because it was poor execution by my client. They are currently not present in my feed.
Maybe it would be interesting to check if any twt has disappeared?
@bender Yes! I deleted those repeated twts because it was poor execution by my client. They are currently not present in my feed.
Maybe it would be interesting to check if any twt has disappeared?
@eapl.me You asked me for private keys for testing purposes. I have added it to the bottom of this page: https://dm-echo.andros.dev/
It will soon be running. It won't be long now.
@eapl.me You asked me for private keys for testing purposes. I have added it to the bottom of this page: https://dm-echo.andros.dev/
It will soon be running. It won't be long now.
Good quote: Β«Corrects in private and congratulates in publicΒ».
Or...: «Corrects in direct message and congratulates in twt» 😜
Good quote: Β«Corrects in private and congratulates in publicΒ».
Or...: «Corrects in direct message and congratulates in twt» 😜
@bender Can you give some examples? Maybe I can help you
@bender Can you give some examples? Maybe I can help you
@bender On average, a good news item usually scores 300 points, outstanding ones reach 400... and only the extraordinary ones exceed 600 points. If you want, you can customise it. The source code: https://0x0.st/8pnq.py
@bender On average, a good news item usually scores 300 points, outstanding ones reach 400... and only the extraordinary ones exceed 600 points. If you want, you can customise it. The source code: https://0x0.st/8pnq.py
@prologic I hope it is as useful to you as it is to me πŸ˜‹
@prologic I hope it is as useful to you as it is to me πŸ˜‹
I am pleased to share with you the #twtxt version of my important news alerts: https://n8n.andros.dev/webhook/f0cfd6a6-60c8-4183-a26d-120bbd25a046

Other versions:
Mastodon/Website: https://activity.andros.dev/@important_dev_news
Telegram: https://t.me/important_stories_alert_hacknews

Enjoy!
I am pleased to share with you the #twtxt version of my important news alerts: https://n8n.andros.dev/webhook/f0cfd6a6-60c8-4183-a26d-120bbd25a046

Other versions:
Mastodon/Website: https://activity.andros.dev/@important_dev_news
Telegram: https://t.me/important_stories_alert_hacknews

Enjoy!
@dm-echo U2FsdGVkX1+QmwBNmk9Yu9jvazVRFPS2TGJRGle/BDDzFult6zCtxNhJrV0g+sx0EIKbjL2a9QpCT5C0Z2qWvw==
@dm-echo U2FsdGVkX1+QmwBNmk9Yu9jvazVRFPS2TGJRGle/BDDzFult6zCtxNhJrV0g+sx0EIKbjL2a9QpCT5C0Z2qWvw==