andrei
markeev.com
andrei
@markeev.com
Principal full-stack engineer who codes for 25+ years, both professionally and as a hobby.

- TypeScript and C
- NGINX, Kubernetes, Nodejs, MongoDB, MySQL
- Vue, React
- Webdev, compilers and IDEs, IoT and wearables, gamedev, etc
one problem people face when using nginx as load balancer is how to pass real client IP address to the backend servers

nginx supports ip transparency but network setup is complex

simpler way: use proxy_protocol between load balancer nginx and backend nginx!
October 4, 2025 at 6:06 PM
Today's daily challenge on leetcode is really hard! If you like to do some morning brain racking, this challenge is for you! 😅

I am actually quite proud I was able to solve it. Saw a guy on Twitch who streams leetcode challenges for 24 days in a row and he couldn't solve it 🤯

I used #typescript.
January 13, 2025 at 8:08 AM
#typescript has a very handy feature: it can merge interfaces, even with external libs.

I regularly forget how to make it work with modules, so here's the reminder 😉

Btw: `declare global` is also super useful 😎
January 2, 2025 at 3:30 PM
Current status: fixed 700+ typescript errors, phew 😅

Doing a big ass migration from using #Typescript Compiler API to a faster and more compact js parser (kataw) in TS2C.
December 30, 2024 at 9:42 PM
Btw, fun fact: back in 2000s, I wrote a compiler. It was a long multi-year project. I even used it to compile executables for my own operating system.

And I guess because I was programming in Perl a lot in beginning of 2000s, the language didn't have ANY keywords 😅

Everything was special symbols 😇
December 27, 2024 at 8:28 PM
I have to admit that C function pointers are not far from timezones in terms of mind-blowingness 😅

But ts2c has to get them right, and so do I 😎
December 27, 2024 at 8:28 PM
Feels good to do some opensource again 😃
It's my most active year since 2019!

- CloudPebble Portable - a Web IDE for retro programming :) Powered by redbean web server
- ts2c - TypeScript to C transpiler
- pascal-lsp - a fault-tolerant Pascal parser

github.com/andrei-markeev
December 27, 2024 at 6:13 AM
Did you know you can make your serialisation type-safe in #typescript?

Enjoy 😏
December 5, 2024 at 3:15 PM
Bought one more Palm m105, just arrived. Amazing condition! 🤩

I only needed a cable (lost mine somewhere), but turned out cables are all sold from US, expensive shipping and a long wait. It was easier (and almost same price) to buy a whole piece [with cable] from EU 😂
November 27, 2024 at 3:38 PM
Script for translating I ended up with is 60 lines of JS, this is what it does:

1️⃣ Flats out the en-US json, leaving only filename nodes, and inverts values with keys => textMap
2️⃣ Goes through each file, grabs the text with simple regexps, translates if the text is found in the textMap

3/3
November 27, 2024 at 1:05 PM
Use:

🟢 compile-time translation
🟢 manually crafted json, split into context blocks by filename, with added structure where necessary

✨ structure and sensible ids help translators
✨ your original html files (for English) remain completely functional without any compilation step!

2/3
November 27, 2024 at 1:05 PM
My thoughts on **static** html websites localization (and solution I ended up with)

Avoid:

⛔ translation identifiers (i.e. `$t("my_company_name")` - because you want to see the text in context
⛔ wrapping all translatable texts in a certain syntax: it is a hassle and adds compile step

1/3
November 27, 2024 at 1:05 PM
One more thing that Pebble was ahead of time is CloudPebble web IDE: just log in and start coding, no need to download SDK or toolchain, configure anything, etc. They even had the emulator there! ⌚

I've just got it running on localhost. And already did some fixes to my "Notes 365 for Pebble" app 😎
November 21, 2024 at 1:59 AM
Isn't it insane? It's 2024, Pebble watches are still alive, everything still works, very recent updates everywhere, community is thriving! 😃

And, I am not joking, Pebble feels MUCH better than the latest Apple Watch. UI is much better, notifications are better, watch is lighter, battery life longer
November 20, 2024 at 1:58 PM
I was trying hard, but I gave up. Just charged my old but still amazing Pebble, first time in many years (not connected to the phone yet). Apple Watch simply doesn’t cut it. Not even close 😁
November 19, 2024 at 11:05 PM
I am not a big fan of #Angular, but they're honestly much ahead in this.

Myself, I've been writing simple custom localization engines for my frontends.
Is it hard? Well, the plugin for inlining translations is 25 lines of code 🤷‍♂️ and no magic strings ⬇️
November 19, 2024 at 9:42 PM
Many people don't know how to debug NGINX locally.

It's not hard at all.

First, install nginx.
💻 Mac users: `brew install nginx`
🖥️ Windows users: download and unpack archive as described in the docs: nginx.org/en/docs/wind...

1/2
November 19, 2024 at 5:09 PM