Pavlo Myroniuk
banner
thebesttvarynka.bsky.social
Pavlo Myroniuk
@thebesttvarynka.bsky.social
New article in my blog: How RDP smart card logon works tbt.qkation.com/posts/how-rd...

Recently, I've had a chance to work on the RDP smart card logon support. This post is a high-level explanation of how it works and what is needed to set up RDP scard auth on macOS + FreeRDP. (small demo included)
How RDP smart card logon works | TheBestTvarynka
Just my personal blog with interesting articles, thoughts, maybe guides/tips
tbt.qkation.com
November 24, 2025 at 2:25 PM
✅ The Hobbit
✅ The Fellowship of the Ring
✅ The Two Towers
November 11, 2025 at 7:13 AM
Reposted by Pavlo Myroniuk
Rust 1.90.0 has been released! ✨🦀

This release makes LLD the default linker on x86-64 linux-gnu and adds `cargo publish --workspace` to publish an entire workspace all at once!

Check out the blog post and release notes for more: blog.rust-lang.org/2025/09/18/R...
Announcing Rust 1.90.0 | Rust Blog
Empowering everyone to build reliable and efficient software.
blog.rust-lang.org
September 18, 2025 at 7:20 PM
Reposted by Pavlo Myroniuk
Happy new Rust! 🎆🦀

Rust 1.89.0 has been released!

This release brings you inferrred array length, new lints, u128/i128 in extern "C", NonZero, File::lock, many x86 intrinsics, and much more! ✨

Check out the blog post and release notes for all the details: blog.rust-lang.org/2025/08/07/R...
Announcing Rust 1.89.0 | Rust Blog
Empowering everyone to build reliable and efficient software.
blog.rust-lang.org
August 7, 2025 at 11:18 AM
Dataans v.0.3.0 ➡️ tbt.qkation.com/posts/dataan...
The most important feature in this release is multi-device data synchronization.
I was frustrated about it because the path to the final solution was rough. Such a simple feature turned out to be hard to implement. More in the article 😉
August 3, 2025 at 8:55 PM
Me and my friends were camping for 3-days. We needed to cover each other's debts. Fortunately, we found kittysplit: kittysplit.com. It does not require any sign-ups! It simplifies this process a lot. We no longer need to do it manually or semi-manual in Google Sheets
Kittysplit - Easy splitting of group expenses
The simplest way to calculate who owes what
www.kittysplit.com
July 21, 2025 at 11:19 AM
YEEEES, FINALLY. I finished the initial implementation 🥳 ➡️ github.com/TheBestTvary...

It took me three times more code and twice as much time as I initially estimated.
July 13, 2025 at 10:43 PM
Reposted by Pavlo Myroniuk
⚡️ 27 (including 4 children) injured in Russia’s drone strike against Kharkiv.

Video shows a Russian kamikaze drone attacking the city on the morning of July 7.
July 7, 2025 at 6:21 AM
I just realized that I hate the futures::select/tokio::select macro. Please, read this article (it is for your own good): blog.yoshuawuyts.com/futures-conc...
Futures Concurrency III: select!
blog.yoshuawuyts.com
June 29, 2025 at 7:33 PM
We live in a world where we cannot upload the data from tokio::io::AsyncRead directly into the AWS S3: github.com/awslabs/aws-...
Upload from AsyncRead to s3 · awslabs aws-sdk-rust · Discussion #361
I have an API where I receive an AsyncRead with a non-static lifetime, that I would like to upload to s3, is there any good and easy way to do this? I cant find a way to create a byte stream from a...
github.com
June 29, 2025 at 7:32 PM
✅ The Hobbit
✅ The Fellowship of the Ring
June 12, 2025 at 11:48 AM
New article in my blog: Safety Comments Matter ➡️ tbt.qkation.com/posts/safety...
Safety Comments Matter | TheBestTvarynka
Just my personal blog with interesting articles, thoughts, maybe guides/tips
tbt.qkation.com
May 31, 2025 at 11:57 AM
I'm fond of cool notebooks. Just look what I've got 😎😁

(It was a gift and was ordered here: rember.com.ua/index.php?ro.... Just in case you want to buy/give someone a similar one)
May 18, 2025 at 9:54 AM
✅ The Hobbit

Did you read/watch it? No spoilers in comments, please 🥺

It is my first book I have read in English (except technical ones, they do not count). And I ought to say that it was worth it. I enjoyed the story and learned many new words ☺️
April 30, 2025 at 9:15 AM
A new article in my blog: tbt.qkation.com/posts/rpc-en...
This is the longest article I've ever written (so far). This is a deep dive into Kerberos RPC encryption: how it works and how to implement it.
So, if you ever wondered (most likely not) about such things, this is your chance. 😉
Implementing Kerberos RPC encryption over SSPI | TheBestTvarynka
Just my personal blog with interesting articles, thoughts, maybe guides/tips
tbt.qkation.com
April 5, 2025 at 8:51 PM
Reposted by Pavlo Myroniuk
Rust 1.86.0 has been released! ✨🎊 🦀

This release adds trait upcasting, get_disjoint_mut on slices and hashmaps, #​[target_feature] for safe functions, debug assertions for null pointers, Vec::pop_if and more!

Check out the blog post and release notes for details: blog.rust-lang.org/2025/04/03/R...
Announcing Rust 1.86.0 | Rust Blog
Empowering everyone to build reliable and efficient software.
blog.rust-lang.org
April 5, 2025 at 10:52 AM
> *cracks his back and fingers*
> "time to write another network protocol in Rust"
> async/await?/try_join_all/etc
> "Perfect!"
> cargo run
> thread ‘main’ has overflowed its stack
> *no recursion, large arrays, or unsafe* 😲

After many debugging hours, I had a thought about too large async futures
April 1, 2025 at 10:20 AM
Reposted by Pavlo Myroniuk
Good news! Rust 1.86 brings upcasts to super-traits so we can finally retire our "As-Any" hacks. lucumr.pocoo.org/2025/3/27/an...
Rust Any Part 3: Finally we have Upcasts
Some good news is coming in Rust 1.86
lucumr.pocoo.org
March 27, 2025 at 5:26 PM
There is one thing I forgot 🙈

There are use cases when return Err(/* ... */); is better. Thanks @dzuchun for reminding me that (t.me/tbtpm_chat/2...). Let me show you an example:
```
if name.len() > 5 {
// ---- value moved here
Err(name)?;
}
Ok(name)
// ^^^^ value used here after move
```
The only acceptable way to return an error from a function: `Err(Error::new(/* ... */))?;`
Any other options are mental disorders from the previous experience with other languages 🧐
March 21, 2025 at 5:21 PM
Reposted by Pavlo Myroniuk
Cloudflare took my advice and built their web-based RDP client using IronRDP — with the RDCleanPath protocol extension we pioneered in Devolutions Gateway.

Apache Guacamole and Azure Bastion, watch out: there's a superior design in town, and it came from
@devolutions.net 💪🚀
RDP without the risk: Cloudflare's browser-based solution for secure third-party access
Cloudflare now provides clientless, browser-based support for the Remote Desktop Protocol (RDP). It natively enables secure, remote Windows server access without VPNs or RDP clients, to support third-...
blog.cloudflare.com
March 21, 2025 at 2:46 PM
The only acceptable way to return an error from a function: `Err(Error::new(/* ... */))?;`
Any other options are mental disorders from the previous experience with other languages 🧐
March 20, 2025 at 11:20 AM
February 20, 2025 at 5:25 PM
`cargo +nightly build --target wasm32-unknown-unknown`
⤵️
`error: can't compile for wasm32-unknown-unknown: Support for this target has not been implemented yet`
That's sad 😰 Related issue: github.com/bytecodealli....
February 15, 2025 at 9:25 PM
Reposted by Pavlo Myroniuk
"How to speed up Rust compilation 2.3x", or "I can't believe I haven't tried this sooner".

(Note: those numbers are for a clean debug build of a project I'm working on. YMMV, as each project and machine is different.)

(Note #2: Those features are unstable and currently require nightly toolchain.)
February 10, 2025 at 6:49 PM
I love writing tools for myself. It's an incredible feeling when you use a tool written by yourself for yourself 😊
February 9, 2025 at 6:33 PM