NASA’s Curiosity Rover Got Its Drill Stuck on a Rock. Here’s How They Freed It
This is the first time NASA has encountered a situation like this, and it took nearly a week to resolve. ⌘ Read more
Googlebook Is Google’s New AI-Powered Laptop Platform Built on Android
They won’t replace Chromebooks, but Googlebooks have an Android-centered operating system, AI-first features like the Magic Pointer, and a promise of desktop-grade apps. ⌘ Read more
Trump Media Scales Back Plans for Its Own Prediction Market
Truth Predict was supposed to be the Trump family’s biggest leap yet into prediction markets. Now it’s looking more like a tiptoe. ⌘ Read more
Why Soccer Still Defies Statistical Analysis
Sarah Rudd, who once ran analytics for Arsenal, made her name applying the tenets of probability theory to movements on the pitch. Even she admits not everything can be solved with data. ⌘ Read more
I Work in Hollywood. Everyone Who Used to Make TV Is Now Secretly Training AI
For screenwriters like me—and job seekers all over—AI gig work is the new waiting tables. In eight months, I’ve done 20 of these soul-crushing contracts for five different platforms. It’s bad. ⌘ Read more
Why the Hantavirus Cruise Ship Outbreak Isn’t Likely to Become a Global Crisis
While the outbreak aboard a cruise ship in the Atlantic is concerning, the virus isn’t easily transmitted through casual contact. ⌘ Read more
Thousands of Vibe-Coded Apps Expose Corporate and Personal Data on the Open Web
Companies like Lovable, Base44, Replit, and Netlify use AI to let anyone build a web app in seconds—and in thousands of cases, spill highly sensitive data onto the public internet. ⌘ Read more
LegalZoom Promo Code: Exclusive 10% Off LLC Formations
Save on top services at LegalZoom, like LLC registration, incorporation, estate plans, and more with coupons and deals from WIRED. ⌘ Read more
The iPhone That Never Was
In 1990, three former Apple employees launched a company that epitomized the Silicon Valley dream. What they invented looked like an iPhone—more than a decade earlier. The device never came to be. ⌘ Read more
What to Know About Sony’s $7.85 Million PlayStation Settlement
Are you eligible for a payout? Probably, but it might take a while and will likely be pretty small. ⌘ Read more
Planets like Tatooine with two suns may be the norm, study finds
It’s easy to take it for granted that our own solar system, with one star, is the norm - but it turns out that this may not be the case. According to … ⌘ Read more
Taylor Swift Wants to Trademark Her Likeness. These TikTok Deepfake Ads Show Why
Researchers show scammers are using AI-manipulated footage of celebrity interviews to trick users into sharing their personal data. ⌘ Read more
Wine industry calls for government investment
It might sound like a good problem to have - a glut of wine sloshing around local barrels.
But a decline in export markets and changes in consumer behaviour have left some grape growers ripping up their vines and exiting the industry altogether.
In the latest development - one of Australia’s largest wineries - Winemasters SA - has appointed administrators following a failed sales bid.
GUEST: Lee McLean, … ⌘ Read more
Concerns raised over chemical-spraying drones theft in New Jersey
Someone has been stealing drones capable of spraying chemicals - but what exactly will they be used for ? Most people reading this will have likely he… ⌘ Read more
The Bloomberg Terminal Is Getting an AI Makeover, Like It or Not
WIRED spoke with Bloomberg’s chief technology officer about the big, chatbot-style changes coming to the iconic platform for traders. ⌘ Read more
Some Musk v. Altman Jurors Don’t Like Elon Musk
Musk’s lawsuit challenges OpenAI’s evolution under Sam Altman. But during jury selection, several potential jurors voiced negative views of Musk himself. ⌘ Read more
Newly Deciphered Sabotage Malware May Have Targeted Iran’s Nuclear Program—and Predates Stuxnet
Researchers have finally cracked Fast16, mysterious code capable of silently tampering with calculation and simulation software. It was created in 2005—and likely deployed by the US or an ally. ⌘ Read more
Rediscovering the Handcart
Image: The handcart, equipped with a sail. Photo by Kris De Decker.
The human-powered handcart is the oldest of vehicles, and it will likely be the last one around in the future. Of all vehicles, it’s the cheapest and least complex to build and use. It offers a large advantage over carrying a loa … ⌘ Read more
Large black puma-like cat spotted roaming the Scottish Highlands
Something large and exotic is thought to be prowling the wilds of Scotland’s Cairngorms National Park. The UK is certainly no stranger to stories of l… ⌘ Read more
When the designer asks for a parallax effect and I look up what that actually looks like ⌘ Read more
NASA makes final preparations for April 1st manned Moon mission
It is looking extremely likely that we are about to witness the first manned Moon mission since 1972. As the enormous silhouette of NASA’s Space Launc… ⌘ Read more
When the client tells me they want an app “like TikTok” but for their industry ⌘ Read more
Prehistoric crocodile-like reptile was so fast it could outrun a dog
The fossilized remains of the Triassic-era creature have been unearthed in Gloucester, England. The British Isles certainly don’t have any crocodiles … ⌘ Read more
Scientists identify the 45 most Earth-like extrasolar worlds ever found
The shortlist was picked out of more than 6,000 candidates based on a range of factors pertaining to habitability. Given that we still only know of on… ⌘ Read more
Artemis II technical issues fixed: NASA reveals new launch date
It looks like mankind’s first trip around the Moon in decades may finally be happening in the very near future. For those hoping to bear witness to th… ⌘ Read more
Fertiliser prices skyrocket for Aussie farmers as Middle East conflict rages on
The Middle East conflict is forcing up the cost of an essential fertiliser for Australian farmers, but there are other factors more likely to affect grocery prices. ⌘ Read more
It’s bad news yet again for the launch of NASA’s Artemis II mission
Just when it looked like the launch would go ahead, another spanner in the works manifested itself. It seems that NASA can’t catch a break - at least … ⌘ Read more
Growers warn ‘watered down’ lavender oil widespread in surging imports
Despite an Australian lavender industry dating back to the 1850s, you’re more than likely using an imported and “watered-down” product, local growers say. ⌘ Read more
@kiwu@twtxt.net Since I’m not living in the US, I haven’t seen it. I’ve only witnessed all the “outrage” about it through shows like Jon Stewart’s Daily Show. 🤣
TIL: If you’re trans in Germany and you want to start hormone therapy, you still need to be officially declared “trans” first (Indikationsschreiben, page 18: https://www.transinterqueer.org/wp-content/uploads/2022/04/Hormontherapie_DE_barrierearm.pdf) and then you can try to find an actual doctor to get the meds. All with super long waiting lists. This takes forever. 😩
Changing your legal name is surprisingly easy in comparison, at least since 2024: https://www.bmbfsfj.bund.de/bmbfsfj/aktuelles/alle-meldungen/anmeldung-zur-aenderung-des-geschlechtseintrages-jetzt-moeglich-243056 (From my perspective, that’s the less relevant part, though, because there’s a good chunk of people that you can just ask to call you differently (friends, cowokers, …) and then do that legal stuff later. But you want your body to change, like, now.)
Fancy a 15% discount on my #Domestika #Python + #CreativeCoding course?
A_B_A_VILLARES-2026
Valid up to March 13th
(Beware Domestika also uses dark patterns like a very low priced offering that will trigger a “yearly subscription” after a month if you don’t read the small print and cancel… not nice)
Cheers to all #Python #CreativeCoding people here using #Linux…
Would you like to test a script by our friend and co-maintainer of thonny-py5mode GoToLoop that installs #ThonnyIDE and #py5 on your machine to see how it goes and help improve it?
I wonder if it would be bad form to ask students to run something like this:
curl -fsSL https://Gist.GitHubUserContent.com/GoToLoop/246a31d437aaa8c6eadb7f7186544e0f/raw/thonny-installer.bash -o thonny-installer.bash && chmod +x thonny-installer.bash && ./thonny-installer.bash
(because, you know, it trains them to run potentially dangerous stuff in other occasions)
@movq@www.uninformativ.de I also had to laugh. :-D And that’s what crossed my mind for a splitsecond, too. Two decades ago or so, that would have worked. But these days are long over. Wasn’t it even an INI file or something like that?
Okay, so the funniest thing that has happened at work in the realm of AI so far is this:
So this guy (that holds a certain position of power) wants people to use more AI, meaning people are expected to install a set of AI tools on their laptops. But, of course, he doesn’t want to write proper documentation for this, because that would be silly monkey work, right? So he conjures up some AI prompts that are intended to make the AI agent install all this stuff by itself.
Do you see where this is going? Can you see the punchline?
That’s right! Since none of this AI stuff is deterministic, every setup is different. 🤦♀️ Like, 10, 20 systems, all set up a little different and people wonder why this or that doesn’t work as expected.
Okay, it’s not funny.
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”:
https://movq.de/v/a24558f83f/s.png
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.
Hmmm, that’s a pity. I never realized that before. The following Go code
var b bool
…
b |= otherBool
results in a compilation error:
invalid operation: operator | not defined on b (variable of type bool)
I cannot use || for assignments as in ||= according to https://go.dev/ref/spec#Assignment_statements. Instead, I have to write b = b || otherBool like a barbarian. Oh well, probably doesn’t happen all that often, given that I only now run into this after all those many years.
** lutul **
I made another camera toy. This one follows pico cam, the other pico cam, lut cam, and leibovitz. This newest one is called lutul. And, while it isn’t my most feature-rich camera toy, I think it is likely my most polished camera toy.
As the name kinda suggests, lutul lets you take or upload photos and then apply some pre … ⌘ Read more
@movq@www.uninformativ.de You’re right, that’s neat. I also saw Pask’s take on that which he referenced. I don’t know if I will ever attempt anything like that. Can’t imagine to succeed in that mission.
Recording audio to MiniDiscs like it’s 2001.
@lyse@lyse.isobeef.org Found some numbers now, they’re saying it was around 10cm in 3-4 hours. I don’t know, felt like more. 😂 The forecast wasn’t really good either, now that I think about it. They said there’s going to be some snow, okay, fine, but then, boom.
Haha, that old ad is lovely. Those days are over. 🤣
Haven’t watched it to the end yet, but @lyse@lyse.isobeef.org might like this: https://www.youtube.com/watch?v=EarBm4tfMXs
Would you drink wine from a bottle made from seaweed instead of glass?
The federal government provides $2 million towards developing low-emissions alternatives to glass wine bottles using materials like seaweed and plant sugar. ⌘ Read more
@prologic@twtxt.net (While browsing through that, I noticed that https://mu-lang.dev/ itself doesn’t really mention the source code repo, does it? 🤔 Like, the quickstart guide begins with “Build the host: go build ./cmd/mu”, but where’s the git clone … command? 😅)
I’m not really sure what the goal is. 🤔 Do you want to get pull requests for the docs? Or bug reports for mu itself? 🤔
@movq@www.uninformativ.de if they haven’t, I would recommend a “subtle” nudge. You know, like leaving an advert flier at their door for a “Basic English (including swearing words!) for Dummies” book, or something like that. :-D :-P
Every single year I complain we should have an independent survey of Python users, not of “Python developers”, as many people who use Python do not identify as professional software developers (https://ciberlandia.pt/@villares/109885982178235703) and the questions in the survey make no sense for them. We should have someone doing serious research designing an unbiased survey, not a software firm like Jetbrains doing market research.
Every year I fail to do something effective about this.
[Reposted publicly with some tweaks]
Just showelled 20cm of snow for half an hour, fuck me! I’m totally shattered. But it’s worth it. Looks so beautiful. And all the disbelief and terror in the eyes of the people. Well, that’s what our winters were like three decades ago. I’m just glad that I can work from home.
@prologic@twtxt.net sounds like an excellent project! Looking forward to it.
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. 🥳
@lyse@lyse.isobeef.org only four squalid clicks, oh my 😅! Is #02 frozen water? Can’t tell well, but looks like.
Oh wow, the boxes are ticked now! When I first checked, they were still showing like the screenshot. Well done! 🥳
Egypt’s pyramids were built using an internal lifting system, study suggests
New research has proposed that counterweights and pulley-like mechanisms were used to build the pyramids. The effort and skill needed to construct som… ⌘ Read more
When people “make plans”, I always respond like this:
https://movq.de/v/9a8712846d/at-night.jpg
Finally found the clip where this is from:
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.)
@movq@www.uninformativ.de Hehe. :-) This steep footpath connects a hiking parking lot outside the village and the edge of the village in a fairly straight line. Garden owners are allowed to drive their vehicles down from the village to their lots on this pathway and up again. These two poles are placed about a third up from the botton on a short, comparatively flat section to stop people from taking this shortcut to get down to the country road. Said road goes through the village but there are hairpins getting up and down. The road markings have been added recentlyish. I suspect to warn shooting down cyclists of the danger ahead. I haven’t seen something like this anywhere else either. :-)
@lyse@lyse.isobeef.org All that short brown grass, almost looks like Scotland. 🤔 (I’ve never been there. 😅)
What the heck is 06.jpg?
My mate and I went on a hike earlier. Yesterday, we had lovely 12°C. But today, it was down to at most 4°C. Oh well. At least the sun was out and and there was just a tiny bit of wind. We knew upfont that scarf, beanie and gloves were mandatory. Especially at the more windy sections like up top the hills. The view was absolutely terrible, but we made the best of it.
With the sun shining on us during our lunch break at a forest edge bench, we still enjoyed the lookout in 01. I brought some old carpet scraps to sit on and was happily surprised that they isolated even better than I had hoped for. Some hot tea helped us staying warm.
After five hours we returned just after sunset. I’m quite tired now, completely out of shape.
@lyse@lyse.isobeef.org (At least I didn’t break all the links again. In late 2015, I switched from a PHP backend to the current static website, which changed just about everything. I hope doing a disruptive change like this one every 10 years is tolerable. 😅)
@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:
https://movq.de/v/f26eb836ee/s.png
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.
@bender@twtxt.net ICQ, yeah, I vaguely remember these times, despite I still know my ICQ number like it was yesterday. :-D
@shinyoukai@neko.laidback.moe No, it’s not dead. The one account in question actually is on jabber.org.
Yes, if a twtxt contains something like “(This is a test. Will this work as it should?)”, it will show empty on Yarn.
@klaxzy@klaxzy.net nothing like a blank twt eh? 😅
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.
rustfmt. I now use similar tools for Python (black and isort).
@movq@www.uninformativ.de @prologic@twtxt.net That’s what I like about Go, too. However, every now and then I really dislike the result, e.g. when removing spaces from a column layout. Doesn’t happen often, but when it does, I hate it.
I think I should have a look at Python formatters, too. Pep8 is deprecated, I think, it’s been some time that I looked at it.
@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).
** no beautiful things **
There’s this line in The Hobbit that haunts me. For one thing, it is part of a wider problematic habit running throughout all of Tolkien that, moving in the mythopoetic space, leads to these sweeping statements that define or collapse an entire culture into a single stroke. It seems to me to be like the most damning thing you could say about a culture, though:
Now goblins are cruel, wicked, and bad-hearted. They make no beautiful things, but they make many clever ones.
Emphasis my own, and the quote … ⌘ Read more
@movq@www.uninformativ.de Oh, I see. Unfortunately, there seems to be no box drawing character for a corner with a diagonal line. Indeed, this is probably the best you can do.
Is the single character enough to hit it comfortably with the mouse, though? Maybe one additional to the left and above could be something to think about. Not sure. Of course this complicates it a bit more. Personally, I like fullscreen windows, so I’m definitely the wrong guy to judge this or even comment on. :-)
(The background and the window shadow are not amber and it wouldn’t have looked like that on a real monitor, unless you cranked up the brightness way too high.)
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? 😮💨
@prologic@twtxt.net Yep! I like that this distillation metaphor makes it explicit: You have to go ahead and actually distill something. It doesn’t happen automatically. The metaphor acknowledges that this is work that needs to be done by someone.
@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. 🤔
@movq@www.uninformativ.de Yiha! Even autoscroll, very nice! The naming certainly drew inspiration from Urwid. I like it. Looking forward to eventually checking out its inner workings. :-)
Looks like someone loves Depth First Search.
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. 🤔
httpd now sends the Last-Modified with UTC instead of GMT. Current example:
@lyse@lyse.isobeef.org Bah. Yeah, that looks like a bug. Let’s see if this already reported upstream. 🤔
** 2026.01 week notes **
Will I succeed in making week notes a weekly activity this year?
Only time will tell!
…also, I mean…I feel like the answer is already“no” and that is fine, but anyways.
- I don’t usually take the holidays off from work, it is a nice time to catch up on stuff while still being able to hang out with my family who are all off from school and work.
- I’ve moved where I work in the house so that it is easier for me to hang out with the dog who’s struggling to go up and down stairs, which is kinda problematic since … ⌘ Read more
On my way to having windows and mouse support:
https://movq.de/v/95bbbbd3e8/basic-windows.mp4
It would be cool to have something like Turbo Vision eventually.
(I considered just using Turbo Vision, but it’s a C++ library and that’s not quite what I’m looking for. But it’s not yet completely off the table.)
I keep thinking about this piece on students that have not learned yet about folder/directory structures…
I have met many students like that, I wonder if I could help them get it better, or if I shouldn’t worry about it at all.
I keep thinking about this piece on students that have not learned yet about folder/directory structures…
I have met many students like that, I wonder if I could help them get it better, or if I shouldn’t worry about it at all (they’ll mostly get used to it without much help).
The only good thing about this absolute craziness is that I can restock my rocket sticks. I picked up twelve along the way. Unfortunately, it looks like 99.999% of ammunition is bombs instead of rockets. Some sections of my street look exactly like an arbitrary Pakistanian town that I’ve seen online.
There was surprisingly much snow in the woods. Also, all ponds have frozen over. I didn’t expect that. Not at all. There were even illegal ice skating tracks in the natural reserve. We came across a large puddle and it was at least 10cm solid ice to the ground. Crazy!
@movq@www.uninformativ.de This is fuck’n great shit™ Where did you find this? 🤔 Got any more shit™ like this? 🙏
@movq@www.uninformativ.de Well, just a very limited subset thereof:
- inline and multiline code blocks using single/double/triple backticks (but no code blocks with just indentation)
- markdown links using using
[text](url)
- markdown media links using

And that’s it. No bold, italics, lists, quotes, headlines, etc.
Just like mentions, plain URLs, markdown links and markdown media URLs are highlighted and available in the URLs View. They’re also colored differently, similarly to code segments.
I definitely should write some documentation and provide screenshots.
It totally sounds like an active warzone around here. So, I just went on a very, very, very quick stroll to check out our sunset from ontop our hill (were all the bangs are way more horrible): https://lyse.isobeef.org/abendhimmel-2025-12-31/
@movq@www.uninformativ.de That’s cool! I also like the name of your library. :-) I assume you made the thing load quickly, didn’t you?
Well, you girls and guys are making cool things, and I have some progress to show as well. 😅
https://movq.de/v/c0408a80b1/movwin.mp4
Scrolling widgets appears to work now. This is (mostly) Unicode-aware: Note how emojis like “😅” are double-width “characters” and the widget system knows this. It doesn’t try to place a “😅” in a location where there’s only one cell available.
Same goes for that weird “ä” thingie, which is actually “a” followed by U+0308 (a combining diacritic). Python itself thinks of this as two “characters”, but they only occupy one cell on the screen. (Assuming your terminal supports this …)
This library does the heavy Unicode lifting: https://github.com/jquast/wcwidth (Take a look at its implementation to learn how horrible Unicode and human languages are.)
The program itself looks like this, it’s a proper widget hierarchy:
https://movq.de/v/1d155106e2/s.png
(There is no input handling yet, hence some things are hardwired for the moment.)
I just fixed another bug in tt where the language hint in multiline markdown code blocks had not been stripped before rendering. It just looked like it was part of the actual code, which was ugly. I now throw it away. Actually, it’s already extracted into the data model for possible future syntax highlighting.
Btw, @shinyoukai@neko.laidback.moe, that’s a super cool logo on your yarnd. I like it a lot!
It just doesn’t look aligned properly: https://lyse.isobeef.org/tmp/misalignment.png Could be a yarnd issue, though, it might not expect a logo this large. Just wildguessing, no idea.
@shinyoukai@neko.laidback.moe Because you might not want to commit all changed files in a single commit. I very often make use of this and create several commits. In fact, I like to git add --patch to interactively select which parts of a file go in the next commit. This happens most likely when refactoring during a feature implementation or bug fix. I couldn’t live without that anymore. :-)
If you have a much more organized way of working where this does not come up, you can just git commit --all to include all changed files in the next commit without git adding them first. But new files still have to be git added manually once.
@lyse@lyse.isobeef.org Well, I used SnipMate years ago (until 2012). IIRC, it’s more than just “insert a bit of text here”, it can also jump to the correct next location(s) and stuff like that. Don’t remember why I stopped using it.
Then I used nothing for a long time. Just before Christmas, I made my own plugin (… of course …), which does everything I need at the moment (and nothing more).
It can insert simple templates and then jump to the next location:
https://movq.de/v/67cdf7c827/sisni%2Dpython.mp4
And replace a string after insertion:
https://movq.de/v/67cdf7c827/sisni%2Dheader.mp4
(It’s not public (yet?) and it also uses vim9script, so I guess it wouldn’t work on your system.)
@lyse@lyse.isobeef.org I’m toying with the idea of making a widget/window system on top of Python’s ncurses. I’ve never really been happy with the existing ones (like urwid, textual, pytermgui, …). I mean, they’re not horrible, it’s mostly the performance that’s bugging me – I don’t want to wait an entire second for a terminal program to start up.
Not sure if I’ll actually see it through, though. Unicode makes this kind of thing extremely hard. 🫤
@lyse@lyse.isobeef.org I can tell you this right now, writing assembly / machine code is fucking hard work™ 😓 I’m sure @movq@www.uninformativ.de can affirm 🤣 And when it all goes to shit™ (which it does often), man is debugging fucking hard as hell! Without debug symbols I can’t use the regular tools like lldb or gdb 😂
@shinyoukai@neko.laidback.moe Nah it’s more like there’s a lot of repeated code, because when you go from source language to intermediate representation to machine code, well you just end up writing a lot of the same patterns over and over again. I need to dedupe this I think.
My little toy operating system from last year runs in 16-bit Real Mode (like DOS). Since I’ve recently figured out how to switch to 64-bit Long Mode right after BIOS boot, I now have a little program that performs this switch on my toy OS. It will load and run any x86-64 program, assuming it’s freestanding, a flat binary, and small enough (< 128 KiB code, only uses the first 2 MiB of memory).
Here I’m running a little C program (compiled using normal GCC, no Watcom trickery):
https://movq.de/v/b27ced6dcb/los86%2D64.mp4
https://movq.de/v/b27ced6dcb/c.png
Next steps could include:
- Use Rust instead of C for that 64-bit program?
- Provide interrupt service routines. (At the moment, it just keeps interrupts disabled.)
I’m still deciding if I want to watch #Pluribus. When people told me Carol only wanted to meet the English speaking “imune” people it was such a turn off… like, it sounds rather offensive…
@prologic@twtxt.net Not even entirely sure how I did it myself, but likely a lucky combination of the new tail swirl, the legs closer to the screen being bigger and the head looking slightly to the side (eye & ear position), with bottom part of the hair, going behind the snout. The white is just an outline, around most of my works, so I don’t think that plays a part.
@movq@www.uninformativ.de Maybe there’s another meaning I’m not aware of, but this doesn’t look like a shitpost to me. Congrats, I guess. ;-)