# I am the Watcher. I am your guide through this vast new twtiverse.
# 
# Usage:
#     https://watcher.sour.is/api/plain/users              View list of users and latest twt date.
#     https://watcher.sour.is/api/plain/twt                View all twts.
#     https://watcher.sour.is/api/plain/mentions?uri=:uri  View all mentions for uri.
#     https://watcher.sour.is/api/plain/conv/:hash         View all twts for a conversation subject.
# 
# Options:
#     uri     Filter to show a specific users twts.
#     offset  Start index for quey.
#     limit   Count of items to return (going back in time).
# 
# twt range = 1 14875
# self = https://watcher.sour.is?uri=https://www.uninformativ.de/twtxt.txt&offset=13975
# next = https://watcher.sour.is?uri=https://www.uninformativ.de/twtxt.txt&offset=14075
# prev = https://watcher.sour.is?uri=https://www.uninformativ.de/twtxt.txt&offset=13875
@lyse Awww. 😍 Reminds me a bit of a gentoo penguin. 😅
@lyse Awww. 😍 Reminds me a bit of a gentoo penguin. 😅
It needs to be said: Retrocomputing and old systems like DOS or OS/2 are fun and all, but a UNIX shell and its userland tools are the most powerful things I’ve ever seen. You can pry that from my cold dead hands. 😅
It needs to be said: Retrocomputing and old systems like DOS or OS/2 are fun and all, but a UNIX shell and its userland tools are the most powerful things I’ve ever seen. You can pry that from my cold dead hands. 😅
It needs to be said: Retrocomputing and old systems like DOS or OS/2 are fun and all, but a UNIX shell and its userland tools are the most powerful things I’ve ever seen. You can pry that from my cold dead hands. 😅
It needs to be said: Retrocomputing and old systems like DOS or OS/2 are fun and all, but a UNIX shell and its userland tools are the most powerful things I’ve ever seen. You can pry that from my cold dead hands. 😅
There’s also this:

; 13 + 23 + 33 + 43 + 53 + 63 + 73 + 83 + 93
2025

😅
There’s also this:

; 13 + 23 + 33 + 43 + 53 + 63 + 73 + 83 + 93
2025

😅
There’s also this:

; 13 + 23 + 33 + 43 + 53 + 63 + 73 + 83 + 93
2025

😅
There’s also this:

; 13 + 23 + 33 + 43 + 53 + 63 + 73 + 83 + 93
2025

😅
Well, there you go, didn’t take long, a Git repo:

- https://www.uninformativ.de/blog/postings/2025-01-03/1/POSTING-en.html
- https://uninformativ.de/git/los86
Well, there you go, didn’t take long, a Git repo:

- https://www.uninformativ.de/blog/postings/2025-01-03/1/POSTING-en.html
- https://uninformativ.de/git/los86
Well, there you go, didn’t take long, a Git repo:

- https://www.uninformativ.de/blog/postings/2025-01-03/1/POSTING-en.html
- https://uninformativ.de/git/los86
Well, there you go, didn’t take long, a Git repo:

- https://www.uninformativ.de/blog/postings/2025-01-03/1/POSTING-en.html
- https://uninformativ.de/git/los86
@prologic Are those just access logs? 😅
@prologic Are those just access logs? 😅
@prologic Are those just access logs? 😅
@prologic Are those just access logs? 😅
@prologic Huh. I don’t really know how Cloudflare works, never used it. I assumed that the main use case is something along the lines of Anycast (they pick a proxy/cache close to the client). Do I understand correctly that you mainly used it for TLS termination? 🤔
@prologic Huh. I don’t really know how Cloudflare works, never used it. I assumed that the main use case is something along the lines of Anycast (they pick a proxy/cache close to the client). Do I understand correctly that you mainly used it for TLS termination? 🤔
@prologic Huh. I don’t really know how Cloudflare works, never used it. I assumed that the main use case is something along the lines of Anycast (they pick a proxy/cache close to the client). Do I understand correctly that you mainly used it for TLS termination? 🤔
@prologic Huh. I don’t really know how Cloudflare works, never used it. I assumed that the main use case is something along the lines of Anycast (they pick a proxy/cache close to the client). Do I understand correctly that you mainly used it for TLS termination? 🤔
@lyse No idea and I don’t have that in my logs. 🤔
@lyse No idea and I don’t have that in my logs. 🤔
@lyse No idea and I don’t have that in my logs. 🤔
@lyse No idea and I don’t have that in my logs. 🤔
@prologic There are still people who prefer it over Git. I mean, OpenBSD even still uses CVS. I don’t understand why, but they say it works fine for them … 🤷
@prologic There are still people who prefer it over Git. I mean, OpenBSD even still uses CVS. I don’t understand why, but they say it works fine for them … 🤷
@prologic There are still people who prefer it over Git. I mean, OpenBSD even still uses CVS. I don’t understand why, but they say it works fine for them … 🤷
@prologic There are still people who prefer it over Git. I mean, OpenBSD even still uses CVS. I don’t understand why, but they say it works fine for them … 🤷
@prologic Yep, I saw this a few days ago. 😃 Haven’t had a closer look yet. But before I wrote my own editor, I considered porting SVED. 😃 (Couldn’t do it, because they use features that my kernel doesn’t have.)

But why, oh why, would people still use SVN these days. 🥴😅
@prologic Yep, I saw this a few days ago. 😃 Haven’t had a closer look yet. But before I wrote my own editor, I considered porting SVED. 😃 (Couldn’t do it, because they use features that my kernel doesn’t have.)

But why, oh why, would people still use SVN these days. 🥴😅
@prologic Yep, I saw this a few days ago. 😃 Haven’t had a closer look yet. But before I wrote my own editor, I considered porting SVED. 😃 (Couldn’t do it, because they use features that my kernel doesn’t have.)

But why, oh why, would people still use SVN these days. 🥴😅
@prologic Yep, I saw this a few days ago. 😃 Haven’t had a closer look yet. But before I wrote my own editor, I considered porting SVED. 😃 (Couldn’t do it, because they use features that my kernel doesn’t have.)

But why, oh why, would people still use SVN these days. 🥴😅
This looks like something @lyse might enjoy building: https://imgur.com/gallery/balancing-fisherman-tutorial-YNnsTh1
This looks like something @lyse might enjoy building: https://imgur.com/gallery/balancing-fisherman-tutorial-YNnsTh1
This looks like something @lyse might enjoy building: https://imgur.com/gallery/balancing-fisherman-tutorial-YNnsTh1
This looks like something @lyse might enjoy building: https://imgur.com/gallery/balancing-fisherman-tutorial-YNnsTh1
@lyse I think I already posted this last year, but this is how NYE sounds like for me:

https://movq.de/v/c0084b64f9/MVI_8118.ogg

I live in a tower building and there are no objects (like trees or other buildings) to “dampen” the sound. All the explosions sound massive, extra loud, and very uncomfortable. Also notice that there’s no music or people cheering. Just explosions. I haven’t lived through a war in our country (yet), but I guess it’ll sound something like this. 🫤
@lyse I think I already posted this last year, but this is how NYE sounds like for me:

https://movq.de/v/c0084b64f9/MVI_8118.ogg

I live in a tower building and there are no objects (like trees or other buildings) to “dampen” the sound. All the explosions sound massive, extra loud, and very uncomfortable. Also notice that there’s no music or people cheering. Just explosions. I haven’t lived through a war in our country (yet), but I guess it’ll sound something like this. 🫤
@lyse I think I already posted this last year, but this is how NYE sounds like for me:

https://movq.de/v/c0084b64f9/MVI_8118.ogg

I live in a tower building and there are no objects (like trees or other buildings) to “dampen” the sound. All the explosions sound massive, extra loud, and very uncomfortable. Also notice that there’s no music or people cheering. Just explosions. I haven’t lived through a war in our country (yet), but I guess it’ll sound something like this. 🫤
@lyse I think I already posted this last year, but this is how NYE sounds like for me:

https://movq.de/v/c0084b64f9/MVI_8118.ogg

I live in a tower building and there are no objects (like trees or other buildings) to “dampen” the sound. All the explosions sound massive, extra loud, and very uncomfortable. Also notice that there’s no music or people cheering. Just explosions. I haven’t lived through a war in our country (yet), but I guess it’ll sound something like this. 🫤
2024 was okay for me, but 2025 is gonna be real shit. 😂 So much annoying stuff coming up. Gotta enjoy the moment, who knows how long it will last. 😅

Happy new year, you guys. 🥳
2024 was okay for me, but 2025 is gonna be real shit. 😂 So much annoying stuff coming up. Gotta enjoy the moment, who knows how long it will last. 😅

Happy new year, you guys. 🥳
2024 was okay for me, but 2025 is gonna be real shit. 😂 So much annoying stuff coming up. Gotta enjoy the moment, who knows how long it will last. 😅

Happy new year, you guys. 🥳
2024 was okay for me, but 2025 is gonna be real shit. 😂 So much annoying stuff coming up. Gotta enjoy the moment, who knows how long it will last. 😅

Happy new year, you guys. 🥳
@prologic Yes, it’s all written from scratch, *but* most of it is written in C (not Assembler) and having a C standard library available helps a lot. It’s not that different from writing a program for DOS, just the syscalls are different. 😅

@lyse Scrolling the viewport was the most annoying part. 🥴 The code also assumes that it is running on a “fast” PC. There are no “elaborate” data structures like a gap buffer. (But it does use dynamic arrays, which Wikipedia lists as a special case of a gap buffer. 🤔)

To display text on the screen, the editor writes directly to video memory (https://wiki.osdev.org/Printing_To_Screen). This is a blessing and much easier than fiddling with escape sequences. I wish you could do something like that on a Linux terminal.
@prologic Yes, it’s all written from scratch, *but* most of it is written in C (not Assembler) and having a C standard library available helps a lot. It’s not that different from writing a program for DOS, just the syscalls are different. 😅

@lyse Scrolling the viewport was the most annoying part. 🥴 The code also assumes that it is running on a “fast” PC. There are no “elaborate” data structures like a gap buffer. (But it does use dynamic arrays, which Wikipedia lists as a special case of a gap buffer. 🤔)

To display text on the screen, the editor writes directly to video memory (https://wiki.osdev.org/Printing_To_Screen). This is a blessing and much easier than fiddling with escape sequences. I wish you could do something like that on a Linux terminal.
@prologic Yes, it’s all written from scratch, *but* most of it is written in C (not Assembler) and having a C standard library available helps a lot. It’s not that different from writing a program for DOS, just the syscalls are different. 😅

@lyse Scrolling the viewport was the most annoying part. 🥴 The code also assumes that it is running on a “fast” PC. There are no “elaborate” data structures like a gap buffer. (But it does use dynamic arrays, which Wikipedia lists as a special case of a gap buffer. 🤔)

To display text on the screen, the editor writes directly to video memory (https://wiki.osdev.org/Printing_To_Screen). This is a blessing and much easier than fiddling with escape sequences. I wish you could do something like that on a Linux terminal.
@prologic Yes, it’s all written from scratch, *but* most of it is written in C (not Assembler) and having a C standard library available helps a lot. It’s not that different from writing a program for DOS, just the syscalls are different. 😅

@lyse Scrolling the viewport was the most annoying part. 🥴 The code also assumes that it is running on a “fast” PC. There are no “elaborate” data structures like a gap buffer. (But it does use dynamic arrays, which Wikipedia lists as a special case of a gap buffer. 🤔)

To display text on the screen, the editor writes directly to video memory (https://wiki.osdev.org/Printing_To_Screen). This is a blessing and much easier than fiddling with escape sequences. I wish you could do something like that on a Linux terminal.
@prologic Happy new year! 😃
@prologic Happy new year! 😃
@prologic Happy new year! 😃
@prologic Happy new year! 😃
Okay, this is pretty cool. My 8086 toy OS running on my old Pentium from an actual floppy disk. 😍 I just love that sound and the *feeling* of using floppies. This brings back so many memories from my early DOS days.

The cp-unopt program copies a file and intentionally uses small unaligned reads/writes (hopefully triggers more bugs).

The I/O cache works “okay-ish”, I guess. When sha1 runs, it has to do a few reads for the first file and basically none for the second one. Both could have been served entirely from the cache, theoretically. (But even just having an I/O cache in the first place speeds up things dramatically.)

Notice how there’s an EA file. That’s a left-over from OS/2, because I copied some files to the floppy using OS/2. In other words, my FAT12 implementation survives OS/2 writing to it. 🥳 (But I guess it should show up as EA DATA.SF. My current code starts at the left and stops at the first space.)

https://movq.de/v/d4d50d3c74/los86-on-p133-from-floppy-small2.mp4
Okay, this is pretty cool. My 8086 toy OS running on my old Pentium from an actual floppy disk. 😍 I just love that sound and the *feeling* of using floppies. This brings back so many memories from my early DOS days.

The cp-unopt program copies a file and intentionally uses small unaligned reads/writes (hopefully triggers more bugs).

The I/O cache works “okay-ish”, I guess. When sha1 runs, it has to do a few reads for the first file and basically none for the second one. Both could have been served entirely from the cache, theoretically. (But even just having an I/O cache in the first place speeds up things dramatically.)

Notice how there’s an EA file. That’s a left-over from OS/2, because I copied some files to the floppy using OS/2. In other words, my FAT12 implementation survives OS/2 writing to it. 🥳 (But I guess it should show up as EA DATA.SF. My current code starts at the left and stops at the first space.)

https://movq.de/v/d4d50d3c74/los86-on-p133-from-floppy-small2.mp4
Okay, this is pretty cool. My 8086 toy OS running on my old Pentium from an actual floppy disk. 😍 I just love that sound and the *feeling* of using floppies. This brings back so many memories from my early DOS days.

The cp-unopt program copies a file and intentionally uses small unaligned reads/writes (hopefully triggers more bugs).

The I/O cache works “okay-ish”, I guess. When sha1 runs, it has to do a few reads for the first file and basically none for the second one. Both could have been served entirely from the cache, theoretically. (But even just having an I/O cache in the first place speeds up things dramatically.)

Notice how there’s an EA file. That’s a left-over from OS/2, because I copied some files to the floppy using OS/2. In other words, my FAT12 implementation survives OS/2 writing to it. 🥳 (But I guess it should show up as EA DATA.SF. My current code starts at the left and stops at the first space.)

https://movq.de/v/d4d50d3c74/los86-on-p133-from-floppy-small2.mp4
Okay, this is pretty cool. My 8086 toy OS running on my old Pentium from an actual floppy disk. 😍 I just love that sound and the *feeling* of using floppies. This brings back so many memories from my early DOS days.

The cp-unopt program copies a file and intentionally uses small unaligned reads/writes (hopefully triggers more bugs).

The I/O cache works “okay-ish”, I guess. When sha1 runs, it has to do a few reads for the first file and basically none for the second one. Both could have been served entirely from the cache, theoretically. (But even just having an I/O cache in the first place speeds up things dramatically.)

Notice how there’s an EA file. That’s a left-over from OS/2, because I copied some files to the floppy using OS/2. In other words, my FAT12 implementation survives OS/2 writing to it. 🥳 (But I guess it should show up as EA DATA.SF. My current code starts at the left and stops at the first space.)

https://movq.de/v/d4d50d3c74/los86-on-p133-from-floppy-small2.mp4
@lyse

> Luckily, it's illegal to sell fireworks other than after the last three days in the year.

Interesting, didn’t know that. According to the following link, it’s even illegal to *use* it other than 31./1.: https://www.anwalt.de/rechtstipps/wann-wird-feuerwerk-zur-straftat-alles-was-sie-fuer-silvester-wissen-muessen-235257.html

Nobody knows that, apparently. 😂
@lyse

> Luckily, it's illegal to sell fireworks other than after the last three days in the year.

Interesting, didn’t know that. According to the following link, it’s even illegal to *use* it other than 31./1.: https://www.anwalt.de/rechtstipps/wann-wird-feuerwerk-zur-straftat-alles-was-sie-fuer-silvester-wissen-muessen-235257.html

Nobody knows that, apparently. 😂
@lyse

> Luckily, it's illegal to sell fireworks other than after the last three days in the year.

Interesting, didn’t know that. According to the following link, it’s even illegal to *use* it other than 31./1.: https://www.anwalt.de/rechtstipps/wann-wird-feuerwerk-zur-straftat-alles-was-sie-fuer-silvester-wissen-muessen-235257.html

Nobody knows that, apparently. 😂
@lyse

> Luckily, it's illegal to sell fireworks other than after the last three days in the year.

Interesting, didn’t know that. According to the following link, it’s even illegal to *use* it other than 31./1.: https://www.anwalt.de/rechtstipps/wann-wird-feuerwerk-zur-straftat-alles-was-sie-fuer-silvester-wissen-muessen-235257.html

Nobody knows that, apparently. 😂
@lyse Certainly the last thing for this year. 😅 (How is this possible? Christmas already over and tomorrow is 2025? Time flies. 😩)
@lyse Certainly the last thing for this year. 😅 (How is this possible? Christmas already over and tomorrow is 2025? Time flies. 😩)
@lyse Certainly the last thing for this year. 😅 (How is this possible? Christmas already over and tomorrow is 2025? Time flies. 😩)
@lyse Certainly the last thing for this year. 😅 (How is this possible? Christmas already over and tomorrow is 2025? Time flies. 😩)
Made a little text editor for my 8086 toy operating system today. It can’t do much, but it allows for some basic editing. 💾

That was probably the last “big” thing I did for that OS in the near future. Vacation is coming to an end.

https://movq.de/v/bb8c2b62a5/edit.mp4
Made a little text editor for my 8086 toy operating system today. It can’t do much, but it allows for some basic editing. 💾

That was probably the last “big” thing I did for that OS in the near future. Vacation is coming to an end.

https://movq.de/v/bb8c2b62a5/edit.mp4
Made a little text editor for my 8086 toy operating system today. It can’t do much, but it allows for some basic editing. 💾

That was probably the last “big” thing I did for that OS in the near future. Vacation is coming to an end.

https://movq.de/v/bb8c2b62a5/edit.mp4
Made a little text editor for my 8086 toy operating system today. It can’t do much, but it allows for some basic editing. 💾

That was probably the last “big” thing I did for that OS in the near future. Vacation is coming to an end.

https://movq.de/v/bb8c2b62a5/edit.mp4
@prologic Indeed, I’ve gained a lot more respect for Linux/BSD and DOS. 😃
@prologic Indeed, I’ve gained a lot more respect for Linux/BSD and DOS. 😃
@prologic Indeed, I’ve gained a lot more respect for Linux/BSD and DOS. 😃
@prologic Indeed, I’ve gained a lot more respect for Linux/BSD and DOS. 😃
@lyse Oh, ah, that’s quite a lot of zoom. Still, 4m feels really close. Were you behind a bush? 😃
@lyse Oh, ah, that’s quite a lot of zoom. Still, 4m feels really close. Were you behind a bush? 😃
@lyse Oh, ah, that’s quite a lot of zoom. Still, 4m feels really close. Were you behind a bush? 😃
@lyse Oh, ah, that’s quite a lot of zoom. Still, 4m feels really close. Were you behind a bush? 😃
It’s getting Winter-y. Here’s that tree again: https://movq.de/v/07262a1e12/IMG_20241229_142030.jpg-small.jpg
It’s getting Winter-y. Here’s that tree again: https://movq.de/v/07262a1e12/IMG_20241229_142030.jpg-small.jpg
It’s getting Winter-y. Here’s that tree again: https://movq.de/v/07262a1e12/IMG_20241229_142030.jpg-small.jpg
It’s getting Winter-y. Here’s that tree again: https://movq.de/v/07262a1e12/IMG_20241229_142030.jpg-small.jpg
@prologic Something along those lines, yeah. And/or some generic cache for disk sectors.
@prologic Something along those lines, yeah. And/or some generic cache for disk sectors.
@prologic Something along those lines, yeah. And/or some generic cache for disk sectors.
@prologic Something along those lines, yeah. And/or some generic cache for disk sectors.
@prologic Lots, I guess. 😅 The kernel keeps almost no state between syscalls, so when you want to read the next byte from a file, it has to do all the work from scratch: Locate the file in the directory and traverse the cluster chain until you’ve reached the next byte. It’s easier to code this way, but obviously much slower. And the userspace program cp could read/write in multiples of 512 – it currently does not do that, intentionally, because if everything is a multiple of 512, you’re less likely to discover bugs. 😅
@prologic Lots, I guess. 😅 The kernel keeps almost no state between syscalls, so when you want to read the next byte from a file, it has to do all the work from scratch: Locate the file in the directory and traverse the cluster chain until you’ve reached the next byte. It’s easier to code this way, but obviously much slower. And the userspace program cp could read/write in multiples of 512 – it currently does not do that, intentionally, because if everything is a multiple of 512, you’re less likely to discover bugs. 😅
@prologic Lots, I guess. 😅 The kernel keeps almost no state between syscalls, so when you want to read the next byte from a file, it has to do all the work from scratch: Locate the file in the directory and traverse the cluster chain until you’ve reached the next byte. It’s easier to code this way, but obviously much slower. And the userspace program cp could read/write in multiples of 512 – it currently does not do that, intentionally, because if everything is a multiple of 512, you’re less likely to discover bugs. 😅
@prologic Lots, I guess. 😅 The kernel keeps almost no state between syscalls, so when you want to read the next byte from a file, it has to do all the work from scratch: Locate the file in the directory and traverse the cluster chain until you’ve reached the next byte. It’s easier to code this way, but obviously much slower. And the userspace program cp could read/write in multiples of 512 – it currently does not do that, intentionally, because if everything is a multiple of 512, you’re less likely to discover bugs. 😅
(This issues a lot of BIOS calls, that’s why it’s so slow.)
(This issues a lot of BIOS calls, that’s why it’s so slow.)
(This issues a lot of BIOS calls, that’s why it’s so slow.)
(This issues a lot of BIOS calls, that’s why it’s so slow.)
That FAT12 implementation is very naive and unoptimized. You can see in this video that it takes about 7 seconds to copy a ~10 kB file: https://movq.de/v/fbf2b90ce1/los86-fat12-copy.mp4 🥴 I *kind of* like that, though, because it feels a little bit like an old machine. 😅🤪~
That FAT12 implementation is very naive and unoptimized. You can see in this video that it takes about 7 seconds to copy a ~10 kB file: https://movq.de/v/fbf2b90ce1/los86-fat12-copy.mp4 🥴 I *kind of* like that, though, because it feels a little bit like an old machine. 😅🤪~
That FAT12 implementation is very naive and unoptimized. You can see in this video that it takes about 7 seconds to copy a ~10 kB file: https://movq.de/v/fbf2b90ce1/los86-fat12-copy.mp4 🥴 I *kind of* like that, though, because it feels a little bit like an old machine. 😅🤪~
That FAT12 implementation is very naive and unoptimized. You can see in this video that it takes about 7 seconds to copy a ~10 kB file: https://movq.de/v/fbf2b90ce1/los86-fat12-copy.mp4 🥴 I *kind of* like that, though, because it feels a little bit like an old machine. 😅🤪~
(Yay, fixed. The bootloader assumed that the SS register gets initialized to 0, which wasn’t true on that laptop.)
(Yay, fixed. The bootloader assumed that the SS register gets initialized to 0, which wasn’t true on that laptop.)