Searching yarn

Twts matching #example
Sort by: Newest, Oldest, Most Relevant

@bender@twtxt.net 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.

⤋ Read More
In-reply-to » @prologic not me. I hate monosyllabic replies, specifically on the written medium, so I am just typing this to make it longer. But that doesn't change the truth, and that is, I don't want, nor care, about twtxt, and Activity Pub integration. šŸ˜…

@prologic@twtxt.net hahahahaha! No, no, no. Every word has its use. But for things like these I like certain reactions. For example, I would have given a ā€œthumbs downā€ to the original twtxt, and done with it. Now, composing a reply, to simply say ā€œno, thank you.ā€, that I don’t like. It seems a waste of space, and it doesn’t ā€œlook goodā€. I like to see at least 140 characters! Ha!

⤋ Read More
In-reply-to » @prologic not me. I hate monosyllabic replies, specifically on the written medium, so I am just typing this to make it longer. But that doesn't change the truth, and that is, I don't want, nor care, about twtxt, and Activity Pub integration. šŸ˜…

ā€œMonosyllabic repliesā€ refers to responses that consist of a single syllable. These types of replies are typically brief and concise, often used in situations where a simple, direct answer is given. Examples include words like ā€œYes,ā€ ā€œNo,ā€ ā€œOkay,ā€ or ā€œSure.ā€

šŸ˜‚ Can I imply you’re not interested in things like ā€œLIkeā€, ā€œReportā€, etc?! šŸ˜‚

⤋ Read More
In-reply-to » To the parents or teachers: How do you teach kids to program these days? šŸ¤”

@movq@www.uninformativ.de Agreed, finding the right motivation can be tricky. You sometimes have to torture yourself in order to later then realize, yeah, that was actually totally worth it. It’s often hard.

I think if you find a project or goal in general that these kids want to achieve, that is the best and maybe only choice with a good chance of positive outcome. I don’t know, like building a price scraper, a weather station or whatever. Yeah, these are already too advanced if they never programmed, but you get the idea. If they have something they want to build for themselves for their private life, that can be a great motivator I’ve experienced. Or you could assign ā€˜em the task to build their own twtxt client if they don’t have any own suitable ideas. :-)

Showing them that you do a lot of your daily work in the shell can maybe also help to get them interested in text-based boring stuff. Or at least break the ice. Lead by example. The more I think about it, the more I believe this to be very important. That’s how I still learn and improve from my favorite workmate today in general. Which I’m very thankful of.

⤋ Read More
In-reply-to » To the parents or teachers: How do you teach kids to program these days? šŸ¤”

@movq@www.uninformativ.de I started with Delphi in school, the book (that we never ever used even once and I also never looked at) taught Pascal. The UI part felt easy at first but prevented me from understanding fundamental stuff like procedures or functions or even begin and end blocks for ifs or loops. For example I always thought that I needed to have a button somewhere, even if hidden. That gave me a handler procedure where I could put code and somehow call it. Two or three years later, a new mate from the parallel class finally told me that this wasn’t necessary and how to do thing better.

You know all too well that back in the day there was not a whole lot of information out there. And the bits that did exist were well hidden. At least from me. Eventually discovering planet-quellcodes.de (I don’t remember if that was the original forum or if that got split off from some other board) via my best schoolmate was like finding the Amber Room. Yeah, reading the ITG book would have been a very good idea for sure. :-)

In hindsight, a console program without the UI overhead might have been better. At least for the very start. Much less things to worry about or get lost.

Hence, I’d recommend to start programming with a console program. As for the language, not sure. But Python is probably a good choice, it doesn’t require a lot of surrounding boilerplate like, say Java or Go. It also does exceptionally well in the principle of least surprise.

⤋ Read More
In-reply-to » @andros One thing I really liked about the hacker news rss feeds is the link to the comments. Reckon you can add that to the feed? šŸ¤”

Here’s an example of what you end up with (I don’t follow the feed, but it’s in my pod’s cache)

⤋ Read More
In-reply-to » on timeline the mention looks OK. Is there an issue on Yarn?

@eapl.me@eapl.me I wouldn’t call it natural, it is the way Bluesky decided to handle handles (not meaning to make a pun, or anything). There is no other way, but that.

The bottomline is, there are agreed upon ā€œstandardsā€, right? From example, on Yarnd you show as ā€œeapl.meā€, from ā€œeapl.meā€. A kind of weird redundancy because on twtxt, ever since I started using it, one will expect to see a ā€œnickā€ (equivalent to a person’s first name), from ā€œa domainā€ (like a surname).

There is nothing holding back someone from giving themselves the nick:

thisismyawesomenickforwhichiwillbeknownforeverandeveritsgreatisntit

But, do we really want that? šŸ˜…

⤋ Read More
In-reply-to » Testing mentions, immediately followed by commas. Let's see: @prologic, this one is local, it might not break. Now, this one @ isn't local. Nor this @ one. Will they break. Let's find out!

hehe, just catching up on this thread! I’ve replied in another that using periods/dots sounds good to me as it’s usual in domains, but perhaps some agreement would be needed. For now I think any character is valid as long as it is not a space.
For example we are using this for PHP twtxt.php#L153

⤋ Read More
In-reply-to » I guess mentions with .(s) / dot(s) like @eapl.me are valid? šŸ¤” Or nicks even? šŸ¤”

on timeline the mention looks OK. Is there an issue on Yarn?

It’s an interesting topic. For example on Bsky it’s natural to allow domains https://bsky.social/about/blog/4-28-2023-domain-handle-tutorial

Although TwiXter only allows (letters A-Z, numbers 0-9 and of underscores)
https://help.x.com/en/managing-your-account/x-username-rules

⤋ Read More
In-reply-to » @andros maybe create a separate, completely distinct feed for DM? That way, clients do not need to do anything, only those wanted to "talk in private" follow themselves, using their very special dm-only.txt feeds. šŸ˜‚

by commenting out DMs are you giving up on simplicity? See the Metadata extension holding the data inside comments, as the client doesn’t need to show it inside the timeline.

I don’t think that commenting out DMs as we are doing for metadata is giving up on simplicity (it’s a feature already), and it helps to hide unwanted DMs to clients that will take months to add it’s support to something named… an extension.

For some other extensions in https://twtxt.dev/extensions.html (for example the reply-to hash #abcdfeg or the mention @ < example http://example.org/twtxt.txt >) is not a big deal. The twt is still understandable in plain text.
For DM, it’s only interesting for you if you are the recipient, otherwise you see an scrambled message like 1234567890abcdef=. Even if you see it, you’ll need some decryption to read it. I’ve said before that DMs shouldn’t be in the same section that the timeline as it’s confusing.

So my point stands, and as I’ve said before, we are discussing it as a community, so let’s see what other maintainers add to the convo.

⤋ Read More
In-reply-to » Testing mentions, immediately followed by commas. Let's see: @prologic, this one is local, it might not break. Now, this one @ isn't local. Nor this @ one. Will they break. Let's find out!

@bender@twtxt.net I can fix and make that work in the parser too. But I’m no longer sure how to cater for the general case. It’s too much to support all punctuation whilst at the same time as other contradicting rules. For example you cannot both support . in nicknames and then expect to be able to to end a mention with a . šŸ¤¦ā€ā™‚ļø

⤋ Read More
In-reply-to » 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.

@andros@twtxt.andros.dev nothing stands still, I agree. I think current twtxt has surpassed the initial specification, while still being relatively backwards compliant/compatible but, for how long?

As for new extensions (DM, for example), they should be OK as long as those working on clients can reach an agreement on how to move forward. That has proven, though, to be a pickle in the past.

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

@bender@twtxt.net 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@twtxt.net 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@eapl.me !

⤋ Read More
In-reply-to » @david @andros The correct hash would be si4er3q. See https://twtxt.dev/exts/twt-hash.html, a timezone offset of +00:00 or -00:00 must be replaced by Z.

@movq@www.uninformativ.de @aelaraji@aelaraji.com Yes @david@collantes.us 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.

⤋ Read More
In-reply-to » šŸ’” I had this crazy idea (or is it?) last night while thinking about Twtxt and Yarn.social šŸ˜… There are two things I think that could be really useful additions to the yarnd UI/UX experience (for those that use it) and as "client" features (not spec changes). The two ideas are quite simple:

I’d have to write i up in full, but essentially looks a bit like this (contribived examples follow)…

⤋ Read More
In-reply-to » @movq i tried ngircd but couldn't figure it out T__T i left it at the web client and bouncer for now but i might toy with an IRC server another time!

@kat@yarn.girlonthemoon.xyz At the core, you need an ngircd.conf like this:

[Global]
    Name = your.irc.server.com
    Password = yourfancypassword
    Listen = 0.0.0.0
    Ports = 6667

    AdminInfo1 = Well, me.
    AdminInfo2 = Over here!
    AdminEMail = forget.it@example.invalid

[Options]
    Ident = no
    PAM = no

[SSL]
    CertFile = /etc/ssl/acme/your.irc.server.com.fullchain.pem
    KeyFile = /etc/ssl/acme/private/your.irc.server.com.key
    DHFile = /etc/ngircd/dhparam.pem
    Ports = 6669

Start it and then you can connect on port 6667. (The SSL cert/key must be managed by an external tool, probably something like certbot or acme-client.)

I’m assuming OpenBSD here. Haven’t tried it on Linux lately, let alone Docker. šŸ˜…

⤋ Read More
In-reply-to » Seem like it's a server-client thingy? šŸ¤” I much prefer tools in this case and defer the responsibility of storage to something else. I really like restic for that reason and the fact that it's pretty rock solid. I have zero complaints šŸ˜…

@prologic@twtxt.net I also thought it was a client-server thingy at first and usually it is, I guess, there’s just this workaround:

If it is not possible to install Borg on the remote host, it is still possible to use the remote host to store a repository by mounting the remote filesystem, for example, using sshfs.

⤋ Read More

jenny really isn’t well equipped to handle edits of my own twts.

For example, in 2021, this change got introduced:

https://www.uninformativ.de/git/jenny/commit/6b5b25a542c2dd46c002ec5a422137275febc5a1.html

This means that jenny will always ignore my own edits unless I also manually edit its internal ā€œjson databaseā€. Annoying.

That change was requested by a user who had the habit of deleting twts or moving them to another mailbox or something. I think that person is long gone and I might revert that change. šŸ¤”

⤋ Read More
In-reply-to » @andros maybe create a separate, completely distinct feed for DM? That way, clients do not need to do anything, only those wanted to "talk in private" follow themselves, using their very special dm-only.txt feeds. šŸ˜‚

@bender@twtxt.net 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 :)

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

my main itch with the DMs extensions is that these messages are intended to be private, not public information. That’s why other extensions make sense, but DMs are another kind of feature.
TwiXter, Mastodon, FB and some other services usually hide the DMs in another section, so they are not mixed with the public timeline.

I find the DM topic interesting, I even made an indie experiment for a centralized messaging system here https://github.com/eapl-gemugami/owl.
Although, as I’ve said a few times here, I’m not particularly interested in supporting it on microblogging, as I don’t use it that much. In the rare case I’ve used them, I don’t have to manage public and private keys, and finally none of my acquaintances use encrypted email.
Nothing personal against anyone, and although I like to debate and even fight, it’s not the case here. This proposal is the only one allowing DMs on twtxt, and if the community wants it, I’ll support it, with my personal input, of course.

A good approach I could find with a good compromise between compatibility with current clients and keeping these messages private is ā€˜hiding’ the DMs in comments. For example:
# 2025-04-13T11:02:12+02:00 !<dm-echo https://dm-echo.andros.dev/twtxt.txt> U2FsdGVkX1+QmwBNmk9Yu9jvazVRFPS2TGJRGle/BDDzFult6zCtxNhJrV0g+sx0EIKbjL2a9QpCT5C0Z2qWvw==

⤋ Read More

Fedora change aims for 99% package reproducibility
The effort to ensure that open-source software is reproducible has been gathering steam over the years, and gaining traction with major Linux distributions. Debian, for example, has been working toward reproducible builds for more than a decade; it can now produce official live CDs of the current stable release that are reproducible. Fedora started on the path much later, but it has progressed far enough that the project is now con … ⌘ Read more

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

I’m also thinking that some kind of tag might be needed to automatically hide twts from unknown extensions. For example our client doesn’t support DMs and always shows the !<nick url><encrypted_message> syntax which is meaningless.

⤋ Read More
In-reply-to » This weekend (as some of you may now) I accidently nuke this Pod's entire data volume šŸ¤¦ā€ā™‚ļø What a disastrous incident 🤣 I decided instead of trying to restore from a 4-month old backup (we'll get into why I hadn't been taking backups consistently later), that we'd start a fresh! šŸ˜… Spring clean! 🧼 -- Anyway... One of the things I realised was I was missing a very critical Safety Controls in my own ways of working... I've now rectified this...

This is an example of what I believe every SRE should master and whatever Post Incident Review (PIR) should focus on. Where did the system fail. What are the missing or incomplete Safety Controls.

⤋ Read More
In-reply-to » Hi, So i made a little MVP registry crawler tool for twtxt. It now has a basic UI to play with. It has a somewhat full history back to about 2018-ish. Plus some interesting bits that were timestamped to earlier.

yep, it looks nice! How could add my URL?
Is it following the same endpoints than https://registry.twtxt.org/swagger-ui/#/users/addUser ?

BTW, I think that the usage section has a wrong base URL or something.

For example if you enter here: https://watcher.sour.is/conv/4rx5iyq
It says to look for this URL: https://watcher.sour.is/conv/4rx5iyq/api/plain/users

Which seems to return the content from https://watcher.sour.is

⤋ Read More
In-reply-to » I have just received the royalties for the last book: 98 euros for the four-month period, about 24 euros a month on average. Not even enough for the gym membership. If you have to keep some knowledge: don't write for money, the paper (or ebook) industry is in a very bad way, the margins for the author are very small and piracy is devastating.

@prologic@twtxt.net I only buy stuff like that, for example games on GOG.COM. Or simply CDs or DVDs. (Rarely I ā€œbuyā€ a movie on some popular streaming service, fully aware that this is just ā€œrenting itā€.)

But yeah, I sadly have to agree with @bender@twtxt.net. 😢

⤋ Read More
In-reply-to » I have just received the royalties for the last book: 98 euros for the four-month period, about 24 euros a month on average. Not even enough for the gym membership. If you have to keep some knowledge: don't write for money, the paper (or ebook) industry is in a very bad way, the margins for the author are very small and piracy is devastating.

well, that leads to a long conversation.

Piracy is a difficult topic which is very personal, so I won’t say much about it.

On writing books, I’ve tried along with other digital products such as courses and videogames, and I got to confess that it has been hard for me.

If it helps, I think it all reaches our expectations on the activity and the result. If royalties is the expectation, it’s going to be slow. By 5% of royalties, for a rough example, a huge amount of sales will be required to get a decent ā€œwageā€, so I’ve understood of doing it by the side of a normal employment although it has been discouraging and a bit sad.

I have reflected about it in Spanish here: https://sembrandojuegos.substack.com/p/sobre-expectativas-al-crear-juegos

⤋ Read More
In-reply-to » Twtxt was made for nerds, by nerds. I'd like to change that. It's by nerds/hackers, for nerds/hackers and friends of these. It doesn't have to be hacky all the time, as you don't need to be a nerd to have a blog. But, for that to happen, someone has to build the tools to improve UX.

thanks for sharing @xuu@txt.sour.is!

Checking for example https://watcher.sour.is/api/plain/twt or https://registry.twtxt.org/api/plain/tweets, I don’t know whether this syntax is being used by clients or by people. Is it integrated on Yarn in any way? Genuinely asking to know more about it.

If I might throw a quick thought to those working on the registries, it would be nice to have an endpoint with a valid twtxt output (perhaps cached or dumped to a static file) which a client could point to, helping to discover it’s content in a way which is compatible with the twtxt spec.

Taking the first twt I found in https://watcher.sour.is/api/plain/twt as an example:
reddit_world_news https://feeds.twtxt.net/Reddit_World_News/twtxt.txt 2025-03-28T00:29:25Z **China bans US logs. 3 billion dollar[...])
it would be something like
TIME <@NICK URL> TWT
2025-03-28T00:29:25Z <@reddit_world_news https://feeds.twtxt.net/Reddit_World_News/twtxt.txt> **China bans US logs. 3 billion dollar[...])

That way you could watch the latest twts with your client, something similar to what we find on Mastodon: https://mastodon.online/public/local

Some support from the clients to separate these ā€˜discovery’ content, from your following timeline might be required. šŸ¤”

⤋ Read More

Playing multimedia with Dillo
What if you want to use a web browser like Dillo, which lacks JavaScript support and can’t play audio or video inside the browser? Dillo doesn’t have the capability to play audio or video directly from the browser, however it can easily offload this task to other programs. This page collects some examples of how to do watch videos and listen to audio tracks or podcasts by using an external player program. In particular we will cover mpv with yt-dlp which supports YouTube … ⌘ Read more

⤋ Read More
In-reply-to » i really wanna learn golang it looks fun and capable and i can read it kind of but every time i try it i'm immediately stuck on basic concepts like "what the fuck is a pointer" (this has been explained to me and i still don't get it). i did have types explained to me as like notes on code which makes sense a bit but i'm mostly lost on basic code concepts

@kat@yarn.girlonthemoon.xyz Pointers can be a bit tricky. I know it took me also quite some time to wrap my head around them. Let my try to explain. It’s a pretty simple, yet very powerful concept with many facets to it.

A pointer is an indirection. At a lower level, when you have some chunk of memory, you can have some actual values sitting in there, ready for direct use. A pointer, on the other hand, points to some other location where to look for the values one’s actually after. Following that pointer is also called dereferencing the pointer.

I can’t come up with a good real-world example, so this poor comparison has to do. It’s a bit like you have a book (the real value that is being pointed to) and an ISBN referencing that book (the pointer). So, instead of sending you all these many pages from that book, I could give you just a small tag containing the ISBN. With that small piece of information, you’re able to locate the book. Probably a copy of that book and that’s where this analogy falls apart.

In contrast to that flawed comparision, it’s actually the other way around. Many different pointers can point to the same value. But there are many books (values) and just one ISBN (pointer).

The pointer’s target might actually be another pointer. You typically then would follow both of them. There are no limits on how long your pointer chains can become.

One important property of pointers is that they can also point into nothingness, signalling a dead end. This is typically called a null pointer. Following such a null pointer calls for big trouble, it typically crashes your program. Hence, you must never follow any null pointer.

Pointers are important for example in linked lists, trees or graphs. Let’s look at a doubly linked list. One entry could be a triple consisting of (actual value, pointer to next entry, pointer to previous entry).

  _______________________
 /               ________\_______________
↓               ↓         |              \
+---+---+---+   +---+---+-|-+   +---+---+-|-+
| 7 | n | x |   | 23| n | p |   | 42| x | p |
+---+-|-+---+   +---+-|-+---+   +---+---+---+
      |         ↑     |         ↑
       \_______/       \_______/

The ā€œxā€ indicates a null pointer. So, the first element of the doubly linked list with value 7 does not have any reference to a previous element. The same is true for the next element pointer in the last element with value 42.

In the middle element with value 23, both pointers to the next (labeled ā€œnā€) and previous (labeled ā€œpā€) elements are pointing to the respective elements.

You can also see that the middle element is pointed to by two pointers. By the ā€œnextā€ pointer in the first element and the ā€œpreviousā€ pointer in the last element.

That’s it for now. There are heaps ;-) more things to tell about pointers. But it might help you a tiny bit.

⤋ Read More

Hi! For anyone following the Request for Comments on an improved syntax for replies and threads, I’ve made a comparative spreadsheet with the 4 proposals so far. It shows a syntax example, and top pros and cons I’ve found:
https://docs.google.com/spreadsheets/d/1KOUqJ2rNl_jZ4KBVTsR-4QmG1zAdKNo7QXJS1uogQVo/edit?gid=0#gid=0

Feel free to propose another collaborative platform (for those without a G account), and also share your comments and analysis in the spreadsheet or in Gitea.

⤋ Read More
In-reply-to » calendar.txt: Keep your calendar in a plain text file https://terokarvinen.com/2021/calendar-txt/ It's a lot of fun to have a calendar system.

@prologic@twtxt.net @andros@twtxt.andros.dev

more examples:

2020 Jan1 New Year's Day @yearly
2020 jan 3Mon Dr. Martin Luther King, Jr Day @yearly
2020 feb 3Mon President's Day @yearly
2020 may -1Mon Memorial Day @yearly
2020 jun19 Juneteenth @yearly
2020 jul1 Independence Day @yearly
2020 jul24 Pioneer Day @yearly
2020 sept 1Mon Labor Day @yearly
2020 oct 2Mon Columbus Day @yearly
2020 nov11 Veteran's Day @yearly
2020 nov 4Thur Thanksgiving Day @yearly
2020 dec25 Christmas Day @yearly

2025-01 Fri [ ] Take out Trash @weekly
2024-10-17 Thu [x] (A) Did this and that completed:2024-10-18
2025-10-18
	[ ] (A) Submit important papers
	[ ] (B) Work on +ProjectB
	- some note
2024-10-21 
	- some notes about things to remember for Monday
	[ ] Do that
[ ] Travel the stars

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

well (insert stubborn emoji here) šŸ˜›, word blog comes from weblog, and microblogging could derivate from ā€˜smaller weblog’. https://www.wikiwand.com/en/articles/Microblogging

I’d differentiate it from sharing status updates as it was done with ā€˜finger’ or even a BBS. For example, being able to reply; create new threads and sharing them on a URL is something we could expect from ā€˜Twitter’, the most popular microbloging model (citation needed)

I like to discuss it, since conversations usually are improved if we sync on what we understand for the same words.

⤋ 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

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

it’s been while since I’d stopped #window-manager hopping and just settled with #Herbstluftwm but I’m NGL, the River #Wayland compositor is starting to grow on me… I’m still not sure if it’s just me but something about it feels clean and snappy. The shortcuts in the vanilla/example configuration feel a bit clunky, but then again, it’s just me being used to the same old ones I keep adopting and replicating across WMs. I’ve got 0 energy for ricing so I’ll just roll with the vanilla config as is (maybe add in a short-cut for a launcher but that will be it).

⤋ Read More
In-reply-to » @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

looks good to me!

About alice’s hash, using SHA256, I get 96473b4f or 96473B4F for the last 8 characters. I’ll add it as an implementation example.
The idea of including it besides the follow URL is to avoid calculating it every time we load the file (assuming the client did that correctly), and helps to track replies across the file with a simple search.

Also, watching your example I’m thinking now that instead of {url=96473B4F,id=1} which is ambiguous of which URL we are referring to, it could be something like:
{reply_to=[URL_HASH]_[TWT_ID]} / {reply_to=96473B4F_1}
That way, the ā€˜full twt ID’ could be 96473B4F_1.

⤋ Read More
In-reply-to » @lyse What do you think about this? https://git.mills.io/yarnsocial/twtxt.dev/issues/14

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

⤋ Read More
In-reply-to » This document is the result of a series of discussions between Robert "Uncle Bob" Martin and John Ousterhout, held between September 2024 and February 2025. The text addresses three main topics: method length, comments, and Test Driven Development (TDD). https://github.com/johnousterhout/aposd-vs-clean-code/blob/main/README.md This is something to read and reflect on for days.

@andros@twtxt.andros.dev Just before the pandemic, we watched Uncle Bob videos once a week in the lunch break. While almost all of my old teammates agreed with his views, I partially found them to be very odd and even counterproductive.

I didn’t come across John Ousterhout or any of his work before, at least not deliberately. So, this document is my first contact.

I only finished the chapter on comments and I totally agree with John so far. This document just manifests to me how weird Bob’s view is on certain subjects.

I always disagreed with the concept of a maximum method length. Sure, generally, shorter functions are probably better, but it always depends. And I’ve certainly seen super short methods that just made the code flow even worse to follow. While ā€œone function should only do one thingā€ is a nice general rule, I’m 100% in team John with the shown examples. There are cases, where this doesn’t help readability at all. Not even close.

To me, a function always has to justify its existence. Either by reusing it at least at another place or by coming up with dedicated tests for it. But if it is just called once and there are no tests, I almost always decide against it. Personally, I don’t mind longer methods. We just recently had a discussion about that and I lost against two other workmates who are more in Uncle Bob’s camp, they refactored one medium sized method into three very short ones. Luckily, we agree on most other topics.

Lol, what!? The shorter the method, the longer the variables inside? I first thought I misread or the writeup mixed it up. I’ll always do it the other way around.

I’ve been also bitten badly by outdated comments in the past, but Bob must have worked on really terrible projects to end up with such an attitude to dislike comments. Oh well. No doubt, I’ve come across by several orders of magnitude more useless comments, in my experience (autogenerated) JavaDocs fall in the category more frequently than not. So, I know that there are different types of comments. A comment doesn’t automatically mean that it is good and justified.

But I also partially agree with Bob and John and think that a good name has a proper chance to save a comment. Though, when in doubt, I go John’s route and use a shorter name with a comment rather than use a kilometer long identifier. Writing good comments typically takes some time, sometimes much longer than writing the code. It regularly takes me several minutes. It’s a hard art.

I perhaps should read up on John’s work. He seems to be more reasonable and likeminded. :-) Let me continue to complete this document.

⤋ Read More