@lyse@lyse.isobeef.org Oops, I guess the new text is a bit obscure. If you follow the link, the text is a bit more explicit, but you still need to know what a lexical scope is. Anyway, this is part of Perl moving very carefully toward being UTF-8 by default while also not breaking code written in the 90s. If you name a recent version like āuse v5.42;ā then Perl stops letting you use non-ASCII characters unless you also say āuse utf8;ā. The ālexicallyā part basically means that strictness continues until the next ā}ā, or the end of the program. That lets you fix up old code one block at a time, if you arenāt ready to apply the new strictness to a whole file at once.
You should study your tools if youāre planning to FAFO with them. Now use a live USB and see if the grub files are missing something, or just learn how grub works.
Let us send snail-mail to Google and ask them to keep Android open (https://keepandroidopen.org) physical addresses of offices can be found here: https://about.google/company-info/locations/
This one comes from this years (now scrapped) April 1st DLSS 5 gag, that was originally supposed to use Microsofts AI - in ways similar to the Nvidia technology, which produced interesting, overly detailed results. I wanted to see if I could beat the AI thing at drawing something like that myself and many redraws later, this is my best result.

@bender@twtxt.net both, but neither directly. I know every workaround there is, including those used by developers, to test apps, while working on them. However if āsideloadingā becomes so tedious, even the more technical users, cannot be bothered to do it, competing appstores and independent developers, not wanting to send their money and ID to Google, loose users at such rate, they likely wonāt be able to justify continuing to maintain their projects, people like me rely on.
@prologic@twtxt.net must be nice. Congrats! I am happy for you! š Off jesting, enjoy mate! The rest of us will continue slaving ourvselves. š
In the interest of fairness and hopefully for the last time, I ever have to address this, Google has flip-flopped again and promised āsideloadingā will not be removed from their version of Android, but instead have to be enabled in the developer settings, using the following āadvanced flowā:

To be perfectly clear, this still falls short of what I wanted, but at this point, it is a compromise Iām willing to take, over further pursuing this, through the various available European courts, myself.
Here is their full statement:
https://android-developers.googleblog.com/2026/03/android-developer-verification.html
@fe55c : Hi, which client do you use on Haiku? It seems to me that the protocol has been removed from WebPositive?
@prologic@twtxt.net donāt! You might be into troubles. Just record something small, and masterful, for us to listen, forget the costume. š
Iām happy to report that, earlier today, I published an early version of express-twtkpr: an ExpressJS library that enables hosting (and directly posting to) a twtxt.txt file. It works great (otherwise you wouldnāt be able to read this), but itās still in alpha and lacks documentation, examples, tests, installation flexibility, or polish, so please use it at your own risk. Enjoy! https://www.npmjs.com/package/express-twtkpr
sqlparse is also unsuitable for me: https://github.com/andialbrecht/sqlparse/issues/688
Iām supporting incremental SQLite schema changes to just upgrade from an older database version to whatever the current software version supports. In the past, I already noticed that this is quite expensive in unit tests when each test case runs through the entire schema patches and applies them one by one.
To speed up test execution I now decided that I finally go through the troubles of maintaining both a set of incremental patches and a full schema setup in one go. A unit test verifies that both ways end up with the same structure. This gives me a set of SQLs to check the structures:
SELECT type, name, tbl_name, sql
FROM sqlite_schema
ORDER BY type, name, tbl_name
Unfortunately, the resulting CREATE TABLE SQL queries are formatted differently, depending on whether the full schema was set up in one big step or the structure had been modified with ALTER TABLE. Mainly, added columns are not on their own lines but appended in one physical line. Thatās why I wanted an SQL formatting tool. Since I didnāt find one that works decently, Iām now doing some simple string manipulation. Joining consecutive whitespace into a single space character, removing spaces before commas and closing parentheses and spaces after opening parentheses. This works surpringly good enough. Of course, if it fails, the ādiffā is absolutely horrendous.
Now for the cool part, my test execution dropped from around 5:05 minutes to just 1:32 minutes! I call that a win.
I just stumbled across PRAGMA table_info('tablename') https://sqlite.org/pragma.html#pragma_table_info, PRAGMA foreign_key_list('tablename') and friends. I guess, I have to play with that, now. Itās probably much better to use than the SQL text approach.
@rdlmda@rdlmda.me I am reasonably happy with jenny. If I find time for a twtxt project, I would like to make a web page that works as follows: you point it to your own twtxt feed (as a URL parameter), and then it shows you all the feeds referenced by your ā# follow =ā lines. So, if I put this up, anyone could use it to view their own feed, with no login required. (Probably a difficult project. For example, Iād want to make sure the backend couldnāt be tricked into helping ddos a web server by trying to fetch lots of āfeedsā from it. Anyway, I have too many other projects.)
@falsifian@www.falsifian.org Correct, the two smaller versions are loading perfectly fine. The hickup is only for the originals. But in all reality, the middle ones are sufficient for me personally. Please donāt get me wrong, at least for the people photos, the subjects are large enough. The Japanese landscapes, however, would definitely benefit from a bit more detail. ;-)
I just tried it once more, and now, the tree with the sign (/photo/5Zy4pqVIt0oP/IMG_20251106_035048_448.jpg) fully loaded very quickly. Same with the Japanese dish (/photo/tJbmg8oleYbh/IMG_20251030_091719_086.jpg) and shopping center (/photo/qXG5ucIjpPju/IMG_20251029_045002_778.jpg). But the previous and next ones all ran into the same problems again. When Iām very lucky, I eventually get the upper half. Typically not even that much, a third, a fifth, or even less.
Waiting a bit before making an attempt, the wooden walkway through the forest or park (/photo/ojQpDLfBoGN4/IMG_20251023_043829_011.jpg) eventually also made it. But unlike the other successful attempts, it took a long time.
The more photos you add, the more beneficial it might be to separate the index into several different albums. I didnāt measure it, but it felt like 10 to 20 seconds for all the thumbnails to load. That traffic adds up.
Another idea would be to strip the EXIF data from the thumbnails and reducing quality to 90% or even 80%. Using the famous tree with the sign, I cannot tell the difference between the original thumbnail and the 80% quality one. Iām sure it depends on the subject. Here are the numbers:
$ convert -strip IMG_20251106_035048_448_size_400.jpg stripped.jpg
$ convert -quality 90 IMG_20251106_035048_448_size_400.jpg 90.jpg
$ convert -quality 80 IMG_20251106_035048_448_size_400.jpg 80.jpg
$ convert -strip -quality 90 IMG_20251106_035048_448_size_400.jpg 90-stripped.jpg
$ convert -strip -quality 80 IMG_20251106_035048_448_size_400.jpg 80-stripped.jpg
$ ls -lh *jpg | awk '{print $5 " " $9}'
46K 80.jpg
45K 80-stripped.jpg
64K 90.jpg
63K 90-stripped.jpg
132K IMG_20251106_035048_448_size_400.jpg
127K stripped.jpg
$ ls -l *jpg | awk '{print $5 " " $9}'
46160 80.jpg
45064 80-stripped.jpg
65012 90.jpg
63916 90-stripped.jpg
135070 IMG_20251106_035048_448_size_400.jpg
129647 stripped.jpg
** WARNING: connection is not using a post-quantum key exchange algorithm.
** This session may be vulnerable to āstore now, decrypt laterā attacks.
** The server may need to be upgraded. See https://openssh.com/pq.html
š±š±š±
@rdlmda@rdlmda.me it is called, in Spanish, āthe motherā. It is created through a bit (not by much) effort, and kept as a starting point. Just like Asian cuisine has dishes that never cool, always cooking leaving always a base on it.
How do you think a lathe (and just about any tool, etc.) is done? Yup, in part by using a lathe. š
@movq@www.uninformativ.de just use https instead:
git clone https://git.mills.io/yarnsocial/twtxt.dev.git
@bender@twtxt.net Yes, really should have chosen my words more wisely. As @movq@www.uninformativ.de mentions, we got a vague promise of an āadvanced flowā being implemented, and in my case also a vague promise of a video call, with someone at Google, regarding it. Now when the backlash died down, it does not look like Google plans to follow through, with any of this and theyāre completely unwilling to elaborate and get back to us, about if and how any of this will be implemented.
@rdlmda@rdlmda.me I never saw the point of a registry to be honest, as it defeated the point of what I believed to be a truly decentralised non-social social ecosystem. What can and does work however is a search engine and crawler. I used to run one, but I took it down, mostly because it got expensive to operate, at least the implementation I built⦠Maybe one day iāll try again with a SQLite backend.
@rdlmda@rdlmda.me You might or might not find this useful: https://lyse.isobeef.org/tmp/twthash.py
@rdlmda@rdlmda.me most of our conversations used to be about twtxt, I am not going to lie. Lately? Not so much. It turns out (a) we donāt need a longer hash, (b) we donāt care so much about changing addressing, and Ā© I am just Bender, what else can I say? :-D :-P
@movq@www.uninformativ.de Luckily, Iāve never encountered any bugs in Vim with my type of work and features I use.
HEY! I think we all noticed that privacy is dying. Government and corporate entities around the world are building the laws and tools to track you, from everything you write, to the media you consume, to where you drive your car and the people you associate with. Gopher I believe Is one of the last bastions of freedom away from what I call āCorpo webā. GopherSpace is free, I wrote my client so I know itās safe, and I can route my traffic over tor or any proxy of my choosing. I think we should use gopher as a means to communicate and get out of the modern corpo web because soon everything you do and say on the modern web or possibly corporate owned devices is under scrutiny, even more so than it ALREADY IS. Right now I can use tor and my custom gopher cli to communicate privately here. With the ways the laws are going they are going to implement things like age verification to track you and theyāll deem privacy focused open source software as tools for circumventing these rules. Itās a slippery slope. I need to stop writing before I sound really crazy.
I call it a success! (Please excuse the terrible background noise and bad audio in general. Iām not a sound engineer at all. Also, no idea why I use plural in the beginning. :-?) https://lyse.isobeef.org/tmp/5mm-dowels/
@prologic@twtxt.net well, it isnāt rocket science, is it? š Yet, without using the hashes and starting to follow people, it is very, very rudimentary. I know, I know, there were a couple of years during which people lived just fine without those. Yet, once you get used to certain things, there is no going back.
@rdlmda@rdlmda.me You need to use the RFC3339 format. I would recommend you read the specs at https://twtxt.dev ā This is what is used by many moden clients these days š
Synced CSS across my Bear Blog and other site pages. Also using front matter in source markdown files, and outputting meta descriptions ā
Hi i am using cli
@bender@twtxt.net Correctamundo! In this case, itās available for the browser as a single (optionally-minified) JavaScript file, or for Node via NPM (as JS) and JSR.io (as ānativeā TypeScript).
I had to do it that way because I wanted a library I could use in both an Express server (for TwtKpr and TwtStrm) and the browser (for my website and⦠TwtStrm).
Hopefully, Iāll have more to share about those other projects soonā¦
@kiwu@twtxt.net I am trying to read our Information Security Office āmindā to grasp what they want. So far they seem to want to get logs from our BIG-IP F5 load balancers into Azure Sentinel, but the Telemetry Streaming plugin normally used for it is on maintenance mode, with deprecations happening on the F5 and Microsoft side soonish. So, yeah⦠āfunā. Oh, and they want it on production by tomorrow. LOLz!
But use your brain. In Exodus 34 is written, that Moses did not eat and drink for 40 days. Nobody can live without water 40 days. thatās a lie.
Have put out my first real technical blog post. Also my first use of āinfo stringsā for syntax highlighting š¤
š Looking for other interested folks to continue to evolve the development of Salty.im š Iāve been hard⢠at work on the v2 branch and @doesnm.p.psf.lt@doesnm.p.psf.lt has been incredibly helpful so far. Be great ot have a few more folks to join us, some of the v2 highlights include:
- Double Ratchet by default.
- Group Chat (sender/client fan-out for now)
- Much better TUI with background agent.
- Mobile App coming soon⢠(iOS in progress, Android next, same codebase)
Itās raining and raining and raining and raining. I had hoped my mate canceled the hike today. But he didnāt. He showed up. So, off we went to the Staufeneck Castle Ruin after having a lunch first. The rain drizzling on the umbrella was very nice and I was very glad that he dragged me outside.
It was super wet, though. Entire creeks were coming down on some path sections. A slippery, muddy mess on others. Our boots were already soaked a few kilometers in the trip. The important part was that the feet were warm, though, despite being wet. We barely met anybody in this lousy weather. So we had basically everything for us alone. Thatās always great.
Visibility was poor the higher we got. At 13 a low hanging cloud was moving in, 14 is the result just three minutes later. We couldnāt see the castle 300 meters away anymore. No chance. It was really funny, because the houses in town at two kilometers distance were still visible. Poorly, but you could clearly make out the town. Not the castle, there was just a white wall of cloud :-)
On the way back, we warmed up with tea I brought along. After I dropped off my mate at the train station, I bumped into a fellow scout, so my wet feet cooled off completely in these 15 minutes we talked. The rainjacket mostly held up with the protection of the umbrella, just the sleeves were down. My rain trousers, on the other hand, leaked a little bit a the lower ends. I was glad when I could strip all the wet stuff. I would do it again, though. :-) Now, Iām swapping the newspaper in my boots every half an hour to absorb all the moisture.
https://lyse.isobeef.org/wanderung-auf-die-burg-staufeneck-2026-02-21/
Oh, our leaning silo laughs at the Leaning Tower of Pisa. :-D Iām wondering when it collapses. Iām waiting for this to happen for years now.
Para ver o mapa da sua cidade pelo terminal, use o comando map.
@aelaraji@aelaraji.com hey, hey! I saw you tinkering with ActivityPub, so I know you were well.
Glad to have you back here! No much has happened on twtxt.net-world. @prologic@twtxt.net is quite busy with large language models, and seeking further independence through capitalistic ways. @lyse@lyse.isobeef.org continues dazzling us with his clicks, @movq@www.uninformativ.de brings us interesting music, videos to see, and a sprinkle of home made computing here and there, and me⦠well, I continue bending (or trying to) things! š
There was an endless coming and going of sun, clouds and rain. Not to forget about the wind. I called it quits a bit earlier and went into the woods.
Towards the end I was completeley surrounded by rain curtains in all directions. This looked super cool. I thought I might make it home just in time without having to use my umbrella, but the rain clouds were way quicker than I anticipated. Just after the rain hit me, I met an acquaintance who just started his walk. The wind picked up hard and rain hammered down, mixed with snow. Holding the umbrella was a workout. Shortly after I returned, the rain stopped again.
I didnāt notice the kestrel sitting on the tree when I took the last photo. That was a nice surprise when I sorted through the nearly 300 pics.
@movq@www.uninformativ.de There are always some folks who would appreciate that. But I fear they are the minority. The rest just doesnāt give a shit.
The selfcontradiction is that those who proudly use and promote AI also claim to be sustainable and green and so on. Iāve no clue how this is not considered fraud, but there we are.
The fact that Canada and US do basic mathematical operations algorithms upwards always boggles my mind.
@bender@twtxt.net it was great! I loved how he used such a big platform to send such an important message!!
nutts.org now has /whoami, /books, and /uses pages
Fuck me dead! I accidentally confused an HTML file for a YAML file and manually opened it in my browser. Unfortunately, I clicked on the OK button of the popped up dialog a bit too fast, it just caught me off guard. It asked which program to open the YAML file in. Of course Firefox thought that it could handle that and suggested itself by default. Conveniently, the ādonāt prompt me again and always use this selection from now onā checkbox was enabled.
And then the endless loop of death started. Turns out, this fucking browser canāt do shit with YAML files and delegated to what had been just configured. Oh, would you look at that!? Firefox! Empty tabs after empty tabs appeared. Killing and restarting Firefox just loaded the last session with all the tabs and the loop continued.
Some bloody snakeoil on my work machine slows down link openening requests by two, three seconds. Itās always absolutely anoying, but luckily, it actually limited the rate of new tabs popping up. I still could not close the many tabs fast enough that had accumulated before I noticed what was going on in the background.
Going to the settings to change them was always interrupted with a new tab opening in the foreground.
Finally, killing Firefox and renaming the file on disk before restarting Firefox did the trick and broke the loop. I was still holding down Ctrl+W for a minute or so to get rid of the useless tabs. I didnāt want to loose the important tabs, so just ditching the session wasnāt an option.
salty-chat TUI client as well, which now includes proper notifications and a background agent that keeps running so you never miss any messages. It all "just works"⢠and I'm quite happy with the outcome! 𤩠#saltyim #revamp
@bender@twtxt.net Whwn do i see you start to use Salty IM more? š
@movq@www.uninformativ.de Nice, itās coming together! Despite it being ages ago that I used a hex editor or viewer, these different representations of information appear very handy to me. If I had to mess around on binary formats, Iād definitely appreciate them. I canāt remember if the hex viewer back then had these options. Donāt even recall what software that was. :-)
I, too, only very, very rarely use the mouse in the terminal. Apart from selecting text to copy into the clipboard. But that probably has the potential for trouble and interference with button clicks, etc. If one isnāt careful.
How did the startup times develop?
Hmmm, thatās a pity. I never realized that before. The following Go code
var b bool
ā¦
b |= otherBool
results in a compilation error:
invalid operation: operator | not defined on b (variable of type bool)
I cannot use || for assignments as in ||= according to https://go.dev/ref/spec#Assignment_statements. Instead, I have to write b = b || otherBool like a barbarian. Oh well, probably doesnāt happen all that often, given that I only now run into this after all those many years.
Ah, nothing quite like a cold beer after a day of moving house without the use of a vehicle.
@shinyoukai@yume.laidback.moe I donāt have a use for it, just curious, why did you fork it?
Going to use Tor. I hope Dread will help me find what I want.
What a beautiful, beautiful 0°C Sunday arvo and evening! The weather forecast delayed the snow by the minute. An hour or so after it finally started very, very lightly, I headed off for the woods to check out the lake again. Unfortunately, with the fresh snow layer, the crazy wild surface texture of the ice sheet wasnāt visible anymore. But it brought some other nice views and photo opportunities.
I initially thought that I just go for a quick turn. However, with the snowfall a wee bit increasing I was hooked and kept going. Visibility was poor, but the snow blankets just looked too stunning. The road surfaces were quite slippery, so I often just walked alongside the pathways. On downhill slopes I had some good fun sliding down the road on my feet. With varying success. Luckily, I managed not to fall.
On the summit of the mountain the twigs had those absolutely magnificently looking windblown crystal coverings. Awwwwwww! They never get old. It was already getting dark, so the camera was tired and wanted to sleep. The snow program then made use of the flash and Iām quite pleased with how these shots turned out.
Two deer crossed the road in front of me and ran into the woods, that was sight for sore eyes. Although I felt bad that they had to flee from me in this white terrain. By the time I got home, the snow had accumulated around eight centimeters in height, even in town down in the valley. Walking on this fresh snow is just amazing. And I love the sound it makes. Today, the snow consistency must have been just right, because the crushing sound was really loud.
I cannot recall that I had frozen hair and beard before, but today, there was a thick ice buildup. In case I had, it was definitely never this much. Felt really cool.
Enough of this preliminary skirmishing, there ya go: https://lyse.isobeef.org/waldspaziergang-2026-01-25/
Has a bit of a long history story behind this, where last year at work we were reading this book called Engineering a Safer World and initially came across a service called Speech Reply that allowed me to upload a PDF copy of the book and start to read it, but unfortunately, the free trial right now before I can finish reading it turns out that Speech Reply service cost a whopping US$30 a month and expected me to pay a full year upfront, which was well over US$300 just for one fucking book! So I sent their sales and support staff a message kindly asking if it were possible to just pay for the audio transcription of just a single book or to change to a monthly subscription fee, to which they refused, so basically in the end I got very angry and told them to go fuck themselves and built my own service. A year later here we are :-)
you are anonymous, if you use tor and the onion site of magical.fish. But never look to more than one site.