@vik It's fairly easy to install to a USB drive in the same way that you install to any kind of drive, provided it is large enough to accommodate the size of the extracted image. Though using Btrfs with Zstd compression is a great way to minimize installation size.

@savanni You should look into using `glib::MainContext::channel()`. The `glib::Sender` can be cloned and sent across thread boundaries. Pass this into all GTK signals that trigger an event. The `glib::Receiver` attaches to the main context in the main thread, and you can handle all logic and state changes here. Suddenly, synchronization primitives like Arc, Rc, RefCell, RwLock, Mutex, etc. become obsolete.

@jajaperson May be easier to learn Rust before you learn Haskell. It has many of the same concepts, but lets you use an imperative paradigm in addition to functional.

@georgia @freemo The closest thing is VS Code, which has a MIT license. There's nothing quite like it that's built with GTK3, but I have hopes that org.gnome.Tau will one day achieve this.

@freemo The Sublime-style multi-cursor editing is the killer feature, in addition to extensions. For Rust, there is nothing that works better than VS Code + rust-analyzer

@freemo Currently, VS Code. No competition anywhere in sight.


CXX — safe FFI between C++ and

This is great news for anyone needing to write bindings to call C++ libraries from Rust, and vice versa.

@danielhglus Is it really that much more irritating than `Box::new("string")`, which is exactly what `~"string"` did? It was felt that ~ wasn't explicit enough in its intent, and there wasn't much point in having an operator dedicated to `Box::new()`.

@Conan_Kudo @sir I feel the complete opposite. Despite having learned and used more than a dozen programming languages, Rust is the only language where I've felt truly productive. I quickly became more productive with Rust than any other language I used in the past.

It gives me confidence when using it to develop truly complex software. Every project I've worked on has "just worked" in record time, with minimal debugging. I can't imagine doing half of what I do today in another language.

@YesIKnowIT You shouldn't use any of the ratio parameters. Instead, you should use the bytes parameter to define a proper, sane value.

vm.dirty_bytes = 16777216
vm.dirty_background_bytes = 4194304

The ratio setting made sense when computers had 64MB of RAM, but we live in an era today where systems have 64GB of RAM. If a ratio like 10% is defined, the kernel will buffer up to 10% of system RAM for file I/O. It's why large file transfers sometimes stall the system.

@sir The entire point of abstractions are to eliminate cognitive costs, which makes this statement illogical.

Imagine how much cognitive effort is required to develop an efficient solution, as opposed to simply using an efficient solution that's already been developed for you.

Also, to be fair, I've never found any of Rust's zero-cost abstractions to be difficult to use. They allow me to spend more time thinking about application logic, as opposed to minute implementation details.

@robert That package comes from :ubuntu:, so you'd have the exact same issue there. it sounds like you already had a service bound to that port.

@robert What issues did you have with :popos:? I'm the System76 engineer that develops and maintain it.

@juliobiason @rust

Instead of creating builder methods by hand, the `derive-setters` crate can do this for you automatically. Great in combination with `derive-new`.

@admicos I'm sure there will be, but isn't this a violation of the Discord ToS? I'd personally like to see a library for open source platforms, like Mattermost.

@ebel I'm working on such a thing right now for [async-fetcher]. I haven't released it yet, but there will be a `fetcher` CLI binary based on this that receives URLs from standard input, and gives back stats on its fetching on standard output. It won't fetch files which it has already downloaded, and it will support validating checksums.

I will personally be using this in Pop!_OS for fetching debian packages and source lists from apt repositories.

[async-fetcher]: github.com/pop-os/async-fetche

@cincodenada You may be interested in the superior alternative to Rust's formatters: the `fomat_macros` crate.

I'm now releasing an async crate which serves to enable copying and validating bytes from a single reader, to multiple writers concurrently. This will be used in the upcoming async rewrite of the Popsicle application.


Show more

Fosstodon is an English speaking Mastodon instance that is open to anyone who is interested in technology; particularly free & open source software.