@movq@www.uninformativ.de > That guy over there in the cornerā¦
Iām literally sitting in a corner chuckles. I rarely get any emails nowadays. But if I do and it is not plain-text, then my Mutt gets to bark at it and I, just⦠wonāt read it. š¤·š½āāļø
OpenBSD has the wonderful pledge() and unveil() syscalls:
https://www.youtube.com/watch?v=bXO6nelFt-E
Not only are they super useful (the program itself can drop privileges ā like, it can initialize itself, read some files, whatever, and then tell the kernel that it will never do anything like that again; if it does, e.g. by being exploited through a bug, it gets killed by the kernel), but they are also extremely easy to use.
Imagine a server program with a connected socket in file descriptor 0. Before reading any data from the client, the program can do this:
unveil("/var/www/whatever", "r");
unveil(NULL, NULL);
pledge("stdio rpath", NULL);
Done. Itās now limited to reading files from that directory, communicating with the existing socket, stuff like that. But it cannot ever read any other files or exec() into something else.
I canāt wait for the day when we have something like this on Linux. There have been some attempts, but itās not that easy. And itās certainly not mainstream, yet.
I need to have a closer look at Linuxās Landlock soon (āsoonā), but this is considerably more complicated than pledge()/unveil():
@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.
@prologic@twtxt.net Yeah, itās difficult, you often donāt get what youād expect. They also make heavy use of 3rd party libraries. IIUC, for random numbers, they refer to this library. Iāve read many times that the Rust stdlib is intentionally minimalistic (to make it easier to maintain and port and all that).
Iām struggling with this, using 3rd party libs for so many things isnāt really my cup of tea. Iāll probably make my own tiny little āstandard libraryā. Itās silly, but I donāt see any other options. š¤·
fit 1 $ spin (saw 0.1 * sign fxy) $ rect 0 1 - rect 0 0.99 >> add;
#punctual #livecoding #creativecoding #videoart
@prologic@twtxt.net You can read more about the ācrypticā live coding language Punctual in my newsletter
Wanna read something very scary?
Your future doctor is using ChatGPT to pass medical school, so you better start riding a bike and eating healthy now.
šØšØšØ
@lyse@lyse.isobeef.org I canāt read. 𤦠Yeah, thatās gonna be a problem. I was not yet able to trigger it, though. Maybe they are (like Google) rolling out these changes gradually ā¦
@bender@twtxt.net Basically the way Iām reading this is 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.
Imagine if I imposed that kind of rate limit on twtxt.net?! š¤£
@prologic@twtxt.net I read a little about her. Looks to be a good fit for the seat she is holding. I hope she gets to keep it.
@andros@twtxt.andros.dev Programming is art. You become good at art by practising your art. You learn artistic patterns by being inspired by and reading others art works. The most importance however is that you practise your art.
up -d, but then I took a look at a couple of #Snac instances at the last second and they looked pretty dope! Now I'm stuck in my own head š
@bender@twtxt.net Mainly the bsd.cafe ones. I like how the minimalist single column profiles look. Image embeds are full width and reading through threads feels nice (as in it doesnāt feel like pealing layers upon layers of a fresh onion).
Confession:
Iāve never found microblogging like twtxt or the Fediverse or any other āmodernā social media to be truly fulfilling/satisfying.
The reason is that it is focused so much on people. You follow this or that person, everybody spends time making a nice profile page, the posts are all very āego-centricā. Seriously, it feels like everybody is on an ego-trip all the time (this is much worse on the Fediverse, not so much here on twtxt).
I miss the days of topic-based forums/groups. A Linux forum here, a forum about programming there, another one about a certain game. Stuff like that. That was really great ā and it didnāt even suffer from the need to federate.
Sadly, most of these forums are dead now. Especially the nerds spend a lot of time on the Fediverse now and have abandoned forums almost completely.
On Mastodon, you can follow hashtags, which somewhat emulates a topic-based experience. But itās not that great and the protocol isnāt meant to be used that way (just read the snac2 docs on this issue). And the concept of ālikesā has eliminated lots of the actual user interaction. ā¹ļø
@prologic@twtxt.net and the aim, and end result, is that by reading and learning from it you will prepare yourself to nearly completely avoid accidents. Am I right? š
These ideas are dr the two books:
- Drift into Failure: From Hunting Broken Components to Understanding Complex Systems by Sidney Dekker (2011)
- Engineering a Safer World by Nancy Leveson (2011)
The former I havenāt read. The later I havenāt finished reading š
@lyse@lyse.isobeef.org haha, not satire. It is also in Mark Twainās āHuckleberry Finnā as well:
āIf fifteen cows is browsing on a hillside, how many of them eats with their heads pointed the same direction?ā
āThe whole fifteen, mum.ā
ā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.
@andros@twtxt.andros.dev Haha 𤣠Weāve explored this idea in the past and we decided that itās actually a good idea to have an āappend-onlyā feed for various reasons. Weāve also explored the idea of using Range requests, but opted instead to just archive/rotate our feeds periodically š
There really isnāt much point in having a feed in reverse chronological order, except (maybe?) so a human read view the new twts at the top of the file?! š¤£
@prologic@twtxt.net Since you have to check and double check everything it spits out (without providing sources), I donāt find any of this helpful. Itās like someoneās in the room with you and that person is saying random stuff that might or might not be correct. At best, it might spark some new idea in your head and then you follow that idea the traditional way.
Information published on the internet (or anywhere, for that matter) was never guaranteed to be correct. But at least you had a āframe of referenceā: āAh, I read this information about Linux on a blog that usually posts about Windows, so this one single Linux post might not necessarily be correct.ā That is completely lost with LLMs. Itās literally all mushed together. š¤·
AS136907 HWCLOUDS-AS-AP HUAWEI CLOUDS
@prologic@twtxt.net This shi_ is as fun as it is frustrating! š the bot is poking at me from a different ASN now, Alibabaās.
- Short term solution: Iāve geo-locked my Timeline instance since Iām the only one using it (and I only do so for reading twts when Iām away from terminal).
- Long term: I took a look at your Caddy WAF but couldnāt figure things out on my own; until then, Iāll be poking at Caddy-Defender, maybe throw in a Crowdsec for lols⦠#FUN
@eapl.me@eapl.me This is one of my concerns too. The moment you post publicly ciphertext, you open yourself up for future attacks on the ciphertext, which you really want to avoid if you can. If you have a read of the Salty.im Spec youāll note we went to great lengths to protect the userās privacy as well as their identity and make it incredibly hard to guess at inboxes. Itās still a WIP, but Iād love to see it progressed even further ā I truly feel strongly about a purely decentralised messaging ecosystem š
Fascinating read on the emerging Model Context Protocol ā a new standard for integrating LLMs with agents and tools.
@prologic@twtxt.net you wrote:
āBased on a recent study of the brains of mice I estimated the human brain to have 200B cells/neurons and 50,000T connections.ā
Whatās the relation between the brains of mice, and the human brain? I am kind of lost trying to make the connection.
I also read that it isnāt 5 watts, but more like 10-20 watts. Still a super tiny consumption, comparing to what it takes to run anything AI.
So I re-write this shell alias that I used all the time alias dkv="docker rm" to be a much safer shell function:
dkv() {
if [[ "$1" == "rm" && -n "$2" ]]; then
read -r -p "Are you sure you want to delete volume '$2'? [Y/n] " confirm
confirm=${confirm:-Y}
if [[ "$confirm" =~ ^[Yy]$ ]]; then
# Disable history
set +o history
# Delete the volume
docker volume rm "$2"
# Re-enable history
set -o history
else
echo "Aborted."
fi
else
docker volume "$@"
fi
}
you just havenāt read this yet.
I saw 100% I/O wait in htop today but couldnāt find a process which actually does I/O. Turns out, I/O wait isnāt what it used to be anymore:
https://lwn.net/Articles/989272/
In my case, it was mpd which triggered this:
https://github.com/MusicPlayerDaemon/MPD/issues/2241
mpd doesnāt actually do anything, it just sits there and waits for events. To my understanding, this is similar to something blocking on read(). Iām not quite sure yet if displaying this as I/O wait (or āPSI some ioā) is intentional or not ā but it sure is confusing.

@lyse@lyse.isobeef.org Ha, āimpsā, when I read imps, I think of these guys: https://dungeonkeeper.fandom.com/wiki/Imp š
re reading so NewRAMStorage(ā¦) is just something that setups your storage and initial data.. that can probably live with storage/sqlite. The point is the storage package does not import the implementations of storage.Storage It just defines the contract for things that use that interface. Now storage/sqlite CAN import storage and not have a circle dep.
It kinda works in reverse for import directions. usually you have your root package that imports things from deeper in the directory structures.. but for the case of interfaces it reverses where the deeper can import from parents but parents cannot import from children.
- app < storage
< storage/sqlite
< controller < storage
< storage/sqlite
- sqlite < storage
- storage X storage/sqlite
@prologic@twtxt.net I formed my opinion about this before reading/watching any additional media coverage. And yes, this is extremely bad. These two have no place on the āworld stageā. They are deciding on our future. (And I am well aware that my country is heading into a similar direction ā unless we stop it.)
I agree. finding good writings on architecture is hard to find. I used to read architecture reviews over on the high scalability blog. i suspect the reason why is that the arch is how the big tech companies can build moats around their bases. I know in AWS world it only goes as far as how to nickle and dime you to death.
I have the books but they donāt grow much more past interview level.
@lyse@lyse.isobeef.org I am a big fan of āobviousā math facts that turn out to be wrong. If you want to understand how reusing space actually works, you are mostly stuck reading complexity theory papers right now. Ian wrote a good survey: https://iuuk.mff.cuni.cz/~iwmertz/papers/m23.reusing_space.pdf . Itās written for complexity theorists, but some of will make sense to programmers comfortable with math. Alternatively, I wrote an essay a few years ago explaining one technique, with (math-loving) programmers as the intended audience: https://www.falsifian.org/blog/2021/06/04/catalytic/ .
@lyse@lyse.isobeef.org Thanks for sharing. I really enjoyed it. The beginning part about the history of life on Earth was fun to watch having just read Dawkinās old book The Selfish Geene, and now I want to read more about archaea. The end of the talk about what might be going on on Mars made me a bit hopeful someone will find some good evidence.
Skill Issues of course, but that's going away next as soon as I get my php-fpm shi_ together.
@prologic@twtxt.net Iād stumbled upon #FrankenPHP while reading through #Caddy stuff and thought maybe itās bit overkill for what i need it for but then again, it will be just a āOne container in for two outā, thatās win in my book š
@johanbove@johanbove.info Way to go! ā what will you be reading? Got anything planned?
@prologic@twtxt.net I say we should find a way to support mentions with only url, no nick, as per the original spec.
- For
@<nick url>we already got support
- For
@<nick>the posting client should expand it to@<nick url>, if not then the reading client should just render it as@nickwith no link.
- For
@<url>the sending client should try to expand it to@<nick url>, if not then the reading client should try to find or construct a nick base on:
- Look in twtxt.txt for a
nick =
- Use (sub)domain from URL
- Use folder or file name from URL
- Look in twtxt.txt for a
Thank you @bender@twtxt.net Much appreciated š and Sorry you/anyone had to read thatā¦
Iām usually comfortable keeping my hardship to myself, most especially AWAY from the internet; an act of kindness of sorts towards others, āEveryoneās got their own problems to worry aboutā kind of thing.. But maaan am I starting to believe creating a twitter account would be a healthy decision š¤£š¤¦ Read nothinā out there, just a one way echo chamber of sorts to let that shi_ out of my chest. It seem thatās what everyone elseās been using it for all this time.
A Bsky would be even better! š Iād get to shi_ post and yap all I want, allll the way from terminal and never ever have to look back at it or whatever comes out of it. But I digressā¦
I FU_ing despise this ⦠whatever this is. I wish I could just wake up in some sort of parallel universe where everything is just sunshine and rainbows, alas, life would be just as meaningless.
and sorry you had to read this if you did.
@xuu@txt.sour.is ROFLMAO! 𤣠reading that, the Tech bro sounded in my mind like Cow from Cow and Chicken
This year is a perfect square: 2025 = 45². Most of us reading this at time of posting wonāt be alive next time that happens since 46² = 2116, 91 years from now. This has been bouncing around the internet but for some reason I felt compelled to record it here!
nick = _@domain.tld in the twtxt.txt?
What should the advantage be to nick = _compared to just not defining a nick and let the client use the domain as the handle?
What is not intuitive is that you put something in the nick field that is not to be taken literary. The special meaning of _ is only clean if you read the documentation, compared to having something in nick that makes sense in the current context of the twtxt.txt.
@wbknl@twtxt.net are you still in Russia? It could be hard mailing anything to there these days. I read your ārussia is eternally coldā, and became curious. Patagonia is the only place I know on South America that it has rounded mountains, though they can be anywhere. Originally from Chile, or Argentina? My curiosity doesnāt need feeding, by the way. Itās all good if it doesnāt. :-)
@eapl.me@eapl.me here are my replies (somewhat similar to Lyseās and Jamesā)
Metadata in twts: Key=value is too complicated for non-hackers and hard to write by hand. So if there is a need then we should just use #NSFS or the alt-text file in markdown image syntax
if something is NSFWIDs besides datetime. When you edit a twt then you should preserve the datetime if location-based addressing should have any advantages over content-based addressing. If you change the timestamp the its a new post. Just like any other blog cms.
Caching, Yes all good ideas, but that is more a task for the clients not the serving of the twtxt.txt files.
Discovery: User-agent for discovery can become better. Iām working on a wrapper script in PHP, so you donāt need to go to Apaches log-files to see who fetches your feed. But for other Gemini and gopher you need to relay on something else. That could be using my webmentions for twtxt suggestion, or simply defining an email metadata field for letting a person know you follow their feed. Interesting read about why WebMetions might be a bad idea. Twtxt being much simple that a full featured IndieWeb sites, then a lot of the concerns does not apply here. But thatās the issue with any open inbox. This is hard to solve without some form of (centralized or community) spam moderation.
Support more protocols besides http/s. Yes why not, if we can make clients that merge or diffident between the same feed server by multiples URLs
Languages: If the need is big then make a separate feed. I donāt mind seeing stuff in other langues as it is low. You got translating tool if you need to know whats going on. And again when there is a need for easier switching between posting to several feeds, then itās about building clients with a UI that makes it easy. No something that should takes up space in the format/protocol.
Emojis: Iām not sure what this is about. Do you want to use emojis as avatar in CLI clients or it just about rendering emojis?
@prologic@twtxt.net Iām not a yarnd user, so it doesnāt matter a whole lot to me, but FWIW Iām not especially keen on changing how I format my twts to work around yarndās quirks.
I wonder if this kind of postprocessing would fit better between composing (via yarndās UI) and publishing. So, if a yarnd user types ¼, it could get changed to ¼ in the twtxt.txt file for everyone to see, not just people reading through yarnd. But when I type ¼, meaning first out of four, as a non-yarnd user, the meaning wouldnāt get corrupted. I can always type ¼ directly if thatās what I really intend.
(This twt might be easier to understand if you read it without any transformations :-P)
Anyway, again, Iām not a yarnd user, so do what you will, just know you might not be seeing exactly what I meant.
Inversion by Aric McBay was another random library pick. Like The Fall of Io, itās the most recent in a series, though I think this series is pretty loosely connected. In contrast, the villain in this book is simple and cartoonishly evil. The book presents a design for utopia which was interesting but a little cloying. Iām not sure if Iām supposed to want to live there, but I donāt think I do. I enjoyed the book as easy reading, and might try the others in the series some time. (4/4)
I read Starter Villain by John Scalzi. Enjoyable, like his other books that Iāve read. Somewhat sillier. (¾)
Iām enjoying Wesley Chuās Tao and Io series. Spies, action, ancient aliens. Some funny parts, some interesting world-building parts, some action-filled parts. I picked up The Fall of Io at random from a library a few weeks ago, and it turned out to be the last in a series of six (technically two series), so after finishing that I read the first and am partway through the second. Usually I try to read series in order, but this way is interesting. One thing I liked about The Fall of Io was that it it followed many points of view with somewhat conflicting interests, some more evil than others, and I felt sympathy for most of them. (I was kind of hoping it would be about Jupiterās moon Io, but it wasnāt, but Iām satisfied with what I ended up with.) (2/4)
Simplified twtxt - I want to suggest some dogmas or commandments for twtxt, from where we can work our way back to how to implement different feature like replies/treads:
Itās a text file, so you must be able to write it by hand (ie. no app logic) and read by eye. If you edit a post you change the content not the timestamp. Otherwise it will be considered a new post.
The order of lines in a twtxt.txt must not hold any significant. The file is a container and each line an atomic piece of information. You should be able to run
sorton a twtxt.txt and it should still work.Transport protocol should not matter, as long as the file served is the same. Http and https are preferred, so it is suggested that feed served via Gopher or Gemini also provide http(s).
Do we need more commandments?
@doesnm@doesnm.p.psf.lt finally someone read my blogpost ;)
@prologic@twtxt.net currently? it wouldnt :D.
we would need to come up with a way of registering with multiple brokers that can i guess forward to a reader broker. something that will retry if needed. need to read into how simplex handles multi brokers
Reading about browser security measures and getting sad we donāt live in a world where cross-site scripting is a feature instead of a bug.