Americaās Peace Corps Announces āTech Corpsā Volunteers to Help Bring AI to Foreign Countries
Over 240,000 Americans volunteered for Peace Corps projects in 142 countries since the program began more than half a century ago.
But now the agency is launching a new initiative ā called Tech Corps. āItās the Peace Corps, but make it AI,ā explains Engadget:
The Peace Corpsā latest proposal ⦠ā Read more
Ireland Launches Worldās First Permanent Basic Income Scheme For Artists, Paying $385 a Week
Ireland has announced what it says is the worldās first permanent basic income program for artists, a scheme that will pay 2,000 selected artists $385 per week for three years, funded by an $21.66 million allocation from Budget 2026. The program follows a 2022 pilot ā the Irish governmentās first l ⦠ā Read more
Windows 11 Notepad Flaw Let Files Execute Silently via Markdown Links
Microsoft has patched a high-severity vulnerability in Windows 11ās Notepad that allowed attackers to silently execute local or remote programs when a user clicked a specially crafted Markdown link, all without triggering any Windows security warning.
The flaw, tracked as CVE-2026-20841 and fixed in the February 2026 Patch Tuesday upda ⦠ā Read more
Go 1.26 Introduces Two Language Changes, New Performance Improvements
For programmers fond of the Go programming language, Go 1.26 is out today with two language changes, performance improvements, and other alterations to this Google-backed programming language⦠ā 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.
@movq@www.uninformativ.de Ah, great!
I have to analyze what is taking yt-dlp so long start up. Two and a half, three seconds just to determine that a video is in the download archive and then abort is nuts. Iām wondering what this program does before that.
I canāt remember if the hex viewer back then had these options. Donāt even recall what software that was. :-)
The one that I used during my Windows 95 days was āHex Workshopā. It had similar features, just not as promimently displayed. It shows them down there in the statusline as āValueā:

Newer versions can probably do more, havenāt checked. š (Assuming this program still exists.)
Apart from selecting text to copy into the clipboard. But that probably has the potential for trouble and interference with button clicks, etc.
Yeah, thatās a big problem: Once you activate mouse mode in the terminal, the terminal loses the ability to select text. š Youād either have to emulate that in the program itself (like Vim does) or give the user an easy way to turn mouse support on/off during runtime.
How did the startup times develop?
Theyāre pretty stable at around 230 ms on my old NUC. Itās just fast enough so that it doesnāt annoy me.
Free Bi-Directional EV Chargers Tested to Improve Massachusetts Power Grid
Somewhere on Americaās eastern coast, thereās an economic development agency in Massachusetts promoting green energy solutions. And Monday the Massachusetts Clean Energy Center (or MassCEC) announced āa first-of-its-kindā program to see what happens when they provide free electric vehicle chargers to selected residents, sc ⦠ā Read more
Iām inclined to remove all mouse support, except for moving windows. š¤ I originally wanted this to emulate the behavior of DOS programs, but a) mouse support is a lot of code, b) using the mouse is cumbersome anyway and I would rarely do it.
Toyota Developing A Console-Grade, Open-Source Game Engine - Using Flutter & Dart
Well, hereās an unexpected combination⦠Toyotaās Toyota Connected North America unit is developing a console-grade open-source game engine. Making it even more unusual is their engineering choices of building around the Flutter toolkit and in turn the Dart programming language. This new game engine creation is called Fluorite⦠ā Read more
Krita 6.0 Beta Released - Using Qt6 & Wayland Color Management Support
The first beta release of Krita 6.0 is now available for this featureful digital painting program. Krita 6.0 is re-based against the Qt6 toolkit while Krita 5.3 Beta is also being released at the same time for those sticking to Qt5⦠ā Read more
NetBSDās Kernel Supports Lua Scripting But Donāt Look For Rust In There Anytime Soon
For those not fond of the increasing use of the Rust programming language within the Linux kernel or FreeBSDās considerations for Rust in its kernel, you can perhaps find refuge within NetBSD. One of the NetBSD developers has explained why you likely wonāt be finding Rust code within the NetBSD kernel anytime soon⦠ā Read more
Intel ISPC 1.30 Released With AMX Support Added To The Standard Library
Intel ISPC 1.30 is now available as the latest feature update to their Implicit SPMD Program Compiler as a variant of the C programming language to easily target their array of CPUs and GPUs⦠ā Read more
Microsoftās New Open-Source Project: LiteBox As A Rust-Based Sandboxing Library OS
Microsoft engineers and other stakeholders have been developing LiteBox as a security-focused library OS written in the Rust programming language and leveraging Linux Virtualization Based Security āLVBSā. The design is for LiteBox to operate as a secure kernel protecting the normal guest kernel via virtualization hardware⦠ā Read more
Adobe Is Killing A Popular Animation And Game Development Program
Adobe has emailed users of Adobe Animate to let them know the popular animation and game development program will be discontinued on March 1, an abrupt decision that has angered animators and game developers who say the tool remains an industry standard in television and game production.
Animate, the successor to the once-popular Flash, is wid ⦠ā Read more
Rust Coreutils 0.6 Brings Increased Compatibility, Removing Some Unsafe Code & More Perf
Following the Rust Coreutils presentation from FOSDEM this weekend, Rust Coreutils 0.6 is now available as the latest feature release for this Rust programming language re-implementation of GNU Coreutils⦠ā Read more
EU Deploys New Government Satcom Program in Sovereignty Push
The EU āhas switched on parts of its homegrown secure satellite communications network for the first time,ā reports Bloomberg, calling it part of a ā¬10.6 billion push to āwean itself off US support amid growing tensions.ā
SpaceNews notes the new government program GOVSATCOM pools capacity from eight already on-oribit satellites from France, Spain, It ⦠ā Read more
Blue Origin Announces Two-Year Pause in Space Tourism - to Focus on the Moon
TechCrunch reports:
Jeff Bezosā space company Blue Origin is pausing its space tourism flights for āno less than two yearsā in order to focus all of its resources on upcoming missions to the moon, the company announced Friday. The decision puts a temporary halt on a program that Blue Origin has been using to fly humans ⦠ā Read more
GNU gettext Reaches Version 1.0 After 30 Years
After more than 30 years of development, GNU gettext finally ācrossed the symbolic āv1.0ā milestone,ā according to Phoronixās Michael Larabel. āGNU gettext 1.0 brings PO file handling improvements, a new āpo-fetchā program to fetch translated PO files from a translation projectās site on the Internet, new āmsgpreā and āspitā pre-translation programs, and Ocaml and Rust programming l ⦠ā Read more
GNU gettext Reaches Version 1.0 After 30+ Years In Development - Adds LLM Features
Sun Microsystems began developing gettext in the early 1990s and the GNU Project began GNU gettext development in 1995 for this widely-used internationalization and localization system commonly for multi-lingual integration. While GNU gettext is commonly used by countless open-source projects and adapted for many different programming languages, only an hour ago was GNU gettext 1.0 finally released⦠ā Read more
RFC Patches Posted For Klint Integration With The Linux Kernel: Rust-Based Linting Tool
A request for comments (RFC) patch series was sent out today for providing Klint integration with the Linux kernel. Klint is a new linting tool written in the Rust programming language that helps with static code analysis for errors/bugs as well as code styling inconsistencies⦠ā Read more
OpenAI Releases Prism, a Claude Code-Like App For Scientific Research
OpenAI has launched Prism, a free scientific research app that aims to do for scientific writing what coding agents did for programming. Engadget reports: Prism builds on Crixet, a cloud-based LaTeX platform the company is announcing it acquired today. For the uninitiated, LaTeX is a typesetting system for formatting scientific docume ⦠ā Read more
Updated Linux Patches For Managing Out-Of-Memory Behavior Via BPF
Being worked on since last year by Google engineer Roman Gushchin was the latest attempt for the Linux kernel to support managing the out-of-memory āOOMā behavior using BPF programs. Itās been a while since there has been anything new to report on that front but published overnight is the latest iteration of those patches⦠ā Read more
What a beautiful, beautiful 0°C Sunday arvo and evening! The weather forecast delayed the snow by the minute. An hour or so after it finally started very, very lightly, I headed off for the woods to check out the lake again. Unfortunately, with the fresh snow layer, the crazy wild surface texture of the ice sheet wasnāt visible anymore. But it brought some other nice views and photo opportunities.
I initially thought that I just go for a quick turn. However, with the snowfall a wee bit increasing I was hooked and kept going. Visibility was poor, but the snow blankets just looked too stunning. The road surfaces were quite slippery, so I often just walked alongside the pathways. On downhill slopes I had some good fun sliding down the road on my feet. With varying success. Luckily, I managed not to fall.
On the summit of the mountain the twigs had those absolutely magnificently looking windblown crystal coverings. Awwwwwww! They never get old. It was already getting dark, so the camera was tired and wanted to sleep. The snow program then made use of the flash and Iām quite pleased with how these shots turned out.
Two deer crossed the road in front of me and ran into the woods, that was sight for sore eyes. Although I felt bad that they had to flee from me in this white terrain. By the time I got home, the snow had accumulated around eight centimeters in height, even in town down in the valley. Walking on this fresh snow is just amazing. And I love the sound it makes. Today, the snow consistency must have been just right, because the crushing sound was really loud.
I cannot recall that I had frozen hair and beard before, but today, there was a thick ice buildup. In case I had, it was definitely never this much. Felt really cool.
Enough of this preliminary skirmishing, there ya go: https://lyse.isobeef.org/waldspaziergang-2026-01-25/
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. š„³
Zlib-rs 0.6 Released With Improved AVX-512 Support
Zlib-rs is the effort out of the Trifecta Tech Foundation to provide a Zlib compression implementation written in the Rust programming language that can serve as a C dynamic library and Rust crate. The intent here being that zlib-rs is potentially safer than the classic C-based implementation of Zlib⦠ā Read more
Rust 1.93 Brings Improvement For Inline Assembly Handling
Rust 1.93 is out today as the first feature release for this programming lanugage of 2026⦠ā Read more
Germanyās EV Subsidies Will Include Chinese Brands
Germany is reinstating EV subsidies after a sharp sales drop, rolling out a 3 billion-euro program offering 1,500-6,000 euros per buyer starting in May and running through 2029. Unlike some neighboring countries, the incentives are open to all manufacturers with a focus on low- and middle-income households. From a report: āI cannot see any evidence of this postulated major i ⦠ā Read more
Myrlyn 1.0 Released For Package Manager GUI Spawned By SUSEās Hack Week
Myrlyn 1.0 was released today as the package manager GUI developed by SUSE engineers and started out just over one year ago during a SUSE Hack Week event as a SUSE/Qt package manager program not dependent upon YaST or Ruby⦠ā 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.)
./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ā⢠š¤£
Btw @movq@www.uninformativ.de 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.
Wild 0.8 Linker Adds SFrame Support, LoongArch64 & More Performance
Wild 0.8 is now available as this speedy linker focused on iterative development, a goal of incremental linking, and written in the Rust programming language⦠ā Read more
Students Increasingly Choosing Community College or Certificates Over Four-Year Degrees
DesScorp writes: CNBC reports that new data from the National Student Clearinghouse indicates that enrollment growth in four year degree programs is slowing down, while growth in two year and certification programs is accelerating: Enrollments in undergraduate certificate and associate degree programs ⦠ā Read more
Burn 0.20 Released: Rust-Based Deep Learning With Speedy Perf Across CPUs & GPUs
A significant update to Burn was released today, the MIT and Apache 2.0 licensed tensor library and deep learning framework written in the Rust programming language. Burn 0.20 brings some low-level changes as it continues to strive to deliver high performance AI across the diverse hardware ecosystem⦠ā Read more
Even Linus Torvalds Is Vibe Coding Now
Linus Torvalds has started experimenting with vibe coding, using Googleās Antigravity AI to generate parts of a small hobby project called AudioNoise. āIn doing so, he has become the highest-profile programmer yet to adopt this rapidly spreading, and often mocked, AI-driven programming,ā writes ZDNetās Steven Vaughan-Nichols. Fro the report: [I]tās a trivial program called AudioNoise ā a recen ⦠ā Read more
Iām trying to implement configurable key bindings in tt. Boy, is parsing the key names into tcell.EventKeys a horrible thing. This type consists of three information:
- maybe a predefined compound key sequence, like Ctrl+A
- maybe some modifiers, such as Shift, Ctrl, etc.
- maybe a rune if neither modifiers are present nor a predefined compound key exists
Itās hardcoded usage results in code like this:
func (t *TreeView[T]) InputHandler() func(event *tcell.EventKey, setFocus func(p tview.Primitive)) {
return t.WrapInputHandler(func(event *tcell.EventKey, setFocus func(p tview.Primitive)) {
switch event.Key() {
case tcell.KeyUp:
t.moveUp()
case tcell.KeyDown:
t.moveDown()
case tcell.KeyHome:
t.moveTop()
case tcell.KeyEnd:
t.moveBottom()
case tcell.KeyCtrlE:
t.moveScrollOffsetDown()
case tcell.KeyCtrlY:
t.moveScrollOffsetUp()
case tcell.KeyTab, tcell.KeyBacktab:
if t.finished != nil {
t.finished(event.Key())
}
case tcell.KeyRune:
if event.Modifiers() == tcell.ModNone {
switch event.Rune() {
case 'k':
t.moveUp()
case 'j':
t.moveDown()
case 'g':
t.moveTop()
case 'G':
t.moveBottom()
}
}
}
})
}
This data structure is just awful to handle and especially initialize in my opinion. Some compound tcell.Keys are mapped to human-readable names in tcell.KeyNames. However, these names always use - to join modifiers, e.g. resulting in Ctrl-A, whereas tcell.EventKey.Name() produces +-delimited strings, e.g. Ctrl+A. Gnaarf, why this asymmetry!? O_o
I just checked k9s and theyāre extending tcell.KeyNames with their own tcell.Key definitions like crazy: https://github.com/derailed/k9s/blob/master/internal/ui/key.go Then, they convert an original tcell.EventKey to tcell.Key: https://github.com/derailed/k9s/blob/b53f3091ca2d9ab963913b0d5e59376aea3f3e51/internal/ui/app.go#L287 This must be used when actually handling keyboard input: https://github.com/derailed/k9s/blob/e55083ba271eed6fc4014674890f70c5ed6c70e0/internal/ui/tree.go#L101
This seems to be much nicer to use. However, I fear this will break eventually. And itās more fragile in general, because itās rather easy to forget the conversion or one can get confused whether a certain key at hand is now an original tcell.Key coming from the library or an āextendedā one.
I will see if I can find some other programs that provide configurable tcell key bindings.
C# (and C) Grew in Popularity in 2025, Says TIOBE
For a quarter century, the TIOBE Index has attempted to rank the popularity of programming languages by the number of search engine results they bring up ā and this week they had an announcement.
Over the last year the language showing the largest increase in its share of TIOBEās results was C#.
TIOBE founder/CEO Paul Jansen looks back at how C++ evolved:
From a language ⦠ā Read more
How the Free Software Foundation Kept a Videoconferencing Software Free
The Free Software Foundationās president Ian Kelling is also their senior systems administrator. This week he shared an example of how āthe work we put in to making sure a program is free for us also makes it free for the rest of the world.ā
During the COVID-19 pandemic, like everyone everywhere, the FSF increased its videoconferen ⦠ā Read more
@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).
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? š®āšØ
@bender@twtxt.net Theyāre not completely impossible, but C makes it much easier to run into them. I think the key point is that in those āsafeā languages, buffer overflows are caught and immediately crash the program (if not handled otherwise) instead of silently corrupting memory, not being noticed right away and maybe only later crashing at a different location, where it can be very hard to find the actual root cause. This is a big improvement in my book.
Some programmers are indeed horrible. Iām guilty myself. :-)
I like the article.
I came across this on āWhy Is SQLite Coded In Cā, which I found interesting:
āThere has lately been a lot of interest in āsafeā programming languages like Rust or Go in which it is impossible, or is at least difficult, to make common programming errors like memory leaks or array overruns.ā
If thatās true, then encountering those issues means the programmer is, simply, horrible?
@movq@www.uninformativ.de I quite like this part:
Many people write programs, but few stick with a program long enough to distill it.
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. š¤
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). š¤
More widget system progress:
https://movq.de/v/87e2bce376/vid-1767467193.mp4
I like the oldschool shadow effect. š Not sure if Iāll keep it, but itās neat.
The menu bar is still fake.
Had to spend quite a bit of time optimizing the rendering today. This can get really slow really quickly.
Unicode is Pain.
I might be able to start porting my first program (currently uses urwid) soon. š¤
Stoolap 0.2 Released For Modern Embedded SQL Database In Rust
Stooplap v0.2 released today as this SQLite alternative for providing embedded SQL database needs while written in the Rust programming language. Stoolap supports both in-memory and persistent storage models⦠ā Read more
Nice! š Here are the startup latencies for the simplest Mu (µ) program. println("Hello World"):
- Interpreter: ~5ms
- Native Code: ~1.5ms
Ncurses 6.6 Released With Improved Windows Terminal Support, Other Enhancements
Ncurses 6.6 was released today prior to closing out 2025. This programming library update for creating terminal-based text user interfaces (TUIs) features a variety of great improvements for ending out the year⦠ā Read more