Shuffling: Fisher-Yates vs Feistel
Compare deterministic Fisher-Yates and Feistel-based shuffling techniques for selecting every item exactly once per cycle.
Read the article Shuffling: Fisher-Yates vs FeistelCompare deterministic Fisher-Yates and Feistel-based shuffling techniques for selecting every item exactly once per cycle.
Read the article Shuffling: Fisher-Yates vs FeistelLet’s switch from Chrome to Brave, as it is a more privacy-focused browser and the ad blocker extensions don’t function anymore. I’ll also show how to make Windows start Brave when you type ‘chrome’ into your Run box. And let’s fix those profile icons.
Read the article Swapping Chrome for Brave on WindowsWe replaced Redis with Valkey with no production downtime and no application changes, just a few lines of Terraform. Here is why an uneventful infrastructure migration is often the best possible outcome.
Read the article How we switched 150+ stores from Redis to Valkey, and nobody cared!Make OpenCode easier to use in Windows Terminal by adding a key binding that sends Shift+Enter through the kitty keyboard protocol.
Read the article Add Shift+Enter to OpenCode in Windows TerminalAt Wehkamp Tech Hub, we replaced a physical planning wall with a digital roadmap tool. Here’s how we built a read-only Jira-powered SPA that generates HD slides, visualizes team bottlenecks, and keeps leadership informed – without giving everyone access to Jira.
Read the article When the Planning Wall Doesn’t ScaleUse GitHub’s git-commit skill to make VS Code’s Generate Commit Message button produce consistent Conventional Commit messages.
Read the article Improve VS Code Commit Messages with GitHub’s git-commit skillSome validations are complex. Let’s explore how .NET data annotation validation and FluentValidation can be combined and (unit) tested.
Read the article Unit Testing complex validations (study)Ever since I wrote about the “Is One Of” and “Is Not One Of” validation attributes, I’ve wondered if there is anything better for class validation. I mean: validating individual properties is fine, but usually the more interesting stuff is the validation of a combination of members.
Read the article Let’s combine Data Annotation Validation with FluentValidationWhat I love about data annotations and validation attributes, is that the validation rules are defined very close to the class: when you open it up, you can view all the rules. The ApiController will even automatically do model validation. This is great, but I like some defense in depth; I want to be able to use those validations in my business service as well. I should not have to trust input. Let’s explore how we can make that happen.
Read the article Data Annotation validation with dependency injection in a business serviceAfter implementing Kiota clients with resilience, I felt the need to spend some time on unit testing them. The Kiota docs on unit testing uses NSubstitute to override the response of the adapter. After some testing (pun intended), I did not feel satisfied with the results; we should be able to use the “normal” way of testing an HttpClient, right? In this blog, I’ll show how to use the RichardSzalay.MockHttp package together with Kiota.
Read the article Kiota Client Unit Testing: mocking data