nick
s? i remember reading somewhere whitespace should not be allowed, but i don't see it in the spec on twtxt.dev ā in fact, are there any other resources on twtxt extensions outside of twtxt.dev?
@zvava@twtxt.net Good question. This is the spec, I think:
https://twtxt.dev/exts/metadata.html#nick
It doesnāt say much. š¤
In the wild, Iāve only seen ātraditionalā nick names, i.e. ASCII 0x21 thru 0x7E.
My client removes anything but r'[a-zA-Z0-9]'
from nick names.
at first i dismissed the idea of likes on twtxt as not sensibleā¦like at all ā then i considered they could just be published in a metadata field (though that field could get really unruly after a while)
retwts are plausible, as āRE: https://example.com/twtxt.txt#abcdefg
ā, the hash could even be the original timestamp from the feed to make it human readable/writable, though im extremely wary of clogging up timelines
i thought quote twts could be done extremely sensibly, by interpreting a mention+hash at the end of the twt differently to when placed at the beginning ā but the twt subject extension requires it be at the beginning, so the clean fallback to a normal reply i originally imagined is out of the question ā it could still be possible (reusing the retwt format, just like twitter!) but iām not convinced itās worth it at that point
is any of this in the spirit of twtxt? no, not in the slightest, lmao
@zvava@twtxt.net I reckon thereās currently nobody working on v2. Which timezone are you in? Just post your questions here or head over to #yarn.social at libera.chat for a more realtime conversation via IRC.
is there someone (ideally not in the opposite timezone to me) whoād be willing to let me bother them with technical questions abt twtxtv2 and/or yarnās inner workings? :3
Is that really necessary? How hard is it to make a 32-bit build? š¤ Honest question. https://blog.mozilla.org/futurereleases/2025/09/05/firefox-32-bit-linux-support-to-end-in-2026/
@prologic@twtxt.net Iām not smart enough to answer that question. š Certainly feels like unregulated capitalism. Governments being too slow and/or unwilling to intervene ⦠Itās a mess.
@prologic@twtxt.net Hmm, good question. I havenāt checked the market, I got mine from someone I know. But to be honest, Iād suspect that buying a used one is actually your best shot, because there is virtually no market for these devices anymore, meaning new ones are very, very expensive. š«¤
FWIW, I have an OKI Microline 3390eco. Good thing is, you can still buy new cartridges for it.
If you want to buy a new device, check if it supports the āESC/Pā standard. Thatās very widely supported.
/short/
if it's of this useless kind. Never thought that they ever actually will improve their Atom feeds. Thank you, much appreciated!
@kat@yarn.girlonthemoon.xyz @movq@www.uninformativ.de Sorry, I neither finished it nor in time. :-( Thatās as good as itās gonna get for the moment: https://git.isobeef.org/lyse/gelbariab/-/tree/master/rss-proxys?ref_type=heads
The README should hopefully provide a crude introduction. The example configuration file is documented fairly well, I believe (but maybe not). You probably still have to consult and maybe also modify the source code to fit your needs.
Let me know if you run into issues, have questions, wishes etc.
Thanks @bender@twtxt.net! Yeah, so super cute. I couldnāt pet them, though. Despite very curious, they were also very restless.
I persuaded my dad to check out the fireflies with me tonight. He only wanted to go for a short trip, so we came just across a couple hundred of them. Otherwise, the thousands mark would have been exceeded in no time. He was super glad I talked him into that. :-)
It was also my first time to see them over the meadows. Those numbers donāt compare to the ones inside the forest, no question, but we probably saw 60 or so. Havenāt come across them there before, I only heard and read about that.
Note to future-Lyse next year: Leaving at 21:45 seems like a good time. We left earlier and had to wait just a few more minutes for them to come out in masses.
Too bad itās impossible to share photos or videos. My camera isnāt made for that at all, not even close.
Theyāre all talks, not real hands-on trainings like you did.
I love listening to good, well-structured talks. Problem is, not everybody is a good speaker and many screw it up. š„“ Iām certainly not a great speaker, which is why I gravitate more towards āworkshopsā, in the hopes that people ask questions and discussions arise. Doesnāt always work out. 𤣠At the very least, I almost always have some other person connect to the projector/beamer/screenshare and then they do the stuff ā this avoids me being wwwwaaaaaaaaayyyy too fast.
We are usually drowned in stress and tight deadlines, hence events like today are super rare ⦠We used to do it more often until ~10 years ago.
Once a year the security guys organize a really great hacking event, though.
Oh dear, Iād love to participate in that. 𤯠That sounds like a lot of fun. (Why donāt we do this?!)
@bender@twtxt.net Both Gopher and Mastodon are a way for me to ābabbleā. š I basically shut down Gopher in favor of Mastodon/Fedi last year. But the Fediverse doesnāt really work for me. Itās too focused on people (I prefer topics) and I dislike the addictive nature of likes and boosts (Iām not disciplined enough to ignore them). Self-hosting some Fedi thing is also out of the question (the minimalistic daemons donāt really support following hashtags, which is a must-have for me).
Iāll probably keep reading Fedi stuff, I just wonāt post that much, I think.
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:
25
keywords (Stack Overflow); CSP-style concurrency (goroutines & channels)
- Python 2:
30
keywords (TutorialsPoint); GIL-bound threads & multiprocessing (Wikipedia)
- Python 3:
35
keywords (Initial Commit); GIL-bound threads,asyncio
& multiprocessing (Wikipedia, DEV Community)
- Java:
50
keywords (Stack Overflow); threads +java.util.concurrent
(Wikipedia)
- C++:
82
keywords (Stack Overflow);std::thread
, atomics & futures (en.cppreference.com)
- JavaScript:
38
keywords (Stack Overflow); single-threaded event loop &async/await
, Web Workers (Wikipedia)
- Ruby:
42
keywords (Stack Overflow); GIL-bound threads (MRI), fibers & processes (Wikipedia)
@kat@yarn.girlonthemoon.xyz I only listened to you while going through my photos, so I did not pay very close attention. :-)
Since you have a proper server ā haha, not just one ā and hence are not limited, I suggest you learn a real programming language and donāt waste your time with this PHP mess. It might have improved a wee bit since I was a kid, but it felt like some hacked together shit. The defaults also were questionable at best, it was easier to hold it wrong than right. This stands testament to bad design and is especially terrible from a security point of view.
Youāre right, programming is like any other craft. You only truly learn by actually doing it. And this just takes time. Very long time to master it. Or as close to as it gets. The more you know, the more you realize what else you donāt know (yet). Itās a never ending process. So, take it easy, donāt get discouraged, happy hacking and enjoy the endeavor! :-)
Nobody want to be a shitty programmer. The question is: Do you do anything not to not be one?
Reading blogs or social media and watching YouTube videos is fun. After them, your code may be a little better, of course. But you need a lot. You need to study! Read good books and study the code of other programmers, for example. Maybe work with a new language, architectures and paradigms. You need break the routine.
If you know Object-oriented programming, you learn functional programming.
If you know Model-View-Controller, you learn Model-View-ViewModel.
If you donāt know anything about architectures, you learn Clean Architecture, Hexagonal Architecture, etc.
If you know Python, you learn Ruby or Go.
If you know Clojure or Lisp⦠you donāt need to learn anything else. You are already a good programmer. Just kidding. You can learn Elixir or Scala.
Be a good programmer my friend.
3rvya6q
and your feed, but your feed certainly does not include that particular twt (it comes from my feed).
@movq@www.uninformativ.de Oooooohhhhhh, I see. Hmmmm.
To answer your question: Ideally, you would have replied directly to my reply. :-) The flat conversation model always felt unnatural to me. I just yielded to the communityās way of doing it.
git checkout main && git pull && make build
. Few bug fixes š
@prologic@twtxt.net done! hey i got a question, you got any clue why my feeds arenāt updating? maybe it has to do with the new cache flag but i messed with that a bit and didnāt notice a difference. basically itās like i have to manually restart yarnd
to see new posts itās really weird lol
git pull
on one of my repos ā once every two minutes. This is a very pointless endeavour. I push new code a couple of times per month.
@movq@www.uninformativ.de You better push new code sooner!!
As @bender@twtxt.net says, that sounds like a bot. Iād just block the IP address, hoping it doesnāt change all the time. But then you know for sure that itās the AI fuckwits.
Also, the devil in me thinks itās funny to swap out the repo in question for something entirely different. :-D
Je voudrais synchroniser 2 disques : lāun contient des musiques au format .opus, il faut les convertir sur le second disque au format mp3. Jāutilise dĆ©jĆ beets pour importer les musiques sur le premier disque. Comment vous feriez Ƨa? Merci! #question
@lyse@lyse.isobeef.org oh wow! That would be something I would print, frame, and hang somewhere very visible, with the image in question in it, of course. Soooo hot!
Where did the false āequal transit-timeā explanation of lift originate from?
Comments ā Read more
@andros@twtxt.andros.dev Good question, besides that, is there any place where all of them get listed?
I only know these ones:
āHereās what we do know: After their meeting ended and Vice President Vance left the room, the pope was still alive. We can deduce that he was alive, because he was heard asking an assistant, āHo appena incontrato il volto del diavolo?ā which roughly translates to, āHave I just encountered the face of the devil?ā Itās a very common question that has been asked in many languages after encounters with JD Vance.ā
I couldnāt help but chuckling a bit while reading.
@bender@twtxt.net This story just reminds me of the couple of times weāve paid for things in cash š° š² and the stupid banks with the ridiculous āscam alert policyā ask you all kind of dumb ass questions about what you need the cash for š¤¦āāļø One of these days I need an excuse to buy something that costs a few $k just so I can answer when asked, āwhat do you need the cash for?ā to which my response will be ādrugs and hookers of course!ā š¤£
āImmediate red flagsā: questions raised over āexpertā much quoted in UK press
Comments ā Read more
@movq@www.uninformativ.de That is a good question, Iāve been on v0.17.3 for some time. In the past there has been one scheme update that I remember and the there was no issue. Maybe this next week I will try out v0.18 and post back.
I really donāt mess with it being on a cron so tend to forget until I need it :-)
āI bought a Macā
Yep. I regret to inform you all that, as of January 2025, I am a Mac user: I bought a Mac. I have betrayed the penguin. So, how did such an icon of early 2000s Apple fall into my grubby hands? Well, it all started with the Wii U. Iām not joking. ā« Loganius Thatās one heck of an excuse to get a PowerPC G4 ā needing to do Linux kvm hacking to fix a bug. While getting the PowerMac G4 they bought all set up and working properly for development purposes, someone else fixed the bug in question in the mean ⦠ā Read more
There are now two (recentish) quotes I really like these days:
The smartest person in the room is not the one with all the answersāitās the one whoās brave enough to ask the dumb questions
and
The kindest person in the room is often the smartest
@prologic@twtxt.net is that a rhetorical question? :-D
How big is VMS?
This question was asked during my Boot Camp presentation last fall in Boston, and over the past 35 years dozens of times people have asked, how big is VMS? That translates into āhow many lines of code are in VMSā? I thought it was time to at least make a stab at pursuing some insight into the answer. I wrote some command procedures to count the number of source lines in .B32, .B64, .C, .MAR, .M64, and .S files. Not counted are blank lines and lines beginning with the standard comment characters and m ⦠ā Read more
A hike to the highest mountain in the Odenwald, the Katzenbuckel, lit. cat hillock. It was very windy and the sun very rarely showed its face, so it was quite chilly. Nice scenery, nevertheless. Surprisingly, this ski-jumping hill is still in operation. Iāve never expected this in a hundred years, judging by its state. https://lyse.isobeef.org/katzenbuckel-2025-03-29/
@bender@twtxt.net I taught the whole ecosystem š
@prologic@twtxt.net @eapl.me@eapl.me The question I was asked the most was: How do I discover people?
Someone came up with a fantastic idea, instead of adding the new twt at the end of the feed, do it at the beginning. So you can paginate by cutting the request every few lines.
Rock Identification
ā Read more
You can find the #twtxt-el channel in Libera IRC to talk about the twtxt.el client, I will keep my connection open so you can ask me questions. Thank you!
Google, DuckDuckGo massively expand āAIā search results
Clearly, online search isnāt bad enough yet, so Google is intensifying its efforts to continue speedrunning the downfall of Google Search. Theyāve announced theyāre going to show even more āAIā-generated answers in Search results, to more people. Today, weāre sharing that weāve launched Gemini 2.0 for AI Overviews in the U.S. to help with harder questions, starting with coding, advanced math and multimodal queries, with mor ⦠ā Read more
@prologic@twtxt.net @david@collantes.us Good question, was this on live TV? I think it was? š¤
Mozilla deletes promise not to sell Firefox usersā data
The hits just keep on coming. Mozilla not only changed its Privacy Notice and introduced a Terms of Use for Firefox for the first time with some pretty onerous terms, they also removed a rather specific question and answer pair from their page with frequently asked questions about Firefox, as discovered by David Gerard. The following question and answer were removed: Does Firefox sell your personal data? Nope. Never have, ⦠ā Read more
Question to the twtxt veterans, are we experiencing an explosion of clients or is this a regular occurrence?
Mozilla is going to collect a lot more data from Firefox users
I guess my praise for Mozillaās and Firefoxā continued support for Manifest v2 had to be balanced out by Mozilla doing something stupid. Mozilla just published Terms of Use for Firefox for the first time, as well as an updated Privacy Notice, that come into effect immediately and include some questionable terms. The Terms of Use state: When you upload or input information through Firefox, you hereby grant u ⦠ā Read more
Microsoft is paywalling features in Notepad and Paint
Thereās some bad news for Windows users who want to use all of the built-in features of the operating system and its integrated apps. Going forward, Microsoft is restricting features in two iconic apps, which youāll need to unlock with a paid subscription. The two apps in question? Notepad and Paint. Windows Insiders were previously able to use these app features free of charge. However, Microsoft is now making it necessary ⦠ā Read more
echo "Lorem ipsum" | openssl enc -aes-256-cbc -pbkdf2 -iter 100000 -out message.enc -pass file:shared_key.bin
will take the input string from echo
to openssl
. It then will
trying to implement it quickly, I get the same questions than you
# https://www.php.net/manual/en/function.openssl-pbkdf2.php
$password = $sharedKey;
$salt = openssl_random_pseudo_bytes(16); # What's the salt length ?
$keyLength = 20; # What's the key length here ?
$iterations = 100000;
$generatedKey = openssl_pbkdf2($password, $salt, $keyLength, $iterations, 'sha256');
echo bin2hex($generatedKey)."\n";
echo base64_encode($generatedKey)."\n";
$iv = openssl_random_pseudo_bytes(16); // AES-256-CBC requires 16-byte IV
$cipherText = openssl_encrypt($message, 'aes-256-cbc', $generatedKey, OPENSSL_RAW_DATA, $iv);
return base64_encode($iv . $cipherText);
@arne@uplegger.eu Hi! I love that youāre implementing it! Maybe, when weāre both done, we could test the clients by communicating both.
I donāt think Iām going to be able to help you much, my knowledge of OpenSSL and PHP is not as high as Iād like it to be.
Maybe the OpenSSL version uses SHA-1 by default in PHP. Or that the IV is derived together with the key (not generated separately). But Iām not able to answer your questions, sorry.
Iām invoking the commands directly, without any libraries in between. Maybe that would help you?
@arne@uplegger.eu Well, just for my understanding. The command:
echo "Lorem ipsum" | openssl enc -aes-256-cbc -pbkdf2 -iter 100000 -out message.enc -pass file:shared_key.bin
will take the input string from echo
to openssl
. It then will
- use the content of
shared_key.bin
as password
- use
PBKDF2
with an iteration of 100000 to generate a encryption key from the given password (shared_key.bin
)
- use the
PBKDF2
generated key for anaes-256-cbc
encryption
The final result is encrypted data with the prepended salt (which was generated by runtime), e.g.: Salted__q�;��-�T���"h%��5�� ...
.
With a dummy script I now can generate a valide shared key within PHP āopenssl_pkey_derive()ā - identical to OpenSSL.
I also can en-/decrypt salted data within my script, but not with OpenSSL. There are several parameters of PBKDF2
unknown to me.
Question:
- Is the salt, used by
aes-256-cbc
andPBKDF2
the same, prepended in the encrypted data?
- Witch algorithm/cipher is used within
PBKDF2
: sha1, sha256, �
- What is the desired key length of
PBKDF2
(https://www.php.net/manual/en/function.openssl-pbkdf2.php)?
To be continued ā¦
Something interesting to think about for twtxt
, the microblogging for hackers and friendsā¦
The biggest challenge of ActivityPub is that itās too technical to easily explain to regular people. Nobody is interested in a jargon-laden diatribe about servers and federation. When simple questions have overly complex answers, people tend to switch off.
https://activitypub.ghost.org/your-thoughts-on-onboarding/
@prologic@twtxt.net Of course you donāt notice it when yarnd only shows at most the last n messages of a feed. As an example, check out mckinleyās message from 2023-01-09T22:42:37Z. It has ā[Scheduled][Scheduled][Scheduled]ā⦠in it. This text in square brackets is repeated numerous times. If you search his feed for closing square bracket followed by an opening square bracket (][
) you will find a bunch more of these. It goes without question he never typed that in his feed. My client saves each twt hash Iāve explicitly marked read. A few days ago, I got plenty of apparently years old, yet suddenly unread messages. Each and every single one of them containing this repeated bracketed text thing. The only conclusion is that something messed up the feed again.
@<url>
. Submitting this writes @<domain url>
instead of @<nick url>
in the feed.
While I now have a somewhat working fix for it in yarnd (https://git.mills.io/yarnsocial/yarn/pulls/1232), I also have the feeling that I should fix literal formatting in lextwt as well. This also uncovered more bugs I believe: https://git.mills.io/yarnsocial/go-lextwt/pulls/28
But then there is also the question why the textarea is populated with @<url>
in the first place rather than @<nick url>
or yarndās own @nick@domain
/@nick
syntax. It indeed has to do something with whether I follow the mentioned feed or not.
Anyway, something to investigate for future Lyse or maybe @prologic@twtxt.net and/or @xuu@txt.sour.is. Gānight!