@kat@yarn.girlonthemoon.xyz Na, I’m too old for this shit.
@movq@www.uninformativ.de Yeah. :-( But hey, there are at least six of us using mail as it should be™. :-)
I sent the dealer an e-mail about that with all sorts of other issues as well. Let’s see if they fix anything of that some day. Or yet just even read it.
@lyse@lyse.isobeef.org … because you, me, and that guy over there in the corner are the only three people left using plain-text email. 🫤 (And probably Stallman.)
pledge()
and unveil()
syscalls:
@movq@www.uninformativ.de I like this idea 👌 Very neat!
@bmallred@staystrong.run Oh sorry I should have explained those terms 🤦♂️
OpenBSD has the wonderful pledge()
and unveil()
syscalls:
https://www.youtube.com/watch?v=bXO6nelFt-E
Not only are they super useful (the program itself can drop privileges – like, it can initialize itself, read some files, whatever, and then tell the kernel that it will never do anything like that again; if it does, e.g. by being exploited through a bug, it gets killed by the kernel), but they are also extremely easy to use.
Imagine a server program with a connected socket in file descriptor 0. Before reading any data from the client, the program can do this:
unveil("/var/www/whatever", "r");
unveil(NULL, NULL);
pledge("stdio rpath", NULL);
Done. It’s now limited to reading files from that directory, communicating with the existing socket, stuff like that. But it cannot ever read any other files or exec()
into something else.
I can’t wait for the day when we have something like this on Linux. There have been some attempts, but it’s not that easy. And it’s certainly not mainstream, yet.
I need to have a closer look at Linux’s Landlock soon (“soon”), but this is considerably more complicated than pledge()
/unveil()
:
@prologic@twtxt.net nice… had to look up “Lamarckian” :-)
“Learn Something Old Every Day, Part XV: KEYB Is Half of Keyboard BIOS”
https://www.os2museum.com/wp/learn-something-old-every-day-part-xv-keyb-is-half-of-keyboard-bios/
@bmallred@staystrong.run Ahhh this is an agent I’m tryining to play the game of Connect3. It uses a library written in Go I’ve been working on that supports Neuroevolution using Genetic Algorithms. Some features include: Mutation, Speciation, Lamarckian Evolution/Inheritence.
@kat@yarn.girlonthemoon.xyz i linked the normal length edit instead of the full 15 minute music video because i’m not gonna subject you all to that amount of my bullshit
(…15 minute version is a great watch though)
REBORN LIKE A PHOENIX WING ❤️🔥 👼 https://www.youtube.com/watch?v=D-w2HwG18vg
@kat@yarn.girlonthemoon.xyz thats awesome. my kids still love playing it.
@lyse@lyse.isobeef.org those are so annoying. except when they’re idol tiktoks then they’re fine to me
STOP! this is a dambara ruru video checkpoint. you must watch this video or else i will find you
fn sub(foo: &String) {
println!("We got this string: [{}]", foo);
}
fn main() {
// "Hello", 0x00, 0x00, "!"
let buf: [u8; 8] = [0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x00, 0x00, 0x21];
// Create a string from the byte array above, interpret as UTF-8, ignore decoding errors.
let lossy_unicode = String::from_utf8_lossy(&buf).to_string();
sub(&lossy_unicode);
}
Create a string from a byte array, but the result isn’t a string, it’s a cow 🐮, so you need another to_string()
to convert your “string” into a string.
- https://doc.rust-lang.org/std/string/struct.String.html#method.from_utf8_lossy
- https://doc.rust-lang.org/std/borrow/enum.Cow.html
I still have a lot to learn.
(into_owned()
instead of to_string()
also works and makes more sense to me, it’s just that the compiler suggested to_string()
first, which led to this funny example.)
@lyse@lyse.isobeef.org Rust is so different and, at the same time, so complex – it’s not far fetched to assume that I simply don’t understand what’s going on here. The docs appear to be clear, but alas … is it a bugs in the docs? Is it a lack of experience on my part? Who knows.
By the way, looks like there was a bit of a discussion regarding that name:
@movq@www.uninformativ.de Lol, what the hell!? Reports like that turn me away even more from iron oxide. Also, great naming choice on the method they made there. display()
doesn’t actually display it. But it’s a Rust thing.
So I was using this function in Rust:
https://doc.rust-lang.org/std/path/struct.Path.html#method.display
Note the little 1.0.0
in the top right corner, which means that this function has been “stable since Rust version 1.0.0”. We’re at 1.87 now, so we’re good.
Then I compiled my program on OpenBSD with Rust 1.86, i.e. just one version behind, but well ahead of 1.0.0.
The compiler said that I was using an unstable library feature.
Turns out, that function internally uses this:
https://doc.rust-lang.org/std/ffi/struct.OsStr.html#method.display
And that is only available since Rust 1.87.
How was I supposed to know this? 🤨
@movq@www.uninformativ.de I HOPE SO TOO!!! when i found out there were boxes on ebay i just had to jump on it!!
@lyse@lyse.isobeef.org hell yeah!
@bender@twtxt.net Yeah, well, it’s a bit like twtxt. There is a Gopher community, but it’s small. I actually don’t like that HTTP is so easily accessible. I don’t like it that much when people post links to my site on HackerNews or something like that. Too much exposure.
Gopher is a small world. It’s slow and cozy.
And much like twtxt, the protocol is simple®, so it’s easier to tinker with it.
@prologic@twtxt.net what are we seeing here?
Soooo very very close! 😅
@bender@twtxt.net Hmmm
and have an unexplainable dislike for its creator.
What? What? 😅 🤔
@bender@twtxt.net I know I know! I don’t know why I ever signed up and used it and still continue to pay for the silly thing. Twtxt/Yarn is so much better in every way 🤣
@prologic@twtxt.net yes, I never understood you using micro.blog (and paying for it, nonetheless!). I don’t like it (as a platform), and have an unexplainable dislike for its creator.
@bender@twtxt.net Maybe one day I’ll take back over my prologic.blog
domain from µBlog and redoit with my handy zs
tool with some nice CSS 🤣
@prologic@twtxt.net I am finding writing my Notes very therapeutic. Just create a markdown file and commit, push, and it’s live. Whatever comes to mind, whatever I want to keep as relevant. Silly things, more like a dump.
If I feel like it, I do. If not, I don’t. Not social, not intended for anyone to see them. I am enjoying it!
@bender@twtxt.net I just babble on Twtxt 🤣 I honestly find that I don’t realy have the time nor the energy to “blog” in full really, I rarely do 😢
@movq@www.uninformativ.de why Gopher to babble, and not just HTTP? I mean, may as well just write plain text files on your machine, and leave them there, right?
Gopher and Mastodon are two completely different things. That’s where my confusion comes from.
@movq@www.uninformativ.de Me too 😅 – Speaking of which i know you’ve lost a bit of “mojo” or “energy” (so have i of late), rest assured, I want to keep the status quo here with what we’ve built, keep it simple and change very little. What we’ve built has worked very well for 5+ years and we have at least 3 very strong clients (maybe 4 or 5?).
@movq@www.uninformativ.de Ahh but it kind of is mine 😅 Or at least I’ve done this kind of thing at least 3 or 4 times now 🤣
@prologic@twtxt.net Yeah, I’m very glad twtxt/Yarn doesn’t have this. ✌️
@kat@yarn.girlonthemoon.xyz Oh, ah, I didn’t even know they sold boxes. 🤯 I hope it still works!
@quark@ferengi.one It’s as close as coffee as you can get. 😅 They take the beans, apply magic, and then most of the caffeine is gone. You can also buy whole decaf’d beans and then grind them yourself. It does kill some of the flavor – but it’s not like you’re drinking black water.
@prologic@twtxt.net That isn’t really my strong suit. 😅
@bender@twtxt.net yes but my point is my handcrafted set up also achieves the same thing 🤣
@prologic@twtxt.net do you remember Hamachi? Tailscale/Headscale is Hamachi on steroids. They are used primarily for creating a VPN among all your devices so they can talk to one another as if they were on the same LAN, even when they’re not. That was, mostly, my WireGuard usage.
I still have WireGuard running—because it is so lite that it doesn’t matter—to use as regular VPN, but Headscale keeps all my devices connected forming their own “mini-Internet” 100% of the time.
@bender@twtxt.net What’s awesome about it btw? I use WireGuard pretty heavily here. And my entire family also use it to keep a VPN connection back to our home network
@movq@www.uninformativ.de Considered building your own language and compiler? 🤔
@movq@www.uninformativ.de This was always my belief too re likes, etc.
@lyse@lyse.isobeef.org i’ll find out tonight LMFAO!
@kat@yarn.girlonthemoon.xyz Cool! Does it still run on your machine? :-)
FRIENDS I GOT A PHYSICAL COPY OF A TUX GAME LOOK AT ITTTTTTTTTT
@thecanine@twtxt.net … all these stupid, pointless “apps” are stuff that I eventually have to remove from family devices … Sigh.
@movq@www.uninformativ.de Hmmm, that indeed surprises me, too. Looks like I live in a moorhen shortage area. Even ducks and geese are not all that common. But then also, there aren’t any substantially sized lakes around here. Just a few smaller ponds, which I don’t visit all that often.
@bender@twtxt.net Both Gopher and Mastodon are a way for me to “babble”. 😅 I basically shut down Gopher in favor of Mastodon/Fedi last year. But the Fediverse doesn’t really work for me. It’s too focused on people (I prefer topics) and I dislike the addictive nature of likes and boosts (I’m not disciplined enough to ignore them). Self-hosting some Fedi thing is also out of the question (the minimalistic daemons don’t really support following hashtags, which is a must-have for me).
I’ll probably keep reading Fedi stuff, I just won’t post that much, I think.