blog.ratterobert.com

movq (www.uninformativ.de)

@lyse Hm, I don’t think so, the requested page was a Linux-specific post. πŸ€” I sometimes wonder if privacy-oriented browsers might do this on purpose, to create garbage data? πŸ€” No idea.

In reply to: #viazmra 17 hours ago
movq (www.uninformativ.de)

@lyse I honestly wish I could do more than just sit here and wait. It’s just a matter of time until they remove X.Org from the repos. 🫀 But I really can’t dedicate so much time to this …

In reply to: #mtnfqzq 17 hours ago
movq (www.uninformativ.de)

I give up.

Let’s try again next year. I don’t have the stamina. Death by a thousand paper cuts.

Can’t set up a meaningful taskbar: https://github.com/labwc/labwc/discussions/2924 (This is not a labwc issue, it’s a generic issue in the broader Wayland ecosystem.)

In reply to: #57sgffa 21 hours ago
movq (www.uninformativ.de)

@bender Even I don’t believe in that anymore. :'(

In reply to: #c5zkc3a 23 hours ago
movq (www.uninformativ.de)

@lyse Don’t remind me about Morse. I really wanted to learn that and tried so for quite a while, but no success. 😒

In reply to: #57sgffa 1 day ago
movq (www.uninformativ.de)

@aelaraji And I read the following funny response to that:

Bluesky: Users verify their age by adding a payment method or uploading a photo ID.

Mastodon: Users verify their age by posting pictures of the vintage computer equipment in their homes.

https://beige.party/@maxleibman/114848276288629121

😏

In reply to: #vprifsq 3 days ago
movq (www.uninformativ.de)

(… maybe followed by β€œtmux Thursday” to cool down …)

In reply to: #57sgffa 3 days ago
movq (www.uninformativ.de)

@lyse 06.jpg is quite funny. Block the road for 30 minutes! %)

In reply to: #ueqssha 3 days ago
movq (www.uninformativ.de)

@bender Hm, it is now. πŸ€” I should have made a screenshot when I first saw it.

In reply to: #fxfjeeq 3 days ago
movq (www.uninformativ.de)

@prologic Yeah, it’s not a strong sandbox in jenny’s case, it could still read my SSH private key (in case of an exploit of some sort). But I still like it.

I think my main takeaway is this: Knowing that technologies like Landlock/pledge/unveil exist and knowing that they are very easy to use, will probably nudge me into writing software differently in the future.

jenny was never meant to be sandboxed, so it can’t make great use of it. Future software might be different.

(And this is finally a strong argument for static linking.)

In reply to: #3tcq7ra 5 days ago
movq (www.uninformativ.de)

Looks like here’s something wrong with Markdown parsing. πŸ€” The original twt looks like this:

>This extension was turned off because it is no longer supported

Thanks Google.
This browser was uninstalled because it absolutely sucks!

So only the first line should be a quote.

In reply to: #2xx4mbq 5 days ago
movq (www.uninformativ.de)

Landlock is still young and a bit unpolished, but it’s slowly getting more popular. πŸ₯³

In reply to: #3tcq7ra 6 days ago
movq (www.uninformativ.de)

Another example:

$ setpriv \
    --landlock-access fs \
    --landlock-rule path-beneath:execute,read-file:/bin/ls-static \
    --landlock-rule path-beneath:read-dir:/tmp \
    /bin/ls-static /tmp/tmp/xorg.atom

The first argument --landlock-access fs says that nothing is allowed.

--landlock-rule path-beneath:execute,read-file:/bin/ls-static says that reading and executing that file is allowed. It’s a statically linked ls program (not GNU ls).

--landlock-rule path-beneath:read-dir:/tmp says that reading the /tmp directory and everything below it is allowed.

The output of the ls-static program is this line:

─rw─r──r────x 3000 200 07-12 09:19 22'491 β”‚ /tmp/tmp/xorg.atom

It was able to read the directory, see the file, do stat() on it and everything, the little x indicates that getting xattrs also worked.

3000 and 200 are user name and group name – they are shown as numeric, because the program does not have access to /etc/passwd and /etc/group.

Adding --landlock-rule path-beneath:read-file:/etc/passwd, for example, allows resolving users and yields this:

─rw─r──r────x cathy 200 07-12 09:19 22'491 β”‚ /tmp/tmp/xorg.atom
In reply to: #3tcq7ra 6 days ago
movq (www.uninformativ.de)

st tries not to redraw immediately after new data arrives:

https://git.suckless.org/st/file/x.c.html#l1984

The exact timings are configurable.

This is the PR that changed the timing in VTE recently (2023):

https://gitlab.gnome.org/GNOME/vte/-/issues/2678

There is a long discussion. It’s not a trivial problem, especially not in the context of GTK and multiple competing terminal widgets. st dodges all these issues (for various reasons).

In reply to: #2726vfq 6 days ago
movq (www.uninformativ.de)

Yeah, little fellow. I also just want to walk away. https://movq.de/v/bef8c35f01/ach.mp4

In reply to: #g77p7fq 1 week ago
movq (www.uninformativ.de)

@lyse Yeah, if there’s no stable API, then it’s not a lot of fun … Bah. :|

In reply to: #cfv7cqa 1 week ago
movq (www.uninformativ.de)

… but you can’t set SDL_VIDEODRIVER=wayland globally, because that breaks Wine again …

In reply to: #rwueaza 1 week ago
movq (www.uninformativ.de)

… okay, the SDL backend works if you also set SDL_VIDEODRIVER=wayland.

In reply to: #rwueaza 1 week ago
movq (www.uninformativ.de)

@lyse dmenu is a great example.

There have been several attempts at porting dmenu from X11 to Wayland. Well, not exactly β€œporting” it, more like rewriting it from scratch. Turns out: It’s not that easy.

dmenu is super fast and reliable. None of the Wayland rewrites are (at least none of the popular ones that I know of). They are either bloated and/or slow.

It takes a lot of discipline and restraint to write simple software and not blow up the codebase. This is much harder than people think. It’s a form of art, really.

In reply to: #l4jz2na 1 week ago
movq (www.uninformativ.de)

@lyse I do my timetracking in a little Python script, locally. Every now and then, I push the data to our actual service. Problem solved – but it’s a completely unpopular approach, they all want to use the web site. I don’t get it. Then, of course, when it’s down, shit hits the fan. (Luckily, our timetracking software is neither developed nor run by us anymore. It’s a silly cloud service, but the upside is that I’m not responsible anymore. 🀷)

Some of our oldschool devs tried to roll out local timetracking once, about 15 years ago. I don’t remember anymore why they failed …

This is developed inhouse, I'm just so glad that we're not a software engineering company. Oh wait. How embarrassing.

Oh to be anonymous on the internet. That must be nice. πŸ˜…

In reply to: #cfv7cqa 1 week ago
movq (www.uninformativ.de)

… but the SDL backend is broken as well, albeit differently …

In reply to: #rwueaza 1 week ago
movq (www.uninformativ.de)

… which is probably a GTK bug.

In reply to: #rwueaza 1 week ago
movq (www.uninformativ.de)

@prologic Yeah, this really could use a proper definition or a β€œmanifest”. πŸ˜… Many of these ideas are not very wide spread. And I haven’t come across similar projects in all these years.

Let’s take the farbfeld image format as an example again. I think this captures the β€œspirit” quite well, because this isn’t even about code.

This is the entire farbfeld spec:

farbfeld is a lossless image format which is easy to parse, pipe and compress. It has the following format:

╔════════╀═════════════════════════════════════════════════════════╗
β•‘ Bytes  β”‚ Description                                             β•‘
╠════════β•ͺ═════════════════════════════════════════════════════════╣
β•‘ 8      β”‚ "farbfeld" magic value                                  β•‘
β•Ÿβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β•’
β•‘ 4      β”‚ 32-Bit BE unsigned integer (width)                      β•‘
β•Ÿβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β•’
β•‘ 4      β”‚ 32-Bit BE unsigned integer (height)                     β•‘
β•Ÿβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β•’
β•‘ [2222] β”‚ 4x16-Bit BE unsigned integers [RGBA] / pixel, row-major β•‘
β•šβ•β•β•β•β•β•β•β•β•§β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

The RGB-data should be sRGB for best interoperability and not alpha-premultiplied.

(Now, I don’t know if your screen reader can work with this. Let me know if it doesn’t.)

I think these are some of the properties worth mentioning:

  • The spec is extremely short. You can read this in under a minute and fully understand it. That alone is gold.
  • There are no β€œknobs”: It’s just a single version, it’s not like there’s also an 8-bit color depth version and one for 16-bit and one for extra large images and one that supports layers and so on. This makes it much easier to implement a fully compliant program.
  • Despite being so simple, it’s useful. I’ve used it in various programs, like my window manager, my status bars, some toy programs like β€œtuxeyes” (an Xeyes variant), or Advent of Code.
  • The format does not include compression because it doesn’t need to. Just use something like bzip2 to get file sizes similar to PNG.
  • It doesn’t cover every use case under the sun, but it does cover the most important ones (imho). They have discussed using something other than RGBA and decided it’s not worth the trouble.
  • They refrained from adding extra baggage like metadata. It would have needlessly complicated things.
In reply to: #hdfz6xa 1 week ago
movq (www.uninformativ.de)

@prologic Hm, I wouldn’t say that. Go code could fall into that category as well.

Maybe this topic could use a blog post / article, that explains what it’s about. I’m finding it hard to really define what β€œsuckless-like software” is. πŸ€” (Their own philosophy focuses too much on elitism, if you ask me.)

In reply to: #hdfz6xa 1 week ago
movq (www.uninformativ.de)

@prologic Ah, I’m referring to software that’s similar to that of suckless.org: Small, minimal codebases, small tools, but still useful. dmenu is probably the best example and also farbfeld.

Here’s the author of Anubis talking about some of their experiences:

https://xeiaso.net/blog/why-i-use-suckless-tools-2020-06-05/

(You can skip the long config and keybinds part.)

In reply to: #hdfz6xa 1 week ago
movq (www.uninformativ.de)

@eldersnake This wasn’t always the case, though. Quake3, Quake4, Unreal Tournament 99 and 2004 are examples of games that used to run very well as native Linux games. But that was 20+ years ago …

In reply to: #7upqiiq 1 week ago
movq (www.uninformativ.de)

@lyse (It’s either that, or the fact that it’s women’s football and β€œnobody wants to see that anyway”.)

In reply to: #btx54va 1 week ago
movq (www.uninformativ.de)

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.

In reply to: #7upqiiq 1 week ago
movq (www.uninformativ.de)

@lyse 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.)

In reply to: #cfv7cqa 1 week ago
movq (www.uninformativ.de)

@lyse Uffpuh. Es Wetter spielt verrückt. 🫀

In reply to: #cwjhpbq 2 weeks ago
movq (www.uninformativ.de)

@prologic That too, yeah. πŸ₯΄πŸ˜©

In reply to: #or4p7tq 2 weeks ago
movq (www.uninformativ.de)

@prologic Bah! Why can’t we all have mild weather. πŸ₯²

In reply to: #or4p7tq 2 weeks ago
movq (www.uninformativ.de)

@aelaraji Yay, heat. 🫠

In reply to: #cqtgxja 2 weeks ago
movq (www.uninformativ.de)

@lyse

These are lists in your Inkscape example, right?

The font stuff? Yeah, that’s a scrollable list where you can select the current font.

In reply to: #5u7y23a 2 weeks ago
movq (www.uninformativ.de)

@prologic Heyho, welcome back. πŸ‘‹ Did you guys have a nice trip? 😊

In reply to: #rdrpxzq 2 weeks ago
movq (www.uninformativ.de)

@lyse Probably. :-) I just saw that the account on Yarn is also gone. Maybe it didn’t survive the crash earlier this year.

In reply to: #s5gi4wa 2 weeks ago
movq (www.uninformativ.de)

@lyse Wow. Just like Skyrim! πŸ˜ƒ

In reply to: #xhtmyhq 2 weeks ago
movq (www.uninformativ.de)

@kat Oh dear. 😩

In reply to: #5qxemxa 3 weeks ago
movq (www.uninformativ.de)

@arne Stattdessen rutscht er seitlich vom Tisch? πŸ€ͺ

In reply to: #x6kfgia 3 weeks ago
movq (www.uninformativ.de)

@lyse 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?

In reply to: #vjop7ga 3 weeks ago
movq (www.uninformativ.de)

@lyse

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?!)

In reply to: #xabos5a 3 weeks ago
movq (www.uninformativ.de)

@prologic 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. πŸ˜…

In reply to: #esedu3a 3 weeks ago
movq (www.uninformativ.de)

@lyse Multi-Threading. Is. Hard. 🀯 And yes, that blog is great. πŸ‘Œ

In reply to: #v7d7d4a 3 weeks ago
movq (www.uninformativ.de)

@lyse lol – I explicitly kept them in there so that the code is easier to understand for non-Rust people πŸ€ͺπŸ˜‚

In reply to: #a4qstxa 3 weeks ago
movq (www.uninformativ.de)

@prologic 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? πŸ€”

In reply to: #a4qstxa 3 weeks ago
movq (www.uninformativ.de)

(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? πŸ€”)

In reply to: #gg4pbpa 3 weeks ago
movq (www.uninformativ.de)

@kat 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. 🀦

In reply to: #rx7b6fa 3 weeks ago
movq (www.uninformativ.de)

@aelaraji 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
In reply to: #xfrwj3q 3 weeks ago
movq (www.uninformativ.de)

@kat 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!

https://movq.de/v/7531158962/etr.mp4

In reply to: #rx7b6fa 3 weeks ago
movq (www.uninformativ.de)

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.

In reply to: #y36ebpa 4 weeks ago
Reply via email