SMTP Mailer: choosing replacement for SendGrid
TL;DR. I ended up using Smtp2Go My website uses minimal email traffic, but it does send emails from time to time: mostly to myself as notifications. I could probably get […]
TL;DR. I ended up using Smtp2Go My website uses minimal email traffic, but it does send emails from time to time: mostly to myself as notifications. I could probably get […]
Anyone who used virtual machines (VMs) and Docker containers knows that Docker images tend to be much smaller than VM images and to start orders of magnitude faster. But why […]
TL;DR If you use language other than English, you pay more per word sent/received from an LLM. If you don’t use Latin alphabet, you pay way more. Here’s why. LLMs […]
Disclaimer: this is a summary for my records after a deep dive into current state of Redis. I tried to be as precise as possible (after all, I am writing […]
In Python, Redis.hset function has ‘items’ that, per documentation “accepts a list of key/value pairs that will be added to hash “name“.”. You would think that it’s something like [(“key1”, […]
I created a “view model” like hook in React, and asked Cursor to write unit tests for it. The hook does not have any HTML code, but it uses a […]
Typescript allows a type to reference another type defined further down in the same file, which can lead to rather interesting constructs. The vanilla circular reference fails: However, the following […]
I stumbled upon the following code in production: This sort of does the job, but any is a fruit of a poisonous tree: it should have had a much more […]
TL;DR: Lenovo recovery media is NOT like regular Windows recovery drive. It can only factory-reset your system. No command line, no recovery from image, nothing else. Hulk smash. Don’t count […]
In TypeScript (and JavaScript), both substr and substring are methods used to extract parts of a string, but they behave differently. This probably does not beat standard C++ class mt19937, […]