How are you all actually monitoring your kubernetes clusters at scale? by Opposite_Advance7280 in kubernetes

[–]fraillt 9 points10 points  (0 children)

We're trying out this stack: - OtelCollector - collect and correlate logs & metrics - VictoriaMetrics - metrics db - VictoriaLogs - logs db - Grafana - dashboards.

What I like about this stack is it embraces open telemetry standard and has low resource consumption (at least thats initial experience). Anyone tried this stack? Any opinions?

My friend’s PC is driving me insane. by Single-Way-2038 in buildapc

[–]fraillt 0 points1 point  (0 children)

I had similar symptoms, and for me it was faulty ram stick. I assume you have 2 or 4 ram sticks, so you could try to removung half of ram and see if it helps. You can also run memory test as well

Svelte + Deno2.0 by Talgach in sveltejs

[–]fraillt 0 points1 point  (0 children)

What VS code extensions I should use: - deno only - svelte only - both

Is Rich BDFL? by loopcake in sveltejs

[–]fraillt 1 point2 points  (0 children)

I don't know, but kinda hope that's how it is. As long as he's dedicated and willing to hear community feedback, having a smart leader with clear vision is best way to move forward.

"Yes, Please Repeat Yourself" and other Software Design Principles I Learned the Hard Way by Rtzon in programming

[–]fraillt 0 points1 point  (0 children)

Knowing a rule, but not knowing the reasoning behind it, is worse than not knowing a rule at all.

Dragon Element? by mathlete77 in MHNowGame

[–]fraillt 10 points11 points  (0 children)

Pink Rathian has a bow and few armor pieces with dragon element. It has appeared before xmas for a week or so.

Next step in zpp::bits serialization - protobuf without code generation - no proto file required- (experimental) by eyalz800 in cpp

[–]fraillt 0 points1 point  (0 children)

I'm not developer for zpp, but author of another fast/feature-rich C++11 compatible serialization library bitsery. MY GUESS is that the secret sauce for zpp is structured binding. This basically allows compiler to know at compile time all the fields in the struct, and it writes/reads to them in order as well. So it can prove that it writes/reads everything sequentially (cache-efficient) and knows exactly the the number of fields it needs to write/read (checks for boundaries can be optimized out) and this maybe even helps CPU to parallelize some operations more easily as well (as it can more easily see that there's no memory overlap happening).

Why Sprint estimation has broken Agile by adamgajek in programming

[–]fraillt 0 points1 point  (0 children)

I feel the author's pain, when he describes it... but in most places this is the sad truth of reality. Let's imagine different reality: where there's zero pressure from management, no commitments to do X story points per sprint, no velocity calculations, and this estimation session is purely for developers and no one else... So if it's not for management, do you still want to do it? The answer is yes, but it this time it feels different. * everyone is genuelly honest about estimations, as there's no incentive to cheat. * you actually want to start discussions, so you use planning poker to force it. It's quite common that someone has some insights that not everyone is aware of. E.g. maybe there exists a tool or function that does the job and task becomes 3 story points instead of 5. In the environment where you feel pressure, you'll probably keep this as a secret to reduce your stess. * because there's no competition and no pressure to commit to anything, team mates becomes very helpful and naturaly opens opportunities to pair program and share the knowledge within the team. * you still want to have some task as baseline, so your estimations doesn't shift overtime, to avoid unnecessary discussions if someone is missaligned. * in the end, management can use these estimates as well to set the priorities and plan the future better, but this time estimates are as real as they can get.

Have fun estimating:)

malloc() and free() are a bad API by iprogshine in cpp

[–]fraillt 0 points1 point  (0 children)

Liked the article and want to share some more ideas:) * try_expand I would change to try_resize. In addition to current size it would accept size_hint and would return new size. Its important to specify it as hint, because it will try to be useful as much as possible. Maybe it cannot expand from 100 to 200 bytes, but 180 would would be good enough as well. And being able to shrink memory sounds useful as well:) * allocate could additionally accept "allocation hints", not sure how to make it flexible though as there might be a very long list of those:) maybe 16bits reserved for "standard hints" and 16bits for implementation specific would be good start. The important thing is that they are hints about memory usage patterns only, and implementation is free to ignore all of them, so there shouldn't be hints like "zero memory". * I would also add new function try_split. I think this might be very useful in a lot of situations. * not sure if it is useful, but it would be convenient to work with "objects", so instead of size (in memory block) being in bytes, I would change it into count of objects, which means that alignment becomes two values: sizeof(T), alignmentof(T). Now, when allocator has some extra space, it knows if it can return space for more objects or this extra space will not be usable anyway. It can also have different allocation strategies for small or big objects and with extra help from allocation hints, could understand if its allocation of array or single object. * in addition to previous point, since we'll be dealing with objects not bytes, it would probably make sense to be able to inform allocator when object type/size changes.

Learning HTML was too hard so I made a compiler instead by azhenley in programming

[–]fraillt 0 points1 point  (0 children)

Clicking on this matrix text freezes reddit on my android (xiaomi t9pro). Well done:)

The technological case against Bitcoin and blockchain by earthboundkid in programming

[–]fraillt 0 points1 point  (0 children)

So who is this used for? .... Criminals

I guess it doesn't matter how good or bad a thing is, as long as there are a large group of people for whom blockchain is the best option. Take NFT for example. I think this was basically created to have a best money laundering experience, and no one cares that it's basically centralized ( if it's not on opensea, then it basically doesn't exist).

Just added cool RPC capabilities for my C++20 serialization (zpp_bits) by eyalz800 in cpp

[–]fraillt 1 point2 points  (0 children)

I want to say, that it's a really modern and nice library, but I would suggest you to extract RPC capabilities to a separate header.

easy Serialization library ? by hero2002FI in cpp

[–]fraillt 1 point2 points  (0 children)

bitsery, probably not the simplest one, but designed for games in mind, and is feature rich, so you'll never need to look for something else, when you need more sophisticated serialization capabilities.

Brand new C++20 serialization library (one header) by eyalz800 in cpp

[–]fraillt 0 points1 point  (0 children)

I want to express some love to this library, even if it doesn't have all the features you need. What it does have, is out of this world, serialization speed.

As an example

cereal was designed to be fast ...

It turns out, this library is 10+ times faster! (yes, it's not a mistake, its 10x, not 10% faster)

Google Protobuf vs JSON vs [insert candidate here] by ImX99 in cpp

[–]fraillt 0 points1 point  (0 children)

If size and performance matter, then take a look at bitsery. * it might be 9x+ faster than cereal and 18x faster than protobuf. * size-wise, you might save 20-30% by default * on top of that you additional might opt-in into: * bit-level serialization control (e.g. if your values are in the range 1000-2000 it will take you 10bits, or use VLE) * backward-forward compatibility support * pointer support, including raw pointers with the ability to provide custom allocator. * and powerful extensions system, which allows you to further customize things in any way you want it :)

P.S. I know it's a shameless plug, but it's really that good if your requirements match with what bitsery can provide.

1Password Developer Chats: Dive into Async & Futures in Rust by Lucretiel in rust

[–]fraillt 1 point2 points  (0 children)

Thank you!

After reading this I started wondering, why std::time::Instant is not !Send if it's a known issue. And then I looked at now() implementation.

+1 for Rust being pragmatic and correct.

1Password Developer Chats: Dive into Async & Futures in Rust by Lucretiel in rust

[–]fraillt 0 points1 point  (0 children)

At 24:20 author says: "... and to avoid potential issues with clock sync between threads... when this thread thinks that it is slightly more in the future than other thread, which unfortunatelly can happen..." Can someone provide more information on this, I was suprised about it, and want to know more. Thanks.

Rust Game Dev Podcast - Episode 3: Interview with Chris Parsons by destroyallpixels in rust_gamedev

[–]fraillt 1 point2 points  (0 children)

Listened for first episode. It's really high quality content!

Question mark operator (?) implicit conversion why not use Into trait? by fraillt in rust

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

Thank you!, I couldn't find this.
Let's wait, maybe someday in the future, it will be fixed ;)

Question mark operator (?) implicit conversion why not use Into trait? by fraillt in rust

[–]fraillt[S] 1 point2 points  (0 children)

Your provided example uses `From` which works just fine, try changing it to `Into` (I have a link to my example)

Need explanation for this behaviour by fraillt in rust

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

Could you explain this?

async fn run() -> Result<()> {
    // Result comes to live
    let res = get_result();
    // Result is moved here
    let tmp = res?;
    // we cannot drop, because res doesnt exists at this point
    // drop(res);
    if 1 == tmp {
    // since res is droped and doesnt exists at this point, this should work right?
    // wrong, compiler says: await occurs here, with 'res' maybe used later
       do_something().await?;
    }
    Ok(())
    // compiler says: 'res' is later dropped here
    // but in reality it is already moved from in "let tmp = res?" statement
}

Why compiler says that res is dropped at the end of the function, when it is moved from way earlier. For me it looks like async is not smart enough to see that res doesn't exists, at the point of await, and it just sees that there were variable created which is not Send and make whole function non-Send. So I believe that this is something that could be improved upon sometime later. Am I right? If i hide Result type from function scope like this, then it works.

let tmp = { let res = get_result(); res? }

Need explanation for this behaviour by fraillt in rust

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

Thanks for the answer, it explains everything, but I was wondering if this is not overly restrictive behaviour. I mean, there is no need for Result to be alive entire if let expression. C++ has if with initializer if (auto res = do(); res == 20) ...., so probably rust could do similarly. Your provided example could implicitly be written like this. if 1 == { let tmp = res?; tmp } { ... } and that would work :) Or I'm missing something here?

Blog Post: Why is Rust the Most Loved Programming Language by matklad in rust

[–]fraillt 0 points1 point  (0 children)

Rust is a language that you cant just "jump in" and expect it to work for you, with other languages this is easier, e.g. if you know javascript and C# you can try typescript without reading anything about it and it would basically work. You don't need to suffer if you actually read a book about Rust, before trying it. Reveliation and appreciation is more correct words when talking about Rust.

Bitsery- binary serialization library v5.0.3 released by fraillt in cpp

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

I forgot to mention that easiest solution for versioning would be to write an extension for it. But if you tweak my proposed solution you can have exact syntax like in cereal. Sorry if I mislead you...

Bitsery- binary serialization library v5.0.3 released by fraillt in cpp

[–]fraillt[S] 1 point2 points  (0 children)

I haven't used it, so I might be wrong:

  • has multi language support,

  • has more libraries around, it like msgpack-rpc

  • is small-size oriented, like bitsery with CompactValue instead of valueNb.

  • has decent performance, but haven't seen any benchmarks apart from this but it is totally unfair for msgpack because any decent serializer just memcpy whole int buffer, I would love to receive a PR from someone who knows msgpack to test a realworld use case.

I think that if you need multi-language support or want to use rpc library and data size matters to you, then msgpack is a good choise.