There's one thing worse than a clunky UI: A UI that changes every release.

C'mon Firefox, make up your mind already. :blobglare:

I'm genuinely impressed by the Rayon crate.

I wanted to do parallel recursive tree traversal and thought of a few algorithms to do so. A naive thread pool wouldn't work: With a bounded queue it would deadlock, with an unbounded queue it would use too much memory. This requires more coordination between threads to do the work efficiently. I was all ready to implement that complexity myself, but then I found that Rayon uses work stealing. That solves the problem entirely and elegantly.

Suggestion from a friend: ChiFS (pronounced: Chives).

It's a bit of a strech, but it's a good one for sure.

I suppose I could go with the opposite end of P2P file sharing and name it "OnionLeech" - probably a more accurate description too, considering how some people view file sharing as a too heavy burden for the Tor network...

The name 'TorFS' doesn't seem to be such a great idea; It goes directly against Tor's trademark policy[1]. OnionShare is already taken by a similar-ish project[2]. I'm inclined to name it ORFS (Onion Routed File Sharing), but it's pretty meh. Any alternative suggestions?


It's that time again, I updated some software...

Ugh. So many strong opinions on today.

Coming from C, I'm still struggling with Rust's philosophy of adding tons of dependencies on small crates. Even with Perl I've learned not to import all of CPAN when the goal is reliability, maintainability and ease of deployment. The recent NPM horror stories aren't helping either. I'd much rather rely on a small number of large libraries maintained by a group of people.

But I doubt I'd get anything useful done if I'd try to fight it, so let's just add a few more crates to my Cargo.toml. 😩

Two days left at work and I'm still putting out fires, with nobody to replace me. It's like this company doesn't want to succeeded...

The Kibana 6.4 web interface on a Raspberry Pi 2: Don't even try.

Weather forecast: Rain.
Me: Screw that, I want to take a walk.

...if only I wasn't so stubborn.

BTreeMap vs. BtreeSet with custom Ord vs. intrusive-collections's RBTree.

Analysis paralysis is kicking in again. :blobblush:

To my past self's defense, I was fully aware back then that the code was a horrible mess, I simply hadn't a clue how to do it well without using bloated frameworks that would have long been out of fashion by now. But nowadays we have much better options, such as Elm.

Just spent an hour fixing a tiny bug in some Javascript code I wrote 8 years ago. Back then I still thought it was a good idea to write complex UIs with plain DOM manipulation and a tangled mess of global variables.

Even my C code from that time is infinitely more maintainable.

Yet another very interesting discussion on how the stable Linux kernels are managed.

I love those threads, they show how incredibly hard it is to provide reliable and stable software when everything keeps changing all the time.
(The fix, of course, is to stop changing things all the time, but that's unlikely to happen anytime soon 🙄)

Turns out I was (probably) wrong about the memory allocation part. Both the time and humantime crates have types that implement the Display trait, these can be used in a non-allocating manner and are (presumably) more efficient than allocating new strings.

(I haven't benchmarked a thing yet)

I want to format a timestamp obtained from a system call.

C: strftime() is available everywhere and no memory allocation needed.

Rust: Nothing in the standard lib, choose between various crates that can do this, figure out how to convert between SystemTime and whatever the crate has. Everything returns a newly allocated string.

All in all I wouldn't want to go back to C, but not everything is easier in in . :blobshrug:

Ayo boosted

*takes on 1000 projects, doesn't cull them enough*

*looks at TODO list for one single project in isolation* why am I not getting things done on this one single project

Show more

We are a cute and loving international community O(≧▽≦)O !