Yet another internet outage. Getting more and more of those. 😒
@lyse@lyse.isobeef.org Ohh, I love them. Ever heard one calling? Pure dinosaur vibes.
Das Firmenhandy sagt mir nach einem Update: „Dein Pixel kann jetzt noch mehr!“ Aha. Ist es jetzt ein Voxel? Kann’s jetzt mehr als 256 Farben? Oder was? Ich bin eindeutig nicht die Zielgruppe solcher Sprüche …
Didn’t really work on my OS this week. Well, editor and assembler also run on DOS now, but that wasn’t hard (still cool!):
https://movq.de/v/13bf8c77b9/los-tools-on-dos.mp4
The subshell thingy also works on DOS, I like that.
Typical construction site: Absolutely nothing happened so far. If there’s still nothing going on by Monday, I’m putting some of the disks back in.
„Das Leben ist hart“, albert ein Stein.
– irgendwer auf YouTube
@eldersnake@we.loveprivacy.club @arne@uplegger.eu Don’t let your telescopes rot! 😃
@lyse@lyse.isobeef.org They say, 18:48 today is the next time slot: https://social.bund.de/@dlr_next/113859521382441187
ISS (the long “line” on the right) passing Venus and Saturn:
Jupiter and its moons a few days ago:
Not spectacular shots, but hey, it’s something.
Also saw the crescent Venus and Saturn’s rings through my scope (you know, the one for bird watching).
Maybe with the very simplest of the easy ones it might be still reasonably straight forward
I did that and the compiled bootloader is now 439 bytes in size – the available space is 440 bytes. So, phew, it just fits now. 😂
Friendly, regular reminder to always check if a TV show has already been cancelled before you start watching it.
@lyse@lyse.isobeef.org Yeah, what else does one need? 😅
I added more instructions, made it portable (so it runs on my own OS as well as Linux/DOS/whatever), and the assembler is now good enough to be used in the build process to compile the bootloader:
That is pretty cool. 😎
It’s still a “naive” assembler. There are zero optimizations and it can’t do macros (so I had to resort to using cpp
). Since nothing is optimized, it uses longer opcodes than NASM and that makes the bootloader 11 bytes too large. 🥴 I avoided that for now by removing some cosmetic output from the bootloader.
Alright, I have a little 8086 assembler for my toy OS going now – or rather a proof-of-concept thereof. It only supports a tiny fraction of the instruction set. It was an interesting learning experience, but I don’t think trying to “complete” this program is worth my time.
The whole thing is just a learning project, I don’t want to actually make a usable OS. There are a few more things I want to have a look at and then I’ll eventually move on to 386/amd64 later this year (hopefully).
The editor can launch a new shell now:
https://movq.de/v/6ec68b50dd/los86-edit-shell.mp4
Trivial to implement but super useful. It allows for simple but meaningful dev cycles: Edit source code, run/test it, back to editor. That’s what I do in the video.
(The Brainfuck program is silly, but I got nothing else at the moment.)
The I/O cache is also getting better. All that back and forth doesn’t hit the disk at all, once cached.
This whole thing is much more fun and interesting when you run it from a real floppy disk. It’s a 5.25” floppy in the video (so it’s actually floppy 😅). Disk seek times can be catastrophic and you don’t notice any of this on modern disks.
@doesnmppsflt@doesnm.p.psf.lt Not sure which bug you’re referring to. 🤔 (Did I forget?)
Those long IDs like (#113797927355322708) are simply part of that feed. Looks like the author just dumps ActivityPub IDs into twtxt. I think this used to work in the past, but the corresponding spec (https://twtxt.dev/exts/hash-tag.html) has been deprecated and jenny doesn’t support – actually, jenny never supported that.
jenny can only group threads by exactly one criterium (because it writes a Message-ID
into the mail file) and that’s the regular twt hash. So, anything else, like people doing “#CoolTopic”, isn’t possible.
My OS has a Brainfuck interpreter now and this counts as a programming language, right? We’re feature complete now. 😂
I just used screego to help a family member with their Windows PC. Flawless experience! 💚
I’ve made it a habit to always put on my noise cancelling headphones when going to bed (without music). It’s pure heaven. 😂 Silence and darkness. I fall asleep within minutes. 😂 Good night. 😴
And that was the first time Vim ever crashed on me:
Vim: Caught deadly signal SEGV
Vim: preserving files...
Vim: Finished.
Segmentation fault (core dumped)
I was using Ctrl+P
to scroll through the completion list. 🤔 Reproducible. Ctrl+N
still works.
Hopefully fixed by this: https://github.com/vim/vim/commit/8d0bb6dc9f2e5d94ebb59671d592c1b7fa325ca6
“2025” doesn’t look right. That looks like a date which is absurdly far into the future. Like 2199 or something.
In the process of temporarily removing and securing all my hard disks. They’ll be turning this building into a construction site for the next weeks/months. Lots of heavy drilling and hammering. Not sure what this means for spinning disks and I’d rather be on the safe side. 🫤
To quote GLaDOS: Yesterday I saw a deer!
… aaaaaaand I had the first bug in my toy OS that was caused by caching. 😂 Bloody caching. (It only triggered in error conditions, but still.)
For some reason, I was using calc all this time. I mean, it’s good, but I need to do base conversions (dec, hex, bin) very often and you have to type base(2)
or base(16)
in calc to do that. That’s exhausting after a while.
So I now replaced calc with a little Python script which always prints the results in dec/hex/bin, grouped in bytes (if the result is an integer). That’s what I need. It’s basically just a loop around Python’s exec()
.
$ mcalc
> 123
123 0x[7b] 0b[01111011]
> 1234
1234 0x[04 d2] 0b[00000100 11010010]
> 0x7C00 + 0x3F + 512
32319 0x[7e 3f] 0b[01111110 00111111]
> a = 10; b = 0x2b; c = 0b1100101
10 0x[0a] 0b[00001010]
> a + b + 3 * c
356 0x[01 64] 0b[00000001 01100100]
> 2**32 - 1
4294967295 0x[ff ff ff ff] 0b[11111111 11111111 11111111 11111111]
> 4 * atan(1)
3.141592653589793
> cos(pi)
-1.0
The fact that the official Python docs don’t clearly state what a function returns, grinds my gears. This has cost me so much time over the years. You always have to read through a huge block of text.
You could at least put a list of possible return values in there (always at the same location, please!), here’s a mockup:
This evening, Saturn will show up right next to a crescent moon:
Let’s see if I can catch that in a photo.
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. 😅
This looks like something @lyse@lyse.isobeef.org might enjoy building: https://imgur.com/gallery/balancing-fisherman-tutorial-YNnsTh1
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
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.
It’s getting Winter-y. Here’s that tree again: https://movq.de/v/07262a1e12/IMG_20241229_142030.jpg-small.jpg
@mckinley@mckinley.cc Thanks!
@prologic@twtxt.net I might do it some day. 😅
After taking a short break for Christmas business, I’ve worked on my little toy operating system for the 8086 again.
It understands the basics of FAT12 now. I’ve actually never sat down before to learn how FAT works. 🤦 Well, better late than never, I guess.
It can’t do subdirectories nor timestamps and I probably won’t implement that. One flat directory is good enough for my purposes and the OS has no notion of time, yet, anyway.
It’s really cool to be able to exchange files with the Linux host or other DOS VMs. 🥳
@lyse@lyse.isobeef.org Hmmm:
Could not fetch: HTTPError('403 Client Error: Forbidden for url: https://uplegger.eu/twtxt.txt')
🤔
2024 was a funny year: The year begins and ends with calendar week 1:
The one in January being 2024-W01 and the one in December 2025-W01.
🤓
(Hmmm, my printed LaTeX calendar using tikz-kalender gets it wrong or uses different week definitions. It shows next week as 53. 🤔)
I’ve been making a little toy operating system for the 8086 in the last few days. Now that was a lot of fun!
I don’t plan on making that code public. This is purely a learning project for myself. I think going for real-mode 8086 + BIOS is a good idea as a first step. I am well aware that this isn’t going anywhere – but now I’ve gained some experience and learned a ton of stuff, so maybe 32 bit or even 64 bit mode might be doable in the future? We’ll see.
It provides a syscall interface, can launch processes, read/write files (in a very simple filesystem).
Here’s a video where I run it natively on my old Dell Inspiron 6400 laptop (and Warp 3 later in the video, because why not):
https://movq.de/v/893daaa548/los86-p133-warp3.mp4
(Sorry for the skewed video. It’s a glossy display and super hard to film this.)
It starts with the laptop’s boot menu and then boots into the kernel and launches a shell as PID 1. From there, I can launch other processes (anything I enter is a new process, except for the exit at the end) and they return the shell afterwards.
And a screenshot running in QEMU:
Props to you if you can easily spot the scrollbar in this picture:
People doing Advent of Code in this language is the craziest thing I’ve seen: https://www.uiua.org/
As I was typing my password, I hit Tab
and expected it to auto-complete. 🤦
I was today years old when I learned that Firefox supports custom per-domain CSS. Is this new? I thought I had tried a while ago and it only worked globally. 🤔
@-moz-document domain(movq.de)
{
div { border: 1px solid red; }
}
Either way, I love that I don’t need a plugin for that. 🥳
@aelaraji@aelaraji.com This is an Intel i7-3770 from 2013 with an integrated GPU (HD 4000).
Looks like FreeCAD works fine and I think this is a more appropriate program anyway. 😊
@lyse@lyse.isobeef.org Ooohh, nice and long vacation! 😃
@lyse@lyse.isobeef.org Mostly small and simple stuff, like cable management, headphone rests, pill dispensers (that I didn’t end up using), … The most elaborate thing I made was that contraption for my keyboard, which is a bit hard to explain right now, so here’s some photos:
I didn’t end up using that, either. 🥴
In general, I print very little. So little that some of my supplies have simply gone bad, like that “3D LAC” (sprayable glue).
@aelaraji@aelaraji.com Yeah, I saw that when googling the issue. I’m on Linux, there are no DLLs to swap. I could use an older version indeed. 🤔 Let’s see if I can find some better alternative first. (Let’s face it, Blender is hard to use.)
Goodbye Blender, I guess? 🤔
A bit annoying, but not much of a problem. The only thing I did with Blender was make some very simple 3D-printable objects.
I’ll have a look at the alternatives out there. Worst case is I go back to Art of Illusion, which I used heavily ~15 years ago.
“A minimalist social network powered by plain text files”
My brain keeps shortening this to “a socialist network …” and then jumps to “uhh, large parts of the US won’t like this” … 🤦🤪
@lyse@lyse.isobeef.org (Semicolon! 🤘)
But then, why just block IPv4 and not also IPv6?
I’ll take “what’s the most overlooked thing in corporate networks” for 200. 😅
I’m on vacation now. First order of business: Sit in the armchair for “a few minutes” (= sleep tight for 3 hours straight). 😴
@bender@twtxt.net Well, so far, I’m using the standard web client. Haven’t found a great client yet. 🫤 Mastodon/Fediverse is also very different from twtxt, there are way more images/videos that I’d like to see – a TUI client like toot wouldn’t work for me.
Dunno, maybe I’ll make some changes in this area after christmas. Try self-hosting again or something like that …