@lyse@lyse.isobeef.org (Itās either that, or the fact that itās womenās football and ānobody wants to see that anywayā.)
In all fairness, GOG says that Forsaken is only supported on Ubuntu 16.04 ā not current Arch Linux. If you ask me, this just goes to show that Linux is not a good platform for proprietary binary software.
Is it free software, do you have the source code? Then youāre good to go, things can be patched/updated (that can still be a lot of work). But proprietary binary blobs? Very bad idea.
I bought the āremasteredā versions of Grim Fandango and Forsaken on GOG, because theyāre super cheap at the moment. Both have native Linux versions.
And both these Linux version crap their pants. 𫤠The bundled SDL2 of Forsaken says it ācanāt find a matching GLX visualā and I couldnāt figure out how to fix that. I didnāt spend a lot of time on Grim Fandango.
Both work great in Wine. š¤¦
(I do have the original version of Grim Fandango from the 1990ies, but that one does not work so well in Wine. I figured, if itās so cheap, why not. And I now get to play the english version. š The german dub is pretty damn good, actually, but I always prefer the original these days.)
@lyse@lyse.isobeef.org I have to say, this sounds much worse than our stuff at work. š«© (We donāt use any Microsoft services, at least not for core tools.)
Okay, now this is a very interesting Rust feature:
https://blog.rust-lang.org/2025/07/03/stabilizing-naked-functions/
This (and inline assembly) makes Rust really interesting for very low-level stuff. š„³
It took about a year, I think, but Iāve now finished another run of Tomb Raider I, II, and III. And I have, for the first time, played the two bonus packs āUnfinished Businessā (for TR I) and āGolden Maskā (for TR II). Theyāre available as a free download, if you have the original games. (The bonus pack for TR III is not free.)
I just love these games ā and the game mechanics. Itās just the right balance between challenging and relaxing.
What kind of half-assed nonsense is this? They only broadcast half of the current european soccer cup ⦠(Let me guess, Iām supposed to subscribe to some streaming service if I want to watch every game, right?)
This aggressive auto-logout on my bankās website ā¦
Dude, you want me to print something, sign it, and scan it back in. This takes forever and Iāll have to re-login a dozen times. Narf.
@lyse@lyse.isobeef.org Uffpuh. Es Wetter spielt verrückt. š«¤
@prologic@twtxt.net That too, yeah. š„“š©
@prologic@twtxt.net Bah! Why canāt we all have mild weather. š„²
Is des Ƥni Hitz!
@aelaraji@aelaraji.com Yay, heat. š«
TIL: The logo of sudo
is a sandwich. š« https://www.sudo.ws/
Ted Unangstās snarky (and entertaining) remarks this month:
These are lists in your Inkscape example, right?
The font stuff? Yeah, thatās a scrollable list where you can select the current font.
Someone did a thing:
https://social.treehouse.systems/@ariadne/114763322251054485
Iāve been silently wondering all the time if this was possible, but never investigated: Keep doing X11 but use Wayland as a backend.
This uses XWaylandās ārootfulā mode, which basically just gives you a normal Wayland window with all the X11 stuff happening inside of it:
https://www.phoronix.com/news/XWayland-Rootful-Useful
In other words, put such a window in fullscreen and you (more or less) have good old X11 running in a Wayland window.
(For me, personally, this wonāt be the way forward. But itās a very interesting project.)
@prologic@twtxt.net Heyho, welcome back. š Did you guys have a nice trip? š
@lyse@lyse.isobeef.org Probably. :-) I just saw that the account on Yarn is also gone. Maybe it didnāt survive the crash earlier this year.
Just realized: One of the reasons why I donāt like āflat UIsā is that they look broken to me. Like the program has a bug, missing pixmaps or whatever.
Take this for example:
https://movq.de/v/8822afccf0/a.png
Iām talking about this area specifically:
https://movq.de/v/8822afccf0/a%2Dhigh.png
One UI element ends and the other one begins ā no ātransitionā between them.
The style of old UIs like these two is deeply ingrained into my brain:
https://movq.de/v/8822afccf0/b.png
https://movq.de/v/8822afccf0/c.png
When all these little elements (borders, handles, even just simple lines, ā¦) are no longer present, then the program looks buggy and broken to me. And Iām not sure if Iāll ever be able to un-learn that.
Alright, now for something fun! Taxes! Yay!
@lyse@lyse.isobeef.org Wow. Just like Skyrim! š
@mckinley@mckinley.ccās blog appears to have gone stale, hm.
@kat@yarn.girlonthemoon.xyz Oh dear. š©
@arne@uplegger.eu Stattdessen rutscht er seitlich vom Tisch? š¤Ŗ
@lyse@lyse.isobeef.org I can confidently say that I donāt remember ever having seen fireflys. (Nor Firefly.) š³ Iām most surprised that you could count them. Naively, I would assume that these guys move around a lot and youād lose track of them?
Weāre entering the ātoo hot to thinkā-season in 3, 2, 1 ⦠and weāre live!
Welcome to the family, Puffy. š„³š”
Theyāre all talks, not real hands-on trainings like you did.
I love listening to good, well-structured talks. Problem is, not everybody is a good speaker and many screw it up. š„“ Iām certainly not a great speaker, which is why I gravitate more towards āworkshopsā, in the hopes that people ask questions and discussions arise. Doesnāt always work out. 𤣠At the very least, I almost always have some other person connect to the projector/beamer/screenshare and then they do the stuff ā this avoids me being wwwwaaaaaaaaayyyy too fast.
We are usually drowned in stress and tight deadlines, hence events like today are super rare ⦠We used to do it more often until ~10 years ago.
Once a year the security guys organize a really great hacking event, though.
Oh dear, Iād love to participate in that. 𤯠That sounds like a lot of fun. (Why donāt we do this?!)
@prologic@twtxt.net This person isnāt particularly happy with this study:
https://mastodon.social/@grimalkina/114717549619229029
I donāt know enough about these things to form an opinion. 𫤠I sure wish it was true, though. š
I did a ālectureā/āworkshopā about this at work today. 16-bit DOS, real mode. š¾ Pretty cool and the audience (devs and sysadmins) seemed quite interested. š„³
- People used the Intel docs to figure out the instruction encodings.
- Then they wrote a little DOS program that exits with a return code and they used uhex in DOSBox to do that. Yes, we wrote a COM file manually, no Assembler involved. (Many of them had never used DOS before.)
- DEBUG from FreeDOS was used to single-step through the program, showing what it does.
- This gets tedious rather quickly, so we switched to SVED from SvarDOS for writing the rest of the program in Assembly language. nasm worked great for us.
- At the end, we switched to BIOS calls instead of DOS syscalls to demonstrate that the same binary COM file works on another OS. Also a good opportunity to talk about bootloaders a little bit.
- (I think they even understood the basics of segmentation in the end.)
The 8086 / 16-bit real-mode DOS is a great platform to explain a lot of the fundamentals without having to deal with OS semantics or executable file formats.
Now that was a lot of fun. š„³ Itās very rare that we do something like this, sadly. I love doing this kind of low-level stuff.
pledge()
and unveil()
syscalls:
@lyse@lyse.isobeef.org Multi-Threading. Is. Hard. 𤯠And yes, that blog is great. š
Option
and error handling. (Or the more complex Result
, but itās easier to explain with Option
.)
@lyse@lyse.isobeef.org lol ā I explicitly kept them in there so that the code is easier to understand for non-Rust people š¤Ŗš
Option
and error handling. (Or the more complex Result
, but itās easier to explain with Option
.)
@prologic@twtxt.net Iād say: Yes, because in Go itās easier to ignore errors.
Weāre talking about this pattern, right?
f, err := os.Open("filename.ext")
if err != nil {
log.Fatal(err)
}
Nothing stops you from leaving out the if
, right? š¤
(Of course, if weāre talking about a project youāre doing for a customer and the customer keeps asking for new stuff, then youāre never done, and you have to think ahead and expect changes. Is that what they mean? š¤)
Saw this on Mastodon:
https://racingbunny.com/@mookie/114718466149264471
18 rules of Software Engineering
- You will regret complexity when on-call
- Stop falling in love with your own code
- Everything is a trade-off. Thereās no ābestā 3. Every line of code you write is a liability 4. Document your decisions and designs
- Everyone hates code they didnāt write
- Donāt use unnecessary dependencies
- Coding standards prevent arguments
- Write meaningful commit messages
- Donāt ever stop learning new things
- Code reviews spread knowledge
- Always build for maintainability
- Ask for help when youāre stuck
- Fix root causes, not symptoms
- Software is never completed
- Estimates are not promises
- Ship early, iterate often
- Keep. It. Simple.
Solid list, even though 14 is up for debate in my opinion: Software can be completed. You have a use case / problem, you solve that problem, done. Your software is completed now. There might still be bugs and they should be fixed ā but this doesnāt āaddā to the program. Donāt use āsoftware is never doneā as an excuse to keep adding and adding stuff to your code.
Okay, hereās a thing I like about Rust: Returning things as Option
and error handling. (Or the more complex Result
, but itās easier to explain with Option
.)
fn mydiv(num: f64, denom: f64) -> Option<f64> {
// (Letās ignore precision issues for a second.)
if denom == 0.0 {
return None;
} else {
return Some(num / denom);
}
}
fn main() {
// Explicit, verbose version:
let num: f64 = 123.0;
let denom: f64 = 456.0;
let wrapped_res = mydiv(num, denom);
if wrapped_res.is_some() {
println!("Unwrapped result: {}", wrapped_res.unwrap());
}
// Shorter version using "if let":
if let Some(res) = mydiv(123.0, 456.0) {
println!("Hereās a result: {}", res);
}
if let Some(res) = mydiv(123.0, 0.0) {
println!("Huh, we divided by zero? This never happens. {}", res);
}
}
You canāt divide by zero, so the function returns an āerrorā in that case. (Option
isnāt really used for errors, IIUC, but the basic idea is the same for Result
.)
Option
is an enum. It can have the value Some
or None
. In the case of Some
, you can attach additional data to the enum. In this case, we are attaching a floating point value.
The caller then has to decide: Is the value None
or Some
? Did the function succeed or not? If it is Some
, the caller can do .unwrap()
on this enum to get the inner value (the floating point value). If you do .unwrap()
on a None
value, the program will panic and die.
The if let
version using destructuring is much shorter and, once you got used to it, actually quite nice.
Now the trick is that you must somehow handle these two cases. You must either call something like .unwrap()
or do destructuring or something, otherwise you canāt access the attached value at all. As I understand it, it is impossible to just completely ignore error cases. And the compiler enforces it.
(In case of Result
, the compiler would warn you if you ignore the return value entirely. So something like doing write()
and then ignoring the return value would be caught as well.)
We really are bouncing back and forth between flat UIs and beveled UIs. I mean, this is what old X11 programs looked like:
https://www.uninformativ.de/desktop/2025%2D06%2D21%2D%2Dkatriawm%2Dold%2Dxorg%2Dapps.png
Good luck figuring out which of these UI elements are click-able ā unless you examine every pixel on the screen.
@kat@yarn.girlonthemoon.xyz I might give it a shot. š
Skimming through the manual: I had no idea that keeping the āupā cursor pressed actually slows you down at some point. š¤¦
@aelaraji@aelaraji.com I use Alt+.
all the time, itās great. š
FWIW, another thing I often use is !!
to recall the entire previous command line:
$ find -iname '*foo*'
./This is a foo file.txt
$ cat "$(!!)"
cat "$(find -iname '*foo*')"
This is just a test.
Yep!
Or:
$ ls -al subdir
ls: cannot open directory 'subdir': Permission denied
$ sudo !!
sudo ls -al subdir
total 0
drwx------ 2 root root 60 Jun 20 19:39 .
drwx------ 7 jess jess 360 Jun 20 19:39 ..
-rw-r--r-- 1 root root 0 Jun 20 19:39 nothing-to-see
@kat@yarn.girlonthemoon.xyz I like the animations in your version much better than the ones from ExtremeTuxRacer. š And thereās no little dance at the end of a race!
I also just noticed that the performance issue doesnāt affect all games. š¤ Sigh, Iāll just downgrade for the time being. Not in the mood to fiddle with this.
@kat@yarn.girlonthemoon.xyz I guess that qualifies as an āArch momentā, albeit the first one I encountered. Iām running this since 2008 and itās usually very smooth sailing. š
@lyse@lyse.isobeef.org Yeah, YMMV. Some games work(ed) great in Wine, others not at all. I just use it because itās easier than firing up my WinXP box. (I donāt use Wine for regular applications, just games.)
Speaking of Wine, Arch Linux completely fucked up Wine for me with the latest update.
- 16-bit support is gone.
- Performance of 3D games is horrible and unplayable.
Arch is shipping a WoW64 build now, which is not yet ready for prime time.
And then I realized that thereās actually only one stable Wine release per year but Arch has been shipping development releases all the time. Thatās quite unusual. Iām used to Arch only shipping stable packages ⦠huh.
Hopefully things will improve again. Iām not eager to build Wine from source. Iād rather ditch it and resort to my real Windows XP box for the little (retro)gaming that I do ⦠š«¤
@kat@yarn.girlonthemoon.xyz lol, oof, well, better than nothing. š„“ It appears to run quite well. š¤
@prologic@twtxt.net Ahhh, right, my bad, I could have easily found that. š¤¦
Thereās also a project page which lists some limitations of this study: https://www.media.mit.edu/projects/your-brain-on-chatgpt/overview/
It certainly sounds plausible. āUse it or lose it.ā
@prologic@twtxt.net But is there a source for it? Am I too stupid to use that site? š¤Ŗ
@prologic@twtxt.net ⦠or just bullshit.
Iām Alex, COO at ColdIQ. Built a $4.5M ARR business in under 2 years.
Some āC-levelā guy telling people what to do, yeah, I have my doubts.
@prologic@twtxt.net This doesnāt cite any sources, might as well be satire. š¤
@kat@yarn.girlonthemoon.xyz Awww. :( Can you tell why? Missing libraries or does it just segfault?