@kiwu@twtxt.net Since Iām not living in the US, I havenāt seen it. Iāve only witnessed all the āoutrageā about it through shows like Jon Stewartās Daily Show. š¤£
TIL: If youāre trans in Germany and you want to start hormone therapy, you still need to be officially declared ātransā first (Indikationsschreiben, page 18: https://www.transinterqueer.org/wp-content/uploads/2022/04/Hormontherapie_DE_barrierearm.pdf) and then you can try to find an actual doctor to get the meds. All with super long waiting lists. This takes forever. š©
Changing your legal name is surprisingly easy in comparison, at least since 2024: https://www.bmbfsfj.bund.de/bmbfsfj/aktuelles/alle-meldungen/anmeldung-zur-aenderung-des-geschlechtseintrages-jetzt-moeglich-243056 (From my perspective, thatās the less relevant part, though, because thereās a good chunk of people that you can just ask to call you differently (friends, cowokers, ā¦) and then do that legal stuff later. But you want your body to change, like, now.)
Fancy a 15% discount on my #Domestika #Python + #CreativeCoding course?
A_B_A_VILLARES-2026
Valid up to March 13th
(Beware Domestika also uses dark patterns like a very low priced offering that will trigger a āyearly subscriptionā after a month if you donāt read the small print and cancel⦠not nice)
Cheers to all #Python #CreativeCoding people here using #Linuxā¦
Would you like to test a script by our friend and co-maintainer of thonny-py5mode GoToLoop that installs #ThonnyIDE and #py5 on your machine to see how it goes and help improve it?
I wonder if it would be bad form to ask students to run something like this:
curl -fsSL https://Gist.GitHubUserContent.com/GoToLoop/246a31d437aaa8c6eadb7f7186544e0f/raw/thonny-installer.bash -o thonny-installer.bash && chmod +x thonny-installer.bash && ./thonny-installer.bash
(because, you know, it trains them to run potentially dangerous stuff in other occasions)
@movq@www.uninformativ.de I also had to laugh. :-D And thatās what crossed my mind for a splitsecond, too. Two decades ago or so, that would have worked. But these days are long over. Wasnāt it even an INI file or something like that?
Okay, so the funniest thing that has happened at work in the realm of AI so far is this:
So this guy (that holds a certain position of power) wants people to use more AI, meaning people are expected to install a set of AI tools on their laptops. But, of course, he doesnāt want to write proper documentation for this, because that would be silly monkey work, right? So he conjures up some AI prompts that are intended to make the AI agent install all this stuff by itself.
Do you see where this is going? Can you see the punchline?
Thatās right! Since none of this AI stuff is deterministic, every setup is different. š¤¦āāļø Like, 10, 20 systems, all set up a little different and people wonder why this or that doesnāt work as expected.
Okay, itās not funny.
I canāt remember if the hex viewer back then had these options. Donāt even recall what software that was. :-)
The one that I used during my Windows 95 days was āHex Workshopā. It had similar features, just not as promimently displayed. It shows them down there in the statusline as āValueā:
https://movq.de/v/a24558f83f/s.png
Newer versions can probably do more, havenāt checked. š (Assuming this program still exists.)
Apart from selecting text to copy into the clipboard. But that probably has the potential for trouble and interference with button clicks, etc.
Yeah, thatās a big problem: Once you activate mouse mode in the terminal, the terminal loses the ability to select text. š Youād either have to emulate that in the program itself (like Vim does) or give the user an easy way to turn mouse support on/off during runtime.
How did the startup times develop?
Theyāre pretty stable at around 230 ms on my old NUC. Itās just fast enough so that it doesnāt annoy me.
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.
** lutul **
I made another camera toy. This one follows pico cam, the other pico cam, lut cam, and leibovitz. This newest one is called lutul. And, while it isnāt my most feature-rich camera toy, I think it is likely my most polished camera toy.
As the name kinda suggests, lutul lets you take or upload photos and then apply some pre ⦠ā Read more
@movq@www.uninformativ.de Youāre right, thatās neat. I also saw Paskās take on that which he referenced. I donāt know if I will ever attempt anything like that. Canāt imagine to succeed in that mission.
Recording audio to MiniDiscs like itās 2001.
@lyse@lyse.isobeef.org Found some numbers now, theyāre saying it was around 10cm in 3-4 hours. I donāt know, felt like more. š The forecast wasnāt really good either, now that I think about it. They said thereās going to be some snow, okay, fine, but then, boom.
Haha, that old ad is lovely. Those days are over. š¤£
Havenāt watched it to the end yet, but @lyse@lyse.isobeef.org might like this: https://www.youtube.com/watch?v=EarBm4tfMXs
@prologic@twtxt.net (While browsing through that, I noticed that https://mu-lang.dev/ itself doesnāt really mention the source code repo, does it? š¤ Like, the quickstart guide begins with āBuild the host: go build ./cmd/muā, but whereās the git clone ⦠command? š
)
Iām not really sure what the goal is. š¤ Do you want to get pull requests for the docs? Or bug reports for mu itself? š¤
@movq@www.uninformativ.de if they havenāt, I would recommend a āsubtleā nudge. You know, like leaving an advert flier at their door for a āBasic English (including swearing words!) for Dummiesā book, or something like that. :-D :-P
Every single year I complain we should have an independent survey of Python users, not of āPython developersā, as many people who use Python do not identify as professional software developers (https://ciberlandia.pt/@villares/109885982178235703) and the questions in the survey make no sense for them. We should have someone doing serious research designing an unbiased survey, not a software firm like Jetbrains doing market research.
Every year I fail to do something effective about this.
[Reposted publicly with some tweaks]
Just showelled 20cm of snow for half an hour, fuck me! Iām totally shattered. But itās worth it. Looks so beautiful. And all the disbelief and terror in the eyes of the people. Well, thatās what our winters were like three decades ago. Iām just glad that I can work from home.
@prologic@twtxt.net sounds like an excellent project! Looking forward to it.
Another project where Iām going to use my terminal widget toolkit is a hex editor. This is still very young, obviously, and thereās a lot of work to do (both in the toolkit and this particular application), but Iām making some progress:
https://movq.de/v/2bae14ed16/vid-1769283187.mp4
Since this program is UTF-8 clean (I hope), you can do things like enter multi-byte UTF-8 sequences or paste them from the system clipboard (another hex editor I just tried failed to do this correctly):
https://movq.de/v/e9241034c1/vid-1769283755.mp4
Under the hood, Iām using mmap() with MAP_PRIVATE, which is really cool: I get the entire file as a byte array, no matter how large it is, no need to actually read it upfront; and MAP_PRIVATE means that I can write to this area however I like without changing the underlying file. The kernel does copy-on-write for me. Only when you hit Save, it will write to the filesystem. And itās just a couple lines of code. The kernel does all the magic. š„³
@lyse@lyse.isobeef.org only four squalid clicks, oh my š ! Is #02 frozen water? Canāt tell well, but looks like.
Oh wow, the boxes are ticked now! When I first checked, they were still showing like the screenshot. Well done! š„³
When people āmake plansā, I always respond like this:
https://movq.de/v/9a8712846d/at-night.jpg
Finally found the clip where this is from:
Spent basically the entire day (except for the mandatory walk) fighting with Pythonās type hints. But, the result is that my widget toolkit now passes mypy --strict.
I really, really donāt want to write larger pieces of software without static typing anymore. With dynamic typing, you must test every code path in your program to catch even the most basic errors. pylint helps a bit (doesnāt need type hints), but thatās really not enough.
Also, somewhere along the way, I picked up a very bad (Python) programming style. (Actually, I know exactly where I picked that up, but I donāt want to point the finger now.) This style makes heavy use of dicts and tuples instead of proper classes. That works for small scripts, but it very quickly turns into an absolute mess once the program grows. Prime example: jenny. š©
I have a love-hate relationship with Pythonās type hints, because they are meaningless at runtime, so they can be utterly misleading. Iām beginning to like them as an additional safety-net, though.
(But really, if correctness is the goal, you either need to invest a ton of time to get 100% test coverage ā or donāt use Python.)
@movq@www.uninformativ.de Hehe. :-) This steep footpath connects a hiking parking lot outside the village and the edge of the village in a fairly straight line. Garden owners are allowed to drive their vehicles down from the village to their lots on this pathway and up again. These two poles are placed about a third up from the botton on a short, comparatively flat section to stop people from taking this shortcut to get down to the country road. Said road goes through the village but there are hairpins getting up and down. The road markings have been added recentlyish. I suspect to warn shooting down cyclists of the danger ahead. I havenāt seen something like this anywhere else either. :-)
@lyse@lyse.isobeef.org All that short brown grass, almost looks like Scotland. š¤ (Iāve never been there. š )
What the heck is 06.jpg?
My mate and I went on a hike earlier. Yesterday, we had lovely 12°C. But today, it was down to at most 4°C. Oh well. At least the sun was out and and there was just a tiny bit of wind. We knew upfont that scarf, beanie and gloves were mandatory. Especially at the more windy sections like up top the hills. The view was absolutely terrible, but we made the best of it.
With the sun shining on us during our lunch break at a forest edge bench, we still enjoyed the lookout in 01. I brought some old carpet scraps to sit on and was happily surprised that they isolated even better than I had hoped for. Some hot tea helped us staying warm.
After five hours we returned just after sunset. Iām quite tired now, completely out of shape.
@lyse@lyse.isobeef.org (At least I didnāt break all the links again. In late 2015, I switched from a PHP backend to the current static website, which changed just about everything. I hope doing a disruptive change like this one every 10 years is tolerable. š )
@bender@twtxt.net Iām already using it for tracktivity (meant for tracking activities and events, like weather, food consumption, stuff like that), which is basically a somewhat-fancy CSV editor:
https://movq.de/v/f26eb836ee/s.png
I have a couple of other projects where I could use it, because they are plain curses at the moment. Like, one of them has an āedit boxā, but you canāt enter Unicode, because it was too complicated. That would benefit from the framework.
Either way, itās the most satisfying project in a long time and Iām learning a ton of stuff.
@bender@twtxt.net ICQ, yeah, I vaguely remember these times, despite I still know my ICQ number like it was yesterday. :-D
@shinyoukai@neko.laidback.moe No, itās not dead. The one account in question actually is on jabber.org.
Yes, if a twtxt contains something like ā(This is a test. Will this work as it should?)ā, it will show empty on Yarn.
@klaxzy@klaxzy.net nothing like a blank twt eh? š
Iām trying to implement configurable key bindings in tt. Boy, is parsing the key names into tcell.EventKeys a horrible thing. This type consists of three information:
- maybe a predefined compound key sequence, like Ctrl+A
- maybe some modifiers, such as Shift, Ctrl, etc.
- maybe a rune if neither modifiers are present nor a predefined compound key exists
Itās hardcoded usage results in code like this:
func (t *TreeView[T]) InputHandler() func(event *tcell.EventKey, setFocus func(p tview.Primitive)) {
return t.WrapInputHandler(func(event *tcell.EventKey, setFocus func(p tview.Primitive)) {
switch event.Key() {
case tcell.KeyUp:
t.moveUp()
case tcell.KeyDown:
t.moveDown()
case tcell.KeyHome:
t.moveTop()
case tcell.KeyEnd:
t.moveBottom()
case tcell.KeyCtrlE:
t.moveScrollOffsetDown()
case tcell.KeyCtrlY:
t.moveScrollOffsetUp()
case tcell.KeyTab, tcell.KeyBacktab:
if t.finished != nil {
t.finished(event.Key())
}
case tcell.KeyRune:
if event.Modifiers() == tcell.ModNone {
switch event.Rune() {
case 'k':
t.moveUp()
case 'j':
t.moveDown()
case 'g':
t.moveTop()
case 'G':
t.moveBottom()
}
}
}
})
}
This data structure is just awful to handle and especially initialize in my opinion. Some compound tcell.Keys are mapped to human-readable names in tcell.KeyNames. However, these names always use - to join modifiers, e.g. resulting in Ctrl-A, whereas tcell.EventKey.Name() produces +-delimited strings, e.g. Ctrl+A. Gnaarf, why this asymmetry!? O_o
I just checked k9s and theyāre extending tcell.KeyNames with their own tcell.Key definitions like crazy: https://github.com/derailed/k9s/blob/master/internal/ui/key.go Then, they convert an original tcell.EventKey to tcell.Key: https://github.com/derailed/k9s/blob/b53f3091ca2d9ab963913b0d5e59376aea3f3e51/internal/ui/app.go#L287 This must be used when actually handling keyboard input: https://github.com/derailed/k9s/blob/e55083ba271eed6fc4014674890f70c5ed6c70e0/internal/ui/tree.go#L101
This seems to be much nicer to use. However, I fear this will break eventually. And itās more fragile in general, because itās rather easy to forget the conversion or one can get confused whether a certain key at hand is now an original tcell.Key coming from the library or an āextendedā one.
I will see if I can find some other programs that provide configurable tcell key bindings.
rustfmt. I now use similar tools for Python (black and isort).
@movq@www.uninformativ.de @prologic@twtxt.net Thatās what I like about Go, too. However, every now and then I really dislike the result, e.g. when removing spaces from a column layout. Doesnāt happen often, but when it does, I hate it.
I think I should have a look at Python formatters, too. Pep8 is deprecated, I think, itās been some time that I looked at it.
@lyse@lyse.isobeef.org Itās not super comfortable, thatās right.
But these mouse events come with a caveat anyway:
ncurses uses the XM terminfo entry to enable mouse events, but it looks like this entry does not enable motion events for most terminal emulators. Reporting motion events is supported by, say, XTerm, xiate, st, or urxvt, it just isnāt activated by XM. This makes all this dragging stuff useless.
For the moment, I edited the terminfo entry for my terminal to include motion events. That canāt be a proper solution. Iām not sure yet if Iām supposed to send the appropriate sequence manually ā¦
And the terminfo entries for tmux or screen donāt include XM at all. tmux itself supports the mouse, but Iām not sure yet how to make it pass on the events to the programs running inside of it (maybe thatās just not supported).
To make things worse, on the Linux VT (outside of X11 or Wayland), the whole thing works differently: You have to use good old gpm to get mouse events (gpm has been around forever, I already used this on SuSE Linux). ncurses does support this, but this is a build flag and Arch Linux doesnāt set this flag. So, at the moment, Iām running a custom build of ncurses as a quick hack. š And this doesnāt report motion events either! Just clicks. (I donāt know if gpm itself can report motion events, I never used the library directly.)
tl;dr: The whole thing will probably be ākeyboard firstā and then the mouse stuff is a gimmick on top. As much as Iād like to, this isnāt going to be like TUI applications on DOS. Iāll use āWindowsā for popups or a multi-window view (with the āWindowManagerā being a tiny little tiling WM).
** no beautiful things **
Thereās this line in The Hobbit that haunts me. For one thing, it is part of a wider problematic habit running throughout all of Tolkien that, moving in the mythopoetic space, leads to these sweeping statements that define or collapse an entire culture into a single stroke. It seems to me to be like the most damning thing you could say about a culture, though:
Now goblins are cruel, wicked, and bad-hearted. They make no beautiful things, but they make many clever ones.
Emphasis my own, and the quote ⦠ā Read more
@movq@www.uninformativ.de Oh, I see. Unfortunately, there seems to be no box drawing character for a corner with a diagonal line. Indeed, this is probably the best you can do.
Is the single character enough to hit it comfortably with the mouse, though? Maybe one additional to the left and above could be something to think about. Not sure. Of course this complicates it a bit more. Personally, I like fullscreen windows, so Iām definitely the wrong guy to judge this or even comment on. :-)
(The background and the window shadow are not amber and it wouldnāt have looked like that on a real monitor, unless you cranked up the brightness way too high.)
Vacation: Doing crazy things like C on DOS, lots of Rust, bare-metal assembly code, everything is fine.
Back at work: How the fuck do I move an email in this web mail program? Am I stupid? š®āšØ
@prologic@twtxt.net Yep! I like that this distillation metaphor makes it explicit: You have to go ahead and actually distill something. It doesnāt happen automatically. The metaphor acknowledges that this is work that needs to be done by someone.
@bender@twtxt.net Theyāre not completely impossible, but C makes it much easier to run into them. I think the key point is that in those āsafeā languages, buffer overflows are caught and immediately crash the program (if not handled otherwise) instead of silently corrupting memory, not being noticed right away and maybe only later crashing at a different location, where it can be very hard to find the actual root cause. This is a big improvement in my book.
Some programmers are indeed horrible. Iām guilty myself. :-)
I like the article.
I came across this on āWhy Is SQLite Coded In Cā, which I found interesting:
āThere has lately been a lot of interest in āsafeā programming languages like Rust or Go in which it is impossible, or is at least difficult, to make common programming errors like memory leaks or array overruns.ā
If thatās true, then encountering those issues means the programmer is, simply, horrible?
@movq@www.uninformativ.de I quite like this part:
Many people write programs, but few stick with a program long enough to distill it.
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. š¤
@movq@www.uninformativ.de Yiha! Even autoscroll, very nice! The naming certainly drew inspiration from Urwid. I like it. Looking forward to eventually checking out its inner workings. :-)
Looks like someone loves Depth First Search.
More widget system progress:
https://movq.de/v/87e2bce376/vid-1767467193.mp4
I like the oldschool shadow effect. š Not sure if Iāll keep it, but itās neat.
The menu bar is still fake.
Had to spend quite a bit of time optimizing the rendering today. This can get really slow really quickly.
Unicode is Pain.
I might be able to start porting my first program (currently uses urwid) soon. š¤
httpd now sends the Last-Modified with UTC instead of GMT. Current example:
@lyse@lyse.isobeef.org Bah. Yeah, that looks like a bug. Letās see if this already reported upstream. š¤
** 2026.01 week notes **
Will I succeed in making week notes a weekly activity this year?
Only time will tell!
ā¦also, I meanā¦I feel like the answer is alreadyānoā and that is fine, but anyways.
- I donāt usually take the holidays off from work, it is a nice time to catch up on stuff while still being able to hang out with my family who are all off from school and work.
- Iāve moved where I work in the house so that it is easier for me to hang out with the dog whoās struggling to go up and down stairs, which is kinda problematic since ⦠ā Read more
On my way to having windows and mouse support:
https://movq.de/v/95bbbbd3e8/basic-windows.mp4
It would be cool to have something like Turbo Vision eventually.
(I considered just using Turbo Vision, but itās a C++ library and thatās not quite what Iām looking for. But itās not yet completely off the table.)
I keep thinking about this piece on students that have not learned yet about folder/directory structuresā¦
I have met many students like that, I wonder if I could help them get it better, or if I shouldnāt worry about it at all.
I keep thinking about this piece on students that have not learned yet about folder/directory structuresā¦
I have met many students like that, I wonder if I could help them get it better, or if I shouldnāt worry about it at all (theyāll mostly get used to it without much help).
The only good thing about this absolute craziness is that I can restock my rocket sticks. I picked up twelve along the way. Unfortunately, it looks like 99.999% of ammunition is bombs instead of rockets. Some sections of my street look exactly like an arbitrary Pakistanian town that Iāve seen online.
There was surprisingly much snow in the woods. Also, all ponds have frozen over. I didnāt expect that. Not at all. There were even illegal ice skating tracks in the natural reserve. We came across a large puddle and it was at least 10cm solid ice to the ground. Crazy!
@movq@www.uninformativ.de This is fuckān great shit⢠Where did you find this? š¤ Got any more shit⢠like this? š
@movq@www.uninformativ.de Well, just a very limited subset thereof:
- inline and multiline code blocks using single/double/triple backticks (but no code blocks with just indentation)
- markdown links using using
[text](url)
- markdown media links using

And thatās it. No bold, italics, lists, quotes, headlines, etc.
Just like mentions, plain URLs, markdown links and markdown media URLs are highlighted and available in the URLs View. Theyāre also colored differently, similarly to code segments.
I definitely should write some documentation and provide screenshots.
It totally sounds like an active warzone around here. So, I just went on a very, very, very quick stroll to check out our sunset from ontop our hill (were all the bangs are way more horrible): https://lyse.isobeef.org/abendhimmel-2025-12-31/
@movq@www.uninformativ.de Thatās cool! I also like the name of your library. :-) I assume you made the thing load quickly, didnāt you?
Well, you girls and guys are making cool things, and I have some progress to show as well. š
https://movq.de/v/c0408a80b1/movwin.mp4
Scrolling widgets appears to work now. This is (mostly) Unicode-aware: Note how emojis like āš ā are double-width ācharactersā and the widget system knows this. It doesnāt try to place a āš ā in a location where thereās only one cell available.
Same goes for that weird āƤā thingie, which is actually āaā followed by U+0308 (a combining diacritic). Python itself thinks of this as two ācharactersā, but they only occupy one cell on the screen. (Assuming your terminal supports this ā¦)
This library does the heavy Unicode lifting: https://github.com/jquast/wcwidth (Take a look at its implementation to learn how horrible Unicode and human languages are.)
The program itself looks like this, itās a proper widget hierarchy:
https://movq.de/v/1d155106e2/s.png
(There is no input handling yet, hence some things are hardwired for the moment.)
I just fixed another bug in tt where the language hint in multiline markdown code blocks had not been stripped before rendering. It just looked like it was part of the actual code, which was ugly. I now throw it away. Actually, itās already extracted into the data model for possible future syntax highlighting.
Btw, @shinyoukai@neko.laidback.moe, thatās a super cool logo on your yarnd. I like it a lot!
It just doesnāt look aligned properly: https://lyse.isobeef.org/tmp/misalignment.png Could be a yarnd issue, though, it might not expect a logo this large. Just wildguessing, no idea.
@shinyoukai@neko.laidback.moe Because you might not want to commit all changed files in a single commit. I very often make use of this and create several commits. In fact, I like to git add --patch to interactively select which parts of a file go in the next commit. This happens most likely when refactoring during a feature implementation or bug fix. I couldnāt live without that anymore. :-)
If you have a much more organized way of working where this does not come up, you can just git commit --all to include all changed files in the next commit without git adding them first. But new files still have to be git added manually once.
@lyse@lyse.isobeef.org Well, I used SnipMate years ago (until 2012). IIRC, itās more than just āinsert a bit of text hereā, it can also jump to the correct next location(s) and stuff like that. Donāt remember why I stopped using it.
Then I used nothing for a long time. Just before Christmas, I made my own plugin (⦠of course ā¦), which does everything I need at the moment (and nothing more).
It can insert simple templates and then jump to the next location:
https://movq.de/v/67cdf7c827/sisni%2Dpython.mp4
And replace a string after insertion:
https://movq.de/v/67cdf7c827/sisni%2Dheader.mp4
(Itās not public (yet?) and it also uses vim9script, so I guess it wouldnāt work on your system.)
@lyse@lyse.isobeef.org Iām toying with the idea of making a widget/window system on top of Pythonās ncurses. Iāve never really been happy with the existing ones (like urwid, textual, pytermgui, ā¦). I mean, theyāre not horrible, itās mostly the performance thatās bugging me ā I donāt want to wait an entire second for a terminal program to start up.
Not sure if Iāll actually see it through, though. Unicode makes this kind of thing extremely hard. š«¤
@lyse@lyse.isobeef.org I can tell you this right now, writing assembly / machine code is fucking hard work⢠š Iām sure @movq@www.uninformativ.de can affirm 𤣠And when it all goes to shit⢠(which it does often), man is debugging fucking hard as hell! Without debug symbols I canāt use the regular tools like lldb or gdb š
@shinyoukai@neko.laidback.moe Nah itās more like thereās a lot of repeated code, because when you go from source language to intermediate representation to machine code, well you just end up writing a lot of the same patterns over and over again. I need to dedupe this I think.
My little toy operating system from last year runs in 16-bit Real Mode (like DOS). Since Iāve recently figured out how to switch to 64-bit Long Mode right after BIOS boot, I now have a little program that performs this switch on my toy OS. It will load and run any x86-64 program, assuming itās freestanding, a flat binary, and small enough (< 128 KiB code, only uses the first 2 MiB of memory).
Here Iām running a little C program (compiled using normal GCC, no Watcom trickery):
https://movq.de/v/b27ced6dcb/los86%2D64.mp4
https://movq.de/v/b27ced6dcb/c.png
Next steps could include:
- Use Rust instead of C for that 64-bit program?
- Provide interrupt service routines. (At the moment, it just keeps interrupts disabled.)
Iām still deciding if I want to watch #Pluribus. When people told me Carol only wanted to meet the English speaking āimuneā people it was such a turn off⦠like, it sounds rather offensiveā¦
@prologic@twtxt.net Not even entirely sure how I did it myself, but likely a lucky combination of the new tail swirl, the legs closer to the screen being bigger and the head looking slightly to the side (eye & ear position), with bottom part of the hair, going behind the snout. The white is just an outline, around most of my works, so I donāt think that plays a part.
@movq@www.uninformativ.de Maybe thereās another meaning Iām not aware of, but this doesnāt look like a shitpost to me. Congrats, I guess. ;-)
@movq@www.uninformativ.de Very nice! I often wish other languages had something similar. Sometimes, I use lambdas, but that also looks ugly and feels a bit like a misuse. Other times, just the normal blocks are enough, but itās not the same. Especially with the mutability aspects as the article explains. Typically, I just put it in a function or ignore it if itās just a few lines.
@kiwu@twtxt.net Assembly is usually the most low-level programming language that you can get. Typical programming languages like Python or Go are a thick layer of abstraction over what the CPU actually does, but with Assembler you get to see it all and you get full control. (With lots of caveats and footnotes. š )
Iām interested in the boot process, i.e. what exactly happens when you turn on your computer. In that area, using Assembler is a must, because you really need that fine-grained control here.
@movq@www.uninformativ.de Not sure what it had in its beak. It looked a wee bit like a large biscuit. But it must have been rock-hard.
@zotero@zotero I noticed that some combinations of XFCE appearance (light) themes and Zotero made the menu ādisappearā (black on black) as the window title was dark. Changing the Zotero to a dark theme or changing the XFCE theme worked (but then, I liked the dark window title on a light theme bestā¦). Should I try to open an issue about this, or is it a XFCE issue? I donāt want to burden the maintainers but it was a bit disturbing not to find the menusā¦
I rewrote all my solutions in Rust (except for day 10 part 2) and these are the runtimes on my i7-3770 from 2013 (this measures CLOCK_PROCESS_CPUTIME_ID, not wallclock):
day01/1 [ 00.000501311] Result: 1066
day01/2 [ 00.000400298] Result: 6223
day02/1 [ 00.000358848] Result: 12586854255
day02/2 [ 00.000750711] Result: 17298174201
day03/1 [ 00.000106537] Result: 17405
day03/2 [ 00.000404632] Result: 171990312704598
day04/1 [ 00.000257517] Result: 1626
day04/2 [ 00.007495342] Result: 9173
day05/1 [ 00.000237212] Result: 505
day05/2 [ 00.000142731] Result: 344423158480189
day06/1 [ 00.000229629] Result: 4076006202939
day06/2 [ 00.000279552] Result: 7903168391557
day07/1 [ 00.000204422] Result: 1622
day07/2 [ 00.000283816] Result: 10357305916520
day08/1 [ 00.029427421] Result: 84968
day08/2 [ 00.028089859] Result: 8663467782
day09/1 [ 00.000310304] Result: 4764078684
day09/2 [ 00.015512554] Result: 1652344888
day10/1 [ 00.000796663] Result: 375
day10/2 [ --.---------] Result: 15377 (Z3)
day11/1 [ 00.000416804] Result: 753
day11/2 [ 00.000660528] Result: 450854305019580
day12/1 [ 00.000336081] Result: 577
day12/2 [ 00.000000695] Result: no part 2
A little under 90 ms total.
On my Samsung NC10 netbook from 2011 with its Intel Atom N455 at 1.6 GHz:
day01/1 [ 00.003771326] Result: 1066
day01/2 [ 00.003267317] Result: 6223
day02/1 [ 00.003902698] Result: 12586854255
day02/2 [ 00.006659479] Result: 17298174201
day03/1 [ 00.000747544] Result: 17405
day03/2 [ 00.002737587] Result: 171990312704598
day04/1 [ 00.001263892] Result: 1626
day04/2 [ 00.044985301] Result: 9173
day05/1 [ 00.001696761] Result: 505
day05/2 [ 00.000978962] Result: 344423158480189
day06/1 [ 00.001387660] Result: 4076006202939
day06/2 [ 00.001734248] Result: 7903168391557
day07/1 [ 00.001295528] Result: 1622
day07/2 [ 00.001809659] Result: 10357305916520
day08/1 [ 00.277251443] Result: 84968
day08/2 [ 00.284359332] Result: 8663467782
day09/1 [ 00.003152407] Result: 4764078684
day09/2 [ 00.071123459] Result: 1652344888
day10/1 [ 00.005279527] Result: 375
day10/2 [ --.---------] Result: 15377 (Z3)
day11/1 [ 00.003273342] Result: 753
day11/2 [ 00.005139719] Result: 450854305019580
day12/1 [ 00.002857552] Result: 577
day12/2 [ 00.000004421] Result: no part 2
A little over 700 ms total.
I like this. You get performance thatās more or less in the ballpark of C, but without the footguns.
Iām having to write my own functions like this in mu just to solve AoC puzzles :D
fn pow10(k) {
p := 1
i := 0
while i < k {
p = p * 10
i = i + 1
}
return p
}
@aelaraji@aelaraji.com Anytime! Glad you like it, too. :-)
Webp, though it has been around for a long while, wasnāt fully supported on all browsers until recently. The other formats has been in use for such a long time, proving to work just fine, that the advantages Webp provides havenāt been seemingly enough to merit a switch.
Google is also the one behind Webp, and, well, people donāt trust, nor like, them much.
Webp, though it has been around for a long while, wasnāt fully supported on all browsers until recently. The other formats have been in use for such a long time, proving to work just fine, that the advantages Webp provides havenāt been seemingly enough to merit a switch.
Google is also the one behind Webp, and, well, people donāt trust, nor like, them much.
@prologic@twtxt.net I like this one. Havenāt been to the Golden Bridge yet? Make sure you do!
@prologic@twtxt.net Yeah, I donāt like them either.
As for changelogs, I prefer hand-written ones over something automatically cobbled together. Typically, they are just utter rubbish in my experience.
@prologic@twtxt.net looks like a tiny green apple to me š ⦠but this site says maybe a Guava
I meant were. You get the idea.
Also, I just realized that simple links like that turn into inline images on twtxt.net. Nice! š„³
Iām contemplating the idea of switching my activity pub instance from Gootosocial to a Pleroma one. While GTS is kinda cute (lightweight and easy to manage) of a software, the inability to fetch/scroll through peopleās past toots when visiting a profile or having access to a federated timeline and a proper search functionality ā¦etc felt like handicap for the past N months.
@aelaraji@aelaraji.com I like the sounds of this technique a lot redirecting these AI crawling assholes to multi gigabyte files! The only concern I have is how do you do it in such a way that you donāt end up destroying your own ISP speed test servers?
salty-chat, use the MQTT protocol instead of HTTP, in theory it shouldn't make a difference, at least
@bender@twtxt.net Would you like me to say moar words ? š¤£
@bender@twtxt.net Goes to show you just have a good nose for that. :^)
No doubt, I really do love them. Not only wonderful humans and like-minded, but also technically gifted. That made for a superb combination. I just hope the new team turns out to be equally great.
Bwahahahahaaahaaahaaahaaa, what a brilliant story! :ā-D Iāve been given at most ten weeks to return, letās see. ;-)
@bender@twtxt.net Thatās the best one of them. An almonds cake with hazelnut chocolate glaze. The one in front is similar, but with chocolate only. Gingerbread on the right. But it develops the best flavor and consistency only in a few weeks, right now itās quite hard like a rock, but it will soften up.
All those years I always said that my teammates are THE VERY BEST I ever had. Fuck me, look at that, I didnāt leave the company, just changed projects and this is my farewell present: https://lyse.isobeef.org/tmp/abschiedsgeschenk-2025-12-03.jpg How absolutely beautiful is that, Iām in awe! Now I feel even worse deserting. :ā-(
This emblem is the fleur-de-lis of the world scout movement: https://en.wikipedia.org/wiki/World_Organization_of_the_Scout_Movement#WOSM_emblem I reckon I must have mentioned casually that Iām a scout. ;-)
Iām gonna ask here again because Iām really frustrated and literally no one else is responding anywhere can u guys please help me find a good video camera the biggest think I want is long battery life but I also want it to be cheap like under $200, if you yourself donāt know please ask a friend because I am not a tech nerd and looking for stuff like this is very hard for me
For those visiting Hanoi in the Old Quarters that are beer snobs like me; highly recommend this place called Local Craft Beer š¤©
Thinking about doing Advent of Code in my own tiny language mu this year.
mu is:
- Dynamically typed
- Lexically scoped with closures
- Has a Go-like curly-brace syntax
- Built around lists, maps, and first-class functions
Key syntax:
- Functions use
fnand braces:
fn add(a, b) {
return a + b
}
- Variables use
:=for declaration and=for assignment:
x := 10
x = x + 1
- Control flow includes
if/elseandwhile:
if x > 5 {
println("big")
} else {
println("small")
}
while x < 10 {
x = x + 1
}
- Lists and maps:
nums := [1, 2, 3]
nums[1] = 42
ages := {"alice": 30, "bob": 25}
ages["bob"] = ages["bob"] + 1
Supported types:
int
bool
string
list
map
fn
nil
mu feels like a tiny little Go-ish, Python-ish language ā curious to see how far I can get with it for Advent of Code this year. š
The https://pyscript.com āplatformā for hosting/serving and sharing #pyscript projects seems very cool⦠I wish they had a ādownload projectā button to make it easy to move your project elsewhere. As they seem to be moving towards some āpaid tier featuresā, making it easy to take everything out would be nice, would feel less like putting on a risk of being inadvertently locked in.
@prologic@twtxt.net pretty neat looking boat. We donāt see boats like this around here. It looks to be made specifically to resemble an older boat.
@prologic@twtxt.net pretty cool! I like these, wish there was a way (I am sure there is, but not for tourists) to go to the top. :-)
@prologic@twtxt.net Tada! There you once hope for your flight and ride to be delayed and then of course they are right on time! :-D You gotta wait either way. ;-) Looks like you got some good drinks, though.
@bender@twtxt.net a mobile phone camera doesnāt cut it because it cant take long videos. I would say like the cheapest possible tbh! it doesnāt have to be an amazing grade a camera, just something that will record in decent quality for long periods of time! I mostly want it to make vlogs :p
As someone that almost exclusively uses āDiscoverā, that is. If you do use it like I do, you know I mean.
@movq@www.uninformativ.de All good! š Likely bug on my end (bridge)
@lyse@lyse.isobeef.org Oh yeah, thereās lots of them here. Even in winter when itās freezing outside. Iām always baffled to see parrots in the snow ⦠feels like a paradox. š„“
@prologic@twtxt.net it would have been so much easy to run your own. I guess we all like to suffer every once and then, and this time is your turn. š