Sebastian Dröge is a user on toot.cat. You can follow them or interact with them if you have an account anywhere in the fediverse. If you don't, you can sign up here.

tbqh xmpp is a good standard

- it works over shitty networks, like when I drop to 2g
- extensible as hell
- e2e encryption!!!
- open!!!!!
- federation!!!!!
- conversations is a rad client

EFF is resigning from the w3c over DRM and the Encrypted Media Extensions standardization process. This was probably inevitable once w3c leadership abandoned consensus in this arena, but it's still such a bummer to see eff.org/deeplinks/2017/09/open

Interesting that github.com/KDE/rust-qt-binding - the Rust Qt binding generator - has you write an API definition in JSON (not unlike .gir), and then it spits .rs files, into one of which you write your implementation, and the rest is boilerplate.

Then, the compiled Rust can be used from C++.

Gnome-class has a different approach - using procedural macros to extend the Rust syntax, to generate GObject ABI.

We could then generate .gir from that, or directly from the procedural macros.

If you are looking for a small C-to-Rust project, xdgmime is a good place to start.

Check out @slomo's sample implementation of GObjects completely in #rustlang, with automatically-generated bindings to JS and Python: github.com/sdroege/gobject-exa

Libpng's error reporting is shit, but if you only care about "out of memory" and "invalid PNG", it's manageable. I'm assuming one feeds it data by hand instead of letting it use stdio.h plainly.

Then, Cairo has a bug in the way it converts PNG errors to cairo_status_t: bugs.freedesktop.org/show_bug.

I keep thinking that Rust's error chaining scheme is the greatest thing ever.

About C's implicit conversions - this prints "one point five" "wat".

#include <stdio.h>

int
main (void)
{
float one_point_five = 1.5;
float one_point_one = 1.1;

if (one_point_five == 1.5)
puts ("one point five");
else
puts ("wat");

if (one_point_one == 1.1)
puts ("one point one");
else
puts ("wat");

return 0;
}

If you use doubles, it works as expected. Explanation in the next toot.

My GUADEC talk was accepted! It's going to be "Replacing C library code with Rust: what I learned".

Re: MP3: As we all know, something is dead as soon as its original creator can no longer exclusively make money off it. This is why "Romeo and Juliet", "Peter Pan", and the collected works of David Bowie are no longer performed or played in any form. It's just facts.

Hm, if toot.cat is going whitelist-only, I think that's fine for toot.cat, but maybe not fine for me. Maybe I should move.

Any node recommendations I might consider?

Today 31 years ago three men gave their lives to stop a second thermonuclear blast in Chernobyl, most probably saving thousands of lives across Europe.
Valeri Bezpalov, Boris Baranov and Alexie Ananenko knowing it ment their deaths dived into radioactive water with subpar gear. All died within days afterwards - their bodies so radioactive they had to be buried in lead lined and sealed coffins

knowledgenuts.com/2014/04/13/w