06 October 2025
Big O
Big O notation describes the relationship between a function’s input and its wall-clock time.
From slowest to fastest:
- O(1), constant time (best!)
- O(log n), logarithmic time
- O(n), linear time
- O(n^2), quadratic time
It’s Not Wrong that “🤦🏼♂️”.length == 7
Very detailed comparison of the different ways that different languages calculate the length of a string. Rust is best, Python is bizarrest!
An Illustrated Guide to OAuth
Nice, clear illustration of the basics of OAuth. It explains the reason for it and the security design choices. It also mentioned what it doesn’t explain (there’s more than one way of doing it).
How to debug a web app with Playwright MCP and GitHub Copilot
How to ask CoPilot to reproduce and fix a UI bug in a reproducible way by describing the bug.
Writing isolated (integration) tests with TestContainers
Using TestContainers to spin up test instances of external systems that your system talks to. This allows you to write integration tests without relying on real external systems. Sounds to me a bit like .NET Aspire, although TestContainers is multi-language.
Google Chrome at 17 - A history of our browser
The motivations and history of Chrome. The start is interesting, but I didn’t read the whole thing. Nice to see that the core values are still the same.
C# Magical Syntax
How to write classes that implement common features - by implementing methods with specific names - ie by convention rather than by explicitly implementing an interface.
foreach- you need to implementGetEnumerator()- deconstruct a tuple - you need to implement
Deconstruct() await- implementGetAwaiter()and a couple of other things- Linq - implement the standard operators -
Selectetc
This vulnerability could have allowed me to compromise every Entra ID tenant in the world
Critical flaw in the Azure AD Graph API (deprecated in favor of Microsoft Graph). If I understood correctly, it’s a combination of an undocumented type of token (Actor Tokens) and failure to properly validate the originating tenant.
IHostedService vs. BackgroundService
at the startup of the application, ASP.NET checks whether there are any
IHostedServiceimplementation registered or not, and if so it will run them and waits for them to complete their task
BackgroundServiceis an abstract classes that has implemented IHostedService interface
So BackgroundService is also a IHostedService, but the implementation doesn’t wait for the background task to complete.
Development gets better with Age
Why older developers improve with age. Basically because they’ve seen it all before, but keep learning new stuff.
