š„³ Finally! After nearly 4 years, yarnd v0.16.0 āSilver Sojournerā is out! š Twt Hash v2, SQLite FTS5 search, HTMX-powered UI, first-time setup wizard and literally hundreds of bug fixes š
Release notes: https://git.mills.io/yarnsocial/yarn/releases/tag/0.16.0
Upgrading is fully automatic ā the Twt Hash v2 migration re-fetches all feeds on first start, so expect the first cycle to be a bit heavier. Images on Docker Hub as prologic/yarnd:0.16.0 š
cc @kat@yarn.girlonthemoon.xyz @abucci@anthony.buc.ci @shinyoukai@yume.laidback.moe @eldersnake@we.loveprivacy.club š
The search engine @prologic@twtxt.net refers about is at https://search.twtxt.net/.
you should see the new search engine stats page where Iāve added, spark lines, and time series graphs š
@balloonfu-sen@yarn.girlonthemoon.xyz Thank you for doing this š ā Just a thought⦠It might be possible for this to be fully automated from the Twtxt Search engine / crawler? Right? š¤ It has all of the data⦠I also think it might be possible to distinguish between 1-way feedsa and āreal folksā (ya know, 2-ways feeds) š¤£
We slept in the forest. It was really great except of my mateās fucking terror dog who was barking and snarling the entire night to each and every sound. I had maybe half an hour of sleep in total. Despite that, it was pleasantly warm. Well, the night, that is. The heat was brutal during the days. Literally streams of sweat were running down on us on the way there in the evening and back in the morning.
Surprisingly, there werenāt any mozzies around at night, I would have lost all safe bets. On the way there, my mate convinced me to take a shortcut through the taller and taller growing grass. Itās been some time that somebody traveled on this track, so we had to search around a bit for the overgrown path where we could cross the mostly dried up creek. In the beginning I said that this will be a bad idea. Lo and behold, I discovered a tick on my inner upper leg the next morning. Luckily, I got it out with my tick hook on the first attempt.
@lyse@lyse.isobeef.org simplified it a little bit. Using only *bot* will bring collateral damage I want to avoid (there are, still some āgoodā bots):
@aibots {
header_regexp User-Agent (?i)(GPTBot|ChatGPT|OAI-Search|anthropic|Claude|Google-Extended|FacebookBot|CCBot|Perplexity|Applebot-Extended|cohere|Omgili|Bytespider)
}
abort @aibots
@GabesArcade@gabesarcade.com Did you by change edit or otherwise delete the Twt you replied to (2nd last in your feed) with the reply/thread id lleeypvkzbw2? That Twt was never ingested by twtxt.net (and likely the search engine) so umm hmmm threading breaks š¤£
Hello everyone ! š Behold I bring you (after many years) the launch of the Twtxt App š ā Ye, this is a Desktop and Mobile app built as a Progressive Web App (PWA) using a little framework (Swag) I put together iafter some experiments @xuu@txt.sour.is and I did in Go and HTMX and Service Workers.
The App is offline-first and supports installing to Desktop and Mobile (add to Home screen) and supports a number of publishing backends, including Yarn.socialās yarnd Pod, Github, Codeberg/Gitea, and a little tiny twtd Twtxt server (See: https://git.mills.io/yarnsocial/twtd).
Please try it out, no need for any account(s) or such, works with your existing feed(s) (as long as the publishing backends work well enough for you!). Please give me feedback! š
Also, did you know the Twtxt Search Engine is back? š
Hey folks š Today I announce the re-release of the Twtxt Search Engine now live and running and actively re-crawling and re-indexing. š Please report bugs or any useability issues to me! š #Twtxt #Search
https://rosneft.com > Drivers > Advanced search for service points. From the admin or from a hacker.
tt. But then, in the message tree, I spot another missed typo. My process is then to go to my twtxt.txt and fix it by hand. However, I still have to clean up tt's cache. This is rather tidious:
Now Iām curious how movwin deals with that. ;-)
Focus handling? I hardly remember, lol. š Did that 6 months ago and havenāt touched it since. Letās see.
The core main loop gets keyboard/mouse events from curses. At this level, the main loop only knows about exactly one widget, so it passes the event to that widget (whatever that is, doesnāt matter ā they all inherit from the Widget base class, it could be a Window, a WindowManager, or an Edit box directly).
The outermost widget is usually a WindowManager. It implements a few hotkeys of its own, like switching to another window. If none of those hotkeys match, it passes the event to the currently focused window.
Same story here: Window implements some hotkeys (like opening the menu bar). If none of those match, then ⦠the magic happens.
Each Window acts as a focus manager. It can descend into its child widget hierarchy and collect all child widgets in a depth-first search. They are collected into a flat list. Each Window then has an attribute _focus_position, which is an index into that list. Pressing Tab or Shift+Tab increases or decreases that index and that allows you to select the next/previous focusable widget in the current window.
Eventually, Window passes the input event to the currently focused widget.
Usually on initialization, the application can ask a Window object to focus a certain widget. The file selection dialog does that, for example, because the ānaturalā focus order would be to focus the Edit box at the top of the window first ā but thatās not what the user wants, the Table showing the list of files should be focused.
If no widget ever feels responsible for handling a certain input event, then thereās a global unhandled_input callback that the application can provide (same as in urwid).
I think thatās it.
Hm, thatās more complicated than I remembered, but apparently it works fine, because I completely forgot about this. š
All I did in the last few months was make new classes that inherit from Widget, like the new Table class or Edit or HexEdit or whatever, and if they want to get input events, then they must implement the methods input_key() or input_mouse().
Does this answer your question? š (I admit that I didnāt exactly understand your scenario, so I just went ahead and rambled about my implementation. š )
Every now and then, I think that I have carefully proof-read my message enough times and hit the āAdd messageā button in tt. But then, in the message tree, I spot another missed typo. My process is then to go to my twtxt.txt and fix it by hand. However, I still have to clean up ttās cache. This is rather tidious:
- Recall the
sqlitebrowser ~/.local/share/twtxt/tt2.sqlitefrom my shell history.
- Switch to the āBrowse dataā tab.
- Go to the
messagestable and wait a second or two until itās loaded.
- Sort by the
created_atcolumn twice, so that I get descending order.
- Select the first message, which is typically the one in question.
- Find the āRemove currently selected rowā button in the tool bar.
- Commit the changes.
- Close sqlitebrowser.
So, I finally implemented the removal of messages from the cache in tt. I can now hit d and confirm the removal. Bam! Should have done that ages ago!
https://lyse.isobeef.org/tmp/tt-confirm-message-removal.png
Next up is the search, I think.
So going back to the understanding of how it generated this, is quite simply the most statistically relevant search space of itās weights it has been trianed on and it has basically just produced a series of tokens, one after another that are relevant to the input, the next token and so on. Itās a trivial example I know, but it basically pattern matches itās way through itās vast search space just producing outputs based on context.
@bender@twtxt.net Well no. Some of us donāt. Let me point you at some research on the subject š Some people donāt have an inner monologue
And we have a search function now. This should cover most of the basic features, I think.
@bender@twtxt.net Hahaha! I was also very surprised to see snow. I didnāt remember that at all. It was gone by the evening again, see archive feed twtxt-2024-11.txt#2024-11-23T18:30:00+01:00. Unfortunately, neither Prologicās nor Xuuās yarnd searches yield anything. That message has probably long fallen out of the index.
@bender@twtxt.net Yeah, itās crazy!
Somehow, your link 403s here, but I just searched it. At least it has the diagonals at the lower two steps. However, the two upper platforms also suffer from the plastic covers, it appears (I cannot tell the material from the low quality images I found). Maybe it is aluminium? I think some joints use machine bolts, though (but again, not enough detail visible).
Happy ladder climbing!
My mate and I hiked some 16-18 kilometers to the Wasserberg. The 22°C sun was beating down hard on us. There were quite a bunch of clouds all around, but none of them casted the tiniest shade on us. Only in the second half we got a little bit luckier in that regard. Still, we were soaked before we even left town. Hardly any breeze.
Unfortunately, I left my camera at home and found it hidden behind the cettle in the kitchen after searching the entire house for some 15 odd minutes. However, a greenfinch paid me a visit this morning and I got it on camera. The sunset was crazy colored, too:
Using Marginalia Searchās Backlink Search ?~L~X https://thenewleafjournal.com/b/DyH
@rdlmda@rdlmda.me I never saw the point of a registry to be honest, as it defeated the point of what I believed to be a truly decentralised non-social social ecosystem. What can and does work however is a search engine and crawler. I used to run one, but I took it down, mostly because it got expensive to operate, at least the implementation I built⦠Maybe one day iāll try again with a SQLite backend.
@rdlmda@rdlmda.me Yeah, but I think the registries are very slow and unhandy. I just search for ātwtxtā in my favorite search engine. From time to time there are new feeds to follow.
Hi @c2803! You are right. But whot is the reason, that the onion site of magical.fish is not working? Why 1436.ninja/1/Port70News is not working? Why gopher://sdf-eu.org is not working? I thing, big companies or states are making troubles to gopher sites. If you like to search the web anonymously, take the onion site of me0w.net .
Yes, itās an actual chat service on Gopher. Itās a bit of a hacky implementation of the search feature.
Adding noai.duckduckgo.com as Custom Search Engine ?~L~X https://thenewleafjournal.com/b/Drp
Looks like someone loves Depth First Search.
@movq@www.uninformativ.de How about āQuongsiā? I generated the first five letters with pwgen --no-capitalize --no-numerals 5 and since that already showed up in DDG search results, I simply appended the last two, which yielded nothing on DDG and Google).
What kind of project is it? Maybe we can help you find a name or nudge you in the right direction.
Oh, thatās cute: https://movq.de/v/046fb6ee70/s.png DuckDuckGo puts a little helmet on the duck when you search for Skyrim. (Katria is a Skyrim character.)
Searching the web a bit brings up lots of threads where people hate WebP. The problem being that browsers support WebP but other programs tend to be problematic ⦠? š¤
Iām contemplating the idea of switching my activity pub instance from Gootosocial to a Pleroma one. While GTS is kinda cute (lightweight and easy to manage) of a software, the inability to fetch/scroll through peopleās past toots when visiting a profile or having access to a federated timeline and a proper search functionality ā¦etc felt like handicap for the past N months.
@prologic@twtxt.net as per #kzirx3a I managed to avoid having to use it (thereās also a thing or two wrong about its creator as well, which is more on a personal level than technical here)
@bender@twtxt.net Unfortunately, this also breaks the browser search.
Norton Browser Search Referral ?~L~X https://thenewleafjournal.com/b/DnT
aw, i guess you could iterate common mistyped commands. or zgrep the manpages for a judicious search term, that could be a fun hunt lol
@bender@twtxt.net Sounds about right.
I had a brainfart yesterday, though. For whatever reason I thought of subdomains, which are modeled with server entries in nginx. So, each could define its own access_log location. However, there are no subdomains in place! Searching around, I didnāt find any solution to give each user their own access log file.
One way would be a cronjob, aeh, systemd timer as I learned the other day, that greps the main access log and writes all user access log files with only the relevant stuff.
I used Gemini (the Google AI) twice at work today, asking about Google Workspace configuration and Google Cloud CLI usage (because we use those a lot). Youād think that itād be well-suited for those topics. It answered very confidently, yet completely wrong. Just wrong. Made-up CLI arguments, whatever. It took me a while to notice, though, because itās so convincing and, well, you implicitly and subconsciously trust the results of the Google AI when asking about Google topics, donāt you?
Will it get better over time? Maybe. But what I really want is this:
- Good, well-structured, easy-to-read, proper documentation. Google isnāt doing too bad in this regard, actually, itās just that they have so much stuff that itās hard to find what youāre looking for. Hence ā¦
- ⦠I want a good search function. Just give me a good fuzzy search for your docs. Thatās it.
I just donāt have the time or energy to constantly second-guess this stuff. Give me something reliable. Something that is designed to do the right thing, not toy around with probabilities. āAI for everythingā is just the wrong approach.
@movq@www.uninformativ.de Have we reached peak enshittification yet?
YouTube is completely broken for me for a week or more. The player doesnāt even load anymore. Trying to limit the search results to real videos doesnāt do shit, etc. Itās useless. But downloading the videos with yt-dlp still works like a dream.
I used to run office hours at Google and the number of people who came into my office absolutely convinced that there was no way to search a dataset without having the entire thing in memory for every process was too damn high.
I should work on my client again and add some new features. Like adding a new feed directly in the client and not having to go to the config first. And showing a preview of a feed before actually adding it. Also, a search would be something to add. And finally combining my User-Agent analyzer with my subscription list to spot new feeds automatically.
@prologic@twtxt.net Letās go through it one by one. Hereās a wall of text that took me over 1.5 hours to write.
The criticism of AI as untrustworthy is a problem of misapplication, not capability.This section says AI should not be treated as an authority. This is actually just what I said, except the AI phrased/framed it like it was a counter-argument.
The AI also said that users must develop āAI literacyā, again phrasing/framing it like a counter-argument. Well, that is also just what I said. I said you should treat AI output like a random blog and you should verify the sources, yadda yadda. That is āAI literacyā, isnāt it?
My text went one step further, though: I said that when you take this requirement of āAI literacyā into account, you basically end up with a fancy search engine, with extra overhead that costs time. The AI missed/ignored this in its reply.
Okay, so, the AI also said that you should use AI tools just for drafting and brainstorming. Granted, a very rough draft of something will probably be doable. But then you have to diligently verify every little detail of this draft ā okay, fine, a draft is a draft, itās fine if it contains errors. The thing is, though, that you really must do this verification. And I claim that many people will not do it, because AI outputs look sooooo convincing, they donāt feel like a draft that needs editing.
Can you, as an expert, still use an AI draft as a basis/foundation? Yeah, probably. But hereās the kicker: You did not create that draft. You were not involved in the āthought processā behind it. When you, a human being, make a draft, you often think something like: āOkay, I want to draw a picture of a landscape and thereās going to be a little house, but for now, Iāll just put in a rough sketch of the house and add the details later.ā You are aware of what you left out. When the AI did the draft, you are not aware of whatās missing ā even more so when every AI output already looks like a final product. For me, personally, this makes it much harder and slower to verify such a draft, and I mentioned this in my text.
Skill Erosion vs. Skill EvolutionYou, @prologic@twtxt.net, also mentioned this in your car tyre example.
In my text, I gave two analogies: The gym analogy and the Google Translate analogy. Your car tyre example falls in the same category, but Geminiās calculator example is different (and, again, gaslight-y, see below).
What I meant in my text: A person wants to be a programmer. To me, a programmer is a person who writes code, understands code, maintains code, writes documentation, and so on. In your example, a person who changes a car tyre would be a mechanic. Now, if you use AI to write the code and documentation for you, are you still a programmer? If you have no understanding of said code, are you a programmer? A person who does not know how to change a car tyre, is that still a mechanic?
No, youāre something else. You should not be hired as a programmer or a mechanic.
Yes, that is āskill evolutionā ā which is pretty much my point! But the AI framed it like a counter-argument. It didnāt understand my text.
(But what if thatās our future? What if all programming will look like that in some years? I claim: Itās not possible. If you donāt know how to program, then you donāt know how to read/understand code written by an AI. You are something else, but youāre not a programmer. It might be valid to be something else ā but that wasnāt my point, my point was that youāre not a bloody programmer.)
Geminiās calculator example is garbage, I think. Crunching numbers and doing mathematics (i.e., ācomplex problem-solvingā) are two different things. Just because you now have a calculator, doesnāt mean itāll free you up to do mathematical proofs or whatever.
What would have worked is this: Letās say youāre an accountant and you sum up spendings. Without a calculator, this takes a lot of time and is error prone. But when you have one, you can work faster. But once again, thereās a little gaslight-y detail: A calculator is correct. Yes, it could have ābugsā (hello Intel FDIV), but its design actually properly calculates numbers. AI, on the other hand, does not understand a thing (our current AI, that is), itās just a statistical model. So, this modified example (āaccountant with a calculatorā) would actually have to be phrased like this: Suppose thereās an accountant and you give her a magic box that spits out the correct result in, what, I donāt know, 70-90% of the time. The accountant couldnāt rely on this box now, could she? Sheād either have to double-check everything or accept possibly wrong results. And that is how I feel like when I work with AI tools.
Gemini has no idea that its calculator example doesnāt make sense. It just spits out some generic āargumentā that it picked up on some website.
3. The Technical and Legal Perspective (Scraping and Copyright)The AI makes two points here. The first one, I might actually agree with (ābad bot behavior is not the fault of AI itselfā).
The second point is, once again, gaslighting, because it is phrased/framed like a counter-argument. It implies that I said something which I didnāt. Like the AI, I said that you would have to adjust the copyright law! At the same time, the AI answer didnāt even question whether itās okay to break the current law or not. It just said ālol yeah, change the lawsā. (I wonder in what way the laws would have to be changed in the AIās āopinionā, because some of these changes could kill some business opportunities ā or the laws would have to have special AI clauses that only benefit the AI techbros. But I digress, that wasnāt part of Geminiās answer.)
tl;drExcept for one point, I donāt accept any of Geminiās ācriticismā. It didnāt pick up on lots of details, ignored arguments, and I can just instinctively tell that this thing does not understand anything it wrote (which is correct, itās just a statistical model).
And it framed everything like a counter-argument, while actually repeating what I said. Thatās gaslighting: When Alice says āthe sky is blueā and Bob replies with āwhy do you say the sky is purple?!ā
But it sure looks convincing, doesnāt it?
Never againThis took so much of my time. I wonāt do this again. š
sorry i havenāt been working on bbycll or even hanging around twtxt much at all as of late ā gf was over for a few weeks, i turned twenty years old, and have been doing extremely unnecessary things to my website

use lagrange mobile app or Kristall software at pc, than search with kennedy or TLGS Gemini ,keyword : āMaskuga Treasureā that have portal to Gemini,Gopher,nex,spartans,finger & www World,
@prologic@twtxt.net Donāt worry about it!
I also getting angry thinking how this Chat Control crap will escalate to.
Iām already thinking of countermeasures and self-hosted alternatives, while searching lists of affected apps and services to replace/drop in the worst scenario (and probably devices).
Hello everyone! š
After a long while away, Iām back on twtxt with this new feed.
Some of you might remember me as justamoment@twtxt.net, that was a test account I made for trying things out, but I ended up keeping it more than planned.
I also tried other social platforms in search of a place that felt right for me.
In the end twtxt was the one that ticked all of my boxes:
- Slow social: it act more like a feed reader and I really appreciate that thereās no flood of content that I canāt keep up with.
- No server needed: I absolutely love to have total control over my content, I tend to avoid having moving parts that might break, plus you can put your feed under version control and itās all backed up.
- Ownership: I can put my feed anywhere I want and nobody can decide if I can access it or not.
- For hackers: a single .txt file allows me to join a community, how cool is that!
This is why I decided to build my own twtxt client, one that allows you to decide how the feed is presented on your āinstanceā.
Itās still in the making but Iāll try to share a bit of it once I defined how things should work.
Coincidentally, I discovered that @itsericwoodward@itsericwoodward.com and @zvava@twtxt.net were also building a twtxt client, seems like twtxt is set to grow!
Drawn based on a quick doodle, the canine returns victorious, from the battle of Hot Topic bargain bin, as smug as can be.
Whoever will be the first to inform him, the spikes arenāt real gold and itās most likely not even leather, meaning itās not what heās really been searching the universe for, better prepare themselves, to be jumped on, bitten and shredded by claws.

search page, bookmarks page, improved thread view (that i will probably improve further), as well as a logo and a whole ui redesign. it is truly all coming togetherā¦were i to mark any items off the roadmap :p
Oh, a Capsule Note: The search wonāt work until Kennedy decides to actually crawl my site. Iām hoping it does so soon.
gemini://search.solarpunk.au/
Here are nice tools to search for news, if your newsoutlet is blocked. Web search or Port70news under newsfeeds.
About ChatGPT rotting peopleās brains, similarly could be said about search engines, and reference books. Oh, also doom scrolling, and mobile devices, and the Internet⦠:-P
i already have a breakfast, a «bollo», thats is fish with peanut wrapped in leaves, search it