Music is such a weird concept. You listen to some odd rythmic patterns and it can have the strangest emotional effects.

I mean, I'm now genuinely enjoying a ridiculously simple and monotonous track. My only rational explanation for this is that I must be a very simple-minded person.

youtube.com/watch?v=OMPV6Odvo5
(Still, awesome track...)

Concurrent programming: State machines make it harder to follow the normal, sequential, flow of a particular task, but make it very easy to reason about how multiple tasks interact with each other. Sequential programming is the exact opposite: Following the usual control flow is easy, but figuring out how multiple tasks interact is a nightmare in any non-trivial application.

And yet explicit state machines are actively discouraged or even unsupported in most recent languages and frameworks. :(

Finished The Net Delusion by Evgeny Morozov. I'm not sure what to think. On the one hand, the topic is very interesting: A rational discussion on the impact of the internet on global politics, how it has been used to both aid and harm authoritarian governments, filled to the brim with relevant and scary anecdotes. On the other hand, it's overly repetitive and spent too much time ranting on incompetent politicians. It was a good read, but not an easy one.

Spent the day at @nllgg. That was great fun, met some cool people! Definitely worth doing more often.

Fewer dependencies and smaller binary size vs. convenience and less code to write and test.

VNDB.org and Manned.org have now been migrated from 10 to 11. That was a painless upgrade. :blobcheer:

Parallelism is tricky in any language and any environment. I don't know why I had forgotten that.

I close Firefox and my system's total memory usage goes down from 2GB to 150MB.

This isn't a complaint about Firefox. It's the web.

I didn't expect much complexity in writing a simple job queue for the ChiFS Hub implementation, but it turns out to not be very trivial after all.

My initial approach was to keep a log of finished jobs and run some SQL on that log to extract a queue of jobs to run next. But the queries ended up somewhat complex, inflexible and hard to optimize.

So now I try to schedule the next jobs as soon as one job finishes. Here's my initial buggy and untested attempt to do so as a PostgreSQL trigger.

BLAKE2b | Keccak | SHA2 | TTH;
JSON | CBOR | XML | other data exchange format;
gzip | xz | zstandard | lz4 | ...;
Rust | Go | C | C++ | ...;
TOML | JSON | .env | custom config file format;
Async I/O | Threads;
rust-postgres | Diesel.rs;
r2d2 | Arc<Mutex<Vec<Connection>>>;
Rocket.rs | Tiny custom webserver | ...;

And that's just scratching the surface of choices I had to make while working on ChiFS. Indecisiveness is, I suppose, one of the biggest enemies of a developer.

> Opens Zerochan for a little break.
> Sees spam uploads.
> Does some work as a moderator.

That wasn't much of a break. :blobhiss:

Gotta love those high-quality toothpicks that leave more chunks of wood in your teeth than that they remove leftovers from dinner.

Me, coding: "I don't really want this code to handle the case where the connection with Postgres is lost or where the query fails for some weird reason, so let's gracefully crash and burn with a panic when that happens."

...how does one crash and burn "gracefully"?

I wrote an abomination and I'm proud of it.

It's been bothering me for a while that streaming JSON parsers are super rare, especially when compared to XML. It's like everyone is in denial that JSON can be used for large amounts of data, too.

As a super idiotic side-effect, the most common approach to storing large amounts of data in JSON is to store it as a newline-separated list of JSON values, despite JSON having a perfectly usable way of encoding a "list of things".

Rewriting some code, expecting it to be more flexible but somewhat slower ("I'll optimize this later"), and suddenly it turns out to be twice as fast as the original implementation.

I used to be fairly good at estimating performance, but evidently I don't know how computers work anymore.

"License: CC0, attribution kindly requested. Blame taken too, but not liability."
- tiny-keccak @ docs.rs/tiny-keccak/1.4.2/tiny

Show more
niu.moe

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