@prologic@twtxt.net Welcome back ๐
even our hippest AI enthusiasts found it absolutely terrible
Does this refer to the training course or to the tools themselves? ๐ค
@lyse@lyse.isobeef.org Yes, and thatโs why Iโm 100% convinced that weโll see a massive brain drain in a couple of years. This will affect young people even more, because they donโt have all the โoldโ knowledge to fall back on.
Itโs concerning, Iโve warned about it many times, nobody listens.
I think the best thing one can do is explicitly not use any AI tools but keep your actual skills intact. Might be out of a (good) job for a while, but once this bubble bursts, this is who is going to get hired again. (I think.)
And considering how insanely expensive all this is, Iโm still (mostly) convinced that the bubble will actually burst. This stuff just isnโt sustainable.
โฆ or I might be wrong. And if so, I see an even darker future that I donโt want to put into words right now.
@lyse@lyse.isobeef.org AI result ahead, feel free to ignore.
I โaskedโ the AI at work the same question out of morbid curiousity. It โsaidโ that SQLite converts that integer to floating point internally on overflows and then, when converting back, the x86 instruction cvttsd2si will turn it into 0x8000000000000000, even if the actual floating point value is outside of that range. So, yes, it allegedly actually saturates, as a side effect of the type conversion.
I couldnโt find anything about that automatic conversion in SQLiteโs manual, yet, but an experiment looks like it might be true:
sqlite> select typeof(1 << 63);
โญโโโโโโโโโโโโโโโโโโฎ
โ typeof(1 << 63) โ
โโโโโโโโโโโโโโโโโโโก
โ integer โ
โฐโโโโโโโโโโโโโโโโโโฏ
sqlite> select typeof((1 << 63) - 1);
โญโโโโโโโโโโโโโโโโโโโโโโโฎ
โ typeof((1 << 63) ... โ
โโโโโโโโโโโโโโโโโโโโโโโโก
โ real โ
โฐโโโโโโโโโโโโโโโโโโโโโโโฏ
As for cvttsd2si, this source confirms the handling of 0x8000000000000000 on range errors: https://www.felixcloutier.com/x86/cvttsd2si
The following C program also confirms it (run through gdb to see cvttsd2si in action):
<a href="https://yarn.girlonthemoon.xyz/search?q=%23include">#include</a> <stdint.h>
<a href="https://yarn.girlonthemoon.xyz/search?q=%23include">#include</a> <stdio.h>
int
main()
{
int64_t i;
double d;
/* -3000 instead of -1, because `double` canโt represent a
* difference of -1 at this scale. */
d = -9223372036854775808.0 - 3000;
i = d;
printf("%lf, 0x%lx, %ld\n", d, i, i);
return 0;
}
(Remark about AI usage: Fine, I got an answer and maybe itโs even correct. But doing this completely ruined it for me. It would have been much more satisfying to figure this out myself. I actually suspected some floating point stuff going on here, but instead of verifying this myself I reached for the unethical tool and denied myself a little bit of fun at the weekend. Wonโt do that again.)
Disclaimer: Canโt guarantee that Iโm fully awake and Iโm being trained at work not to use my brain anymore, so maybe this is complete bullshit. ๐ช๐งโโ๏ธ
It says here that SQLite uses signed integers:
https://sqlite.org/datatype3.html
In pure bits, 1 << 63 would be 0x8000000000000000, but as a signed value, it gets interpreted as -9223372036854775808. Subtracting 1 yields -9223372036854775809 โ but that doesnโt fit in 64 bits anymore. Itโs possible that SQLite doesnโt want to wrap around but instead saturates? Havenโt checked. ๐ค
With 62 bits, there is enough room.
With 1 << 64, I have no idea how SQLite wants to handle this, because this should immediately trigger a warning, because it doesnโt fit right away. Maybe it gets truncated to 0?
sqlite> select printf('0x%x', 2 * (1 << 64));
โญโโโโโโโโโโโโโโโโโโโโโโโฎ
โ printf('0x%x', 2 ... โ
โโโโโโโโโโโโโโโโโโโโโโโโก
โ 0x0 โ
โฐโโโโโโโโโโโโโโโโโโโโโโโฏ
sqlite> select printf('0x%x', 0 - 1);
โญโโโโโโโโโโโโโโโโโโโโโโโฎ
โ printf('0x%x', 0 ... โ
โโโโโโโโโโโโโโโโโโโโโโโโก
โ 0xffffffffffffffff โ
โฐโโโโโโโโโโโโโโโโโโโโโโโฏ
sqlite> select printf('0x%x', 0 - 2);
โญโโโโโโโโโโโโโโโโโโโโโโโฎ
โ printf('0x%x', 0 ... โ
โโโโโโโโโโโโโโโโโโโโโโโโก
โ 0xfffffffffffffffe โ
โฐโโโโโโโโโโโโโโโโโโโโโโโฏ
@prologic@twtxt.net Oh, so thatโs where you are! ๐ Great scenery. Enjoy!
@bender@twtxt.net Ah, great, thanks!
@lyse@lyse.isobeef.org Yeah, I really donโt know anymore. ๐
By the way, why do so many of them wear glasses? As a kid, Iโve been told that people with glasses canโt become astronauts. So I gave up my dreams. Now it looks like that was a lie? โน๏ธ
Christina Koch looking at Earth is my new wallpaper:

(Sorry, forgot where I originally found the image. Some NASA photo collection.)
@lyse@lyse.isobeef.org Itโs impossible to avoid. Gotta wait a few years and then weโll see. ๐ต
The problem is, they jump hosts all the time.

Maybe itโs time to add automated blocking after all โฆ God, Iโm too lazy for that. ๐
@lyse@lyse.isobeef.org Indeed. Very unpopular, though. Iโve long given up that fight at work.
In reality, there are too few real incidents. It doesnโt hurt enough. Itโs always: โSomething could happen!โ But weโve never been hit big time by an attack like this โฆ so I just look like a paranoid idiot.
This whole thing was pretty weird, btw. I had no idea it was happening until basically yesterday. No news coverage, nobody mentioned it. ๐ค And suddenly, boom, weโre going to the moon. What? ๐
@bender@twtxt.net You saw it in person, I suppose? I watched the stream last night. ๐
In case youโre wondering where they are: https://artemistracker.com/
talk next to nothing
I could rant about AI a bit and how it ruins every day at work, if that helps? ๐คฃ
@quark@ferengi.one Ta-tah ๐ฅณ
@prologic@twtxt.net @lyse@lyse.isobeef.org Yay! Time for a new jenny release, then. ๐
@lyse@lyse.isobeef.org This is good! ๐ช Letโs merge this.
(This one actually has the potential to live longer than 3 days.)
And another fork: https://drewdevault.com/2026/03/25/2026-03-25-Forking-vim.html
@lyse@lyse.isobeef.org 22 thru 25 are wallpaper-worthy. ๐๐
@prologic@twtxt.net Nice. ๐ Thatโs the beauty of a small instrument like that: You can just pick it up, play a little bit, put it back. ๐ (Canโt do that with my stuff. ๐คฃ)
There you go, user-defined color schemes:

@iolfree@tilde.club Will do. ๐ซก
@lyse@lyse.isobeef.org A-ha! That means you havenโt spent enough time with these tools! Go on, try it! (If you donโt, weโll fire you.) Iโm sure youโll like it!

Oh. Feed rotated. hfgl ๐
@lyse@lyse.isobeef.org I bet that their AI agent handles that as well, so โฆ ๐คทโโ๏ธ

@bender@twtxt.net gemini-cli, something something https://github.com/google-gemini/gemini-cli/issues/16723
I recently got an email with this byte sequence:
\xf0\x9f\x8e\x81\xf0\x9f\x95\xaf\xef\xb8\x8f
Thatโs U+1F381, U+1F56F, U+FE0F. The last one is a โvariation selectorโ:
https://unicodeplus.com/U+FE0F
My toolkit renders this incorrectly โ and so do tmux and GNU screen.
Unicode ainโt easy. ๐ฅด
https://github.com/unix-v4-commentary/unix-v4-source-commentary
A comprehensive, line-by-line commentary on the UNIX Fourth Edition source code (released November 1973; tape recovered from June 1974 distribution).
./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.
./bin/mu -B -o ... -p muos/amd64 ... target.
@prologic@twtxt.net Damn, nice! I know exactly what you mean โ the output/screenshot looks trivial, but thereโs so much going on behind the scenes. ๐
Did you do the whole dance with BIOS boot and everything?
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 โฆ I sure hope that they generate these files from the general terminfo database instead of maintaining their own DB. ๐ณ
@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:

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.
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).
Some work on the menu system to brighten my mood a little bit. No mouse support yet.
@prologic@twtxt.net Probably not, but thanks. ๐ Itโll get better.
@prologic@twtxt.net Work and the general state of (gestures broadly) everything.
Frustration level: Through the roof.
@bender@twtxt.net I vaguely remember this, some leftover from the old-style hashtags? The (#foo) stuff? ๐ค
Pep8 is deprecated, I think
Hmm, I donโt think it is, this still says โStatus: Activeโ: https://peps.python.org/pep-0008/ ๐ค
Since I used so much Rust during the holidays, I got totally used to rustfmt. I now use similar tools for Python (black and isort).
What have I been doing all these years?! I never want to format code manually again. ๐คฃ๐
@shinyoukai@yume.laidback.moe Hopefully, yes. Havenโt tried it yet.
@shinyoukai@neko.laidback.moe mckinley is back? Where? ๐ค
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? ๐ค๐คฏ


