Searching yarn

Twts matching #Linux
Sort by: Newest, Oldest, Most Relevant
In-reply-to » After many months of hardā„¢ work, I've finally been able to get Mu (µ) lang to a point where the duplication of machine code / assembly between the ARM64/AMD64 and Mach-O and ELF formats are not all eliminated. This now means that writing a new backend target os/arch for Mu is now relatively simple to do, or far less duplicated work/effort.

On that note, I just finished writing the linux/risc64 backend and it only took ~2k lines of code šŸŽ‰

⤋ Read More

I really think I should go back to Java.

Writing programs in Python is so exhausting. I want a compiler and I want static typing. No, linters and type checkers and IDEs are not good enough. Compilers catch way more errors in advance.

Rust is also exhausting. They’re constantly adding language features and, at the same time, the runtime library remains tiny and you need 3rd party libraries for everything. Many of those are still at version 0.x (SemVer!) and you can’t rely on anything. Often times, you need the latest Rust nightly compiler.

Go is … I don’t like it. And huge binaries.

I like C as a language, but it’s too fragile. I want to have a proper HashMap every now and then.

None of the above have good GUI libraries, at least not on Linux.

And then there’s Java. This is my fractal renderer that I wrote over 17 years ago:

https://movq.de/v/fcd3c4e557/vid-1784121825.mp4

It’s fast. It has a GUI with custom widgets and those weren’t even hard to make. It still works without changing a single line of code. The source code files have timestamps from 2009 and I just noticed that the JAR file I’m using in the video was compiled in 2010.

Java as a language is relatively easy to learn and to master. There are few surprises. The source code organization with packages is good. Java API docs are clear and well written.

The JVM ramp-up times have improved considerably:

https://movq.de/v/e7314e521e/vid-1784121998.mp4

This isn’t like the Dark Ages anymore. Might even be usable for some CLI tools.

The only thing where Java really sucks is anything close-ish to the kernel. Try issuing an ioctl() … I couldn’t have made my TUI framework in Java, but then again, I wouldn’t have needed to because Swing already exists and it just works.

⤋ Read More

Yeah, lol, fuck off. Tried to reproduce that hashing issue, thus playing around with Go a little bit. And what did I find?

$ tree ~/.config/go
/home/user/.config/go
└── telemetry
    ā”œā”€ā”€ local
    │   ā”œā”€ā”€ asm@devel-devel-linux-amd64-2026-07-14.v1.count
    │   ā”œā”€ā”€ compile@devel-devel-linux-amd64-2026-07-14.v1.count
    │   ā”œā”€ā”€ go@devel-devel-linux-amd64-2026-07-14.v1.count
    │   ā”œā”€ā”€ link@devel-devel-linux-amd64-2026-07-14.v1.count
    │   ā”œā”€ā”€ upload.token
    │   └── weekends
    └── upload

4 directories, 6 files

It collects and uploads ā€œtelemetryā€ now.

No.

(Don’t tell me how I can turn that off. Not interested. This is a compiler and it wants to track me, without asking for consent. That’s a no-go.)

⤋ Read More

Windows NT 4 didn’t have a Device Manager. You know, this thing right here that got introduced with Windows 95:

And that’s super awkward in NT4.

You know what doesn’t have a Device Manager, either? Linux. Why? šŸ¤” Isn’t this one of the most useful system tools? It gives you an overview of the devices in your system and tells you which driver is used for them. Linux could really use such a tool, I think? šŸ¤”

(There are programs like ā€œhardinfoā€ and I remember ancient KDE providing such a tool, but they’re all an afterthought. Hardly integrated into the overall system.)

⤋ Read More
In-reply-to » The original twt is unavailable. It may have been edited or deleted, or is from an unknown or muted feed.

@GabesArcade@gabesarcade.com The no-JS part is one thing, but you also have to disable the (nowadays common) forced-HTTP-to-HTTPS-redirect, because those old browsers can’t do modern crypto. And make sure that your webserver serves the correct page even if no Host header is sent by the client. And don’t even think about serving UTF-8 or even just putting utf-8 in the content type. šŸ˜… And for the JPEG thumbnails I pass a special flag to ImageMagick so that IBM Web Explorer from OS/2 won’t trip. 🤣 And always use link rel="stylesheet" for CSS, because some browsers render inlined CSS as literal text. And … probably more that I forgot by now. šŸ˜‚

@david@daiwei.me Not sure, actually. Let’s see. Those are the ones where I still have the original disks (or have bought them on eBay again):

  • SuSE Linux 6.4 (it’s a massive 7 CD distro with a huge manual, best thing ever)
  • OS/2 2.1
  • OS/2 Warp 3 (red and blue spine because $reasons)
  • OS/2 Warp 4
  • PC DOS 7
  • MS-DOS 6.22
  • Windows 3.1
  • Windows for Workgroups 3.11
  • Windows 95 C
  • Windows 98
  • Windows NT 4 Workstation (still in the mail, though šŸ˜…)
  • Windows 2000
  • Windows XP Professional (last Windows I ever used on my private PCs)

(Plus a few ā€œclassicā€ office products as can be seen here: https://movq.de/blog/postings/2024-05-23/0/POSTING-en.html )

⤋ Read More

Speaking of UIs, this is how Thunderbird looks now:

https://movq.de/v/a41105eebb/

So we continue to let every program make up its own UI style (and then we complain that ā€œthe Linux desktopā€ looks ā€œmessyā€ and ā€œinconsistentā€). I guess this uses GTK, but it doesn’t look like any other GTK program. Buttons, tabs, drop-downs, whatever, it’s all different. It even has its own subwindow system (i.e., popups that you can’t move).

I didn’t say this in the blog post, but I’m convinced that programmers these days absolutely positively hate everything that looks even remotely like Windows 95 or Motif – with a passion. I see that in my coworkers as well, they really can’t stand it. It’s an emotional thing.

⤋ Read More
In-reply-to » @lyse These days (and it’s been like that for a while), almost everything is loaded on-demand depending on which hardware the OS finds, so you can simply copy all your files with cp -a, install a bootloader, adjust some minor things /etc/fstab, done. Well, maybe not ā€œdoneā€, but it’s easy to sort out the remaining stuff afterwards.

@bender@twtxt.net It’s been a while (6.5 years) since I’ve done this. I’d do it like this:

  • Boot some Linux from a USB stick on the new machine. Preferably Arch Linux, since that is what I’m running and that’ll make the upcoming chroot easier.
  • Partition the new disk, create LUKS devices, filesystems, …
  • Mount the new filesystems and copy all data (user data and the system itself – everything). Do this either over the network or by hooking up the old disk directly.
  • chroot into the new system (Arch has an arch-chroot tool for that which is used during normal installation, if I’m not mistaken). Inside the chroot, install the bootloader.
  • Do some fixups, like adjusting /etc/fstab or /etc/crypttab.

And I think that should be it. šŸ¤”

⤋ Read More

@d74a3: I guess, he points to a linux kernel for an i486. You can install linux on old computers, f.e. netbsd. I had running netbsd on an old sinix 486 parallel to win98se.

⤋ Read More

Pre-ordered a Framework Laptop 13 Pro. It’s not ARM, but the CNC aluminium case and haptic trackpad sold me. Moving macOS → Linux šŸ’»

⤋ Read More

hey folks, is there any good twtxt client for linux out there that you recommend? every time i update pip or some other python stuff twtxt gets screwed and ask for some dependency or breaks, it is annoying to fix that everytime, thanks

⤋ Read More

Via https://github.com/newsboat/newsboat/issues/3220#issuecomment-4198066671 I came across this nice selection on why not to use AI: https://github.com/Vxrpenter/AIMania/blob/main/WHY.md#why

This then lead me to the slopware list: https://codeberg.org/small-hack/open-slopware

Holy shit, there’s even more than I thought. :-O In addition to Vim, the following affects me more or less daily (but hopefully not my ancient versions): curl, VLC, ImageMagick, rsync, Python, systemd and even the Linux Kernel itself. Oh fuck me dead. :ā€˜-(

⤋ Read More

Finished reading Just for Fun, by Linus Torvalds. As a Linux/Unix geek, it’s an interesting story, also fun. Would like an update ā˜…ā˜…ā˜…ā˜… šŸ“—

⤋ Read More

I installed Alpine Linux on my laptop. I’m pissed that Devuan wouldn’t boot after installing. Msg to Devuan devs: terrible UX after ā€œsuccessfullyā€ installing when you see ā€œgrub>ā€.

⤋ 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

Took me nearly all week (in my spare time), but Mu (µ) finally officially support linux/amd64 🄳 I completely refactored the native code backend and borrowed a lot of the structure from another project called wazero (the zero dependency Go WASM runtime/compiler). This is amazing stuff because now Mu (µ) runs in more places natively, as well as running everywhere Go runs via the bytecode VM interpreter šŸ¤ž

⤋ Read More

This week, Mu (µ) get s bit more serious and starts to refactor the native backend (a lot). Soonā„¢ we will support darwin/arm64, linux/arm64 and linux/amd64 (Yes, other forms of BSD will come!) – Mu (µ) also last week grew concurrency support too! 🤣

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

@shinyoukai@neko.laidback.moe Yes; however the interpreter is also platform dependent and relies on making raw syscalls. This is so the runtime semantics remain the same between the two execution modes.

I’ll see if I can add support for linux/amd64 and netbsd/amd64 for the VM at least.

⤋ 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

Mu (µ) is coming along really nicely 🤣 Few things left to do (in order):

  • Finish the concurrency support.
  • Add support for sockets
  • Add support for linux/amd64
  • Rewrite the heap allocator
  • Rewrite Mu (µ) in well umm Mu (µ) šŸ˜…

Here’s a screenshot showing off the builtin help():

⤋ 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
In-reply-to » Hmm, mine also resolves a leading tilde in these variables. And if $HOME is not specified it tries to resolve the user's home directory by user.Current().HomeDir. Maybe that's overkill, I have to check the XDG spec.

Ok, the standard library implementation is wonky at best, at least in regards to XDG, because it really doesn’t implement it properly. https://github.com/golang/go/issues/62382 I stick to my own code then. It doesn’t properly support anything else than Linux or Unixes that use XDG, but personally, I don’t care about them anyway. And the cross-platform situation is a giant mess. Unsurprisingly.

⤋ Read More
In-reply-to » @movq wow! what is assembler?

@movq@www.uninformativ.de @kiwu@twtxt.net it just so happens to be a happy coincidence that I’m extending mu’s capabilities to now include a native toolchain-free compiler (doesn’t rely on any external gcc/clang or linkers, etc) that lowers the mu source code into an intermediate representation / IR (what @movq@www.uninformativ.de refers to as ā€œthick layers of abstractionsā€ā€¦) and finally to SSA + ARM64 + Mach-O encoder to produce native binary executables (at least for me on my Mac, Linux may some later?) 🤣

⤋ Read More

I’m seeing crashes in the 3D subsystem. (Gallium? Glamor? Whatever other Mesa thing they have? No idea.) In the logs I find this:

malloc(): unaligned tcache chunk detected

And that’s why I still care about Rust and want to learn more about it, even though it’s giving me so much headache and I’ve given up so many times. Because Rust currently seems to be the only popular systems programming language that tries to eliminate these error classes.

And of course ā€œthe Rust experimentā€ in the Linux kernel has recently been concluded as ā€œsuccessfulā€, so that alone is reason enough for me:

https://lwn.net/Articles/1049831/

⤋ Read More
In-reply-to » Advent of Code 2025 starts tomorrow. šŸ„³šŸŽ„

Alright, Advent of Code is over:

https://www.uninformativ.de/blog/postings/2025-12-12/0/POSTING-en.html

It’s been quite the time sink, especially with the DOS games on top, but it was fun. 🄳

In case you’re wondering: All puzzles (except for part 2 of day 10) were doable in Python 1 on SuSE Linux 6.4 and ran in a finite time on the Pentium 133. Puzzle 10/2 might have been doable as well if I had better education. 🤣

⤋ Read More
In-reply-to » Advent of Code 2025 starts tomorrow. šŸ„³šŸŽ„

FWIW, day 03 and day 04 where solved on SuSE Linux 6.4:

Performance really is an issue. Anything is fast on a modern machine with modern Python. But that old stuff, oof, it takes a while … šŸ˜…

Should have used C or Java. 🤪 Well, maybe I do have to fall back on that for later puzzles. We’ll see.

⤋ Read More

Advent of Code 2025 starts tomorrow. šŸ„³šŸŽ„

This year, I’m going to use Python 1 on SuSE Linux 6.4, writing the code on my trusty old Pentium 133 with its 64 MB of RAM. No idea if that old version of Python will be fast enough for later puzzles. We’ll see.

⤋ Read More
In-reply-to » It happened.

@prologic@twtxt.net Nothing, yet. It was sent in written form. There’s probably little point in fighting this, they have made up their minds already (and AI is being rolled up en masse in other departments), but on the other hand, there are – truthfully – very few areas where AI could actually be useful to me.

There are going to be many discussions about this …

This is completely against the ā€œspiritā€ of this company, btw. We used to say: ā€œIt’s the goal that matters. Use whatever tools you think are appropriate.ā€ That’s why I’m allowed to use Linux on my laptop. Maybe they will back down eventually when they realize that trying to push this on people is pointless. Maybe not.

⤋ Read More
In-reply-to » @lyse

@movq@www.uninformativ.de Uh, that actually looks not that terrible. Somehow, I remember Swing GUIs being way uglier.

As for Visual Basic, I only had to use VBA once in my life. That was in the beginning of my career when I inherited a project from a leaving coworker. Fuck me, was that awful. Just alone the damn compiler error dialog box popping up in my face all the time while editing and the compiler already trying to parse the unfinished and hence of course uncompilable code. Boy, that left a lasting impression on me. I ported everything to Java very quickly. Luckily, the code base wasn’t all that large at that point in time. I had to add a bunch of new features after that, so I was very glad that I convinced my workmate/project manager to do that first. We didn’t even need a GUI, the button in Excel was transformed to a command line program that just generated the large file.

But I cannot comment on the VB GUI designer, I never used that. Your screenshot looks very similar to the Delphi one, though. Only towards the end of my Delphi days I found out about the possibility to make the widgets snap to window edges and corners (I don’t remember how that was called), so that resizing the windows was actually possible without messing up their entire contents.

Switching to Linux, Delphi wasn’t an option anymore. For some reason I couldn’t use Kylix. Maybe it was already dead by the time I changed OSes. Or I couldn’t get it to run. I just don’t remember. I just recall that the unavailability of Delphi was the reason it took me a while to actually settle on Linux. I then fully switched to Java. The GridBagLayout was my absolutely favorite Swing layout manager. I reckon I used it 98% of the time, because it was so powerful and made the windows resize properly, just as I had learned to do in Delphi shortly before.

Up until discovering Swing, I used Java’s AWT for a short amount of time. That was very limited I think and I hit the limits fairly quickly. Later at uni, we had one project making use of SWT. Didn’t convince me either. I could be wrong, but I think there was also a SWT GUI designer plugin for Eclipse. If there really was, that one wasn’t in the same street as Delphi’s (there must be a reason I forgot about it ;-)).

⤋ Read More

And maybe I should go back to using GUI designers. Haven’t used those since the Visual Basic days. šŸ¤” It wasn’t pretty, but you got results very quickly and efficiently.

(When I switched to Linux, I quickly got stuck with GTK and that only had Glade, which wasn’t super great at the time, so I didn’t start using it … and then I never questioned that decision …)

⤋ Read More

Well, it sure has been a while since I last posted here. Just up late doing yet another Linux installation. Debian turned out to be about as stable as a plutonium Jenga tower, and Alpine refused to boot, so I gave it the boot. Here’s to hoping that Arch fares better. Oddly, I’ve always found Arch to be considerably more stable than other distros…

⤋ Read More