@prologic@twtxt.net help your live posting is like environmental storytelling
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
The 32bit RISC OS needs to be ported to 64bit to survive, seeks help
RISC OS, the operating system from the United Kingdom originally designed to run on Acorn Computerās Archimedes computers ā the first ARM computers ā is still actively developed today. Especially since the introduction of the Raspberry Pi, new life was breathed into this ageing operating system, and it has gained quite a bit of steady momentum ever since, with tons of small updates, applications, ⦠ā Read more
Microsoft releases Windows 11 roadmap tool to help make sense of Windows 11ās development
Iāve complained about the utter inscrutability of the Windows release process for a long time, with Microsoft seemingly using channels, build numbers, code names, date-based version numbers, and so on interchangeably, making it incredibly hard to keep track of what is being released when. It turns out even Microsoft itself started losing track, because it ⦠ā Read more
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. š¤
somehow I forgot that existed.
Perhaps it was its mention of being a demo implementation here:
https://twtxt.readthedocs.io/en/latest/user/registry.html#registry
So I though it wasnāt really active.
Anyway, I think thatās a good idea.
Is there something similar available on Yarn? Sorry for for asking if that was mentioned recently.
I think that the clients may help you to submit your URL to these directories, and also to get a view of the twts in them.
thanks andros!
instead of adding the new twt at the end of the feed, do it at the beginning
The PHP client did that originally, although I didnāt see a real benefit if you use⦠a client.
It could help if you read the .txt file through a browser or something. Also, not many clients are prepared to cut the request, and you canāt rely on the file being organized that way, so finally we dropped that feature.
@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.
also Iāve made a draft of a voting page to receive preferences on each proposal
https://eapl.me/rfc0001/
Help me to play with it a bit and report any vulnerability or bug. Also any idea is welcome.
@movq@www.uninformativ.de me being the one jobless bitch on here is not helping my case LOL
Notes from setting up GlobalTalk using QEMU on Ubuntu
I signed up for GlobalTalk in 2024, but never found the time to get a machine set up. Fast-forward to MARCHintosh 2025 and I wasnāt going to let another year go by. This is a series of notes from my experience getting System 7.6 up and running on QEMU 68k on Ubuntu. Hopefully this will help others that might be hitting a roadblock. I certainly hit several! ā« Cale Mooth A short and to-the-point guide for those of us who want ⦠ā Read more
North Korea reveals new nuclear-powered submarine + 1 more story
Russia reclaims territory with help from North Korea; North Korea unveils new nuclear submarine. ā Read more
Made OāMeter helps you easily and quickly avoid American products
With the United States having started an incredibly dumb and destructive trade war with Canada, Mexico, and most likely soon the European Union, thereās quite a few people who want to avoid American products. With how interconnected the global production chain and corporate ownership structures are, itās often difficult to determine where products actually come from. Luckily, technology can help. There ⦠ā Read more
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
C++ creator calls for help to defend programming language from āserious attacksā
Bjarne Stroustrup, creator of C++, has issued a call for the C++ community to defend the programming language, which has been shunned by cybersecurity agencies and technical experts in recent years for its memory safety shortcomings. C and C++ are built around manual memory management, which can result in memory safety errors, such as out of bounds reads and writes, though bo ⦠ā Read more
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
.
To me it appeared that the failed attempts to ban NPD in the past actually helped them gain more supporters.
What makes AfD stronger for sure is just going ālol nah weāre not even going to tryā:
https://www.tagesschau.de/inland/innenpolitik/afd-verbot-antrag-100.html
If they donāt try, then it means that āit canāt be that bad, itās just a normal partyā, right? š”
Amd of course, TDD! I tried that, but it doesnāt work all that great for me in its strict form. I have the feeling that coming up with a single new failing test, making it pass, maybe some refactoring, rinse and repeat wastes significantly more time than doing it in ā what they call ā the ābundleā approach. Coming up with several tests in advance and then writing the code or vise versa is usually much quicker. I do find that more enjoyable, it also helps me to reduce smaller context switches. I can focus on either the tests or the production code.
As for the potentially reduced code coverage with a non-TDD approach, I can easily see which parts are lacking tests and hand them in later. So, thatās largely a specious argument. Granted, I can forget to check the coverage or simply ignore it.
I agree with John, TDD results in less elegant code or requires more refactoring to tidy it up. Sometimes, itās also not entirely clear at the beginning how the API should really look like. It doesnāt happen often, but it does happen. Especially when experimenting or trying out different approaches. With TDD, I then also have to refactor the tests which is not only annoying, but also involves the danger of accidentally breaking them.
TDD only works really well, if you have super tiny functions. But we already established that I typically donāt like tiny methods just for the purpose of them being extremely short.
When fixing a bug, I usually come up with a failing test case first to verify that my repaired code later actually resolves the problem. For new code, it depends, sometimes tests first, sometimes the productive code first. Starting off with the tests requires the API to be well defined beforehand.
@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.
The big established parties are all bad traitors. I blame them and their actions to help raise AfD. They just [donāt?] give a fuck about the ordinary people, theyāre only concerned about their private gain and power.
To a large degree, yes. But I think the media is also equally at fault. There was absolutely no reason to invite AfD people to every event and let them talk. This has been going on for over 10 years. When we give them a stage to spread their hate, are we really surprised that hate spreads ⦠?
I donāt know the answers to this desaster. Iām beginning to think that people literally just want an outlet for their frustration, nothing more. Itās not about what particular parties actually plan to do. At least I think this applies to people in their 30ies and 40ies.
Na, youāre spot on, @movq@www.uninformativ.de! The result is an expected, terrible disaster. It just seems the absolute catastrophy is delayed for another four years.
Even though Iām the last one who wouldnāt be glad about banning the nazis, Iām not a fan of banning parties in general. I believe that a healthy democracy has to withstand extremists. Whether itās still healthy is debatable. To me it appeared that the failed attempts to ban NPD in the past actually helped them gain more supporters.
The big established parties are all bad traitors. I blame them and their actions to help raise AfD. They just give a fuck about the ordinary people, theyāre only concerned about their private gain and power. I bet nothing will change, to the contrary, it will only get worse. The winners do have the chance to turn it for the better, but they just will not. No way, unfortunately.
But then, we must not forget that people are just dumb and stupid, too. Also, that wonāt change. AfD wonāt help these idiots either, but they still vote for them. I also donāt understand how there is still so much support for the other big parties left. Education is important. Very important. But I have the impression that weāre lacking it.
@bender@twtxt.net @prologic@twtxt.net The outcome was to be expected but itās still pretty catastrophic. Hereās an overview:
East Germany is dominated by AfD. Bavaria is dominated by CSU (itās always been that way, but this is still a conservative/right party). Black is CDU, the other conservative/right party.
The guy whoās probably going to be chancellor recently insulted the millions of people who did demonstrations for peace/anti-right. āIdiotsā, ātheyāre nutsā, stuff like that. This was before the election. He already earned the nickname āMini Trumpā.
Both the right and the left got more votes this time, but the left only gained 3.87 percentage points while the right (CDU/CSU + AfD) gained 14.72:
The Green party lost, SPD (āmid-leftā) lost massively (worst result in their history). FDP also lost. These three were the previous government.
This isnāt looking good at all, especially when you think about whatās going to happen in the next 4 years. What will CDU (the winner) do? Will they be able to āturn the ship aroundā? Highly unlikely. They are responsible for the current situation (in large parts). They will continue to do business as usual. They will do anything but help poor/ordinary people. This means that AfD will only get stronger over the next 4 years.
Our only hope would be to ban AfD altogether. So far, nobody but non-profit organizations is willing to do that (for unknown reasons).
I donāt even know if banning the AfD would help (but itās probably our best/only option). AfD politicians are nothing but spiteful, hateful, angry, similar to Trump/MAGA. If youāve seen these people talk and still vote for them, then you must be absolutely filled with rage and hatred. Very concerning.
Correct me if Iām wrong, @lyse@lyse.isobeef.org, @arne@uplegger.eu, @johanbove@johanbove.info.
here is my progress so far: https://github.com/eapl-gemugami/twtxt-direct-message-php
The encryption part seems to work, if I decrypt it the message with OpenSSL.
I think it can help you for some key parts not well explained in OpenSSL documentation.
@andros@twtxt.andros.dev reading your spec I wrote a few notes here: https://github.com/eapl-gemugami/twtxt-direct-message-php/blob/main/direct_message_spec.md
@arne@uplegger.eu I havenāt check your repo yet, although you are using sodium, right?
@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?
ok, sounds like a ālargeā project to me.
Is it more an API (more oriented to developers), more oriented to UI/UX/Frontend? Perhaps both?
Iād go with prologicās advice of measuring and prioritizing. Perhaps you have a budget or at least something like āletās see how far can we reach in 6 monthsā, and possibly you wonāt finish in the time you have (just guessing).
Something that has helped me was defining āWhy do you we want to refactor this project?ā.
Could it be to make it compile on newer versions, or making it easier to grow and scale, or perhaps they are trying to sell that product to another company. Every reason has a different path, IMO.
@andros@twtxt.andros.dev I suggest to not touch it and work on a different project instead. :-D
No, in all seriousness, thatās a tough one. Try to figure out the requirements and write tests to cover them. In my experience, if there is no good documention, tests might also be lacking. It goes without saying that you have to understand the code segments first before you can begin to refactor them. Commit even earlier and more often than usual, this will help you bisecting potentially introduced bugs later on. Basically baby steps.
But it also depends on the amount of refactoring required. Maybe just scrap it entirely and start from scratch. This might not be feasible due to e.g. the overall project size, though.
@andros@twtxt.andros.dev Iām all for elegant solutions. I prefer when the computer helps me to really achieve my goal and solve it completely, not where I still have to manually filter a list by hand. Anyway. :-)
Rediscovering Plan 9 from Bell Labs
During a weekend of tidying up ā you know, the kind of chore where youāre knee-deep in old boxes before you realize it. Digging through the dusty cables and old, outdated user manuals, I found something that I had long forgotten: an oldĀ Plan 9Ā distribution. Judging by the faded ink and slight warping of the disk sleeve, it had to be from around 1994 or 1995. I couldnāt help but wonder: why had I kept this? Back then, I was curious about Plan 9. It was a forwar ⦠ā Read more
Suspension Bridge
ā Read more
Everybody wants to save the Earth; nobody wants to to help Mom do the dishes. - PJ ORourke, All The Trouble In The World #quotes
@prologic@twtxt.net @lyse@lyse.isobeef.org First, please leave me your comments on the repository! Even if itās just to give your opinion on what shouldnāt be included. The more variety, the better.
Second, Iām going to try to do tests with Elliptic keys and base64. Thanks for the advice @eapl@eapl.me
Finally, Iād like to give my opinion. Secure direct messages are a feature that ActivityPub and Mastodon donāt have, to give an example. By including it as an extension, weāre already taking a significant leap forward from the competition. Does it make sense to include it in a public feed? In fact, weāre already doing that. When we reply to a user, mentioning them at the beginning of the message, itās already a direct message. The message is within a thread, perhaps breaking the conversation. Direct messages would help isolate conversations between 2 users, as well as keeping a thread cleaner and maintaining privacy. I insist, itās optional, it doesnāt break compatibility with any client and implementing it isnāt complex. If you donāt like it, youāre free to not use it. If you donāt have a public key, no one can send you direct messages.
another one would be to allow changing public keys over time (as it may be a good practice [0]
). A syntax like the following could help to know what public key you used to encrypt the message, and which private key the client should use to decrypt it:
!<nick url> <encrypted_message> <public_key_hash_7_chars>
Also Iād remove support for storing the message as hex, only allowing base64 (more compact, aiming for a minimalistic spec, etc.)
@bender@twtxt.net all by myself too T__T not that i wasnāt offered help i wanted the challenge but my back paid the price lol
I need an alternative news source⦠Something I can shove into feeds.twtxt.net that helps me keep up-to-date with Tech and other important news šļø Hmmm š¤ Suggestions? I canāt stand Slashdot anymore since theyāve decided to come down hard on ad-blockers š¤¦āāļø
although I agree that it helps, I donāt see completely correct to leave the nick definition to the source .txt. It could be wrong from the start or outdated with the time.
Iād rather prefer to get it from the mentioned .txt nick metadata (could be cached for performance).
So my vote would to make it mandatory to follow @<name url>
but only using that name/nick if the URL doesnāt contain another nick.
A main advantage is that when the destination URL changes the nick, itāll be automagically updated in the thread view (as happens with some other microblogging platforms, following the Jakobās Law)
I just used screego to help a family member with their Windows PC. Flawless experience! š
Thanks š! @aelaraji@aelaraji.com I am working on a fork now because the new version will break the current code. Therefore, I will upgrade the current repository (https://codeberg.org/deadblackclover/twtxt-el). The original author is helping me with reviews. I am sorry for my long development, I am working in my free time and it is scarce. I will report back to you all. š
taskbook is really neat. i like using its to-do features, i think the note-taking i wonāt need as iāve been using obsidian a lot for that lately but the to-do stuff is really helping me out
I keep forgetting how much socialization with people I actually like really helps ease up my depression for a bit.
@prologic@twtxt.net awww thank you! yeah iād love to keep it small and chill. thatās what i and my friends like most about yarn, how small and quiet it is, itās just chill! and thereās no likes/reposts too which helps keep it super chill i think. just vibes⦠itās the best! youāve built something great!
GUYS HELP I LOCKED MYSELF OUT OF MY ACCOUNT ON WEB AND I COULDNāT GET EMAILS WORKING IāM STUCK POSTING FROM CLI LOLLLL
"twtxtfeevalidator/0.0.1"
UA about? I thought I could ask before throwing a 1000GB file at it šŖ¤ could it be the same 'xt' thing @lyse was talking about the other day?
@lyse@lyse.isobeef.org Oh! no need to be sorry and feel free to keep at it if it helps, I donāt mind. Itās just that Iām always on the lookout for corpo-bots and crawlers slipping through the cracks (a fun little game of sorts) š
the only thing I let them see is a robots.txt telling them to :diffoff
Also, Iām curious about the invalid lines in my feed. is it something I should lookout for in future?
@prologic@twtxt.net oh itās ok! thank you for the explanation! i think for me when it comes to programming i learn best by doing, so like written examples or talking about it helps less, BUT baseline explanations like what a pointer is does help! i was so confused and i still need to fix the error iām having but i will figure it out!
Rode my bicycle into town. What the hell is wrong with some of these motorists!? Here in right lane traffic land, a car reversed out of the driveway on the left into the road and nearly hit me. And this happened twice! If you donāt fucking see, how about you go slowly and not just hope that nobody is coming!? The first one even decided to honk at me. SUV drivers confirming prejudiceā¦
Well, at least I could help a lady with transfering her child in a pram.
help iāve had this account for barely 2 days and iām nearly at 100 posts
well, the extension helps to know the file format as in .txt
and .html
, perhaps .twt
, he!
Fartlek: 7.12 miles, 00:09:56 average pace, 01:10:41 duration
kept it chill the first three miles then took a walk break to lower the heart rate and started off again into a fartlek. the intervals helped because my mind was starting to fuck with me with the steady pace. got some pretty good rain in the last two and a half miles which was great too!
#running
Organised my decades old ebook collection and cleaned up all the duplicates. The Czkawka application helped a lot with getting that done. Also - finally - using Calibre as our home digital library.
@mckinley@twtxt.net To help saving the planet is a good reason. :-)
@prologic@twtxt.net Thereās always my log.html page if it helps⦠and while weāre still at it hereās the other twt #z2ymlkq for reference ;)