@lyse@lyse.isobeef.org Yeah, I have a couple of teachers in my family and they all tell similar stories. š
I have almost no recollection of my time at the āGymnasiumā anymore. Iām either traumatized by it or I wasnāt very interested in what happened there. š But I have some vague memories of doing ācomputer stuffā at school. There certainly were computers and they certainly ran DOS games like Duke Nukem, that I do know. š Just checked my records, and no, this wasnāt an official class. At best, it was one of those AGs. š¤
@lyse@lyse.isobeef.org It was before my time as well. 3.0 was my first. š
@movq@www.uninformativ.de ahem that dreaded time has come! In the US they are due on 15 April, and wife, the tax doer, waits until the last day to complete them. āIf we are going to pay, we may as well delayā, thatās her motto. š
@movq@www.uninformativ.de That was before my time, I joined the party late. :-)
@movq@www.uninformativ.de Thatās right, way harder than centrally managed. They even didnāt reach concensus over the main folder: āAlle Programme, āAlle Programme (x86)ā, āAll Programsā, āAll Programmesā, etc. Anyway.
For class 11 (or maybe already in 10, I donāt remember exactly) we could choose either between traditional maths class with a graphical calculator or āMathe mit CASā. There were two teachers in my entire school who were able to teach the latter. It was also fairly new at the time I believe. Certainly unheard of for a āallgemeinbildendes Gymnasiumā, maybe the technical ones were already offering it for some time, not sure. It was clear to me that I would take the maths with CAS class.
Each kid had to buy their own Cassiopeia A-Something. I donāt know how much that thing was (definitely more expensive than a graphical calculator) and whether the school subsidized that in any form. But it was slow and underpowered as hell. We rarely used it in class nor for homework (most if not all had already a desktop at home). Typically, when we worked with the CAS, we sat down on the desktop computers. Our class took place in one of the two computer rooms. The desktops were placed on the three sides (left, right, back, facing the walls or windows) and the regular school desks were in the middle. Since there were more pupils than desktops, we always shared. Nowadays, we call it pair programming. ;-)
For the exams we had the āmandatory partā (Pflichtteil) without any tools. Once we finished that and handed the papers to our teacher, we were then allowed to boot up our Cassiopeias and work with them for the second part. Before the exam started, everyone had to show the teacher that they reset their small computer to factory settings. This second part was called āWahlteilā. But you had to do it in order to pass. So, I never understood the choice of this term. Maybe itās because the first part is the exact same for everyone (graphical calculator and CAS class), but the second part was definitely different for the two classes. Each suited to their tools.
After one or two exams, it became clear that the Cassiopeia was far from ideal. So, we took the second part at the desktop computers from then on. Our teacher unplugged the network cables himself to avoid cheating. Each computer had an āHDD Sheriffā running that reset the disk at startup. There was also an issue that the personal user accounts were affected by that. Sometimes all your data were lost. If you were lucky, they were still there. So, we saved our Maple project to local disk (if the computer didnāt crash in between, that was no problem) and at least eventually before leaving the classroom, we then also saved it on the server. For that, the teacher quickly plugged in the cable, we saved, and then the cable was unplugged again immediately. Oh, and everybody used their USB sticks, too.
All in all, this Cassiopeia A-* was quite a useless purchase. :-D Iām not sure if I still have it. At least I thought several times about giving it to the flea market. Donāt know if I did or not.
@movq@www.uninformativ.de Yes, this screenshot. However, not the Dutch but rather the German version, no wonder it looks so crazy!!1!11
Itās been a hot minute or two since I last used KDE, so I donāt remember exactly. I just vaguely recall that I found myself thinking multiple times that the KDE application categories were better matching or there were more or something like that. Most of my classmates were on Windows and had one giant long list of all sort of stuff in there. You even had to scroll in the menu. Sure, they installed all kind of garbage, which didnāt exactly help. Where in KDE, they were actually grouped by Office, Internet, Graphics, Multimedia, Games, etc. In Windows, applications usually hid themselves in a sub folder named after the software vendor. At least in the later (?) days.
I only used Win 95, 98 and XP at home. For maths class with computer algebra system (Maple), we had a Cassiopeia with Win CE: https://en.wikipedia.org/wiki/Casio_Cassiopeia At school, there was probably also Win 2000, but I donāt know anymore for sure.
@lyse@lyse.isobeef.org In what way was KDE 3ās menu organized? KDE 1 is the only KDE version I ever used. š Weāre talking about this one, right?
Isnāt Notepad++ and Python cheating!? :-D
Well, Python was certainly already a thing back then, but Notepad++ is from 2003, right. I think I used https://www.wintotal.de/download/proton/ at the time? Maybe? I donāt know. š
@movq@www.uninformativ.de Regarding https://movq.de/blog/postings/2026-06-16/0/POSTING-en.html:
In my opinion, the KDE 3.5 menu was organized way better than the Windows Start menu. Granted, a typical KDE installation had much more applications to offer, too. So, there was more need to get it right. And it probably was also later in time.
Isnāt Notepad++ and Python cheating!? :-D
Crazy story on the clockās seconds. I never heard of that before. Neat.
Yeah, UI these days is horrible. (Thatās why my own TUIs suck, too!)
Itās one of those topics that might cause outrage because Iām getting it all wrong.
So far, nobody noticed. It didnāt get posted on HackerNews or Lobsters this time, and it only got 46 hits so far (as opposed to ~50-100k hits when it does end up on those sites). š¤£
@lyse@lyse.isobeef.org Oh, 02.jpg is great. Camera just a little lower next time to put more emphasize on the ⦠whatever that is in the foreground. š
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. š¬
The dairy farm has a new milk vending machine. The prices increased by 20%. One liter is now 1.20⬠instead of 1.00ā¬. But I donāt complain.
In a few meters of shrubs there were easily 50 butterflies. That was crazy, Iāve never seen this many in one spot. I should have taken a video.
The grain field in the beginning was looking so great. Crazy colorful and very yummy looking. I would have loved to take a bite. Or at least lie down right in the middle.
That was another great time in the outdoors. The 21°C were killing us, though. We were always glad when we reached a shady spot with a little breeze. Iām not gonna survive the 35°C later this week. :-(
@maurice-renck@maurice-renck.de Nice write-up. One of the things I was always impressed with is that the GPS system has to account for time dilation due to the effects of relativity (38 microseconds worth, per Wikipedia).
All that for a burger!
After the last two days were dry and a tad warmer, I left the house a few minutes later to check again. It was similar to last time. One deer on the pasture that didnāt run off, it was roughly 15-20 meters away, a bit further than the day before yesterday. Probably even the same individual. Many moths, zero fireflies and another two deer on the mown meadow when I left the forest. Those were closer to 50 and 100 meters away and evenutally escaped into the woods. The same street lamps were off, too.
The lovely smell of cut grass was in the air. Venus and Jupiter reflected brightly in the West. What a stroll, I call that a great success. :-)
@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
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:
Fuck me! I tried to upgrade tview and the first thing I notice is a shitload of added dependency versions:
go.mod | 18 ++++-----
go.sum | 97 ++++++++++++++++++++++++++++++++++++++-----------
My code does not compile anymore as the view.FormItem interface was extended. Get/SetDisabled(ā¦) are quickly implemented, no worries.
But the tview.Primitive (what makes a widget) interface has now a bunch of PRIVATE methods. For focus handling. Would you believe that!? Thanks, I cannot satisfy this interface in my very custom widgets anymore. Okay then, I just embed *tview.Box. tt now successfully compiles, but does not react anymore on key presses and the message tree is not focused either.
Iām not in the mood to debug this shit. :-( Lunch time.
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:
Getting the vim key bindings to work for focus switching in this modal dialog took me forever. Only cursors and (Shift+)Tab are supported out of the box. I absolutely understand that, itās fine. I installed an input handler on the dialog, but the focus always stayed the same.
After two wasted hours, I was in despair to copy the tview.Modal into my own code base. Of course, I had to fix all the private tview field accesses first. But even installing the input handler directly on the buttons themselves did not work. Even though, the handler was definitely executed, the focus did not shift. Forcing redraws as a last resort also did not work.
Looking through all the messy chained input handling, I eventually stumbled across another place in the tview.Form, which is internally used by tview.Modal. This messed around with app focus receptions and input handlers. This gave me the idea to make the tview.Application refocus my modal dialog after I told the modal dialog which button to select. And would you look at that, this did the trick! I havenāt completely figured out what is going on exactly, but I could get rid of my Modal clone again.
I always go through hell with focus handling in tview. Each and every time. It just does not feel natural to me. Complete brainfuck to wrap my head around. The Urwid API felt sooo much more refined, it never was an issue. It just works. In fact, I cannot think of any other TUI library that has remotely the same pain level when it comes to focusing widgets as tview.
Now Iām curious how movwin deals with that. ;-)
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.
@lyse@lyse.isobeef.org Thanks!
On the AI changelog part, though, Iād rather recommend to just not have a changelog at all.
Iām afraid that ship has sailed. You can rest assured that someone who uses AI/LLMs for their code (which is almost everybody at this point) will most certainly also use it for changelogs.
I actually considered not mentioning AI output at all, because this just opens a huge can of worms ⦠š
While going through these terrible GitHub release pages, I also found these āNew Project Contributorsā sections
Yeah, they play on a nerdās pride.
Now, itās just the same auto shitshow with MR titles in a rolling date-versioned release scheme. Itās just our team who has to deal with that, though. I think Iām the only one who is not a fan of it.
Iāve found that this whole situation is much worse at work than it is in the Free Software world. At work, itās literally work and hardly anybody actually cares. We still donāt have all people convinced that writing good commit messages or using good branch names is worth the time. Itās ⦠oh god, no, Iām going to stop here, this is bad for my mental health. š
Suffice it to say, all release notes at work are now AI-generated. Nobody gives a fuck.
@movq@www.uninformativ.de Hahaha, great timing! :-D I love your article and agree with almost all your points.
On the AI changelog part, though, Iād rather recommend to just not have a changelog at all.
Another important thing for me is the deprecation notice section. What do I need to look out for in the future? Should I start to migrate to another API soon? Even right now? Or does it have time?
While going through these terrible GitHub release pages, I also found these āNew Project Contributorsā sections (yeah, for that, they found the time to make a section) annoying. Donāt get me wrong, sure, credit where credit is due. But come on. Soooooo much space for an inefficiently formatted (and also unsorted) list. At least it was easy enough to skip over it.
And then, there are also these changelogs or rather notice documents in general that are infested with multicolored emojis all over the place. My brainās spam filter kicks in and shoves everything to /dev/null immediately. Itās especially a thing at work.
In my previous work project, we also used the Keep A Changelog Format. That was great. You wouldnāt believe how often I resorted back to that document. At least twice a week, often several times a day. I was very glad that we put in this effort. Of course, writing the changelog took its time, but it was worth every minute and more. Reading a many months old item, it was immediately clear. I was our best customer in that regard.
Now, itās just the same auto shitshow with MR titles in a rolling date-versioned release scheme. Itās just our team who has to deal with that, though. I think Iām the only one who is not a fan of it.
Oh boy, I absolutely hate this stupid trend of not writing changelogs anymore! Why the fuck would one seriously consider it to be a viable option to just let some shitty bot spew all merge requests on a goddamn GitHub release?! First of all, these merge request titles suck balls. The order of the changes in this āchangelogā is completely random (well, probably merge time, which is as useless as the dick on the Pope). They are not grouped by anything at all. Additions, changes, removals, deprecations, etc. randomly mixed up in one giant list. And then āAdd feature Xā, seventeen kilometers further down āRevert āAdd feature Xāā. Fuck you! Donāt include this shit in the first place!
Fits absolutely perfect in the pattern of rapid decline.
I must rip out all dependencies as soon as possible whose maintainers just donāt give a shit.
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.
@movq@www.uninformativ.de Uh, uh, uh, yeah, nice! Perfect time to spend the holidays in Green- or Iceland. :-)
@movq@www.uninformativ.de Work to rule. And yeah, absolutely horrible time to look for something else. :-(
And maybe slow down a tad once youāre back.
Not sure if thatās possible in this company. š¤ (This is the worst time to look for a new job, though. Alles im Umbruch.)
@movq@www.uninformativ.de That is really cool! Maybe it would look nicer if the selected entry highlighted the whole row, not just the individual cells in that row without the column spacers. :-? But maybe Iām wrong. Everyone has their own taste.
And no, itās not pointless at all. I find this really interesting. The videos and photos are perfect for me. Even if I had the source code, I would not use that toolkit, as Iām not a fan of movable windows in TUIs. I want all my own programs to be fullscreen all the time. 8-) Having said that, itās still an absolutely brilliant source of inspriation that will come in handy one day. So, keep posting. :-)
@lyse@lyse.isobeef.org Those poor unicorns. Why do they have to puke all the time? š¢š¦
@lyse@lyse.isobeef.org Oh, no, he was the one providing the feedback. š
mgk appears to be everywhere. His Unicode box drawing demo has been part of my unicode-test script for a long time: https://movq.de/git/bin-pub/file/unicode-test.html#l23
@movq@www.uninformativ.de Great to be asked for feedback! I just noticed that the first wcwidth version was derived from Markus Kuhnās C code. I came across him in my ISO 8601 and RFC 3339 endeavors the other day. https://www.cl.cam.ac.uk/~mgk25/iso-time.html What a surprise. :-)
Itās been a week, so⦠Arcade Time!
@movq@www.uninformativ.de Wow, Iām sorry to hear about that. Permanent emergency mode sucks, Iāve been there, and it always felt like drowning.
Fortunately, at my current job, weāve been given time to keep our technical debt from overtaking the project. Unfortunately, weāve been forced to use AI (mostly in the form of GitHub Copilot). Of course, now that the tokens cost more than a developerās salary, theyāve been rethinking that position somewhat. š
In my experience, you are 100% correct - even in the best case, AI is a force multiplier. If the code is clean, it can speed you up. But if the code is a mess, itāll just multiply the mess.
@movq@www.uninformativ.de One at a time, until you build up trust, coherence to make them a maintainer š
@prologic@twtxt.net As have I. š¤ I mean, since I left GitHub, I got basically 0 pull requests anyway.
Even during my time using GitHub, I noticed that ādrive-by PRsā are rarely a good idea. People donāt really know/understand the code or the design principles/goals, so I often turned down PRs. Or I accepted them and was grumpy afterwards. š
What does work is having a team of maintainers/devs. The only question is: How do you build such a team if you donāt accept PRs? Thatās going to be the interesting part.
My name is changed every time I ho here. Only if I come over gooher floodgap.com/gopher/gw it is allways the same name.
Proxmox setup on home server home⦠time to play
Okay. I have lost the ābattleā against āAIā at work and I will no longer try to āfightā any of it.
It is simply what people want. They want to use it. And thatās the end of it.
And why do they want it? Because it makes their job easier. And why is that? In very large parts, itās because we have accumulated a metric fuckton of technical debt due to decades long mismanagement. We were (and are) operating in āemergency modeā all the time. There simply was no time to clean things up or to rethink designs. We always have to go with the cheapest and quickest solution. We are never ahead of things: Earlier this year, I started an initiative and wanted to tackle some issue that I could see coming. I was shut down because this wasnāt āurgentā. Very soon after, this exact thing became that exact problem ā but now, there was no time anymore to do it properly because NOW itās urgent, so, once again, we had to go with a quick and dirty solution.
Itās always like that and I had brought it up again and again. And now we have a huge spaghetti mess that hardly anyone understands anymore.
Nobody ā except AI. It can still make some sense of this and, obviously, this is useful to people.
So, any argument I make against AI is completely pointless to begin with. Iām such a fool for not having seen this earlier.
The last argument I made today was: āLook, we already have so much technical debt and spaghetti systems, we really, really must clean this up. If we throw AI on top of this now, itāll only get so much worse.ā And once more, I was shut down. My intentions were āadmirableā, but āthereās no time for thatā.
Okay. Good luck with that. Theyāll keep doing it this way. At some point, itāll either explode entirely and some poor soul has to clean it up, or itāll explode and theyāll have no other choice but to throw everything away and start from scratch ā assuming they can still afford that.
In other words, none of this about AI, really, nor caused by it. Our departmentās massive spike in AI usage is just a symptom of the underlying management issues. And since those arenāt being addressed, nothing will change and this whole mess will only get worse.
(I blame all this on management, because, well, thatās whoās to blame. I do not have a solution for it, though ā and assigning blame without constructive criticism always sucks big time. I donāt like doing this. If you had put me into that particular management position, I wouldnāt have been able to solve any of this. The thing is, though, Iām not an expert on management and it isnāt my job ā Iām just the āprincessā who solves your technical issues.)
Played some games, boosted some toots, tweaked some code⦠now itās time for bed.
@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?
@prologic@twtxt.net I do! I paginate usually 10 times on HN. Their algo is so messed up (but it works, I guess) that not doing that will make me miss a lot of good, interesting, things.
express-twtkpr npm library), and it kind ran amok a few times. So again, sorry - I've added a minimum 10-minute cool-down period between pulls which should help (I hope š).
@prologic@twtxt.net @bender@twtxt.net Thanks! Yeah, it already supports Twt Hash via twtxt-lib (both v1 and v2, when the time is right), plus most of the other features (multiline, user-agent, and metadata), and Iām working on (re-)implementing threading, mentions, and hash filtering (to make conversations easier to follow).
Hereās a current snapshot of my local version, in case anyone is interested:
@lyse@lyse.isobeef.org LOL. Always ahead of times! Lyse, the man from the future! Sic mvndvs creatvs est!
I was wondering why all the twt hashes in my replies today were still so short. I was ahead of the times. The Twt Hash v2 Epoch only begins next month.
@movq@www.uninformativ.de Interesting read! The current state is already a very great achievement. I felt honored being able to already have followed your development along here on twtxt. :-)
Thatās a cool clock, I should remind myself of my working time, too.
Apologies to anyone whoās seen an uptick in twtxt pings from me today⦠Iāve been working on shoe-horning my twtxt reader (TwtStrm) into my editor (TwtKpr, aka the express-twtkpr npm library), and it kind ran amok a few times. So again, sorry - Iāve added a minimum 10-minute cool-down period between pulls which should help (I hope š).
@movq@www.uninformativ.de Hahaha, a ride indeed. Exactly, this affected each and every Atom feed and only Atom feeds. All RSS feeds worked like nothing ever happened. This std::string to time_t to std::string to time_t dance only happens for Atom feeds. RSS feeds, on the other hand, go right from std::string to time_t and be done. Thatās precisely what the second option is aiming to propose for Atom feeds, too.
I will clarify that tomorrow in the article.
Itās very interesting what kind of quirks accumulate in software over the years. Especially quirks, the basically noone knows of anymore. Until something explodes and gets rediscovered. Luckily, that doesnāt happen all that often.
<updated> of the feed, too. But for some reason, some articles were suddenly marked as new.
I wasted my entire weekend on the writeup. If you have way too much time to spare and also are interested in a bug analysis of a software that you donāt even use, I have you covered: https://lyse.isobeef.org/newsboat-time-parsing-bug-analysis/
Last minute entry for #caturday (at least in this time zone)ā¦
This is Shadow. Heās an incredibly sweet boy who likes long walks (on your shoulder), loving on his puppies, and laying in his bowl(s).
https://itsericwoodward.com/images/17a03702.jpg https://itsericwoodward.com/images/c4b3ce57.jpg https://itsericwoodward.com/images/4bbc4698.jpg
Last minute entry for #caturday (at least in this time zone)ā¦
This is Shadow. Heās an incredibly sweet boy who likes long walks (on your shoulder), loving on his puppies, and laying in his bowl(s).
@arne@uplegger.eu Iām similar⦠I use āIā most of the time (mostly in planning or trying to focus, ex: āIām going to do X, then Yā), but I also use āyouā when fussing at myself for my perceived faults or mistakes (thatās my ālizard brainā, we donāt get along so well because heās kind of a jerk).
Oh, nice. In my endeavors of time in C++, I came across cal 9 1752. https://www.redhat.com/en/blog/brief-history-mktime