Design trends I think will take off in 2026
but tierlist

S - move from flat design to more detailed, 3D, more complex logos.
A - glass, not just liquid, Windows Vista, 7, 11,⦠accessibility concerns, but I like to see it.
B-/C+ - black and white icons, favicons. I did it before it was cool, but itās getting overused.
E - gradientslop, barely started, already all blends together.
@movq@www.uninformativ.de Yeah, give it a shot. At worst you know that you have to continue your quest. :-)
Fun fact, during a semester break I was actually a little bored, so I just started reading the Qt documentation. I didnāt plan on using Qt for anything, though. I only looked at the docs because they were on my bucket list for some reason. Qt was probably recommended to me and coming from KDE myself, that was motivation enough to look at the docs just for fun.
The more I read, the more hooked I got. The documentation was extremely well written, something Iāve never seen before. The structure was very well thought out and I got the impression that I understood what the people thought when they actually designed Qt.
A few days in I decided to actually give it a real try. Having never done anything in C++ before, I quickly realized that this endeavor wonāt succeed. I simply couldnāt get it going. But I found the Qt bindings for Python, so that was a new boost. And quickly after, I discovered that there were even KDE bindings for Python in my package manager, so I immediately switched to them as that integrated into my KDE desktop even nicer.
I used the Python KDE bindings for one larger project, a planning software for a summer camp that we used several years. Itās main feature was to see who is available to do an activity. In the past, that was done on a large sheet of paper, but people got assigned two activities at the same time or werenāt assigned at all. So, by showing people in yellow (free), green (one activity assigned) and red (overbooked), this sped up and improved the planning process.
Another core feature was to generate personalized time tables (just like back in school) and a dedicated view for the morning meeting on site.
It was extended over the years with all sorts of stuff. E.g. I then implemented a warning if all the custodians of an activitiy with kids were underage to satisfy new the guidelines that there should be somebody of age.
Just before the pandemic I started to even add support for personalized live views on phones or tablets during the planning process (with web sockets, though). This way, people could see their own schedule or independently check at which day an activity takes place etc. For these side quests, they donāt have to check the large matrix on the projector. But the project died there.
Hereās a screenshot from one of the main views: 
This Python+Qt rewrite replaced and improved the Java+Swing predecessor.
@lyse@lyse.isobeef.org Hmmmmmmmmmmmm ⦠guess I should take a look at Qt. š¤ Thatās the one popular toolkit that Iāve never really tried for some reason. I really donāt like C++ (might as well use Rust), so Iāll also use Python.
@movq@www.uninformativ.de Donāt you worry, this was meant as a joke. :-D
There was a time when I thought that Swing was actually really good. But having done some Qt/KDE later, I realized how much better that was. That were the late KDE 3 and early KDE 4 days, though. Not sure how it is today. But back then it felt Trolltech and the KDE folks put a hell lot more thought into their stuff. I was pleasantly surprised how natural it appeared and all the bits played together. Sure, there were the odd ends, but the overall design was a lot better in my opinion.
To be fair, I never used it from C++, always the Python bindings, which were considerably more comfortable (just alone the possibility to specify most attributes right away as kwargs in the constructor instead of calling tons of setters). And QtJambi, the Java binding, was also relatively nice. I never did a real project though, just played around with the latter.
@movq@www.uninformativ.de Yeah, this is similar to my 2025 GWM Cannon Ute (truck) that we recently bought. It has this app called the āGWM Appā that lets you view various health/stats of the vehicle, open/close the door, locks, control the A/C etc, all from your Mobile Phone. ā But⦠Guess what?! :D It has a goddamn fucking SIM card in the head unit (dash) somewhere that once you āconsentā and agree it signs up to some god knows what local cellular service and all that wonderul functionality is controlled by, guess what⦠A fucking goddamn CLOUD service! da actual flying fuck is wrong with these people?! ā Are we some of the only people in the world that realize how fucking dumb all this Internet-connect shit⢠really is?
@itsericwoodward@itsericwoodward.com, hi there! Welcome to the twtverse! It seems you have a typo on your site address, an extra ācā.
What stupid weather in August. Iām sitting here on our terrace in my jacket. Itās raining and the temperature has dropped to 16° C.
^C
Hereās an example of X11/Xlib being old and archaic.
X11 knows the data type ācardinalā. For example, the window property _NET_WM_ICON (which holds image data for icons) is an array of ācardinalā. I am already not really familiar with that word and Iām assuming that it comes from mathematics:
https://en.wikipedia.org/wiki/Cardinal_number
(It could also be a bird, but probably not: https://en.wikipedia.org/wiki/Cardinalidae)
We would probably call this an āintegerā today.
EWMH says that icons are arrays of cardinals and that theyāre 32-bit numbers:
https://specifications.freedesktop.org/wm-spec/latest-single/#id-1.6.13
So itās something like 0x11223344 with 0x11 being the alpha channel, 0x22 is red, and so on.
You would assume that, when you retrieve such an array from the X11 server, youād get an array of uint32_t, right?
Nope.
Xlib is so old, they use char for 8-bit stuff, short int for 16-bit, and long int for 32-bit:
That is congruent with the general C data types, so it does make sense:
https://en.wikipedia.org/wiki/C_data_types
Now the funny thing is, on modern x86_64, the type long int is actually 64 bits wide.
The result is that every pixel in a Pixmap, for example, is twice as large in memory as it would need to be. Just because Xlib uses long int, because uint32_t didnāt exist, yet.
And this is something that I wouldnāt know how to fix without breaking clients.
Music discovery made easy
With the YouTube Music web player, you get new releases, covers, and hard-to-find songs

st tries not to redraw immediately after new data arrives:
https://git.suckless.org/st/file/x.c.html#l1984
The exact timings are configurable.
This is the PR that changed the timing in VTE recently (2023):
https://gitlab.gnome.org/GNOME/vte/-/issues/2678
There is a long discussion. Itās not a trivial problem, especially not in the context of GTK and multiple competing terminal widgets. st dodges all these issues (for various reasons).
We covered quite some ground in the two and a half hours today. The weather was nice, mostly cloudy and just 23°C. Thatās also why we decided to take a longer tour. We saw four deer in the wild, three of which I managed to just ban on film, quality could be better, though. My camera produced a hell lot of defocused photos this time. Not sure whatās going on with the autofocus. https://lyse.isobeef.org/waldspaziergang-2025-07-10/
When the sun came out, colors were just beautiful:

Just realized: One of the reasons why I donāt like āflat UIsā is that they look broken to me. Like the program has a bug, missing pixmaps or whatever.
Take this for example:

Iām talking about this area specifically:

One UI element ends and the other one begins ā no ātransitionā between them.
The style of old UIs like these two is deeply ingrained into my brain:


When all these little elements (borders, handles, even just simple lines, ā¦) are no longer present, then the program looks buggy and broken to me. And Iām not sure if Iāll ever be able to un-learn that.
@movq@www.uninformativ.de @kat@yarn.girlonthemoon.xyz Itās awful, ājustā 32°C here. When I rode my bike into town I came across some spots where the heat was stationary built up and really intense. The airflow felt like the sauna attendant poured water over the heated rocks and severely fanned the hot air with his towel.
It annoys me when I clone a git repository A in order to build and self-host some software, only to realize later that I also needed to clone repos B, C and D. Iām not saying thatās a bad thingālogical separation of code between, say, a client and a server is very handyābut some projects do not communicate very well when you need multiple tools to get it running independently.
#meteo Il est 9:30, 28°C. Ća va donner.
@prologic@twtxt.net ⦠or just bullshit.
Iām Alex, COO at ColdIQ. Built a $4.5M ARR business in under 2 years.
Some āC-levelā guy telling people what to do, yeah, I have my doubts.
@prologic@twtxt.net Iām trying to call some libc functions (because the Rust stdlib does not have an equivalent for getpeername(), for example, so I donāt have a choice), so I have to do some FFI stuff and deal with raw pointers and all that, which is very gnarly in Rust ā because youāre not supposed to do this. Things like that are trivial in C or even Assembler, but I have not yet understood what Rust does under the hood. How and when does it allocate or free memory ⦠is the pointer that I get even still valid by the time I do the libc call? Stuff like that.
I hope that I eventually learn this over time ⦠but I get slapped in the face at every step. Itās very frustrating and Iām always this š¤ close to giving up (only to try again a year later).
Oh, yeah, yeah, I guess I could ājustā use some 3rd party library for this. socket2 gets mentioned a lot in this context. But I donāt want to. I literally need one getpeername() call during the lifetime of my program, I donāt even do the socket(), bind(), listen(), accept() dance, I already have a fully functional file descriptor. Using a library for that is total overkill and Iād rather do it myself. (And look at the version number: 0.5.10. The library is 6 years old but theyāre still saying: āNah, weāre not 1.0 yet, we reserve the right to make breaking changes with every new release.ā So many Rust libs are still unstable ā¦)
⦠and I could go on and on and on ⦠š¤£
Nothing makes you feel better than mowing a wet lawn, while rain falls, under 33°C temperature, with 80% humidity. I loved every step I took!
Having some fun with SIRDS this morning.

What you should see: 
And the tutorial I used for my C program: https://www.ime.usp.br/~otuyama/stereogram/basic/index.html
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:
25keywords (Stack Overflow); CSP-style concurrency (goroutines & channels)
- Python 2:
30keywords (TutorialsPoint); GIL-bound threads & multiprocessing (Wikipedia)
- Python 3:
35keywords (Initial Commit); GIL-bound threads,asyncio& multiprocessing (Wikipedia, DEV Community)
- Java:
50keywords (Stack Overflow); threads +java.util.concurrent(Wikipedia)
- C++:
82keywords (Stack Overflow);std::thread, atomics & futures (en.cppreference.com)
- JavaScript:
38keywords (Stack Overflow); single-threaded event loop &async/await, Web Workers (Wikipedia)
- Ruby:
42keywords (Stack Overflow); GIL-bound threads (MRI), fibers & processes (Wikipedia)
@bender@twtxt.net Hereās a short-list:
- Simple, minimal syntaxāmaster the core in hours, not months.
- CSP-style concurrency (goroutines & channels)āsafe, scalable parallelism.
- Blazing-fast compiler & single-binary deploysāzero runtime dependencies.
- Rich stdlib & built-in tooling (gofmt, go test, modules).
- No heavy frameworks or hidden magicāunlike Java/C++/Python overhead.
Zum Entsetzen aller Beteiligten, wie auch umstehender Personen und einiger schamfreier Gaffer, welche sich an jenem tosenden Unheil zu ergƶtzen vermochten, folgte nun des Wochensortiments schrecklichste GeiĆel: šÆšš šøššššš.
Und es sollten sich die Wolken teilen, um über ihnen nimmer endende Irrungen und Wirrungen an bovinem FƤkal und fremdgetriebener Lethargie zu erbrechen, auf dass sie zu erkennen gezwungen wƤren, welche Urkraft der irrealen Zusammenkunft letztlich Herrschaft über sie darstellen sollte: šÆšš ššššššššššš.
So zogen sie alsbald hin, zu tun wie ihnen geheiĆen, wohlgleich sie ā diesem Schauerspiel trotzend ā Trost suchten im einzigen ihnen sicher geglaubten Elixir, das dem Abgrund unter ihnen gleichend tiefschwarz glitzernd Erlƶsung oder mithin als MindestmaĆ Linderung versprach, lag jenes doch in unmittelbarer NƤhe befindlich hoffnungsschürend bereit:
KĢøĶĶĶĶĶ̄ä̷ĢĶ̯̼̤Ķf̵̿ĢĶĢ̧f̷̾ĶĢ«ĢĢcĢøĢĢĶh̶ĢĶĶĶ̳eĢ·ĶĶĶĢ«ĢĶn̵Ģ̨̳̬?Ģ“ĶĢĢ© ā
@kat@yarn.girlonthemoon.xyz You donāt need to change the directory first in line 11, you can just create the directory, thatās sufficient since youāre having an absolute path.
The echo in line 13 is useless, you can simplify this to: newdir="$WD/$now" If you reversed this line with the previous one, you could make use of the variable in the directory creation: mkdir "$newdir".
In line 16, pull the directory change out of the loop upfront. The loop body doesnāt modify the working directory, so no need to reset it with each cycle. In fact, you could even spare the cd altogether when you simply tell find where to look: find "$basedir" -type fā¦.
I didnāt try it, but if I read the manpage correctly, you should be able to simplify line 19 as well:
-C Change to DIR before performing any operations. This option is order-sensitive, i.e. it affects all options that follow.
Hence, remove the cd and put the -C "$WD" as the first argument to tar. Again, I didnāt try it. Proceed with caution.
Finally, you donāt need to specify the full path to rm in line 21. I bet, /bin is in your PATH. When you removed the previous cd from my last suggestion, the relative path that follows wonāt work anymore. So, just use the absolute path that you already have in a variable: rm -rf "$newdir"
I hope you find this tiny review a wee bit useful. :-)
@movq@www.uninformativ.de @bender@twtxt.net 28°C right now, but luckily, just 20°C tomorrow and rain. Even a thunderstorm at night. On Sunday weāre down to 12°C. What a ride. Oh boys!
So, weāre at roughly 30°C now and my brain is in lala land. š„µā¹ļø
I visited a good mate after a day in the office and went for a stroll in the evening. It still was really hot, phew, about 24°C. Must have been the aftermath of the fire in the morning! For sure! The firealarm went off during a meeting and we all had to leave the building. Anyway, I only managed to take one lizard photo, all the other ones we came across immediately vanished in the brush or cracks in the vineyard walls. The kestrels were way more cooperative:

Bon bah, cet aprĆØm, cāest sysupgrade #openbsd
Trinity Desktop Environment R14.1.4 released
The Trinity Desktop Environment, the modern-day continuation of the KDE 3.x series, has released version R14.1.4. This maintenance release brings new vector wallpapers and colour schemes, support for Unicode surrogate characters and planes above zero (for emoji, among other things), tabs in kpdf, transparency and other new visual effects for Dekorator, and much more. TDE R14.1.4 is already available for a variety of Linux distributions, and c ⦠ā Read more
I went on a small hike, just 12-13km this time. The weather was great, blue sky, sunny 18°C, but with the wind it felt colder. Leaves and other green stuff is exploding like crazy. It looks super beautiful right now.
I came across an unfortunately dead salamander on the forest road, some fenced in deer, heaps of sheep, some unmagnetic cows (some were aligned very roughly north-south, but mainly with the axis of the best view I believe), a maybeetle and finally an awesome sunset. Not too shabby! The sheep were mehing all the time, that was really lovely to hear. And the crickets were already active, too. Didnāt expect them to hear yet. I tried to record the concert, but the wind messed it all up. Oh well.

RetrOS-32: a 32bit hobby operating system with graphics, multitasking, and more
RetrOS-32 is a 32bit operating system written from scratch, with graphics, multitasking and networking capabilities. The kernel is written in C and assembly, while the userspace applications are written in C++, using Make for compilation, all licensed under the MIT license. It runs on Qemu, of course, but a variety of real hardware is also supported, which is pretty cool and r ⦠ā Read more
Can you automate the drawing with a script? On X11, you can:
#!/bin/sh
# Position the pointer at the center of the dot, then run this script.
sleep 1
start=$(xdotool getmouselocation --shell)
eval $start
r=400
steps=100
down=0
for step in $(seq $((steps + 1)) )
do
# pi = 4 * atan(1)
new_x=$(printf '%s + %s * c(%s / %s * 2 * (4 * a(1)))\n' $X $r $step $steps | bc -l)
new_y=$(printf '%s + %s * s(%s / %s * 2 * (4 * a(1)))\n' $Y $r $step $steps | bc -l)
xte "mousemove ${new_x%%.*} ${new_y%%.*}"
if ! (( down ))
then
xte 'mousedown 1'
down=1
fi
done
xte 'mouseup 1'
xte "mousemove $X $Y"

Interestingly, you can abuse the scoring system (not manually, only with a script). Since the mouse jumps to the locations along the circle, you can just use very few steps and still get a great score because every step you make is very accurate ā but the result looks funny:

š„“
Je vais tenter la version community de /e/OS pour avoir la version 13 dāandroid. Je sui bloquĆ© pour quelques trucs sinon, cāest trop bĆŖte, jāai pas envie de racheter un tĆ©lĆ©phone #ecologie
Devs sound alarm after Microsoft subtracts C/C++ extension from VS Code forks
Comments ā Read more
TacOS: an x86_64 UNIX-like OS from scratch
TacOS is a UNIX-like kernel which is able to run DOOM, among various other smaller userspace programs. It has things like a VFS, scheduler, TempFS, devices, context switching, virtual memory management, physical page frame allocation, and a port of Doom. It runs both on real hardware (tested on my laptop) and in the Qemu emulator. ā« TacOS GitHub page TacOS ā great name ā is written in C, and explicitly a hobby and toy project. The codeās licensed ⦠ā Read more
@bender@twtxt.net Thanks! The rain rapidly cooled off the 17°C to just 10°C. I certainly appreciated that. The weather is coming from the west here, so I thought youāve sent it our way. Let me try to return it. :-)
VoilĆ , je ferme mon abonnement freebox pour retourner chez ovh. Maintenant, cāest free mobile que je veux remplacer, reste Ć trouver un fournisseur pas trop mal
Ok, cāest le moment de lāannoncer : le persil est sous cĆ“tĆ©. Le persil, cāest une tuerie. Un hachis parmentier avec des lentilles+persil, cāest de la bombe. voilĆ !
A mate and I had an amazing but also exhausting hike to the highest of the Three Emperor Mountains yesterday with perfect weather conditions. Sunny 18°C, blue sky with barly a cloud and a little welcoming breeze, just beautiful.

Mt. Stuifen is 757 meters above sea level, has a small shelter and a barbie area and is still the most boring one of the three. Itās also the one farthest away from me. Not sure why it has two summit crosses, but both arenāt at the summit. The third, makeshift one at the real summit was gone by now. Four years ago, somebody had cobbled one together and put it up.
We bought our tucker at a local bakery on our way. This was the first time I tried a Teufelsbrezel (lit. devilās pretzel), a lye pretzel with pepper. Havenāt come across that anywhere else. But I can certainly recommend that, itās yummy.
We were glad when we were finally back home after some 26 or 27km. I wonāt do much today and let my feet rest. Another friend called for a much, much shorter hike tomorrow.
Enjoy the 92 photos: https://lyse.isobeef.org/wanderung-auf-den-stuifen-2025-04-19/
C š
@david@collantes.us If I run
printf '%s\n%s\n%s' 'https://aelaraji.com/twtxt.txt' '2025-04-16T22:49:11+00:00' "Am I tripping or `rsync` is actually THIS effing faster than `scp`!!? š«Ø" | b2sum -l 256 | awk '{ print $1 }' | xxd -r -p | base32 | tr -d '=' | tr 'A-Z' 'a-z' | tail -c 8
I have xqfsv6a. It is raw text
But⦠If I change de date to 2025-04-16T22:49:11Z I have si4er3q.
@lyse@lyse.isobeef.org I walked under 25°C during my lunch hour today, but with a sunshine that could fry an egg if dropped on the asphalt. I told a friend in Manila about it, and she told me that 25°C is Winter/Christmas temperatures for them. I felt cooler right away. :-)
We had some nice 22°C today. But after work, it got rather windy and cloudy, temps rapidly dropped so just 14°C. Still a nice stroll to our backyard mountain. https://lyse.isobeef.org/waldspaziergang-2025-04-16/
The subjective charms of Objective-C
To argue that Objective-C resembles a metaphysically divine language, or even a good language, is like saying Shakespeare is best appreciated in pig latin. Objective-C is, at best, polarizing. Ridiculed for its unrelenting verbosity and peculiar square brackets, it is used only for building Mac and iPhone apps and would have faded into obscurity in the early 1990s had it not been for an unlikely quirk of history. Nevertheless, in my time working as a softwar ⦠ā Read more
@anth@a.9srv.net Hahaha, for a second I thought that you implemented word splitting according to Swiss (.ch) rules. :-D
Btw, both manpage links string(2) and getields(2) (itās missing an f) point into nothingness: http://a.9srv.net/src/wordwrap.2.html
I canāt help but notice line 9: http://a.9srv.net/src/wordwrap.c
And I reckon your finger slipped one key to the right for quore: http://a.9srv.net/src/litclock.1.html
Cool stuff! :-)
@lyse@lyse.isobeef.org thatās such a beautiful shot! If I were you I would use the full āoriginalā one; it will do better justice to the shots. Oh, and I gladly take your 15°C! š