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:
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? 🤨
@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 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. 😅
@thecanine@twtxt.net … all these stupid, pointless “apps” are stuff that I eventually have to remove from family devices … Sigh.
@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.
Gopher server is back online and I’ll be phasing out Mastodon.
gopher://uninformativ.de
(No, I won’t do multi-protocol twtxt again. 😅)
@prologic@twtxt.net Yeah, it’s difficult, you often don’t get what you’d expect. They also make heavy use of 3rd party libraries. IIUC, for random numbers, they refer to this library. I’ve read many times that the Rust stdlib is intentionally minimalistic (to make it easier to maintain and port and all that).
I’m struggling with this, using 3rd party libs for so many things isn’t really my cup of tea. I’ll probably make my own tiny little “standard library”. It’s silly, but I don’t see any other options. 🤷
@bender@twtxt.net “Mhhhhhhh, hehehe, gonna poop on that car. 😏”
@lyse@lyse.isobeef.org That’s interesting, I see them (Teichrallen) everywhere I look. 🤯 It feels like they’re about as common as mallards (Stockenten) over here. 🤔
@quark@ferengi.one Plot twist: I only drink decaf. 🤯🤯🤯
Sitting on the balcony with a fucking cup of coffee. https://movq.de/v/463f1f9d03/s.png
@kat@yarn.girlonthemoon.xyz I’m sure he’s doing a good job! 😊
@lyse@lyse.isobeef.org Looks pretty nice! Enjoy the mild temperatures while you can. 😅
@aelaraji@aelaraji.com Thanks mate. 👌 (In the grand scheme of things I’m still doing great. World news are a horrible shit show nowadays, ffs. 😭)
@kat@yarn.girlonthemoon.xyz Welcome back. 👋 (It’s a bit quiet here in general. 🤔)
@lyse@lyse.isobeef.org Thanks. 😅 Quite a few of them waddle around at the pond in our village. But those two individuals were seen in a nearby zoo. They’re not zoo animals, they just live there. 😅
Bird photos of the day:
- Egyptian Goose
- Common Moorhen (half asleep)
- Rock Dove
I wanted to port this to Rust as an excercise, but they still have no random number generator in the core library: https://github.com/rust-lang/rust/issues/130703
That’s the code, it’s surprisingly simple: https://movq.de/v/81dd5649be/
@lyse@lyse.isobeef.org Only 10% of the German population had Internet access in 1998: https://de.wikipedia.org/wiki/Internet_in_Deutschland#/media/Datei:Diagramm_Internetnutzer_in_Deutschland.svg I guess I was lucky in that regard.
(If today’s tech wasn’t constantly trying to track and scam you, I might still be an early adopter.)
@lyse@lyse.isobeef.org Nice! The final desk looks like it’s right out of Skyrim. 😃
Having some fun with SIRDS this morning.
What you should see: https://movq.de/v/dae785e733/disp.png
And the tutorial I used for my C program: https://www.ime.usp.br/~otuyama/stereogram/basic/index.html
@lyse@lyse.isobeef.org Oooooh, never seen that before. 😲 Either white-balance doing funny stuff or unusual “filtering” through those clouds. 🤔
Ctrl+U
to the front or Ctrl+K
to the end puts it in a buffer that can be pasted by pressing Ctrl+Y
! That's neat. Even removing the last word with Ctrl+W
moves it into this paste buffer.
@lyse@lyse.isobeef.org Ctrl-U in Vim does something similar (“Delete all entered characters before the cursor in the current line”), but it does not put them into the “clipboard”. I sometimes hit Ctrl-U by accident and then my text is gone. 😡😂
A bill from our ISP in 1998.
We’re talking about a month here, 1998-07-27 to 1998-08-26.
Basic fee: 7.50 DM (about 6€ today).
Online time: 516 minutes, 23.53 DM (about 20€ today).
That’s just the ISP costs, if I’m not mistaken. The underlying phone calls were pretty pricey as well.
Just as a little courtesy call (is that the right term?): 2025 continues to be annoying and exhausting, and I won’t really have the energy to work on twtxt/Yarn or texudus. Other than the occasional retrocomputing thingy (which gives a nice boost of nostalgia), I’m not doing much of anything lately.
SuSE Linux 6.4 and Arachne on DOS also work (with Windows 2000 as a call target):
@bender@twtxt.net Hm, I was just surprised to see so many non-english feeds in there. 🤔
@lyse@lyse.isobeef.org Like this? 😅
@lyse@lyse.isobeef.org Where do they come from, anyway? Are they somehow auto-discovered or is this a curated list?
@kat@yarn.girlonthemoon.xyz I don’t do a lot of CSS and tried to use flexboxes recently, couldn’t find a great explanation. I somehow managed to get the desired effect, but am I using them correctly? Who knows.
@lyse@lyse.isobeef.org I cannot / could not imagine that, either – but if it’s publicly available on the internet and something links to it, they’ll eventually find, scrape it, use it. ☹️
@arne@uplegger.eu … Petrasilie? :-D
When I chose the MIT license for all of my software, I thought:
“Should I use GPL, which I don’t really understand? Is that worth it? Yeah, there is a theoretical possibility that some company might use my code in their proprietary product … and then what? Should I sue them to enforce the GPL? I’m not going to do that anyway, so I’ll just use the MIT license.”
And now we have those LLM scrapers and now it’s suddenly a reality that these companies (ab)use my code. I can see it in my logs. I didn’t expect that back then.
GPL wouldn’t help, either, of course. (Regardless, I now think that GPL would have been the better choice anyway.)
I’m honestly considering taking my code and website offline. Maybe make it accessible through some obscure protocol like Gopher or Gemini, but no more HTTP.
(Yes, Anubis might help. Temporarily.)
I’m just tired.
Getting a bit quiet in the Yarniverse.
@arne@uplegger.eu Was sind denn Petras? :-)
🌈 Hooray! 🌈
@kat@yarn.girlonthemoon.xyz A blast from the past! 😅 And all of it still works, that’s quite the surprise. I mean, I’m making real phone calls here and let the modems talk over that connection … Almost like in the 90ies. 😅
@nghialele@nghia.im Man, I wish I could watch Formula 1 on a regular basis again, but it has become expensive as fuck here. 🫤
This is my highlight, really, haven’t seen this in action in a loooooooong time:
I had a lot of fun with my modems these past few days:
https://www.uninformativ.de/blog/postings/2025-05-31/0/POSTING-en.html
@bender@twtxt.net Not sure if you’re serious or joking, but: IE3 introduced support for CSS, Mosaic completely ignores it. 😅 Besides, it looks fine in IE3 now as well, after I fixed my CSS bug. 🤪
@prologic@twtxt.net Mosaic (2.7) works fine, I maintain that package in the AUR and test my website regularly. 😅
@quark@ferengi.one Ah, I see. Hm, only problem is, IE 3 doesn’t seem to support this yet. 😅 Nah, I don’t think I’ll go down that road – seems like a slippery slope. 🤣
@bender@twtxt.net Probably, yes. 🤔 There’s no standard way to do that, though, is there? 🤔