@bender Off you go to the magpie hunt! We wanna see Florida pies!
I learned that I don't know hardly anything and there is heaps more to explore. Tomorrow, I will do the same in Go and see how that feels.
https://festa2025.softwarelivre.eu/streaming/

Message-ID
s.
You used the rubber hammer to fold the metal, not to set the rivets, right? :-? I glued cork on my wooden mallet some time ago. This worked quite good for bending. But rubber might be even better as it is a tad softer. I will try this next time, I think I have one deep down in a drawer somewhere.
HEAD
requests, but regular GET
s with If-Modified-Since
request headers if possible: https://git.mills.io/yarnsocial/yarn/src/branch/main/internal/fetcher.go#L270
banner
field when i started working on bbycll too (though i still need to implement avatar uploads themselves first)
also what would be the cases where a feed would be fetched more than every five minutes? :o
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.
I suggested it because I did it in the past, but never used it on bigger works.
In my case I did it exclusively on really small projects and used a thin rubber head hammer to prevent deforming the metal.
An intern practicing with
turtle
had an error when launching it the first time because it was missing tkinter
which it use internally.
With the pliers wrench again, I was able to also crush down the chopped off 3mm copper nail and form a second head. That was surprisingly easy. Now, I need to figure out how to efficiently make a head on the remaining copper nail shaft, so that I can use this again.
Both are rock solid, there's absolutely no movement at all between the two sheet metal cutoffs.
https://lyse.isobeef.org/tmp/nietenexperiment/
python3-tk
and a bunch more packages with extensions.
python3 -m tkinter
a try, but this module doesn't exist. I was always under the wrong impression that Tkinter is bundled with Python.
#SoftwareFreedomDay




grep twtxt.net www/logs/twtxt.log | cut -d ' ' -f1 | tail -n 20
2025-10-04T07:00:45+02:00
2025-10-04T07:10:26+02:00
2025-10-04T07:22:43+02:00
2025-10-04T07:30:45+02:00
2025-10-04T07:40:48+02:00
2025-10-04T07:52:59+02:00
2025-10-04T08:00:07+02:00
2025-10-04T08:13:33+02:00
2025-10-04T08:23:13+02:00
2025-10-04T08:31:22+02:00
2025-10-04T08:41:29+02:00
2025-10-04T08:53:25+02:00
2025-10-04T09:03:31+02:00
2025-10-04T09:11:42+02:00
2025-10-04T09:23:11+02:00
2025-10-04T09:29:49+02:00
2025-10-04T09:36:17+02:00
2025-10-04T09:46:33+02:00
2025-10-04T09:58:40+02:00
2025-10-04T10:06:54+02:00
I suspect that the timing was just right. Or wrong, depending on how you're looking at it. ;-)
https://www.sescsp.org.br/programacao/grupo-de-estudos-em-python-primeiros-passos/
#SescSP #SãoPaulo
Well, OK... why do I want an holopin account, anyway? Let me just delete my account, and get done with it. Profile, Account settings, Deleting personal data... "To request account deletion, please email support@holopin.io." WTF, seriously? It's 2025!
Mail sent.
Não podes ir todos os dias? Não tem mal, algumas das pistas estão a ser transmitidas online, em https://festa2025.softwarelivre.eu/streaming/
#FSL25 #SFD2025
[EN] Some of the talks (especially in the Drupal track) are in English, so you might interest to join us, from today till Sunday, either physically (Porto, Portugal) or following the streaming!
https://masto.pt/@FestaSoftwareLivre/115309542563016056

banner
would) for clients having no knowledge of it.
display_name
will be redundant, and add to the "busy" factor. That is, the opposite of simplicity.
I know about VS Codium... also, I'm struggling to move my stuff out of GitHub.
display_name
is worthwhile, since nick
is functionally a display name
But you can create and register your own conversion functions too!
https://py5coding.org/integrations/custom_integrations.html
> Aachen has been officially certified as "Bad Aachen", but for alphabetical reasons usually declines to use the prefix
>
> — https://en.wikipedia.org/wiki/List_of_spa_towns_in_Germany#A
That made me chuckle.
Sorry, this pun only works in German, where "Bad" means spa and is used as prefix for spa towns.
Relevant film: https://www.youtube.com/watch?v=YYNbSuMLZZg
My hardware collection also includes a few brass-like looking screws that I could repurpose into rivets. But I reckon I have to upgrade my burner first. I'm not a metal worker by any means, so I could be totally wrong, but I imagine that some heat is necessary to loosen the work-hardening effect when beating on them. I will do some experiments on Saturday and report back.
I have a friend that might lock himself out of his home if there's a power outage while I keep removing apps and devices from my daily lives instead.
I recently switched from all the todo apps I used to sticky notes on my monitors and a pocket notebook for sketching and quick notes.
It reminds me of the monsters in Heart of Darkness on PSX (just replayed the other day).
https://www.youtube.com/shorts/ZnGOpT5NKxc
https://www.youtube.com/watch?v=zL831kQUbEo

I think it's finally shaping a bit better now, but... ☝️
As I'm trying to put all the parts together, I decided to build multiple parallel UIs, to ensure I don't accidentally create a structure that is more rigid than planned.
I already decided on a UI that I would want to use for myself, it would be inspired by moshidon, misskey and some other "social feeds" mock-ups I found on dribbble.
I also plan on building a raw HTML version (for anyone wanting to do a full DIY client).
I would love to get any suggestions of what you would like to see (and possibly use) as a client, by sharing a link, app/website name or even a sketch made by you on paper.
I think I'll pick a third and maybe a fourth design to build together with the two already mentioned.
For reference, the screens I think of providing are (some might be optional or conditionally/manually hidable):
- Global / personal timeline screen
- Profile screen (with timeline)
- Thread screen
- Notifications screen or popup (both valid)
- DM list & chat screens (still planning, might come later)
- Settings screen (it'll probably be a hard coded form, but better mention it)
- Publish / edit post screen or popup (still analysing some use cases, as some "engines" might not have direct publishing support)
I also plan on adding two optional metadata fields:
-
display_name
: To show a human readable alternative for a nick, it fallback to nick
if not defined-
banner
: Using the same format as avatar
but the image expected is wider, inspired by other socials aroundI also plan on supporting any metadata provided, including a dynamically parsable regex rule format for those extra fields, this should allow anyone to build new clients that don't limit themselves to just the social aspect of twtxt, hoping to see unique ways of using twtxt! 🤞
The client must reference both properly or it would miss posts, including both this way is a bit pointless if you can't use the hash or url separately.
Being a highly likely a breaking change anyway I think @zvava proposal looks much better.
#<https://example.com/tw.txt#yyyy-mm-ddThh:mm:ssZ>
is foolproof)
@<...>
being mentions

18:16 <aelaraji> quark 🙏 much appreciated but it won't be necessary, since there isn't much to miss out on in most of where I hang out, so I could just disconnect and spare everyone else the noise
18:17 *** aelaraji (aelaraji@776014f5a3edd32f1ed19658b7b85c8c655945b0feacaedd92fe60e61a3c0ae2) has quit (/ME goes "yeeeeet..!")
18:18 <quark> No noise for me.
18:18 <quark> It’s all good.
18:18 <quark> What would IRC be without on/offs?
18:19 <quark> Preeeety boring!
18:19 <quark> Ah, he was gone.
18:19 <quark> Well, I will twtxt this to him. LOL.
url
to be used for hashing. No matter if it points to a different feed or whatever. Just unsubscribe from malicious feeds and you're done.Since the first
url
is used for hashing, it must never change. Otherwise, it will break threading, as you already noticed. If your feed moves and you wanna keep the old messages in the same new feed, you still have to point to the old url
location and keep that forever. But you can add more url
s. As I said several times in the past, in hindsight, using the first url
was a big mistake. It would have been much better, if the last encountered url
were used for hashing onwards. This way, feed moves would be relatively straightforward. However, that ship has sailed. Luckily, feeds typically don't relocate.
(#abcdefghijkl https://example.com/tw.txt#:~:text=2025-10-01T10:28:00Z)
, because it can be simply hacked in to clients currently on hashv1 and provides an off-ramp to location-based addressing (though i still think the format should be changed to smth like #<abc... http://example.com/...>
so it's cleaner once we finally drop hashes)
Handling it via the pod might work but I think it's not the best approach, external feeds and clients don't usually use a pod api but their own implementation, so any workaround won't work there.
That's why my proposals addressed those issues:
- the idea of using a "key" instead of the
url
(with the url as a fallback), the key could even be a public key so it can be used verifieable in crypto functions- using the timestamp to prevent content changes to break threads (plus being simpler to implement)
- using an explicit thread reference with an alternative subject format (like
[#THREAD_ID] Hello world
and replies with (#REPLY_ID) Ahoy
) so the content can change without affecting the thread reference, and anyone can use their own schemes freely