@lyse@lyse.isobeef.org In my case it was a silver necklace, a hummingbird with a wing connected with the cold welding I mentioned using thin brass wires.
It made it in a goldsmithing class (I went to a private craftmanship high-school) so no phones allowed (no photos of it) and no ātake homeā of the works.
Hereās a rough sketch of it drawn by memory, the dots in the wing is where it connects to the body.

The technique is basically the same as i described, but the scale is much smaller, the whole piece was about 5-6 cm on the largest side.
The rivet was made by drilling a hole through the parts, than with a short and thicker drill you widen the hole on the surface to let the rivet settle flatter on the piece, then with a rubber hammer you hit it to flatten the head until itās snug on the hole, lock them together by doing the same on the other side.
Note that widening the hole with a thicker drill head wonāt make a difference with bigger holes, mine had holes of about 1-2 mm of diameter maximum.
Hereās a sketch of what is going on for clarity.

@zvava@twtxt.net @bender@twtxt.net At first I added it without thinking when planning the possible fields based on other UIs I was researching.
I was about to discard it but after thinking about it a bit I noticed that the services allowing to have a separated nick and display_name could unlock some good uses.
For example some added context or at-a-glance information like pronouns or statuses (like Artist [Accepting commissions] or App Name (v2.5)) while other used a more readable version of the nick (blog.domain.com became Person Name's Blog).
Of course it is absolutely optional and it can be safely ignored, but with my vision of being able to build more that a pure twtxt clients, giving it a first-class support just like the other known fields felt right to me.
@prologic@twtxt.net I checked a while a ago and there were, like, 3-5 collisions or something like that. Not that many. 𤷠I have to specifically look for them ā I donāt notice it in normal operation.
And I need to make something absolutely clear as well here. Twtxt was completely and utterly dead back in {Aug 2020](https://yarn.social/about.html) when I came across the spec and its simplicity and realised the lost opportunity. Since then weāve continued to grow a small but thriving community. The extensions weāve built over time have stood and lasted the test of time for the past ~5 years. We need not break things too badly, because what we have today and was designed years ago actually works quite well⢠(despite some flaws).
@prologic@twtxt.net I know we wonāt ever convince each other of the otherās favorite addressing scheme. :-D But I wanna address (haha) your concerns:
I donāt see any difference between the two schemes regarding link rot and migration. If the URL changes, both approaches are equally terrible as the feed URL is part of the hashed value and reference of some sort in the location-based scheme. It doesnāt matter.
The same is true for duplication and forks. Even today, the ācannonical URLā has to be chosen to build the hash. Thatās exactly the same with location-based addressing. Why would a mirror only duplicate stuff with location- but not content-based addressing? I really fail to see that. Also, who is using mirrors or relays anyway? I donāt know of any such software to be honest.
If there is a spam feed, I just unfollow it. Done. Not a concern for me at all. Not the slightest bit. And the byte verification is THE source of all broken threads when the conversation start is edited. Yes, this can be viewed as a feature, but how many times was it actually a feature and not more behaving as an anti-feature in terms of user experience?
I donāt get your argument. If the feed in question is offline, one can simply look in local caches and see if there is a message at that particular time, just like looking up a hash. Whereās the difference? Except that the lookup key is longer or compound or whatever depending on the cache format.
Even a new hashing algorithm requires work on clients etc. Itās not that you get some backwards-compatibility for free. It just cannot be backwards-compatible in my opinion, no matter which approach we take. Thatās why I believe some magic time for the switch causes the least amount of trouble. You leave the old world untouched and working.
If these are general concerns, Iām completely with you. But I donāt think that they only apply to location-based addressing. Thatās how I interpreted your message. I could be wrong. Happy to read your explanations. :-)
@prologic@twtxt.net I can see the issues mentioned, but I think some can be fixed.
The current hash relies on a
urlfield too, by specification, it will use the first# url = <URL>in the feedās metadata if present, that too can be different from the fetching source, if that field changes it would break the existing hashes too, a better solution would be to use a non-URL key like# feed_id = <UNIQUE_RANDOM_STRING>with theurlas fallback.We can prevent duplications if the reference uses that same url field too or the client ācollapseā any reference of all the urls defined in the metadata.
I agree that hashing based on content is good, but we still use the URL as part of the hashing, which is just a field in the feed, easily replicable by a bot, also noting that edits can also break the hash, for this issue an alternative solution (E.g. a private key not included in the feed) should be considered.
For offline reading the source would be downloaded already, the fetching of non followed feeds would fill the gap in the same way mentions does, maybe Iām missing some context on this one.
To prevent collisions there was a discussion on extending the hash (forgot if that was already fixed or not), but without a fallback that would break existing clients too, we should think of a parallel format that maintains current implementations unchanged, we are already backward compatible with the original that donāt use threads at all, a mention style format for that could be even more user-friendly for those clients.
We should also keep in mind that the current mention format is already location based (@<example https://example.com/twtxt.txt>) so Iām not that worried about threads working the same way.
Hope to see some other thought about this matter. š¤
@zvava@twtxt.net Not much of a known fact these days, but thereused to be a Yarn phone app (https://git.mills.io/yarnsocial/app), last version released 5 or so years ago, but it still suggests, it has to be somewhat feasable, to make another one. I donāt think anyone tried since, because the web version works well on phones, but Iām still hoping, we get a more native phone experience, one day.
Which is good, because Zone 5 is killing me! ( okay, not really but ⦠)
For some time Iāve been trying to spend a fair amount of my running or jumping time in Zone 5, the hardest. After a little research Iām learning that maybe I should be concentrating more on Zone 4 instead.
Hereās an interesting thought/angle on this topic:
gemini://gemini.conman.org/boston/2025/08/21.1
A further check showed that all the network blocks are owned by one organizationāTencent [4]. Iām seriously thinking that the CCP (Chinese Communist Party) encourage this with maybe the hope of externalizing the cost of the Great Firewall [5] to the rest of the world.
@movq@www.uninformativ.de Thanks, glad you like it, but sadly Iām not sure, if thereās still a way, for this particular project, to continue.
Reducing 38 pixels (previous smallest) to 27, inside of a 7x7 square canvas, is a result Iām really happy with. Now it seems I can only shave off single pixels and get a lot worse looking results - to the point it doesnāt even look like my mascot, to me.
There doesnāt seem to be a hard cap for drawing tiny dogs. Itās possible to arrange 5 pixels, in a way someone recognizes them, as some kind of a dog. The record for cats, is currently a single orange pixel: https://youtu.be/gzeK8NKuzmg
The only way to beat that, is either a monitor, with just a single red diode lit, inside one of its pixels, or an image file thatās broken and empty, on purpose.
@lyse@lyse.isobeef.org @kat@yarn.girlonthemoon.xyz Colorized manpages have been a thing for a very long time:

Problem is, hardly anybody knows this, because you configure this by ⦠drumroll ⦠overwriting TERMCAP entries of less in your ~/.bashrc:
export LESS_TERMCAP_md=$'\e[38;5;3m' # Bold⨠export LESS_TERMCAP_me=$'\e[0m' # End Bold
export LESS_TERMCAP_us=$'\e[4;38;5;6m' # Underline⨠export LESS_TERMCAP_ue=$'\e[0m' # End Underline
export GROFF_NO_SGR=1 # Needed since groff 1.23
i signed up for omg.lol and iām really liking it. such a cozy and fun little community with a suite of fun web things. i wish the financial barrier to entry was a bit lower though (maybe like $5 for a few months on it or something) just so i could recommend it to my broke friends more, but i totally get why itās priced the way it is (solo dev!!!)
@kat@yarn.girlonthemoon.xyz after 5 years or so with Linode, I started having littleābut annoyingāissues with them. Moved to Vultr and have been very happy with them since Ubuntu 16.04, so 9 years, and a little bit more.
@movq@www.uninformativ.de According to this screenshot, KDE still shows good old application icons: 
And GNOME used to have them, too: 
I like the looks of your window manager. Thatās using Wayland, right? The only thing on this screenshot to critique is all that wasted space of the windows not making use of the full screen!!!1 At least the file browser. 8-)
This drives me nuts when my workmates share their screens. I really donāt get it how people can work like that. You canāt even read the whole line in the IDE or log viewer with all the expanded side bars. And then thereās 200 pixels on the left and another 300 pixels on the right where the desktop wallpaper shows. Gnaa! Thereās the other extreme end when somebody shares their ultra wide screen and I just have a āregularishā 16:10 monitor and donāt see shit, because itās resized way too tiny to fit my width. Good times. :-D
Sorry for going off on a tangent here. :-) Back to your WM: It has the right mix of being subtle and still similar to motif. Probably close to the older Windowses. My memory doesnāt serve me well, but I think they actually got it fairly good in my opinion. Your purple active window title looks killer. It just fits so well. This brown one (
) gives me also classic vibes. Awww. We ran some similar brownish color scheme (donāt recall its name) on Win95 or Win98 for some time on the family computer. I remember other people visting us not liking these colors. :-D
@lyse@lyse.isobeef.org They are optional dependencies and listed as such:
$ pacman -Qi pinentry
Name : pinentry
Version : 1.3.1-5
Description : Collection of simple PIN or passphrase entry dialogs which
utilize the Assuan protocol
Optional Deps : gcr: GNOME backend [installed]
gtk3: GTK backend [installed]
qt5-x11extras: Qt5 backend [installed]
kwayland5: Qt5 backend
kguiaddons: Qt6 backend
kwindowsystem: Qt6 backend
And itās probably a good thing that theyāre optional. I wouldnāt want to have all that installed all the time.
@bender@twtxt.net I plan to trade it in within itās warranty period 𤣠It has 7yr warrants on everything, I said to the dealer, Iāll see you in 5 š¤£
ugh my TLās once again doing the thing where it only shows like 5 twts
This is it, boys and girls! The year of the Linux Desktop is this! I can smell it! :-D
For the first time, Linux has officially broken the 5% desktop market share barrier in the United States of America! Itās a huge milestone for open-source and our fantastic Linux community.
The WM_CLASS Property is used on X11 to assign rules to certain windows, e.g. āthis is a GIMP window, it should appear on workspace number 16.ā It consists of two fields, name and class.
Wayland (or rather, the XDG shell protocol ā core Wayland knows nothing about this) only has a single field called app_id.
When you run X11 programs under Wayland, you use XWayland, which is baked into most compositors. Then you have to deal with all three fields.
Some compositors map name to app_id, others map class to app_id, and even others directly expose the original name and class.
Apparently, there is no consensus.
I didnāt manage to leave the house yesterday. But when I went into the woods this evening, activity first was 10% of what it had been the day before yesterday. By the end it got a lot busier, about 50% of last time I reckon. Around 500 fireflies Iād imagine. I might have been faster than the days before. When I left the forest, I was right in the fog, that was cool.
Shortly after, I saw another lightshow. Right behind the Wasserberghaus somewhere on the Swabian Alp there was very crazy heat lightning every 5-10 seconds. That looked absolutely amazing. :-)
Saw this on Mastodon:
https://racingbunny.com/@mookie/114718466149264471
18 rules of Software Engineering
- You will regret complexity when on-call
- Stop falling in love with your own code
- Everything is a trade-off. Thereās no ābestā 3. Every line of code you write is a liability 4. Document your decisions and designs
- Everyone hates code they didnāt write
- Donāt use unnecessary dependencies
- Coding standards prevent arguments
- Write meaningful commit messages
- Donāt ever stop learning new things
- Code reviews spread knowledge
- Always build for maintainability
- Ask for help when youāre stuck
- Fix root causes, not symptoms
- Software is never completed
- Estimates are not promises
- Ship early, iterate often
- Keep. It. Simple.
Solid list, even though 14 is up for debate in my opinion: Software can be completed. You have a use case / problem, you solve that problem, done. Your software is completed now. There might still be bugs and they should be fixed ā but this doesnāt āaddā to the program. Donāt use āsoftware is never doneā as an excuse to keep adding and adding stuff to your code.
To really annoy my neighbors and everyone in a 5 mile radius, I might take my Model M and type a blogpost on the balcony. š
@prologic@twtxt.net Iām trying to call some libc functions (because the Rust stdlib does not have an equivalent for getpeername(), for example, so I donāt have a choice), so I have to do some FFI stuff and deal with raw pointers and all that, which is very gnarly in Rust ā because youāre not supposed to do this. Things like that are trivial in C or even Assembler, but I have not yet understood what Rust does under the hood. How and when does it allocate or free memory ⦠is the pointer that I get even still valid by the time I do the libc call? Stuff like that.
I hope that I eventually learn this over time ⦠but I get slapped in the face at every step. Itās very frustrating and Iām always this š¤ close to giving up (only to try again a year later).
Oh, yeah, yeah, I guess I could ājustā use some 3rd party library for this. socket2 gets mentioned a lot in this context. But I donāt want to. I literally need one getpeername() call during the lifetime of my program, I donāt even do the socket(), bind(), listen(), accept() dance, I already have a fully functional file descriptor. Using a library for that is total overkill and Iād rather do it myself. (And look at the version number: 0.5.10. The library is 6 years old but theyāre still saying: āNah, weāre not 1.0 yet, we reserve the right to make breaking changes with every new release.ā So many Rust libs are still unstable ā¦)
⦠and I could go on and on and on ⦠š¤£
@movq@www.uninformativ.de Me too š ā Speaking of which i know youāve lost a bit of āmojoā or āenergyā (so have i of late), rest assured, I want to keep the status quo here with what weāve built, keep it simple and change very little. What weāve built has worked very well for 5+ years and we have at least 3 very strong clients (maybe 4 or 5?).
Alert Sound
ā Read more
first of all, im utc-5, so currently its 3am, i would like to eat something but there is nothing in my house
first of all, im utc-5, so currently its 3am, i would like to eat something but there is nothing in my house
Ha, I just learned that deleting text in my zsh with Ctrl+U to the front or Ctrl+K to the end puts it in a buffer that can be pasted by pressing Ctrl+Y! Thatās neat. Even removing the last word with Ctrl+W moves it into this paste buffer.
https://jvns.ca/blog/2024/11/26/terminal-rules/#rule-5-vaguely-support-readline-keybindings
I guess I have to implement pasting in tt as well.
One of the nicest things about Go is the language itself, comparing Go to other popular languages in terms of the complexity to learn to be proficient in:
- Go:
25keywords (Stack Overflow); CSP-style concurrency (goroutines & channels)
- Python 2:
30keywords (TutorialsPoint); GIL-bound threads & multiprocessing (Wikipedia)
- Python 3:
35keywords (Initial Commit); GIL-bound threads,asyncio& multiprocessing (Wikipedia, DEV Community)
- Java:
50keywords (Stack Overflow); threads +java.util.concurrent(Wikipedia)
- C++:
82keywords (Stack Overflow);std::thread, atomics & futures (en.cppreference.com)
- JavaScript:
38keywords (Stack Overflow); single-threaded event loop &async/await, Web Workers (Wikipedia)
- Ruby:
42keywords (Stack Overflow); GIL-bound threads (MRI), fibers & processes (Wikipedia)
@movq@www.uninformativ.de i feel like when i read go code iām reading some algebra shit where every part is 1-5 letters long and then thereās weird symbols like := and itās just infinitely harder for me to parse and infer meaning from lol. itās such a me problem
Drafting
ā Read more
whys my feed back to showing like 5 twts
Buying a TV these days, means trying to avoid endless enshitification:
-Spyware and adware
-Shitty AI upscaling/ frame interpolation
-HW that breaks after 2 - 3 years
-One off OS, dead on arrival
-Android OS, that starts lagging after the third update
-8 buttons worth of ads, on your remote
You probably have to make some kind of a compromise. I thought that was buying from some other brand like Hyundai, but that one also felt into some of those categories and just broke, after less than 3 years of use. At this point Iāll probably go back to LG and hope their HW is still reliable and the rest manageable⦠It has AI bullshit and knowing LG, probably some spyware you have to try your best to get rid of, can buy a remote with āonlyā 2 ads on it, some web-based OS shared between all their TVs, that usually gets 4 - 5 years worth of updates and works decently enough afterwards.
At this point, Iāll probably settle for anything that doesnāt literally fall apart, not even 3 years in, like the Hyundai did.
1 RPM. This is a rather aggressive rate limit actually. This basically makes Github inaccessible and useless for basically anything unless you're logged in. You can basically kiss "pursuing" casually, anonymously goodbye.
@bender@twtxt.net 5, 4, 3, 2, 1 š¤£
@movq@www.uninformativ.de @kat@yarn.girlonthemoon.xyz @quark@ferengi.one In 2014 one person created protocol ii. Later it forked in IDEC. Why i said this? Because itās simple āfederatedā forum-like protocol where from your station fetch another every 5-10 minutes. Stations has topic-based channels like idec.talks, linux.16, haiku.os, zx.spectrum. In short itās FIDO but.. more modern? Documentation: https://github.com/idec-net/new-docs (mostly Russian, but you can use translator, also protocol already translated to english)
Pinellas County Running - 5 miles: 5.06 miles, 00:08:58 average pace, 00:45:21 duration
hell of a day at work. the run felt so light today and it was good to get outside albeit late.
#running
@movq@www.uninformativ.de Yes! There is a cause: The renewable energies.
In Spain there is a lot of dependence on renewable energies and this is a problem for maintaining the voltage in the network. Thus, a 60% loss was lost for 5 seconds. In cascade, the circuit breakers were automatically switched off.
The B-side of renewable energies. They produce electricity but not dynamic energy.
Finally I propose that we increase the Twt Hash length from 7 to 12 and use the first 12 characters of the base32 encoded blake2b hash. This will solve two problems, the fact that all hashes today either end in q or a (oops) š
And increasing the Twt Hash size will ensure that we never run into the chance of collision for ions to come. Chances of a 50% collision with 64 bits / 12 characters is roughly ~12.44B Twts. That ought to be enough! ā I also propose that we modify all our clients and make this change from the 1st July 2025, which will be Yarn.socialās 5th birthday and 5 years since I started this whole project and endeavour! š± #Twtxt #Update
9front āCLAUSE 15 COMMON ELEMENTS OF MAUS AND STAR TYPEā released
Few things in life make me happier than a new 9front release. This new release, 9front āCLAUSE 15 COMMON ELEMENTS OF MAUS AND STAR TYPEā, comes with a variety of fixes and new features, such as temperature sensor support for Ryzen processors, a new Intel i225 2.5 GbE driver, a number of low-level kernel improvements, and so, so many more small fixes and changes. If you use 9front, you already know all o ⦠ā Read more
Pinellas County - 5 miles: 5.00 miles, 00:08:56 average pace, 00:44:37 duration
no issues with the legs. the sun brought my HR up a bit i think but it was a good session nonetheless.
#running
5 miles: 5.36 miles, 00:09:15 average pace, 00:49:34 duration
left leg was tight as hell and almost painful. taking it slow to test it out.
#running #treadmill
There are 5 of such āTwtersā on this pod that have periods in their nick š¢
sqlite> select count(distinct(nick)) from twters where nick like '%.%';
count(distinct(nick)) = 5
sqlite> select distinct(nick) from twters where nick like '%.%';
nick = @marado@ciberlandia.pt
nick = eapl.me
nick = eapl.mx
nick = grumpygordie.great-site.net
nick = @chyrp.doesnm.cc
Fantastic game! Find 5 dates by looking at 5 photos.
https://whichyr.com/
Pinellas County - 5 miles: 5.00 miles, 00:08:21 average pace, 00:41:46 duration
Running - 5 miles: 5.50 miles, 00:08:15 average pace, 00:45:23 duration
got a bit carried away with the music
#running #treadmill
Pinellas County - 5 miles: 5.02 miles, 00:08:36 average pace, 00:43:07 duration
amazeballs
#running
Happy 1st Twtxt~iversary to me ⦠I guess. It feels like it was 5 years since my first twt š