Finally got my YouTube live chat API client library working with the peel C++ bindings generator for #GLib / #GObject. I built a small coroutine task abstraction that makes working with GLib-style async functions much cleaner.

Still a lot more work to do to with caching/refreshing OAuth tokens and processing of messages, but hopefully I can get a prototype libpurple plugin (the ultimate goal) working fairly soon

Nothing to see here, just a MacBook Neo and a GNOME OS laptop talking to each other via the #p2panda #GObject bindings for #Go . They even found each other via mDNS! (Needed a 5 line patch to the Rust build config, but that's it - everything just kind of works!)

Nothing to see here, just a MacBook Neo and a GNOME OS laptop talking to each other via the #p2panda #GObject bindings for #Go. They even found each other via mDNS!

(Needed a 5 line patch to the Rust build config, but that's it - everything just kind of works!)

Mark your calendars ๐Ÿ“†

The third Reflection Developer Labs session will be on April 14, 15:00 UTC!

This time we'll dive into an actual code example using the p2panda GObject bindings.

Sign up here: https://pad.gnome.org/4uGYejbVSxO8LUPQRQZW-w

#localfirst #p2panda #gtk #gnome #gobject #linux #ReflectionDeveloperLabs

Let me share some updates about peel ๐Ÿ˜€

As a reminder, #peel is a project that implements modern  bindings for #GObject libraries, most notably the #GTK stack, and now also #GStreamer.

๐Ÿงต

Sebastian @slomo has been tirelessly working (and me, helping and reviewing and merging his work) on improving the GStreamer+peel experience, resulting in many improvements all over peel, and also in GStreamer, GLib, and other components of the stack.

New progress on the #puregotk #GObject introspection things I'm working on in #Go . It's super early, but I added preliminary support for generated getters/setters for properties. No more manual value setup & `SetProperty` calls required, just a simple `SetPropertyX` call.
New progress on the #puregotk #GObject introspection things I'm working on in #Go. It's super early, but I added preliminary support for generated getters/setters for properties. No more manual value setup & `SetProperty` calls required, just a simple `SetPropertyX` call. We're getting closer and closer to more readable code here with this IMHO, GJS on the right for comparison!

@razze sure, good idea. The general stack is C (but, thankfully #GObject), and with that we also deal with almost All The File Formats (tm) thanks to firmware vendors all doing slightly different thing.

We're slowly migrating bits of the code to Rust, but just don't ask how. We're also bit into fuzzing and testing hundreds of emulated devices in CI. There are quite a few build tools in #python too.

Continued some #GObject subclassing support in Go. Turns out I messed up the C memory alignment in #Go for and ended up embedding the parent class as a reference, when GObject expects it to be the actual struct.
Continued some #GObject subclassing support in Go. Turns out I messed up the C memory alignment in #Go for and ended up embedding the parent class as a reference, when GObject expects it to be the actual struct. Funnily enough some callbacks still worked before this, but now even the ones like `Snapshot` and `Activate` work. To demonstrate, here is a Go application subclassing AdwApplication and overwriting the `activate` callback instead of calling `ConnectCallback`!