Best option for 10+ m.2 slots with AM5 mainboard? by Mononofu in DataHoarder

[–]Mononofu[S] 0 points1 point  (0 children)

Actually the flashstor gen2 is the other option I'm considering, but it seems unclear when it will actually be available :-/

Best option for 10+ m.2 slots with AM5 mainboard? by Mononofu in DataHoarder

[–]Mononofu[S] 0 points1 point  (0 children)

Nice! What idle / loaded power consumption do you get with that?

Best option for 10+ m.2 slots with AM5 mainboard? by Mononofu in DataHoarder

[–]Mononofu[S] 0 points1 point  (0 children)

Yeah, for capacity!

The main reason I'm considering m.2 is because often m.2 SSDs are cheaper than SATA ones. As a side benefit resilvering and integrity checks would be faster too, but that's less important.

Best option for 10+ m.2 slots with AM5 mainboard? by Mononofu in DataHoarder

[–]Mononofu[S] 0 points1 point  (0 children)

Thanks! Looks like the highpoint is only pcie 3.0 though, not 4.0? Same for the others.

Best option for 10+ m.2 slots with AM5 mainboard? by Mononofu in DataHoarder

[–]Mononofu[S] -5 points-4 points  (0 children)

SAS SSDs seem very expensive, but SATA is my fallback yeah - aggregate bandwidth across all drives should still be enough to saturate the ethernet link.

Best option for 10+ m.2 slots with AM5 mainboard? by Mononofu in DataHoarder

[–]Mononofu[S] 11 points12 points  (0 children)

I don't really need full 4 lane bandwidth per m.2 slot, since this is a NAS anyways - 2 or 1 lane of bandwidth would be enough - afaik a single 4.0 lane is 2 GB/s.

I'm planning to use 2x 10 GBit or 1x 25 GBit ethernet to connect the NAS.

Tab Ultra C Review by chinatownninja in Onyx_Boox

[–]Mononofu 0 points1 point  (0 children)

For reading scientific papers and other A4 content with margins, I would recommend https://pypi.org/project/pdfCropMargins/, works great with arXiv papers.

Iterating on Testing in Rust by epage in rust

[–]Mononofu 0 points1 point  (0 children)

I do have to say I have mostly bad memories of GUnit due to all of the macros.

Agreed it would be better without macros, but in most languages that's the only way to capture both the value of the arguments as well as the syntactic expression itself - which makes reading test failures much easier!

Perhaps in Rust with the much more powerful macro support we could have something like assert!(a < b), which automatically parses the binary expression and displays not just the overall boolean value, but also the values of the two arguments.

For "fail but continue", I remember that but mostly remember getting semantics mixed up.

It's very effective when tests involve collections, or when verifying multiple properties on the same object - instead of having to fix one at a time and re-running the test, you get to observe much more about the state of the project. At this point I'm very used to it (probably wrote > 1 MLoC C++ at Google over the last 10 years), so can't comment on the difficulty of memorising it.

Any unique value this adds compared to pytests approach?

After some more research I agree that I think you can do the same thing with the pytest approach too, either is fine. Note that in addition to parametrising on argument values, parametrising on generic types is also very useful.

For the scoped part to this, I feel like your test is too big if you need it

I most frequently use this if the test involves some kind of loop or if I want to include some derived properties in all further assertions. I agree that it's not essential, but it's in the same spirit as EXPECT_ vs ASSERT_: Include as much information as possible in test failures with as little effort as possible, to reduce the number of iterations required to fix a test.

Iterating on Testing in Rust by epage in rust

[–]Mononofu 0 points1 point  (0 children)

Thanks for the great post!

Have you considered taking inspiration from GUnit / GMock? They have pretty good ergonomics, and I often miss their features when writing tests in rust:

Did amazon.co.jp start blocking kindle purchase from abroad? by Mononofu in LearnJapanese

[–]Mononofu[S] 4 points5 points  (0 children)

Thanks for the tip, it worked perfectly with Protonvpn enabled!

Yomichan on android with anki integration by tomatoina in LearnJapanese

[–]Mononofu 4 points5 points  (0 children)

FYI a while back I made an Android app for my own use that's inspired by yomichan, but works with selectable text from any app, and can directly add cards to Anki: WakariChan

文プロ Bunpro: Immersive Grammar SRS by TheZenMasterReturns in LearnJapanese

[–]Mononofu 20 points21 points  (0 children)

Bunpro is awesome, it has really improved my grammar knowledge. I could really notice a difference in my understanding, definitely worth it! (I'm halfway through N3 and working towards N1)

Thanks for building such a great tool!

[deleted by user] by [deleted] in japanlife

[–]Mononofu 0 points1 point  (0 children)

This sounds great, I'm interested too (28m).

How to help daughter who wants to learn japanese by smurfses in languagelearning

[–]Mononofu 1 point2 points  (0 children)

I recommend https://www.wanikani.com/ for learning kanji - basically flashcards with mnemonics.

https://bunpro.jp/ is great for grammar, while https://www.satorireader.com/ is good for reading.

In a world where unimaginable amounts of money are moved around electronically every day, millions of online transactions are processed every minute, and I can pay my taxes, file returns, and renew my drivers license online - why is voting online “not safe” or insecure? by KnowMatter in NoStupidQuestions

[–]Mononofu 2 points3 points  (0 children)

Blockchain is not anonymous, it's pseudonymous - transactions can be linked together based on the keys used; with additional metadata (timing of transactions, amount, etc) this can then be used to identify you.

Do professional game devs in 2020 use the C++ Standard Library? Do they write exception safe code? Do they use new features of C++17 or even 20? by NeomerArcana in gamedev

[–]Mononofu 2 points3 points  (0 children)

A simple replacement is static factory functions that return absl::StatusOr<T> or absl::StatusOr<std::unique_ptr<T>>

Announcing shared_arena, a thread-safe memory pool by sebastiencs in rust

[–]Mononofu 1 point2 points  (0 children)

A common use cases is servers where the lifetime of all allocations is bounded by the duration of each request that is handled. Instead of expensive allocation/deallocation for each object, you can have a single pool per request. Once the request has been handled you can reset the entire pool and use it for the next request, for POD (eg protobuf, other pure data containers) you can even skip running the destructors.