this post was submitted on 31 Mar 2024
27 points (100.0% liked)

libre

9840 readers
29 users here now

Welcome to libre

A comm dedicated to the fight for free software with an anti-capitalist perspective.

The struggle for libre computing cannot be disentangled from other forms of socialist reform. One must be willing to reject proprietary software as fiercely as they would reject capitalism. Luckily, we are not alone.

libretion

Resources

  1. Free Software, Free Society provides an excellent primer in the origins and theory around free software and the GNU Project, the pioneers of the Free Software Movement.
  2. Switch to GNU/Linux! If you're still using Windows in $CURRENT_YEAR, flock to Linux Mint!; Apple Silicon users will want to check out Asahi Linux.

Rules

  1. Be on topic: Posts should be about free software and other hacktivst struggles. Topics about general tech news should be in the technology comm or programming comm. That doesn't mean all posts have to be serious though, memes are welcome!
  2. Avoid using misleading terms/speading misinformation: Here's a great article about what those words are. In short, try to avoid parroting common Techbro lingo and topics.
  3. Avoid being confrontational: People are in different stages of liberating their computing, focus on informing rather than accusing. Debatebro nonsense is not tolerated.
  4. All site-wide rules still apply

Artwork

founded 3 years ago
MODERATORS
 

D-Bus is a common mechanism for inter-process communication used on Linux. It allows applications and services to present a collection of properties and methods, as well as interact with the properties and methods of other process. It is used extensively by modern desktop environments. It is the canonical interface to interact with BlueZ, the main Bluetooth stack on Linux, as well as UPower.

D-Bus is implemented in C, and it provides libdbus - also implemented in C - to use it. But libdbus has little to no documentation. Just a light Doxygen reference of functions, structs, macros, etc. The main intoduction says explicitly, "This manual documents the low-level D-Bus C API. If you use this low-level API directly, you're signing up for some pain." Other pages on the freedesktop website recommends using other language bindings - like gdbus (which isn't a binding, but a re-implementation of the wire protocol), which has almost the same interface and even less documentation.

What the fuck are we even doing here? "Yeah this is dogshit, but it's okay because it's supposed to be used through a wrapper library which (for C) doesn't exist without various strings (gobject / qt / systemd) attached." I don't want a dependency on QT to dick around with BlueZ, and I sure as hell don't want to dive down the whole gobject rabbit hole just to write a program in C anyway.

I don't understand how such robust infrastructure gets built with this attitude. Clearly it still happens, so I must be missing something.

you are viewing a single comment's thread
view the rest of the comments
[–] Hurvitz@hexbear.net 4 points 7 months ago* (last edited 7 months ago) (5 children)

this has also been my (limited) experience with dbus. Unusable for mere mortals (people who don't have extensive experience with it and don't have time to just read the source code and piece it together), by way of being almost completely undocumented.

It seems like a really useful thing that would be 5x better if it was more easily usable/documented

[–] MayoPete@hexbear.net 1 points 7 months ago (2 children)

I unironically hope "document how to use this code" for stuff like is a good use for LLMs.

Let AI do the "boring" work

[–] Hurvitz@hexbear.net 3 points 7 months ago

I wish they didn't exist more than anything. I don't want to see them, I don't want to learn them and how to interpret and coax their garbled pronouncements, but if they actually become genuinely good at things like this that would be an acceptable outcome too. Its a shame they won't. Maybe they could do better than nothing though!

load more comments (1 replies)
load more comments (3 replies)