From Missing the Playoffs to the NBA Finals ?~L~X https://thenewleafjournal.com/b/E3N
Oh god, finally: The thumbnail generator for my blog now renders a typical āplayā icon for videos.
https://movq.de/v/017c2070f4/s.png
Saves me the need to write āthis is a videoā every time. š¬
@movq@www.uninformativ.de Yes. The author tries hard not to break existing code, but apparently he did this time. In his defense, itās not an official release, I just updated to master. Which is exactly what I always did in the past as there are no real versions (I even think that in one ticket he wrote years ago that master is always stable). That has finally changed a year ago, though: https://github.com/rivo/tview/releases/tag/v0.42.0
@prologic@twtxt.net Awesome work!
Iāve been thinking about learning Go for a while, maybe this will be the thing that finally gets me to do it.
Every now and then, I think that I have carefully proof-read my message enough times and hit the āAdd messageā button in tt. But then, in the message tree, I spot another missed typo. My process is then to go to my twtxt.txt and fix it by hand. However, I still have to clean up ttās cache. This is rather tidious:
- Recall the
sqlitebrowser ~/.local/share/twtxt/tt2.sqlitefrom my shell history.
- Switch to the āBrowse dataā tab.
- Go to the
messagestable and wait a second or two until itās loaded.
- Sort by the
created_atcolumn twice, so that I get descending order.
- Select the first message, which is typically the one in question.
- Find the āRemove currently selected rowā button in the tool bar.
- Commit the changes.
- Close sqlitebrowser.
So, I finally implemented the removal of messages from the cache in tt. I can now hit d and confirm the removal. Bam! Should have done that ages ago!
https://lyse.isobeef.org/tmp/tt-confirm-message-removal.png
Next up is the search, I think.
I went to check on the fireflies this season. But I didnāt see any. Instead lots of moths. At first, I thought it might have been still too light, but it was already dark enough for me to miss and destroy a snail shell. Bummer. Maybe it was too wet tonight. Although, itās probably just another or two weeks until my glowing friends will finally show up.
In the beginning, I passed two beautiful deer on the edge of the forest. They were just ten meters away, but didnāt run off, really cool. :-) I kept on walking. Before I eventually left the woodland, a frog or toad crossed my path. It was very dark by then, though, so all I could see was a black blob.
Back in town, the street lamps on the first third were all turned off for some reason. I was already glad that I will reach home without getting blinded this time, but unfortunately, the other lamps were all operational.
For this weekās (slightly late) #caturday, Iād like to introduce our 4th and final feline resident, the old boy we call Bugsy. Heās been with us for 8 years, and we think heās 13-14 years old (but heās not saying).
He used to sound a bit like a cartoon gangster (hence the name), but as the years have passed, he started to sound more like late-stage William Hickey (Uncle Lewis from Christmas Vacation).
Heās our sweet little old man, and he is loved.
NBA Finals Appearance Droughts ?~L~X https://thenewleafjournal.com/b/E2e
Years ago, I used Kate, no, not somebodyās wife, but the KDE Advanced Text Editor, to export source code files and fragments into HTML with syntax highlighting. I think thatās where I got the initial <b> idea from. There were also bucketloads of <span style='color:#644a9b;'> all over the place, even inside <b>. No CSS classes defined upfront, all colors inlined. The final rendering in the browser looked great, but the source code ugly as hell in my opinion. However, Iām thankful for hinting me at <b>. I think this kicked off everything. :-)
@movq@www.uninformativ.de Itās the āLyse types the entire HTML by handā generator. Yes, no kidding. I write articles so rarely, that I can do that once in a while. Itās fun to some degree, but also not.
After some time, I finally recorded some Vim macros to insert <b>ā¦</b>, <var>ā¦</var>, <span class=s>ā¦</span> etc. around the tokens. This helped a little bit. But I was still questioning my mental state doing it like that. I also had to fix a bunch of the end tags by hand, because the word movement wasnāt enough or the end movement went too far. Quite the annoying process for sure.
But I think the HTML looks a wee bit nicer and is maybe even semantically a little bit better than having only <span>s everywhere. I find the <span class="whatever"> just soo awfully long. Of course, I never look at the code again, but knowing, that e.g. there is a <b> and it saves so many bytes in comparison, makes me happy. It is a more elegant solution in my opinion. Not by much, but better nonetheless. Itās a matter of simplicity. Admittedly, even I canāt avoid the <span>s alltogether. Oh well. On the other hand, Iām sure that this does not make any difference whatsoever. I bet, nobody and nothing, like a screenreader, analyzes the HTML for that, where this would be truly useful.
Oh! Maybe text browsers, though. It just occurred to me while composing this reply. :-) Haha, I lost my bet quickly. w3m picks up at least the <b> for keywords and builtin types, <u> for filenames and <i> for comments. Yey. No different styles for <var> and <mark>, unfortunately. elinks only renders the bold. Itās cool that I had the right intuition right from the beginning, despite being unable to pinpoint it. :-)
All the <span> hell with common syntax highlighters is a downer for me that keeps me from looking more into them. If I wrote more articles, I might rig something up with Pygments. At least thatās somehow positively connotated in my brain. Not sure if it actually deserves it, but I dealt with that in some loose form (canāt even remember) years and years ago. Apparently, it wasnāt too terrible.
To prepare the table of contents, I used grep and sed with some manual intervention in the end. The entire process can be improved. Absolutely.
You wrote your own site generator, didnāt you?
Yay finally fixed some of those annoying āMark as Readā behaviours/bugs š
@movq@www.uninformativ.de Iām very curiousā¦
What I like about this whole computer stuff is that you can explore how
things work. You can dig through problems and solve them. Nothing is
more satisfying than finally understanding something after you scratched
your head for some hours.
Surely you could do the same with AI? Tinker with how it works, study it, understand it, build your own and realize what it really is (without all the big tech hype)?
Of course, @movq@www.uninformativ.de! Most of my points are also included in your list.
First of all, programming is what I really do enjoy the most. So, it doesnāt make any sense at all to not do this anymore. āBut you could use your now free time to do something much cooler and more valuable!ā, others might reply. Fuck no, I donāt want to waste my time with other shit that doesnāt fulfill me, why on earth would I want to do that?
All this hallucination reduces quality badly. In my experience, itās also happening much more rapidly than I expected. Even though developers are still supposed to own and understand whatever has been generated under their name and even be responsible for that, the sad reality is that teammates often blindly trust the AI output. āBut I asked the AI and it told me that $this was impossibleā, āIāve no idea either, but the AI just generated itā are responses I get more often. What really makes my angry is when I point out a flaw and suggest an alternative and this is the reaction. It happened several times that just trying it out and seeing it clearly work to proof my point only took me half a minute, but people still did something handwavy else instead.
The learning effect is drastically reduced. The more time I spend on a topic, the better the odds that whatever I learned actually makes it over into long-term memory. Itās like if a collegue just says ādo it like thatā or āthis solves your problemā, but neither explains the why or how. Somehow, people are still convinced that itās a completely different story when you replace the human counterpart with a computer program in this equation.
Skills are unlearned. Itās like with automation in general, just much worse. You end up in a state where youāve no clue how anything works under the hood or how to actually find out important information that are needed to solve your problem. Youāre screwed when a process breaks out of the blue. Even though it can become also rather terrible, with classical automation youāre typically still be able to decipher how exactly the thing was supposed to do something.
The energy consumption is sooo high, I absolutely do not want to be a part in burning down our planet. Iām sure I find (and probably have long found without knowing) other ways to contribute to worsen our climate crisis.
The scraper part is already covered in detail in your list. :-)
Iām convinced that license and copyright violations are only played down or even refused entirely because companies want to make big money quickly. With the work of others of course. Their double standards are obvious, they still try to actively keep their own stuff secret and out of any training sets. At most for internal use only. Virtually noone in charge is interested in good long-term solutions. Short-term for the win, when disaster eventually strikes, the causers are long gone, the responsibilities in other hands.
Vendor lock-in is something that lots of folks are only realizing very slowly. Itās completely crazy to me. This drug dealer routine should be well-known by now. Itās fucking everywhere. Yet, people are always surprised when they found themselves caught in it.
Adding new AI stuff only increases complexity. But complexity is the enemy that everybody should fear and reduce as much as possible. Of course, this is not limited to AI at all. And everywhere I look around, people in charge looooove to make things way more complicated than they ever need to be. Yet, simplicity is the real art and much harder to achieve.
I donāt understand why we have to go back full force to the ambiguity of natural languages. This alone should be more than enough to realize what a stupid idea all that is. Linked to that is that the āinstruction setā is interpreted differently with newer model versions. I mean, is has to be. Why else would somebody want to upgrade in the first place than to get more Powerful⢠Featuresā¢?
Some people argue that with AI the democratization is empowered. However, in my view, the exact opposite is the case. Models are getting so large that you can basically not run them locally or even train them. So, you have to rely on whatever the vendor offers you and runs for you. In the end, this only gives the owners more power, the multi billionaires. Not exactly what I understand by democratization.
Finally, technology assessments are missing completely. Or they are faked such that mostly only the (questionable) benefits are listed. But all the negative impact is just ignored.
Letās keep some popcorn around for when this all explodes. :-)
Print to Shift+Print a long time ago to launch import and upload the screenshot to my server. I was constantly hitting that stupid key on accident when I actually wanted to press [AltGr].
@lyse@lyse.isobeef.org ⦠this reminds me that I should finally write that tutorial on how to make your own X11/Wayland keymaps. That helps a lot in mitigating stupid design issues like these.
@lyse@lyse.isobeef.org movq.de took ages to come up, but it finally did. Weird.
My Gemlog now finally has an Atom feed for Gemini as well as for the web at marcorocco.net/atom.xml.
I left at full sunshine and completely forgot to bring my bicycleās headlamp. The taillight is always on the bike, but the front one gets charged in the house after every trip. Luckily, I found a torch and roll of duct tape in my hiking backpack. It finally paid off that I always carry all this silly gear around.
A few weeks ago, I actually thought about removing the torch, because itās been a hot minute when I last used it. Fortunately, I did not. :-)
@klaxzy@klaxzy.net I should cancel Netflix as well. Back when they started their streaming service, it was a revelation: Finally, I could watch interesting shows in English, without having to wait for years, and legally (I like to be a paying customer, if itās good). But this is long over. The interesting shows are gone or, once again, I have to wait for years until theyāre available on Netflix. So, why bother anymore? š¤·āāļø
Just a couple of shots from our trip to Bald Rockāfinally got reception so I can share them!

@movq@www.uninformativ.de Yeah. Unfortunately. :-( I tried to bring up the subject of dependency upgrade reviews a few times, but nobody else cared. We finally experienced a supply chain attack (luckily, didnāt turn out too horrible for us, could have been worse) and this got the discussion slowly rolling again. So, publication of this article is perfect timing. Letās see. Admittedly, I donāt have high hopes. And I bet someone suggests to use AI agentsā¦
Thank you, @bender@twtxt.net!
My mate and I took advantage of the public holiday and went on a hike. At first, the 14°C and only slight wind werenāt all that terrible, especially since there were only a few clouds. Later, the sun got covered more and more and also the wind picked up. I was really glad that I brought my jacket along. In the beginning I was contemplating about leaving it at home, but then still wore it and stripped it a few minutes into the trip. It was very windy at the summit, so for our second lunch break wearing it was an absolute must. It was a very beautiful trip and I enjoyed my mateās company.
Finally, Azabache showed up, too. I didnāt bother videoing with all the wind. Didnāt feel like fixing the audio. Maybe tomorrow.
Finally finished The Long Way, by Bernard Moitessier. Itās good, but his first two are better ā ā ā š
I thought that YouTube finally destroyed all the feeds, because I didnāt get any new entries in my newsreader for days. Now I realized that Newsboat somehow just froze. No idea what happened. This is the very first time ever in all those years. Havenāt updated the version for literally years. I reckon I will compile the upcoming version then. This will require a new Rust toolchain, thatās going to be great fun, Iām sure. Already looking forward to thatā¦
Welp, finally dug out after the snow. Iām officially ready to spring
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 In case youāre into terminal clients, you might like tt. We finally managed to abolished our GitLab instance, so I would need to make the code available to the public differently.
Letās finalize https://git.mills.io/yarnsocial/twtxt.dev/pulls/28/.
@bender@twtxt.net Just for fun, I made it through the entire Wikipedia article and I find it interesting, how deeply one can analyze a fairytale. :-D This also made me realize that, as a kid, I never questioned why the princess was traveling alone without any servants etc.
Finally, the Danish language lacks the subjunctive. Wow! I didnāt know that.
Finally watched On The Waterfront, from 1954. It really is all about Brandoās performance. Worth the wait ā ā ā ā š½ļø
Well itās ~2am and I finally defeated the AI player in a game of Frontier Crown š
ā On that note Iām now going to bed, Iāve made so many improvements to the aesthetics (UX) of the game, the mechanics, and itās now quite nicely playable š Gānight! š“
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.
nutts.org finally has some content
Have finally put together the beginnings of a site for Mu (µ) https://mu-lang.odev š¤ #mu #mu-lang
Have finally put together the beginnings of a site for Mu (µ) https://mu-lang.dev š¤ #mu #mu-lang
Iāve got sore muscles. The sticky snow couldnāt be pushed, it had to be laborously cleared shovel by shovel. :-D
In my lunch break, I went on a short stroll. Oh boy, walking through deep damp snow is exhausting! There were sections with easily 30 centimeters and more. Some big wind drifts had piled up. Despite melting off quickly in the 4°C, especially turning the trees brown again, the white landscape still looks so nice. Iām glad these road marking sticks finally came in handy for the snow plow guys. :-) The black and orange stripes are 30 cm high.
https://lyse.isobeef.org/waldspaziergang-2026-01-26/
Thatās probably it. Thereās no significant snowfall announced for the rest of the week and temperatures are supposed to stay in the 2-4°C range by day.
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/
Last night, I beat Castlevania SotN. Tonight, I won the Superbowl in NFL Blitz 2000.
Clearly, my mad PS1 skillz are finally at their peakā¦
Took me nearly all week (in my spare time), but Mu (µ) finally officially support linux/amd64 š„³ I completely refactored the native code backend and borrowed a lot of the structure from another project called wazero (the zero dependency Go WASM runtime/compiler). This is amazing stuff because now Mu (µ) runs in more places natively, as well as running everywhere Go runs via the bytecode VM interpreter š¤
I think this is finally a good metaphor to talk about āsimpleā software:
https://oldbytes.space/@psf/115846939202097661
Distilled software.
I quote in full:
principles of software distillation:
Old software is usually small and new software is usually large. A distilled program can be old or new, but is always small, and is powerful by its choice of ideas, not its implementation size.
A distilled program has the conciseness of an initial version and the refinement of a final version.
A distilled program is a finished work, but remains hackable due to its small size, allowing it to serve as the starting point for new works.
Many people write programs, but few stick with a program long enough to distill it.
I often tried to tell people about āsimpleā or āminimalisticā software, āKISSā, stuff like that, but they never understand ā because everybody has a different idea of āsimpleā. The term āsimpleā is too abstract.
This is worth thinking about some more. š¤
Finally Skyrim weather. š„³
He comenzado el año viendo el último episodio de Stranger Things, y bueno al igual que muchos, me hubiera gustado un final mÔs feliz, pero al menos fue feliz.
@shinyoukai@neko.laidback.moe We finally abandoned our GitLab. I publicly mirrored my code in the Mills Data Center a few days ago: https://git.mills.io/lyse/tt2
Hurray, I finally fixed another rendering bug in tt that was bugging me for a long time. Previously, when there were empty lines in a markdown multiline code block, the background color of the code block had not been used for the empty lines. So, this then looked as if there were actually several code blocks instead of a single one.
https://lyse.isobeef.org/tmp/tt-bugfix-empty-lines-in-multiline-code-blocks.png
very good blog post that reminded me why itās taking so long to ship bbycll ā previously i had computed the hashes of every post before storing them in the database, after realizing itās a much better idea to compute the hashes during runtime and only store the post content & timestamp iām now having to rewrite every function that reads & writes data. i hope the reason as to why i lost motivation is obvious ā thankfully i caught it early enough so that once iām done rewriting just those functions i should⢠be able to finalize 1.0-rc with little hassle
@movq@www.uninformativ.de @kiwu@twtxt.net it just so happens to be a happy coincidence that Iām extending muās capabilities to now include a native toolchain-free compiler (doesnāt rely on any external gcc/clang or linkers, etc) that lowers the mu source code into an intermediate representation / IR (what @movq@www.uninformativ.de refers to as āthick layers of abstractionsāā¦) and finally to SSA + ARM64 + Mach-O encoder to produce native binary executables (at least for me on my Mac, Linux may some later?) š¤£
@kiwu@twtxt.net Finally doing some Assembler again. š Just a tiny little bit at least.
FFS! Finally got a better Internet service š„²
Finally Solving My HDMI ARC Problems ?~L~X https://thenewleafjournal.com/b/DpY
Finally!! I can go to sleep!