@andros@twtxt.andros.dev I wouldn’t call it regular, but cyclical. Since, with the exception of Yarn (maybe?), clients are everything when it comes to twtxt, every now and then we see an increase of interest on new development. I have seeing them come and go, only few “beside remains”. :-)
Question to the twtxt veterans, are we experiencing an explosion of clients or is this a regular occurrence?
I have released new updates to the twtxt.el client.
- Markdown to Org mode (you need to install Pandoc).
- Centred column.
- Added new logo.
- Added text helper.
The new version I will try to finish the visual thread. You still can’t see the thread yet.
#emacs #twtxt #twtxtel
MCP 實戰:使用 Go 快速構建 MCP Server
MCP 簡介MCP 協議(Model Context Protocol,模型上下文協議)是由 Anthropic 於 2024 年 11 月底推出的一種開放標準,旨在統一大型語言模型(LLM)與外部數據源和工具之間的通信。官方地址 https://modelcontextprotocol.io 架構如下 MCP 協議的架構包含多個關鍵組件:Host(宿主程序)、MCP Client(M ⌘ Read more
I like gopher so far. Probably gonna increment the amount of gopher servers by 1 soon. Could also make custom client and server software for it, since it’s so simple.
@aelaraji@aelaraji.com Can you give me examples of hashes that you have detected wrong between Emacs client and twtxt.net?
Perhaps there is some character, some space, that is creating the discrepancy.
@prologic@twtxt.net Agreed! But clients can hallucinate and generate wrong hashes aka Lies 🤣 Also, If you chheck your own twt on twtxt.net, it looks like a root twt instead of a replay.
**(#mm2bhka) @bender@bender Nah, we’ll just make our clients partially implement the spec. That is, ignore Twts that begin with !<nick url> .. ...**
[@bender _@twtxt.net_](https://twtxt.net/user/bender/) Nah, we’ll just make our clients partially implement the spec. That is, ignore Twts that begin with! …whereurlis not your url. ⌘ [Read more](https://twtxt.net/twt/6ta24ua)
[ ↳ Reply to twt ] button?
I don’t think so, at least the tests I did passed. If you’re pretty sure it’s a bug, please create an issue in the repository with the specific case and I’ll investigate it.
There are 2 buttons to make replicas, one makes a replica in the thread where the twt is located (this is the one that should be used the most, as it serves a thread), the other creates a replica to a specific twt.
I’ll let you know a bit about the status: I’m just now implementing the thread screen. There you can be sure where you are. It’s a bit confusing right now, sorry. I think the client is still in alpha. When I’ve finished what I’m doing, and the direct message system, I’ll freeze development and focus on creating more tests, looking for bugs and making small visual adjustments.
@arne@uplegger.eu Hi! I love that you’re implementing it! Maybe, when we’re both done, we could test the clients by communicating both.
I don’t think I’m going to be able to help you much, my knowledge of OpenSSL and PHP is not as high as I’d like it to be.
Maybe the OpenSSL version uses SHA-1 by default in PHP. Or that the IV is derived together with the key (not generated separately). But I’m not able to answer your questions, sorry.
I’m invoking the commands directly, without any libraries in between. Maybe that would help you?
Royal Bank of Canada’s Cloud Evolution
Royal Bank of Canada (RBC) is a global financial services institution and Canada’s largest bank (based on market capitalization). Technology is vital for RBC to deliver cutting-edge services to our clients and advance our businesses, ultimately… ⌘ Read more
Some satisfying icicle-breaking in our backyard: photos.falsifian.org/video/sM7G3vfS6yuc/VID_20250217_203250.mp4
I couldn’t resist taking home a prize:
It’s been snowy here in #Toronto.
(I tried formatting the images in markdown for the benefit of yarn and any other clients that understand it.)
well, Gemini clients like Lagrange allow to show inline images when you click on an image link. Text based clients, like Amfora, usually allow to watch the image in another ‘window’.
For example here: gemini://text.eapl.mx/en-making-a-tic-tac-toe-variant and there https://text.eapl.mx/en-making-a-tic-tac-toe-variant
I agree that some topics require images to make it easier to explain.
Bloody hell 🤦♂️🤦♂️
$ jq -r --arg host "gopher.mills.io" '. | select(.request.host==$host) | "\(.request.client_ip) \(.request.uri) \(.request.headers["User-Agent"])"' mills.io.log-au | while IFS=$' ' read -r ip uri ua; do asn="$(geoip -a "$ip")"; echo "$asn $ip $uri $ua"; done | grep -E '^45102.*' | sort | head
45102 47.251.70.245 /gopher.floodgap.com/0/feeds/democracynow/2015/Oct/14/0 ["Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"]
45102 47.251.84.25 /gopher.floodgap.com/0/feeds/voaheadlines/2014/Mar/09/voanews.com-content-article-1867433.html ["Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"]
45102 47.82.10.106 /gopher.viste.fr/1/OnlineTools/hangman.cgi%3F0692937396569A52972EB2 ["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.43"]
45102 47.82.10.106 /gopher.viste.fr/1/OnlineTools/hangman.cgi%3F9657307A96569A52974634 ["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.43"]
45102 47.82.10.106 /gopher.viste.fr/1/OnlineTools/hangman.cgi%3FB7571C7896569A529E6603 ["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.43"]
45102 47.82.10.106 /gopher.viste.fr/1/OnlineTools/hangman.cgi%3FB75EF81296569A529E6617 ["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.43"]
45102 47.82.10.106 /gopher.viste.fr/1/OnlineTools/hangman.cgi%3FC6564ADB96569A5A9E660C ["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.43"]
**Bloody hell 🤦♂️🤦♂️
$ jq -r --arg host "gopher.mills.io" '. | select(.request.host==$host) | "\(.request.client_ip) \(.re ...**
Bloody hell 🤦♂️🤦♂️
$ jq -r –arg host “gopher.mills.io” ‘. | select(.request.host==$host) | “(.request.client_ip) (.request.uri) (.request.headers[“User-Agent”])“’ mills.io.log-au | while IFS=$’ ‘ read -r ip uri ua; do asn=”$(geoip -a “$ip”)“; echo “$asn $ip $uri $ua”; done | grep -E ‘^45102.*’ | sort | head
45102 47.251.70.245 /gopher.floodgap.com/0/feeds/democracynow/2015/Oct/14/0 [“Mozilla/5.0 (M … ⌘ Read more
tt rewrite in Go and quickly implemented a stack widget for tview. The builtin Pages is similar but way too complicated for my use case. I would have to specify a mandatory name and some additional options for each page. Also, it allows me to randomly jump around between pages using names, but only gives me direct access the first, however, not the last page. Weird. I don't wanna remember names. All I really need is a classic stack. You open a new fullscreen dialog and maybe another one on top of that. Closing the upper most brings you back to the previous one and so on.
Thinking about trying tt. If it really usable i will abandon twtxtdon (service to read twtxt feeds from mastodon client), which currently has only authorization implemented
@prologic@twtxt.net Of course you don’t notice it when yarnd only shows at most the last n messages of a feed. As an example, check out mckinley’s message from 2023-01-09T22:42:37Z. It has “[Scheduled][Scheduled][Scheduled]“… in it. This text in square brackets is repeated numerous times. If you search his feed for closing square bracket followed by an opening square bracket (][) you will find a bunch more of these. It goes without question he never typed that in his feed. My client saves each twt hash I’ve explicitly marked read. A few days ago, I got plenty of apparently years old, yet suddenly unread messages. Each and every single one of them containing this repeated bracketed text thing. The only conclusion is that something messed up the feed again.
(#ymspbvq) I think the author is a bit out of their depth here. A linear feed isn’t quite what the author seems to be modelling in their view …
I think the author is a bit out of their depth here. A linear feed isn’t quite what the author seems to be modelling in their view of the problems they observe and describe. A linear feed has a beginning and an end. You can ( ideally client-side) sort it by Date, or by Subject like we do with our Twtxt clients. A Tree-structure isn’t what the author thinks either, this is more the struct … ⌘ Read more
@eapl.me@eapl.me Yeah, you need some kind of storage for that. But chances are that there’s already a cache in place. Ideally, the client remembers etags or last modified timestamps in order to reduce unnecessary network traffic when fetching feeds over HTTP(S).
A newsreader without read flags would be totally useless to me. But I also do not subscribe to fire hose feeds, so maybe that’s a different story with these. I don’t know.
To me, filtering read messages out and only showing new messages is the obvious solution. No need for notifications in my opinion.
There are different approaches with read flags. Personally, I like to explicitly mark messages read or unread. This way, I can think about something and easily come back later to reply. Of course, marking messages read could also happen automatically. All decent mail clients I’ve used in my life offered even more advanced features, like delayed automatic marking.
All I can say is that I’m super happy with that for years. It works absolutely great for me. The only downside is that I see heaps of new, despite years old messages when a bug causes a feed to be incorrectly updated (https://twtxt.net/twt/tnsuifa). ;-)
that’s a fair point.
Perhaps, since Twitter in 2006 never implemented read flags, every derivative microblogging system never saw that as an expected feature. This is curious because Twitter started with SMS, where on our phones we can mark messages as read or unread.
I think it all comes from the difference between reading an email (directed to you) vs. reading public posts (like a blog or a ‘wall,’ where you don’t mark posts as read). It’s not necessary to mark it as ‘read’, you just jump over it.
Reading microblogging posts in an email program is not common, I think, and I haven’t really used it, so I cannot say how it works, and whether it would be better for me or not.
However, I’ve used Thunderbird as a feed reader, and I understand the advantages when reading blog posts.
About read flags being simple, well… we just had a discussion this morning about how tracking read messages would require a lot of rethinking for clients such as timeline where no state is stored. Even considering some kind of ‘notification of unread messages or mentions’ is not expected for those minimalist client, so it’s an interesting compromise to think about.
@eapl.me@eapl.me Read flags are so simple, yet powerful in my opinion. I really don’t understand why this is not a thing in most twtxt clients. It’s completely natural in e-mail programs and feed readers, but it hasn’t made the jump over to this domain.
(#y4cur4q) @movq@movq I believe that’s the same client I’ve used in the past too. Works nicely on macOS 👌👌
@movq @www.uninformativ.de I believe that’s the same client I’ve used in the past too. Works nicely on macOS 👌👌 ⌘ Read more
You write too much for my client 😂
Yes everything fine from it: gopher://shibboleths.org/5/win31/irc.zip Screen of IRC client for Win311: https://dropmefiles.com/DD4t9
This client was made by a finnish person but sure, you believe whatever you want to
@andros@twtxt.andros.dev How about putting the whole encrypted conversation into a sperate twtxt-file. Just like the archive feature (?). That way, the general clients don’t have to cope with the decrytption stuff and it won’t break the general public conversations.
@arne@uplegger.eu Klingt gut, Du darfst uns gern mal ein paar Bildschirmfotos vom aktuellen Stand zeigen. :-) Die erste Aufnahme sah bereits recht aufgeräumt aus.
Ich müsste auch endlich mal an meinem Client weitermachen. Aber heut nimmer.
@prologic@twtxt.net @lyse@lyse.isobeef.org First, please leave me your comments on the repository! Even if it’s just to give your opinion on what shouldn’t be included. The more variety, the better.
Second, I’m going to try to do tests with Elliptic keys and base64. Thanks for the advice @eapl@eapl.me
Finally, I’d like to give my opinion. Secure direct messages are a feature that ActivityPub and Mastodon don’t have, to give an example. By including it as an extension, we’re already taking a significant leap forward from the competition. Does it make sense to include it in a public feed? In fact, we’re already doing that. When we reply to a user, mentioning them at the beginning of the message, it’s already a direct message. The message is within a thread, perhaps breaking the conversation. Direct messages would help isolate conversations between 2 users, as well as keeping a thread cleaner and maintaining privacy. I insist, it’s optional, it doesn’t break compatibility with any client and implementing it isn’t complex. If you don’t like it, you’re free to not use it. If you don’t have a public key, no one can send you direct messages.
another one would be to allow changing public keys over time (as it may be a good practice [0]). A syntax like the following could help to know what public key you used to encrypt the message, and which private key the client should use to decrypt it:
!<nick url> <encrypted_message> <public_key_hash_7_chars>
Also I’d remove support for storing the message as hex, only allowing base64 (more compact, aiming for a minimalistic spec, etc.)
ofrnxmr completes third milestone for BasicSwapDEX CCS
ofrnxmr1 has completed2 the third milestone (M3-F/M3-B) for their CCS proposal3 to empower and steward BasicSwapDex4 to production quality software:
Request for M3-F and M3-B (M3-O comes end of month 4) [..] This next sprint (month) will add some of the more exciting functionality, further improve the UX and add some security features (such as client auth for the api port and amm integra … ⌘ Read more
@arne@uplegger.eu nice work with the client.
I also see you are using the Yellow CMS for your website🍋
@sorenpeter@darch.dk Yes it works, thx: https://doesnm.cc/mentions.txt . I’m deleted html tags because my client do not support html rendering
@<url> form of mentions. Strictly require that all mentions include a nickname/name; i.e: @<name url>.
@prologic@twtxt.net I say we should find a way to support mentions with only url, no nick, as per the original spec.
- For
@<nick url>we already got support
- For
@<nick>the posting client should expand it to@<nick url>, if not then the reading client should just render it as@nickwith no link.
- For
@<url>the sending client should try to expand it to@<nick url>, if not then the reading client should try to find or construct a nick base on:
- Look in twtxt.txt for a
nick =
- Use (sub)domain from URL
- Use folder or file name from URL
- Look in twtxt.txt for a
I’m sharing new developments on the client. I now have a more stable timeline. The first version will appear in the next few weeks.
#emacs #twtxtHmm, I just noticed that the feed template seems to be broken on your yarnd instance, @kat@yarn.girlonthemoon.xyz. Looking at your raw feed file (and your mates as well), line 6 reads:
# This is hosted by a Yarn.social pod yarn running yarnd ERSION@OMMIT go1.23.4
^^^^^^^^^^^^
Looks like the first letters of the version and commit got somehow chopped off. I’ve no idea what happened here, maybe @prologic@twtxt.net knows something. :-? I’m not familiar with the templating, I just recall @xuu@txt.sour.is reporting in IRC the other day that he’s also having great fun with his custom preamble from time to time.
That “broken” comment doesn’t hurt anything, it’s still a proper comment and hence ignored by clients. It’s just odd, that’s all.
trying to set up @movq@www.uninformativ.de’s jenny client… currently trying to find where twtxt files are stored on the server so i can set up the scp script i have for this
My client is twet which i grabbed at https://github.com/jdtron/twet
@doesnm@doesnm.p.psf.lt LOL sorry which client are you using? 🤔 You can of course have a say! There aren’t that many active/used clients at the moment, and I forget which one you’re using 🤣🤣
(#5uon66q) @doesnm LOL sorry which client are you using? 🤔 You can of course have a say! There aren’t that many active/used clients at the mo …
@doesnm @doesnm.p.psf.lt LOL sorry which client are you using? 🤔 You can of course have a say! There aren’t that many active/used clients at the moment, and I forget which one you’re using 🤣🤣 ⌘ Read more
Lol only i use discontinued client? (with patches but i’m lost sources so they “proprietary”)
@<url> form of mentions. Strictly require that all mentions include a nickname/name; i.e: @<name url>.
For the record; we consider the new authority on the Twtxt spec(s) going forward (has been for some years actually) to be implementers / primary maintainers of widely used clients. To date that is:
yarnd@prologic@twtxt.net (me and others)
jenny@movq@www.uninformativ.de
tt@lyse@lyse.isobeef.org
Timeline@darch@neotxt.dk / @eapl.me@eapl.me and others
twtxt-el? – @andros@twtxt.andros.dev
Full list of supported and widely used clients can be found at https://twtxt.dev/clients.html – which I note a few above are actually missing from this page haha 🤣
(#ot56hla) For the record; we consider the new authority on the Twtxt spec(s) going forward (has been for some years actually) to be implement …
For the record; we consider the new authority on the Twtxt spec(s) going forward ( has been for some years actually) to be implementers / primary maintainers of widely used clients. To date that is:
yarnd@prologic (me and others)jenny[@movq @www.uninformativ.de](https://twtxt.net/external?uri=https://www.uninformativ.de/twtxt.txt&nick=movq … ⌘ Read more
@<url> form of mentions. Strictly require that all mentions include a nickname/name; i.e: @<name url>.
What say you @movq@www.uninformativ.de @lyse@lyse.isobeef.org @eapl.mx@eapl.mx / @darch@neotxt.dk @andros@twtxt.andros.dev (new client author)? 🤔 Shall I PR this up?
I’m still making progress with the Emacs client. I’m proud to say that the code that is responsible for reading the feeds is almost finished, including: Twt Hash Extension, Twt Subject Extension, Multiline Extension and Metadata Extension. I’m fine-tuning some tests and will soon do the first buffer that displays the twts.
Dragonfly v2.2.0 has been released
Dragonfly v2.2.0 is released! 🎉🎉🎉 Thanks the contributors who made this release happend and welcome you to visit d7y.io website. Features Client written in Rust The client is written in Rust, offering advantages such as ensuring… ⌘ Read more
What’s a reasonable per second or per minute rate limit that I could apply in general at my edge proxy for all clients? (no matter what) … L …
What’s a reasonable per second or per minute rate limit that I could apply in general at my edge proxy for all clients? ( no matter what) … LIke a good reasonable upper bound? 🤔 ⌘ Read more
yarnd (which powers Yarn.social pods like twtxt.net) does have an API, however that API is designed for clients to interact with the pod and the user's account and feed. e.g: there is a command-line client called yarnc and I used to maintain a mobile native app (using Flutter).
@doesnm@doesnm.p.psf.lt It is the same API that yarnc the command-line client uses.
(#o2ru6pq) @doesnm It is the same API that yarnc the command-line client uses.
@doesnm @doesnm.p.psf.lt It is the same API that yarnc the command-line client uses. ⌘ Read more
@andros@twtxt.andros.dev What do you mean by API? yarnd (which powers Yarn.social pods like twtxt.net) does have an API, however that API is designed for clients to interact with the pod and the user’s account and feed. e.g: there is a command-line client called yarnc and I used to maintain a mobile native app (using Flutter).
What use-case did you have in mind?
(#gjl3gwq) @andros What do you mean by API? yarnd (which powers Yarn.social pods like twtxt.net) does have an API, however that API is desig …
@andros @twtxt.andros.dev What do you mean by API? yarnd ( which powers Yarn.social pods like twtxt.net) does have an API, however that API is designed for clients to interact with the pod and the user’s account and feed. e.g: there is a command-line client called yarnc and I used to maintain a mobile native app ( … ⌘ Read more
(#v3q6xuq) Could this be the Emacs client I’ve heard about? 🤔
Could this be the Emacs client I’ve heard about? 🤔 ⌘ Read more
(#v3q6xuq) @lyse I wouldn’t know sadly. I don’t pay attention to the actual clients themselves as you know. I just let yarnd do it’s thing.
@lyse @lyse.isobeef.org I wouldn’t know sadly. I don’t pay attention to the actual clients themselves as you know. I just let yarnd do it’s thing. ⌘ Read more
Once again I glimpsed at my twtxt feed access log. Now I’m wondering: is there a twtxt client named xt out there? Does anyone know? I did not find anything for “xt/0.0.1”.
(#vwonyga) @kat No worries! I consider Yarn.social to be really an ecosystem of clients, tools and services. Twtxt is the underlying exchange fo …
@kat @yarn.girlonthemoon.xyz No worries! I consider Yarn.social to be really an ecosystem of clients, tools and services. Twtxt is the underlying exchange format used and extended (See https://twtxt.dev) ⌘ Read more
(#dphjuwa) @kat Haha yeah I often use the CLI client to post things from the terminal! 👌
@kat @yarn.girlonthemoon.xyz Haha yeah I often use the CLI client to post things from the terminal! 👌 ⌘ Read more
I found 2 active Registries: tilde.instite and twtxt.envs.net . I think that is missing a repository or system for them to find each other. It is easy to share registry users. Your work is awesome! Maybe you are supporting twtxt with the pod and software around them. I am very busy with the Emacs client, but I like to work creating my own version of Registry using Django.
**For my reference, but anyone else too… Creating a new Wireguard public/private key pair and bringing up a new client:
wg genkey | tee /e ...**
For my reference, but anyone else too… Creating a new Wireguard public/private key pair and bringing up a new client:
wg genkey | tee /etc/wireguard/private.key
cat /etc/wireguard/private.key | wg pubkey | tee /etc/wireguard/public.key
vim /etc/wireguard/wg0.conf
wg-quick up wg0
⌘ [Read more](https://twtxt.net/twt/vlbohoq)
@emmanuel@wald.ovh Btw I already figured out why accessing your web server is slow:
$ host wald.ovh
wald.ovh has address 86.243.228.45
wald.ovh has address 90.19.202.229
wald.ovh has 2 IPv4 addresses, one of which is dead and doesn’t respond.. That’s why accessing your website is so slow as depending on client and browser behaviors one of two things may happen 1) a random IP is chosen and ½ the time the wrong one is picked or 2) both are tried in some random order and ½ the time its slow because the broken one is picked.
If you don’t know what 86.243.228.45 is, or it’s a dead backup server or something, I’d suggest you remove this from the domain record.
(#grm3u6a) @sorenpeter@sorenpeter I think the use of ~ is so commonly used as a <username> that we should just suppose that out of the box by …
@sorenpeter @darch.dk I think the use of ~ is so commonly used as a <username> that we should just suppose that out of the box by all clients for display purposes. ⌘ Read more
(#2zve52q) @sorenpeter No I agree. I think if the feed doesn’t hint at a nick, just default to displaying the bare domain. These sorts of things …
@sorenpeter @darch.dk No I agree. I think if the feed doesn’t hint at a nick, just default to displaying the bare domain. These sorts of things btw need to go into a Client recommendations / guidelines. If someone wants to start drafting up such I doc I will fully support this and help shape it 👌 ⌘ Read more
nick = _@domain.tld in the twtxt.txt?
What should the advantage be to nick = _compared to just not defining a nick and let the client use the domain as the handle?
What is not intuitive is that you put something in the nick field that is not to be taken literary. The special meaning of _ is only clean if you read the documentation, compared to having something in nick that makes sense in the current context of the twtxt.txt.
If NICK = DOMAIN then only show @DOMAIN
So instead of @eapl.me@eapl.me it will just be @eapl.me
@doesnm@doesnm.p.psf.lt So the user should then set nick = _@domain.tld in the twtxt.txt?
It seems more intuitive and userfriendly to just use: nick = domain.tld and have then convention for clients to render the handle as @domain.tld instead of @domain.tld@domain.tld
For a feed with no nick defined (eg. https://akkartik.name/twtxt.txt) it will also be simpler and make more sense to just use the domain as the nick and render it as @domain.tld
and going back to a handle you could input in your client to look for the user/file, like @nick@domain.tls I think Webfinger is the way to go. It has enough information to know where to find that nick’s URL.
@prologic@twtxt.net does that webfinger fork made by darch work OK with yarn as it is now? (I’ve never used it, so I’m researching about it)
https://darch.dk/.well-known/webfinger/
(#b7mk3nq) @andros Oooh exiting, we haven’t seen a Twtxt client in a functional language yet 🤣
@andros @twtxt.andros.dev Oooh exiting, we haven’t seen a Twtxt client in a functional language yet 🤣 ⌘ Read more
(#ah5h6mq) @andros See – There isn’t really anythign specific about avatars or how big they should be, etc. The spec mostly talks about what’s …
@andros @twtxt.andros.dev See https://twtxt.dev – There isn’t really anythign specific about avatars or how big they should be, etc. The spec mostly talks about what’s possible and supported by clients and publishers of twtxt feeds. We have yet to write specific client/server recommendations. ⌘ Read more
Thanks @bender@twtxt.net for the feedback. I fixed and expanded the article. I’m sorry for my poor interaction. Furthermore, I’m reading and writing while programming a client in Emacs.
Use ChatGPT by Phone by Calling 1-800-ChatGPT for AI Voice Answers & Communication
OpenAI, the company behind the popular ChatGPT artificial intelligence tool, has introduced a new phone-based ChatGPT client experience. By calling 1-800-ChatGPT (1-800-242-8478), you are able to have a phone conversation with ChatGPT to get AI answers by phone. Essentially the phone line for ChatGPT means that you can access and use ChatGPT entirely by voice, … [Read More](https://osxdaily.com/2024/12/20/use-cha … ⌘ Read more
Funky! Sending this from a 1989 Mac IIci and the TurboGopher client. Text is beautiful!
JMP: Newsletter: JMP at SeaGL, Cheogram now on Amazon
Hi everyone!
Welcome to the latest edition of your pseudo-monthly JMP update!
In case it’s been a while since you checked out JMP, here’s a refresher: JMP lets you send and receive text and picture messages (and calls) through a real phone number right from your computer, tablet, phone, or anything else that has a Jabber client. Among other things, JMP has these features: Your phone number on every device; Multiple phone numbers, one app; Free a … ⌘ Read more
JMP: Newsletter: Year in Review, Google Play Update
Hi everyone!
Welcome to the latest edition of your pseudo-monthly JMP update!
In case it’s been a while since you checked out JMP, here’s a refresher: JMP lets you send and receive text and picture messages (and calls) through a real phone number right from your computer, tablet, phone, or anything else that has a Jabber client. Among other things, JMP has these features: Your phone number on every device; Multiple phone numbers, one app; Free as … ⌘ Read more
(#5zxfl5q) @xuu@xuu Built-in to what though? The spec? A client? A Serivce?
@xuu @txt.sour.is Built-in to what though? The spec? A client? A Serivce? ⌘ Read more
@xuu@txt.sour.is is there anything stopping in clients from supporting this as an optional feature?
(#624dwtq) @xuu@xuu is there anything stopping in clients from supporting this as an optional feature?
@xuu @txt.sour.is is there anything stopping in clients from supporting this as an optional feature? ⌘ Read more
Kaidan: Kaidan 0.10.1: Media Sharing and New Message Marker Fixes
This release fixes some bugs.
Have a look at the changelog for more details.
Bugfixes:
- Fix displaying files of each message in appropriate message bubble (melvo)
- Fix sending fallback messages for clients not supporting XEP-0447: Stateless file sharing (melvo)
- Fix margins within message bubbles (melvo)
- Fix hiding hidden message part (melvo)
- Fix displaying marker for new messages (melvo)
@prologic@twtxt.net What IRC client is that?
vtnerd completes 2024 Q3 Monero dev work CCS
vtnerd1 has posted a third and final progress report2 for their full-time 2024/Q3 Monero development work CCS proposal3:
Work overviewThe bulk of the time was making LWS HTTP client requests asynchronous4 - the scanner, exchange rates, and /login are no longer blocked by I/O. [..] I’ve probably missed a few things, this was a somewhat busy month of work.
”`
- LWS /get_random_outs is also now asynchronous
- … ⌘ Read more”`
**(#dy3n2cq) Also interesting:
edit_hash: When a message is edited, a new message is created– this field holds the hash of the modified messag …**
Also interesting:edit_hash: When a message is edited, a new message is created– this field holds the hash of the modified message. The client follows the chain of edit hashes to end up at the final, edited message to display. This lets us keep an “undo” history (not yet implemented) and is a marker so the client can display a marker that the message has been edited. ⌘ Read more
**(#ptp2n7a) > Why is my @ mention is all over the place?
Just the way yarnd (my client) behaves, which I’m also refactoring and improving the …**
Why is my @ mention is all over the place?
Just the way yarnd (my client) behaves, which I’m also refactoring and improving the way mentions are expanded and auto-completed. ⌘ Read more
Yes it work: 2024-12-01T19:38:35Z twtxt/1.2.3 (+https://eapl.mx/twtxt.txt; @eapl) :D
The .log is just a simple append each request. The idea with the .cvs is to have it tally up how many request there have been from each client as a way to avoid having the log file grow too big. And that you can open the .cvs as a spreadsheet and have an easy overview and filtering options.
Access to those files are closed to the public.
Maybe realize webmention in my feed? (receiving). Sending maybe will be implemened in WIP client…
Hello from PANDA TOPS-20, using gopher client written in C,
@movq@www.uninformativ.de Were you going to add Jenny here?
@movq @www.uninformativ.de Were you going to add Jenny here? https://twtxt.dev/clients.html ⌘ Read more
(#ewcgw4a) Not really sure how this is similar at all teally as Yarn like every other twtxt client just fetches feeds you tell it to? 🤔
Not really sure how this is similar at all teally as Yarn like every other twtxt client just fetches feeds you tell it to? 🤔 ⌘ Read more
(#u6ymywa) To @anth’s points, I think this should be written as “Client recommendations” and “Serve recommendations”. Separate from the “Twtxt …
To @anth @a.9srv.net’s points, I think this should be written as “Client recommendations” and “Serve recommendations”. Separate from the “Twtxt format” spec. ⌘ Read more
@sorenpeter@darch.dk on 4 for gemini if your TLS client certificate contains your nick@host could that work for discovery?
@sorenpeter@darch.dk on 4 for gemini if your TLS client certificate contains your nick@host could that work for discovery?
@eapl.me@eapl.me here are my replies (somewhat similar to Lyse’s and James’)
Metadata in twts: Key=value is too complicated for non-hackers and hard to write by hand. So if there is a need then we should just use #NSFS or the alt-text file in markdown image syntax
if something is NSFWIDs besides datetime. When you edit a twt then you should preserve the datetime if location-based addressing should have any advantages over content-based addressing. If you change the timestamp the its a new post. Just like any other blog cms.
Caching, Yes all good ideas, but that is more a task for the clients not the serving of the twtxt.txt files.
Discovery: User-agent for discovery can become better. I’m working on a wrapper script in PHP, so you don’t need to go to Apaches log-files to see who fetches your feed. But for other Gemini and gopher you need to relay on something else. That could be using my webmentions for twtxt suggestion, or simply defining an email metadata field for letting a person know you follow their feed. Interesting read about why WebMetions might be a bad idea. Twtxt being much simple that a full featured IndieWeb sites, then a lot of the concerns does not apply here. But that’s the issue with any open inbox. This is hard to solve without some form of (centralized or community) spam moderation.
Support more protocols besides http/s. Yes why not, if we can make clients that merge or diffident between the same feed server by multiples URLs
Languages: If the need is big then make a separate feed. I don’t mind seeing stuff in other langues as it is low. You got translating tool if you need to know whats going on. And again when there is a need for easier switching between posting to several feeds, then it’s about building clients with a UI that makes it easy. No something that should takes up space in the format/protocol.
Emojis: I’m not sure what this is about. Do you want to use emojis as avatar in CLI clients or it just about rendering emojis?
Righto, @eapl.me@eapl.me, ta for the writeup. Here we go. :-)
Metadata on individual twts are too much for me. I do like the simplicity of the current spec. But I understand where you’re coming from.
Numbering twts in a feed is basically the attempt of generating message IDs. It’s an interesting idea, but I reckon it is not even needed. I’d simply use location based addressing (feed URL + ‘#’ + timestamp) instead of content addressing. If one really wanted to, one could hash the feed URL and timestamp, but the raw form would actually improve disoverability and would not even require a richer client. But the majority of twtxt users in the last poll wanted to stick with content addressing.
yarnd actually sends If-Modified-Since request headers. Not only can I observe heaps of 304 responses for yarnds in my access log, but in Cache.FetchFeeds(…) we can actually see If-Modified-Since being deployed when the feed has been retrieved with a Last-Modified response header before: https://git.mills.io/yarnsocial/yarn/src/commit/98eee5124ae425deb825fb5f8788a0773ec5bdd0/internal/cache.go#L1278
Turns out etags with If-None-Match are only supported when yarnd serves avatars (https://git.mills.io/yarnsocial/yarn/src/commit/98eee5124ae425deb825fb5f8788a0773ec5bdd0/internal/handlers.go#L158) and media uploads (https://git.mills.io/yarnsocial/yarn/src/commit/98eee5124ae425deb825fb5f8788a0773ec5bdd0/internal/media_handlers.go#L71). However, it ignores possible etags when fetching feeds.
I don’t understand how the discovery URLs should work to replace the User-Agent header in HTTP(S) requests. Do you mind to elaborate?
Different protocols are basically just a client thing.
I reckon it’s best to just avoid mixing several languages in one feed in the first place. Personally, I find it okay to occasionally write messages in other languages, but if that happens on a more regularly basis, I’d definitely create a different feed for other languages.
Isn’t the emoji thing “just” a client feature? So, feed do not even have to state any emojis. As a user I’d configure my client to use a certain symbol for feed ABC. Currently, I can do a similar thing in tt where I assign colors to feeds. On the other hand, what if a user wants to control what symbol should be displayed, similar to the feed’s nick? Hmm. But still, my terminal font doesn’t even render most of emojis. So, Unicode boxes everywhere. This makes me think it should actually be a only client feature.
JMP: Newsletter: JMP at SeaGL, Cheogram now on Amazon
Hi everyone!
Welcome to the latest edition of your pseudo-monthly JMP update!
In case it’s been a while since you checked out JMP, here’s a refresher: JMP lets you send and receive text and picture messages (and calls) through a real phone number right from your computer, tablet, phone, or anything else that has a Jabber client. Among other things, JMP has these features: Your phone number on every device; Multiple phone numbers, one app; Free as … ⌘ Read more
(#gctrz4q) > Alternatively, if you prefer yarnd to pretty-print all twts nicely, even ones from simpler clients, that’s fine too and you don�� …
Alternatively, if you prefer yarnd to pretty-print all twts nicely, even ones from simpler clients, that’s fine too and you don’t need to change anything. My ¼ -> ¼ thing is nothing more than a minor irritation which probably isn’t worth overthinking.
Yeah I’ve closed the PR, I just wanted to write it up and see what we all thought. Much easier to talk to a concrete spec proposal sometimes. … ⌘ Read more
(#gctrz4q) > What’s wrong with my original suggestion of doing the transformation before the text hits the twtxt.txt file? @prologic, I think …
What’s wrong with my original suggestion of doing the transformation before the text hits the twtxt.txt file? @prologic, I think it would achieve what you are trying to achieve with this content-type thing: if someone writes ¼ on a yarnd instance or any other client that wants to do this, it would get transformed, and other clients simply wouldn’t do the transformation. Every client that sup … ⌘ Read more
@bender@twtxt.net @prologic@twtxt.net I’m not exactly asking yarnd to change. If you are okay with the way it displayed my twts, then by all means, leave it as is. I hope you won’t mind if I continue to write things like 1/4 to mean “first out of four”.
What has text/markdown got to do with this? I don’t think Markdown says anything about replacing 1/4 with ¼, or other similar transformations. It’s not needed, because ¼ is already a unicode character that can simply be directly inserted into the text file.
What’s wrong with my original suggestion of doing the transformation before the text hits the twtxt.txt file? @prologic@twtxt.net, I think it would achieve what you are trying to achieve with this content-type thing: if someone writes 1/4 on a yarnd instance or any other client that wants to do this, it would get transformed, and other clients simply wouldn’t do the transformation. Every client that supports displaying unicode characters, including Jenny, would then display ¼ as ¼.
Alternatively, if you prefer yarnd to pretty-print all twts nicely, even ones from simpler clients, that’s fine too and you don’t need to change anything. My 1/4 -> ¼ thing is nothing more than a minor irritation which probably isn’t worth overthinking.
(#s7t3gya) @bender@bender The only changes I can foresee are really to yarnd. As no other client I’m aware of really cares aall that much. …
@bender The only changes I can foresee are really to yarnd. As no other client I’m aware of really cares aall that much. 🤣 It’s only in an attempt to solve this. No I’m not sure about this 🤣 ⌘ Read more
@sorenpeter@darch.dk I run Weechat headless on a VM and mostly connect via mobile or dwsktop. I use the android client or gliwing bear. Work blocks all comms on their always on MitM VPN so I cant in office anymore. So I just use mobile.
@sorenpeter@darch.dk I run Weechat headless on a VM and mostly connect via mobile or dwsktop. I use the android client or gliwing bear. Work blocks all comms on their always on MitM VPN so I cant in office anymore. So I just use mobile.
(#rjapt4a) @movq Hmmm now I’m confused 😅 I’ve made no changes anywhere – we still need to all agree, especially client authors and maintaine …
@movq @www.uninformativ.de Hmmm now I’m confused 😅 I’ve made no changes anywhere – we still need to all agree, especially client authors and maintainers 🤣 ⌘ Read more
@Codebuzz@www.codebuzz.nl Speed is an issue for the client software, not the format itself, but yes I agree that it makes the most sense to append post to the end of the file. I’m referring to the definition that it’s the first url = in the file that is the one that has to be used for the twthash computation, which is a too arbitrary way of defining something that breaks treading time and time again. And this is the case for not using url+date+message = twthash.
Ya know; Rather than being an asshole and getting all angry, just be reasonable and reach out to the community or folks fetching (or trying) your feed.
Most clients respect caching if your feed is transported I’ve HTTP.
Otherwise you can add the # refresh hint to clients on your feed.
No need to be an obnoxious ass and flood your own feed. That will just get you permanarely unfollowed and ignored.
THE LAST HUMAN POST ON THIS FEED IS MORE THAN FOUR YEARS OLD. PERHAPS TWTXT CLIENTS SHOULD THEN FETCH THE FEED VERY RARELY.
Erlang Solutions: Implementing Phoenix LiveView: From Concept to Production
When I began working with Phoenix LiveView, the project evolved from a simple backend service into a powerful, UI-driven customer service tool. A basic Phoenix app for storing user data quickly became a core part of our client’s workflow.
In this post, I’ll take you through a project that grew from its original purpose- from a service fo … ⌘ Read more