Searching txt.sour.is

Twts matching #work
Sort by: Newest, Oldest, Most Relevant

** Snakes snakes snakes, a week note **
I’ve been working on an ill advised project. This project will have to be done in many parts. Part one of many is done, and I’m debating if I should share it, or if I should wait to get the whole thing done. But now, a smash cut…I started this post off as a normal post, but now that it is an RSS sickos only post…

Check this shit out! I recently read about the $1 unistroke recognizer, and predictably, had to try to [implement my … ⌘ Read more

⤋ Read More
In-reply-to » @lyse I just watched this. And whilst it's very good and insightful, good history of MySQL and how Martin helped built a good solid Open Source + Commercial model, I'm not seeing the "why people don’t wanna work at your company" bit? What am I missing? šŸ¤” In any case, he does talk to great length on the importance of Culture and the insane notion of "centrlaised office working", which I 100% agree with.

@prologic@twtxt.net Sorry if I raised the wrong hope. Only the German talk is about the ā€œwhy good people don’t want to work at your companyā€ subject. Among the key points are the absolutely terrible job adverts, team leads not themselves looking for people to hire but letting other dudes do that, company cultures and communication.

⤋ Read More
In-reply-to » A mate just recommended this German talk why people don't wanna work at your company: https://media.ccc.de/v/froscon2025-3321-eseskaemwarumguteleutenichtbeieucharbeiten_wollen It's really good. I fully agree with most parts.

@lyse@lyse.isobeef.org I just watched this. And whilst it’s very good and insightful, good history of MySQL and how Martin helped built a good solid Open Source + Commercial model, I’m not seeing the ā€œwhy people don’t wanna work at your companyā€ bit? What am I missing? šŸ¤” In any case, he does talk to great length on the importance of Culture and the insane notion of ā€œcentrlaised office workingā€, which I 100% agree with.

⤋ Read More

A mate just recommended this German talk why people don’t wanna work at your company: https://media.ccc.de/v/froscon2025-3321-es_es_ka_em_warum_gute_leute_nicht_bei_euch_arbeiten_wollen It’s really good. I fully agree with most parts.

The speaker referenced https://www.youtube.com/watch?v=2xmEgtRhw7o (MƄrten Mickos: Believe in Something Bigger Than Yourself) which is also very interesting, if you make it through the first bit. He talks about his CEO role at MySQL AB.

⤋ Read More
In-reply-to » @lyse … at least this story was entertaining to read. šŸ˜… If only Firefox’s storage format wasn’t so convoluted, you could have just shut it down and removed all the unwanted tabs. 🫤

@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?

⤋ Read More

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.

Image

⤋ Read More

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.

⤋ Read More
In-reply-to » I spent the day today integrating @xuu's double ratcheting work and ratchet library back into the reference client/broker implementation saltyim as a v2 branch. I completely redesigned and rewrite the salty-chat TUI client as well, which now includes proper notifications and a background agent that keeps running so you never miss any messages. It all "just works"ā„¢ and I'm quite happy with the outcome! 🤩 #saltyim #revamp

@prologic@twtxt.net I will give it a try when it works flawlessly. ā˜ŗļø Then I will need people to interact with, otherwise it’s a ā€œmuteā€ case. 🤭

⤋ Read More

I spent the day today integrating @xuu@txt.sour.is’s double ratcheting work and ratchet library back into the reference client/broker implementation saltyim as a v2 branch. I completely redesigned and rewrite the salty-chat TUI client as well, which now includes proper notifications and a background agent that keeps running so you never miss any messages. It all ā€œjust worksā€ā„¢ and I’m quite happy with the outcome! 🤩 #saltyim #revamp

⤋ Read More
In-reply-to » Behold! 🄳 My first (hopefully it doesn't fail šŸ¤ž) µSaaS (microSaaS)

@bender@twtxt.net Thanks for letting me know it was Mobile Safari! I just did some testing real quick and things are not working very well šŸ¤” I think I’ve introduced some regressions last night as I was putting this into prod šŸ˜… services me right for late-night deployment 🤣 I’ve taken it down for now, will spend a bit more time on testing making sure things all work properly!

⤋ Read More

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.

⤋ Read More
In-reply-to » This weekend, I'm building a service that turns PDFs into chaptered, audiobook‑quality narration in minutes—upload, listen in a built‑in player, and download MP3/M4B files with clean metadata.

Has a bit of a long history story behind this, where last year at work we were reading this book called Engineering a Safer World and initially came across a service called Speech Reply that allowed me to upload a PDF copy of the book and start to read it, but unfortunately, the free trial right now before I can finish reading it turns out that Speech Reply service cost a whopping US$30 a month and expected me to pay a full year upfront, which was well over US$300 just for one fucking book! So I sent their sales and support staff a message kindly asking if it were possible to just pay for the audio transcription of just a single book or to change to a monthly subscription fee, to which they refused, so basically in the end I got very angry and told them to go fuck themselves and built my own service. A year later here we are :-)

⤋ Read More

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. 🄳

⤋ Read More
In-reply-to » @bender Fixed 🤣 Nobody was following that feed šŸ˜… yarnd had no reason to "pull" it in.

@bender@twtxt.net Only missing roots would trigger that kind of sync IIRC. And that only works if another peering pod has the root twt. What you’re remembering, possibly, is an attempt to do what you were thinking of… But I tried it, turned out to be too expensive of an operation to do auotmatically.

⤋ Read More

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.)

⤋ Read More
In-reply-to » Btw @movq you've inspired me to try and have a good 'ol crack at writing a bootloader, stage1 and customer microkernel (µKernel) that will eventually load up a Mu (µ) program and run it! 🤣 I will teach Mu (µ) to have a ./bin/mu -B -o ... -p muos/amd64 ... target.

@prologic@twtxt.net I’d love to take a look at the code. šŸ˜…

I’m kind of curious to know how much Assembly I need vs. How much of a microkernel can I build purely in Mu (µ)? šŸ¤”

Can’t really answer that, because I only made a working kernel for 16-bit real mode yet. That is 99% C, though, only syscall entry points are Assembly. (The OpenWatcom compiler provides C wrappers for triggering software interrupts, which makes things easier.)

But in long mode? No idea yet. šŸ˜… At least changing the page tables will require a tiny little bit of Assembly.

⤋ Read More
In-reply-to » Btw @movq you've inspired me to try and have a good 'ol crack at writing a bootloader, stage1 and customer microkernel (µKernel) that will eventually load up a Mu (µ) program and run it! 🤣 I will teach Mu (µ) to have a ./bin/mu -B -o ... -p muos/amd64 ... target.

I’ve only got a handful of syscalls working right now. Taking inspiration from the calling convention of the Linux kernel and even made the service/interrupt handler int 0x80h 🤣 I’ve only got read, write, alloc and exit working righ tnow 🄲

⤋ Read More
In-reply-to » Btw @movq you've inspired me to try and have a good 'ol crack at writing a bootloader, stage1 and customer microkernel (µKernel) that will eventually load up a Mu (µ) program and run it! 🤣 I will teach Mu (µ) to have a ./bin/mu -B -o ... -p muos/amd64 ... target.

Whohoo! 🄳 You have no idea how great a feeling this is! This includes the Mu stdlib and runtime as well, not just some simple stupid program, this means a significant portion of the runtime and stdlib ā€œjust worksā€ā„¢ 🤣

⤋ Read More
In-reply-to » Here am I looking at the different tcell.Key constants and typing different key combinations in the terminal to see the generated tcell.EventKeys in the debug log. Until I pressed Ctrl+Alt+Backspace… :-D Yep, suddenly there went my X…

@movq@www.uninformativ.de Yeah, I know that terminals are super weird and messy. In both the KDE Konsole (identifying itself as TERM=xterm-256color) and xterm (TERM=xterm) it just works flawlessly. My urxvt (TERM=rxvt-unicode-256color) just doesn’t. I also tried messing with TERM in urxvt, but no luck so far.

⤋ Read More
In-reply-to » Here am I looking at the different tcell.Key constants and typing different key combinations in the terminal to see the generated tcell.EventKeys in the debug log. Until I pressed Ctrl+Alt+Backspace… :-D Yep, suddenly there went my X…

@lyse@lyse.isobeef.org Unix terminals are quite limited in that regard. 🫤 You know how Ctrl works? The XOR 0x40 thing? And Alt doesn’t exist at all, it’s just a prefixed ESC byte.

I was surprised to see curses knowing about ā€œShift+Tabā€, wondering how that is supposed to work. Well, it’s an escape sequence, of course (depending on the terminal, of course).

⤋ Read More
In-reply-to » Here am I looking at the different tcell.Key constants and typing different key combinations in the terminal to see the generated tcell.EventKeys in the debug log. Until I pressed Ctrl+Alt+Backspace… :-D Yep, suddenly there went my X…

Well, in Xterm, I actually do get key combinations with the Shift modifier. Also, combinations of several modifiers just work exactly as I expect. But not in URXvt. Hmm.

⤋ Read More

Okay, I had heard of ā€œRiverā€ before but I was not aware of this:

https://codeberg.org/river/river

River defers all window management policy to a separate window manager implementing the river-window-management-v1 protocol. This includes window position/size, pointer/keyboard bindings, focus management, window decorations, desktop shell graphics, and more.

This sounds promising and it follows the old X11 model. River does all the nasty Wayland work and I can make just the WM? šŸ¤”šŸ¤Æ

⤋ Read More
In-reply-to » @lyse Ah, the lower right corner is different on purpose: It’s where you can click and drag to resize the window. https://movq.de/v/cbfc575ca6/vid-1767977198.mp4 Not sure how to make this easier to recognize. šŸ¤” (It’s the only corner where you can drag, btw.)

@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).

⤋ Read More
In-reply-to » Mu (µ) is coming along really nicely 🤣 Few things left to do (in order):

Most of it should work on other platforms, the bytecode VM that is. You may run into some platform quirks though that rely on syscall() – Let me know what you run into and I’ll try to fix them nw. The problem right now is I haven’t even begun to start work on another platform/architecture yet.

⤋ Read More

@shinyoukai@neko.laidback.moe the whole bridge idea is a mistake done twice (I encouraged the first time, it was a mistake to do so). In this case, the ā€œBabel Towerā€ works; there is no need to interact with ā€œothersā€, let it be just twtxt.

⤋ Read More

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? šŸ˜®ā€šŸ’Ø

⤋ Read More
In-reply-to » I think this is finally a good metaphor to talk about ā€œsimpleā€ software:

@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.

⤋ Read More

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. šŸ¤”

⤋ Read More
In-reply-to » Ending three luxurious do-what-I-please weeks; tomorrow is back to work. What do you all do during your break (and this assumes you had one, even if short)? I mostly did nothing, which in itself was truly something! So much, I long to do it all over again. A man can dream, right? Haha!

@bender@twtxt.net No, I had my break/holiday earlier. I chose to work through, except the public holidays of course.

⤋ Read More
In-reply-to » Ending three luxurious do-what-I-please weeks; tomorrow is back to work. What do you all do during your break (and this assumes you had one, even if short)? I mostly did nothing, which in itself was truly something! So much, I long to do it all over again. A man can dream, right? Haha!

@prologic@twtxt.net so, you were not giving time off during the end of year? The company you work for didn’t give a break?

⤋ Read More
In-reply-to » Ending three luxurious do-what-I-please weeks; tomorrow is back to work. What do you all do during your break (and this assumes you had one, even if short)? I mostly did nothing, which in itself was truly something! So much, I long to do it all over again. A man can dream, right? Haha!

I basically worked through the Christmas break last year. I already had my holidays in Vietnam a few weeks earlier. šŸ˜†

⤋ Read More
In-reply-to » @movq I noticed that your feed's last modification timestamp was missing in my database. I cannot tell for certain, but I think it did work before. Turns out, your httpd now sends the Last-Modified with UTC instead of GMT. Current example:

@shinyoukai@neko.laidback.moe Not using OpenBSD or httpd? Yeah. It’s been working quite well since ~2017, so, meh, too lazy to switch now. But nothing is set in stone, of course.

⤋ Read More
In-reply-to » More widget system progress:

And now the event loop is not a simple loop around curses’ getch() anymore but it can wait for events on any file descriptor. Here’s a simple test program that waits for connections on a TCP socket, accepts it, reads a line, sends back a line:

https://movq.de/v/93fa46a030/vid-1767547942.mp4

And the scrollbar indicators are working now.

I’ll probably implement timer callbacks using timerfd (even though that’s Linux-only). šŸ¤”

⤋ Read More

Ending three luxurious do-what-I-please weeks; tomorrow is back to work. What do you all do during your break (and this assumes you had one, even if short)? I mostly did nothing, which in itself was truly something! So much, I long to do it all over again. A man can dream, right? Haha!

⤋ Read More

@movq@www.uninformativ.de I noticed that your feed’s last modification timestamp was missing in my database. I cannot tell for certain, but I think it did work before. Turns out, your httpd now sends the Last-Modified with UTC instead of GMT. Current example:

Sat, 03 Jan 2026 06:50:20 UTC

I’m not a fan of this timestamp format at all, but according to the HTTP specification, HTTP-date must always use GMT for a timezone, nothing else: https://httpwg.org/specs/rfc9110.html#http.date

⤋ Read More

** 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

⤋ Read More

Mu (µ) is now getting much closer to where I want it to be, it now has:

  • A process stdlib module (very basic, but it works)
  • An ffi stdob module that supports dlopen / dlsym and calling C functions with a nice mu-esque wrapper ffi.fn(...)
  • A sqlite stdlib module (also very basic) that shows off the FFI capabilities

šŸ˜…

⤋ Read More

** December Adventure, 2025 **

At the end of my #DecemberAdventure, I re-learned what I learned last year:

that 20 minutes a day can be surprisingly productive,

that I am happiest in writing code when it’s just for me or for a small group of people I know personally.

I find stats and data tracking antithetical to the experience of feeling joy, so I’ve got no bona fide numbers about this, but this year’s [December Adventure … ⌘ Read more

⤋ Read More
In-reply-to » On my way to having windows and mouse support:

At around 19 seconds in the video, you can see some minor graphical glitches.

Text mode applications in Unix terminals are such a mess. It’s a miracle that this works at all.

In the old DOS days, you could get text (and colors) on the screen just by writing to memory, because the VGA memory was mapped to a fixed address. We don’t have that model anymore. To write a character to a certain position, you have to send an escape sequence to move the cursor to that position, then more escape sequences to set the color/attributes, then more escape sequences to get the cursor to where you actually want it. And then of course UTF-8 on top, i.e. you have no idea what the terminal will actually do when you send it a ā€œšŸ™‚ā€.

Mouse events work by the terminal sending escape sequences to you (https://www.xfree86.org/current/ctlseqs.html#Mouse%20Tracking).

ncurses does an amazing job here. It’s fast (by having off-screen buffers and tracking changes, so it rarely has to actually send full screen updates to the terminal) and reliable and works across terminals. Without the terminfo database that keeps track of which terminal supports/requires which escape sequences, we’d be lost.

But gosh, what a mess this is under the hood … Makes you really miss memory mapped VGA and mouse drivers.

⤋ Read More

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.)

⤋ Read More

@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.

⤋ Read More
In-reply-to » Question to my fellow Vimers: Which snippet insertion mechanism are you using or can you (not) recommend?

@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.)

⤋ Read More
In-reply-to » @lyse Yeah I remember you said some days back that your interest in compilers was rekindled by my work on mu (µ) šŸ˜…

@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 šŸ˜‚

⤋ Read More
In-reply-to » Whoo! I fixed one of the hardest bugs in mu (µ) I think I've had to figure out. Took me several days in fact to figure it out. The basic problem was, println(1, 2) was bring printed as 1 2 in the bytecode VM and 1 nil when natively compiled to machine code on macOS. In the end it turned out the machine code being generated / emitted meant that the list pointers for the rest... of the variadic arguments was being slot into a register that was being clobbered by the mu_retain and mu_release calls and effectively getting freed up on first use by the RC (reference counting) garbage collector šŸ¤¦ā€ā™‚ļø

@lyse@lyse.isobeef.org Yeah I remember you said some days back that your interest in compilers was rekindled by my work on mu (µ) šŸ˜…

⤋ Read More
⤋ Read More
In-reply-to » 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).

@movq@www.uninformativ.de I think I can get binaries even smaller with a bit more work and effort šŸ¤” But yeah still working on the native code generation (at least for macOS targets)

⤋ Read More
In-reply-to » This one is a slightly more 3D looking, as well as the first one, with the tail swirled. Media

@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.

⤋ Read More

2025 end the year rewind:

Compared to only 3 new artworks in 2024 and next to no work, on other projects, this year I not only met the self-imposed goal of monthly pixelart, but exceeded it by 50%, with 18 additions in total.

Relicensed the majority of canine faction owned art and projects, under two less restrictive Creative Commons licensees*. This also applies retroactively, to everyone who used/archived our art and projects, back when the old license didn’t allow it.

Disappointed by the current state of the Internet and continued lack of competition among browsers, completely reworked the main website* and made Smol Drive** (a new image gallery project), both made to be compatible with as many web and Gemini browsers, as possible.

*see https://thecanine.smol.pub
**see https://thecanine.smol.pub/smolbox

⤋ Read More
In-reply-to » Hey EU friends šŸ‘‹ wtf happened to the EU Internet today for about 40 minutes or so?

@prologic@twtxt.net @movq@www.uninformativ.de A crocodile had bitten the big submarine internet cable that connects Australia to Europe. The investigations revealed that some construction work last week accidentally tore up the protective layer around it. That went unnoticed, unfortunately, so marine life had an easy job today. For just 40 minutes, they were quite fast in repairing the damage if you ask me! These communication cables are fricking large.

Just kidding, I completely made that up. :-D I didn’t notice any outage either. But I didn’t try to connect to Down Under at the time span in question.

⤋ Read More
In-reply-to » Wow, @movq, so many tables. No idea what I expected (I'm totally clueless on this low-level stuff), but that was quite an interesting surprise to me. https://www.uninformativ.de/blog/postings/2025-12-21/0/POSTING-en.html

@lyse@lyse.isobeef.org I was surprised by that as well. šŸ˜… I thought these were features that you can use, but no, you must do all this.

By the way, I now fixed the issue that I mentioned at the end and it works on the netbook now. 🄳

https://www.uninformativ.de/blog/postings/2025-12-21/0/netbook.jpg

⤋ Read More

@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…

⤋ Read More

https://li-ma.nl/

«Our online catalogue comprises the largest media art collection in the Netherlands. Search through more than 3,500 works of art, from video-art pioneers from the 1960s to up-and-coming talents and well-known contemporary artists working with the latest technologies. New works are continuously added. The works are available for screenings, exhibitions and research.»

Via @ranoya@ranoya

#NewMediaArt #CreativeCoding #DigitalPreservation

⤋ Read More

Got a nice conspiracy theory for you:

https://mastodon.social/@mcc/115670290552252848

Actually wait I just thought about this and realized that the precise timing of the ACTUAL GitHub seed bank, by which I mean the Arctic Code Vault, on 2020-02-02, makes it more or less a perfect snapshot of pre-Copilot GitHub. Also precisely timed before we all got brain damage from COVID. This is the only remaining archive of source code by people with a fully working sense of smell

(Bonus points because the Arctic World Archive is located in Svaldbard and that’s the name of the AI in Stacey Kade’s ā€œCold Eternityā€.)

⤋ Read More
In-reply-to » My current PC is from 2013, so I never even bothered to check, but as it turns out: My motherboard still has a serial port. 🤯 I thought these had long died out by then. To be honest, I didn’t have the need for one, either, not until recently … So I completely lost track if PCs have these things or not.

Bought more cheap slot plates (with bad reviews and people complaining about the pin order, because I could’nt find a product without such reviews), but those are simply correct now and just work. 🤪

⤋ Read More
In-reply-to » Use more WebP, I guess.

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.

⤋ Read More
In-reply-to » Use more WebP, I guess.

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.

⤋ Read More
In-reply-to » In case you haven’t seen it yet:

@prologic@twtxt.net Here you go:

(LTT = ā€œLinus Tech Tipsā€, that’s the host.)

LTT: There was a recent thing from a major tech company, where developers were asked to say how many lines of code they wrote – and if it wasn’t enough, they were terminated. And there was someone here that was extremely upset about that approach to measuring productivity, because–

Torvalds: Oh yeah, no, you shouldn’t even be upset. At that point, that’s just incompetence. Anybody who thinks that’s a valid metric is too stupid to work at a tech company.

LTT: You do know who you just said that about, right?

Torvalds: No.

LTT: Oh. Uh, he was a prominent figure in the, uh, improved efficiency of the US government recently.

Torvalds: Oh. Apparently I was spot on.

⤋ Read More
In-reply-to » My current PC is from 2013, so I never even bothered to check, but as it turns out: My motherboard still has a serial port. 🤯 I thought these had long died out by then. To be honest, I didn’t have the need for one, either, not until recently … So I completely lost track if PCs have these things or not.

But it is weird that none of the slot plates (that I can find) appear to have the correct pin order. šŸ¤”

The two mainboards I have here use this order:

2468x
13579

But the slot plates use this:

12345
6789x

I tripped over this at first and wondered why it didn’t work.

Has this changed recently or what? 🄓

⤋ Read More
In-reply-to » I kind of hate conventional commit messages: https://www.conventionalcommits.org/en/v1.0.0/#summary

@prologic@twtxt.net Bwahahaha! I tried to establish some form of ā€œconventionā€ for commit messages at work (not exactly what you linked to, though), but it’s a lost cause. šŸ˜‚ Nobody is following any of that. Nobody wants to invest time in good commit messages. People just want to get stuff done.

I’m just glad that 80% are at least somewhat useful – instead of ā€œwipā€ or ā€œshit i screwed upā€.

⤋ Read More

My current PC is from 2013, so I never even bothered to check, but as it turns out: My motherboard still has a serial port. 🤯 I thought these had long died out by then. To be honest, I didn’t have the need for one, either, not until recently … So I completely lost track if PCs have these things or not.

All I needed was one of those slot-cable-thingies. (And if the order of pins is correct, then it actually works. 🤦)

https://movq.de/v/89a67cf40f/slot.jpg

Cool! One less USB device. 😃

⤋ Read More

It was though year. I finished my PhD, yay! Now, I’m on vacation from my main job, as educator at Sesc, and yesterday I wound down some last freelance work obligations. I really need a break.

I want to rest, make some ā€œprintsā€ of my drawings for friends, go to my local museums and have coffee/tea with friends, and that’s it!

Today we celebrate 18 years of our local #Python users group, #GruPySP, and I’m going to meet friends from #GaroaHackerClube, that’s a great start :)

⤋ Read More

@bender@twtxt.net Mate, I don’t know how you do it, but the frequency of words I haven’t come across before is actually quite high in your work. I noticed it in your twtxt messages in the past, but your notes are also full of them. I love it, always learning something new. Thank you for teaching me without knowing. In case you’re wondering, ā€œyesternightā€ and ā€œsqualidā€ are the ones I stumbled across today. :-)

⤋ Read More
In-reply-to » AoC Day #1 solution (mu): https://gist.mills.io/prologic/d3c22bcbc22949939b715a850fe63131

I actually can’t progress to day two till I get home 🤣 – I haven’t pushed the code for the mu compiler yet šŸ¤¦ā€ā™‚ļø So no-one can check my work even if they were so kind 🤣

⤋ Read More
In-reply-to » I have to say. A well designed Hypermedia Driven Web Application such as yarndā€˜ using HTMX is just as good, i'd not better, than one written in React.

Even on piss poor in-flight Wi-Fi it works pretty well šŸ‘Œ

⤋ Read More
In-reply-to » I have a question! I'm looking for a small personal camera(specifically good for videos because that's what I'll use it for) that's cheap enough for a teen to afford but also actually good. Do any of you tech people have any good recs?

@kiwu@twtxt.net It also greatly depends on what kind of videos you plan to record. When you go, let’s say, diving, the specs need to be probably more suited to that type of environment. What about zoom, macro shots, wide landscapes, and so on? When typically mounted on a tripod, I’d say builtin image stabilization is not required, but for more action shots, this is fairly important to not get sea sick. :-)

I’ve got a Nikon Coolpix S9300. I typically only take photos, but it also works for the occasional video. Free hand moves are quite difficult, but when mounted to a tripod, this is not too shabby. There’s absolutely no way around a (makeshift) tridpod when zooming in, though. The audio is definitely not the best, especially wind destroys everything. If I recorded more video, I would certainly want to have an external microphone.

⤋ Read More
In-reply-to » @aelaraji Thanks for the account! I figured out one thing at least so far, my WAF was blocking some of the AP requests. Fixed that. Anyway, holiday time 🤣 Back in ~2 weeks.

Oh my god! 🤣 It works! 🄳 My first Twt into the Fediverse (stil some improvements to be made of course), but still 😳 Wow! 🤩

⤋ Read More
In-reply-to » @prologic I will share later my GoToSocial 10 lines (or less) config.yaml, and 4 lines Caddyfile, and you will see how easy it is.

@bender@twtxt.net That’s not the problem. The problem is the complex DNS setup and delegation. I’ve gotten it working once before, but it’s not that easy if you don’t intend to run it on the APEX Domain.

⤋ Read More

So blackholing my Gitea instance’s DNS for the day seemed to have worked 🤣 (if only I had a real target I could have made their fucking crawlers DDoS themselves šŸ˜‚) – Let’s also see if enabling DDoS proection on the Edge via Vultr’s DDoS capability also helps? šŸ¤”

⤋ Read More

Tired to re-enable the Ege route to git.mills.io today (after finishing work) and this is what I found 🤯 Tehse asshole/cunts are still at it !!! 🤬 – So let’s instead see if this works:

$ host git.mills.io 1.1.1.1
Using domain server:
Name: 1.1.1.1
Address: 1.1.1.1#53
Aliases:

git.mills.io is an alias for fuckoff.mills.io.
fuckoff.mills.io has address 127.0.0.1


PS: Would anyone be interested if I started a massive global class action suit against companies that do this kind of abusive web crawling behavior, violate/disregards robots.txt and whatever else standards that are set in stone by the W3C? šŸ¤”

⤋ Read More

since there are quite literally no note taking apps that work for me, i’ve began writing my own! to get started real quick i adapted the core part of bbycll’s backend and it works so nicely — which speaks volumes to the quality of the code! should really break it out into a custom framework. i’m also realizing how easy it would be to get bbycll v1 ready…but this is probably more important since it’ll allow me to get my life in order ^^’

⤋ Read More

https://fokus.cool/2025/11/25/i-dont-care-how-well-your-ai-works.html

AI systems being egregiously resource intensive is not a side effect — it’s the point.

And someone commented on that with:

I’m fascinated by the take about the resource usage being an advantage to the AI bros.

They’ve created software that cannot (practically) be replicated as open source software / free software, because there is no community of people with sufficient hardware / data sets. It will inherently always be a centralized technology.

Fascinating and scary.

⤋ Read More
In-reply-to » One day I'll like to elaborate why I'm against the usage of Anubis (and its derivatives) for the rampant crawlers

@shinyoukai@neko.laidback.moe I’m mostly against it because it forces Javascriptā„¢ on the client(s) at a blanket level. Doing ā€œProof-of-Workā€ explicitly IMO is fineā„¢, but not at an Ingress/Edge level IMO – Which is why I haven’t adopted it myself.

⤋ Read More

Not a day goes by at work, where I’m not either infuriated or frustrated by this wave of AI garbage. In my private life, I can avoid it. But not at work. And they’re pushing hard for it.

Something has to change in 2026.

⤋ Read More