schmonz.com is a Fediverse instance that uses the ActivityPub protocol. In other words, users at this host can communicate with people that use software like Mastodon, Pleroma, Friendica, etc. all around the world.
This server runs the snac software and there is no automatic sign-up process.
😆
The Register: Debian demands Rust or rust in peace for legacy ports https://www.theregister.com/2025/11/03/debian_apt_to_require_rust/ @theregister @lproven #Rust #Linux
#Debian introducing hard #Rust dependencies in APT. I don’t care about Rust at all, and also don’t care about APT internals as long as it works. But Rust developers never fail to word their rewrite announcements sound arrogant and totally dick. https://lists.debian.org/debian-devel/2025/10/msg00285.html
cargo-semver-checks v0.45.0 is out today 🎉
ICYMI, this post discusses how the headline feature came about: support for users' local `.cargo/config.toml` configuration.
"How hard could supporting configuration be?" you say? Read the post, then tell me 😁
https://predr.ag/blog/ghosts-in-the-compilation/
I ran into some ghosts when compiling Rust:
- `cargo-semver-checks` said the code didn't compile.
- `cargo check` said it was fine.
What better day to talk about it than Halloween? 🎃👻
My position was eliminated as well. If anybody needs a software engineer, I'm looking for my next role.
My last position involved C, maintaining a legacy codebase supporting cyber operations. Multi-architecture experience.
Proficient in C, Swift, Rust, Python, Java, and familiarity with many other languages.
#GetFediHired #Programming #Rust #Swift #iOS #MacOS #Java #Python
I'd like to parse ipv4 addresses given as command line argument values.
I have got two arguments accepting ipv4 address.
If I specify single such option all is fine.
If I specify both, I 'm getting error like this:
thread 'main' (624061) panicked at /home/peto/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/clap-3.2.25/src/parser/matches/arg_matches.rs:1879:13:
Must use `Arg::allow_invalid_utf8` with `_os` lookups at `[hash: A8F400C40154F09]`#[tokio::main]
async fn main() -> Result<(), Error> {
let mut app = App::new("Server APP")
.about("My super cool app")
.setting(AppSettings::DeriveDisplayOrder)
.setting(AppSettings::SubcommandsNegateReqs)
.arg(
Arg::with_name("socket")
.required(true)
.takes_value(true)
.long("socket")
.help("Unix socket path"),
)
.arg(
Arg::with_name("relayaddress")
.required(false)
.takes_value(true)
.long("relay-address")
.value_parser(value_parser!(Ipv4Addr))
.help("External relay ipv4 address used together with --listen-address to run behind a nat"),
)
.arg(
Arg::with_name("listenaddress")
.required(false)
.takes_value(true)
.long("listen-address")
.value_parser(value_parser!(Ipv4Addr))
.help("Local listen ipv4 address used together with --relay-address to run behind a nat"),
);
let matches = app.clone().get_matches();
if matches.is_present("relayaddress") & matches.is_present("listenaddress") {
let external_ip = IpAddr::V4(matches.get_one::<Ipv4Addr>("relayaddress").expect("Invalid address"));
let local_ip = IpAddr::V4(matches.get_one::<Ipv4Addr>("listenaddress").expect("Invalid address"));
println!("Listening on local IP: {local_ip}");
println!("Relaying through external IP: {external_ip}");
}}
```
Hi #Rust developers! My Calendar team at @protonprivacy is #hiring! We are looking to fill several positions at our offices in #Barcelona, #Geneva, and #london
Job Description: https://grnh.se/op1xycx2teu
#Proton is office-first, with people coming in 3 days a week. Lunch is provided for you!
Please boost if you know a great Rust developer! If **I know you, please reach out directly** and I can refer you internally!
#rustlang #privacy #protoncalendar #protonmail #protonvpn #FediHire
boosted@protonprivacy Woohoo, thanks everyone for the help spreading the news! We have gotten 5 new applications for the #RustJob I linked.
Keep it going – it would be great to fill these positions by end of year! We currently have 59 open positions to fill: https://grnh.se/jl7d7bt2teu.
As an example, we need #backend engineers for
- #ProtonDrive: https://grnh.se/94486om2teu (#storage, #mysql, #sre)
- Account: https://grnh.se/slmk5pe2teu (#php, #symfony)
Fascinating how learning #programming #languages becomes easier the more languages one already knows.
Just read a chapter about enums and matching in #rust, and constantly compared it to other languages ("oh, that's a little bit like exhaustive switch in Typescript, but not quite"), which made the concepts very accessible to me.
I even skipped most of the text, because I often felt I already knew what the authors wanted to teach me by just reading the code examples and a few lines of text.
Today, I finished only 1 chapter in the #rust book, but
- I wrote some more code for the Java version of https://codeberg.org/dtanzer/tzsh
- I edited two videos (one regular and a short coming tomorrow)
- I recorded some footage for a new video
- I read some blog posts and took notes
boostedmiro: A native pdf viewer for Windows and Linux (Wayland/X11) with configurable keybindings via @wezm https://lobste.rs/s/tvthxn #graphics #rust
https://github.com/vincent-uden/miro
Finished the chapter about ownership in the #rust book. All that sounds quite easy, given the simple examples in the chapter. But when I try to think about the implications... phew 🙈
But even though I'm sure it will become more complicated in later chapters, it all looks _learnable_.
Achievement unlocked: I wrote "FizzBuzz" in #rust.
No tests yet and probably ugly code, but progress.
@dtanzer I don't like this as well in such a form. In general edition 2024 "moved" values into curly braces and this is linted.
I think the new pattern is that any operation on printed variable shall take place before actual `print!()`. So,
```
let pr = myVar + 1;
println!("expr: {pr}");
```
This in fact makes #Rust code more readable.
Over the weekend, I've started to go through the #rust book. And even though I only spent an hour or so so far, there's one thing that's bugging me:
Why is it
println!("var: {myVar}")
but then
println!("expr: {}", myVar+1)
This is unexpected (think "principle of least surprise), so I hope! there's a really good reason, but I can't think of one...
Initial custom themes support has landed in @conjured.ink's stall software and it's very fast, and very easy to write custom themes for (assuming you know a little bit of HTML/CSS!)
Highlights:
Our shops are more than just ecommerce: they're going to be able to do newsletters/blogging, POSSE, and general custom websites, all with an EXTREMELY small footprint that will be cheap or free!
Like this whole thing? Please support us if can comfortably do so: https://mastodon.social/@conjured_ink/115347161647458655
#KDL #POSSE #IndieWeb #Rust #RustLang #StopPayPros #BoostsWelcome
I'm starting to learn some #rust now... And I'm planning to write about my progress. Maybe I'll even make a video or two, who knows 😄
FYI: As part of a larger move away from GitHub, I've archived Big Brain on it and moved all future development over to Codeberg, at https://codeberg.org/zkat/big-brain
Please use that repo from now on.
Additionally: I am in the process of trying a major rewrite of the crate that I'm hoping will be much simpler, and much more efficient, thanks to features now available in recent version of Bevy! I'm very excited :)
Rust tool of the day: hyperfine, a command line benchmarking tool.
A "do nothing" program in Rust (release build) takes about 800 µs to start on my desktop machine, +/- about 100 µs. That's microseconds. So 0.8 milliseconds. That's basically only the startup time of a compiled Rust program.
For comparison, same program built in debug mode takes about 815 µs and /bin/true from Debian 550 µs. The same program in Python, 10.0 ms +/- 2.5 ms.
This talk by Raph Levien on how Rust became so successful is quite good. I enjoyed it.
If #git makes #Rust mandatory it will block future git versions to be ported to our niche platform. While this would not immediately lock us out of repos (the current version will likely continue to work fine some time) it eventually would complicate access (all git work would need to be circulated via some proxy setups or similar).
Needless to say I'm not thrilled by this idea.
I am not against Rust. I am against breaking change that leaves everyone not embracing Rust behind.
https://lore.kernel.org/git/20250904-b4-pks-rust-breaking-change-v1-0-3af1d25e0be9@pks.im/
OK, but now I have to complain about that "experimental" version of the #Rust book that I linked to, that has quizzes periodically as you work through the book.
At first, the quizzes were awesome - a way to force me to really engage my brain after each section, and think about what I learned.
But now I'm sick of the way the quizzes mostly (>50%) introduce some new idea *in the quiz answers* that you didn't learn from the text. So very often the correct answers require guessing. 😡
It’s incredibly fast, lightweight, and easy to run and perfect for those times when you just want to serve files without the overhead of a full web server like Apache.
To make it even simpler for Slackware users, I wrote the https://slackbuilds.org/repository/15.0/network/static-web-server/?search=static-web-server
This little bit of the #Rust book, on tricky UTF-8 strings (like "नमस्ते") and how Rust handles them, makes me happy.
I'm again running my free Rust training course for FOSS developers. It's split into two sessions of two hours. First session is on Wednesday, October 1 at 13-15 UTC. Second sessions is two days later, on Friday, October 3 at 13-15. See https://liw.fi/training/rust-foss-dev/ for more information.
Boosts welcome. Share widely amongst your friends who might be interested.
I published version 0.4.0 of clingwrap, the small Rust library I made for myself to make command line programs nicer to implement.
https://app.radicle.xyz/nodes/radicle.liw.fi/rad:z3248z9KmBQ6Tf4mwXih1zKPtuSw5/tree/NEWS.md
https://docs.rs/clingwrap/latest/clingwrap/
ioctls from Rust via @wezm https://lobste.rs/s/zzhehz #netbsd #rust
https://blogsystem5.substack.com/p/ioctls-rust
Rust Programming 2025 MasterClass (Latest Rust Version) https://leanpub.com/b/rustprogramming2024masterclass by GitforGits | Asian Publishing House is the featured bundle of ebooks 📚 on the Leanpub homepage! https://leanpub.com #Rust #DataStructures #SoftwareEngineering #DistributedSystems #Apis #ComputerHardware #Networking #books #ebooks
@glyph Same laptop, same version of cpython (3.13), same requirements.txt file with pip:
real 2m5.404s
user 0m42.650s
sys 0m5.081s
So 125 seconds versus 14 seconds. Pip and uv calculate dependencies differently, though uv tries to be compatible. Pip did 253 packages and uv did 250. But pip works sequentially, one package at a time. One download at a time. Like many #rust programs, uv is "embarrassingly parallel."
I offer free CI capacity for open source Rust projects that have a Radicle repository. The blog post below explains at length.
I'm in the process of making https://callisto.liw.fi/ public. It's an experimental Radicle CI server using my Ambient CI engine. Blog post: https://blog.liw.fi/posts/2025/callisto/
I want to see how well I can run CI for others.
Code must be on Radicle (technical requirement), and you need to add a file to specify what actions CI should take.
#Radicle #Ambient #CI #ContinuousIntegration #Rust #RustLang