First, I want to tell you how exactly I got to this point and why I started researching different options for handling asynchronous I/O on Linux… Last year, my students and I built a reverse proxy server called TinyGate. It was super simple, worker-based, and it basically worked well. Of course, I didn’t expect it to be very fast, but it was an educational project, and since…
What’s cool we can make in a language with manual memory management? Of course a GC, never let ’em know your next move! As a big fan of Go, I really like the new GC called “Green Tea”. Inspired by ideas from that GC and some C allocators I’ve seen before, I made a simple allocator with a GC for Zig. It’s no code blocks in the post, link for the complete project…
So, I just want to explain some problem of the Windows clipboard… It’s completely unprotected. I mean, any process with user privileges is able to intercept your copied content silently. Let’s try to do it in practice and think about how to live with this knowledge? Windows clipboard under hood What happens when you copy some text (or other data)? It goes into shared memory…
I found the slides and notes that I had prepared for a workshop I gave last year and decided to write a post about that topic. Here we will explore how we can sandbox a process to protect it from memory-corruption vulnerabilities and malicious code injection. To be honest, I’m not really fluent in Windows development, so I used official documentation and then just tested the code. I’m…
Cloudflare provides a solution that will help you make your server, which is hosted at your home under NAT, visible from the internet—did you know? It also gives you all the features of Cloudflare, such as DDoS protection for your website. It’s completely free and easy to configure. As an example, let’s configure a website hosted on our local Raspberry Pi to make it visible from the…
Today we will isolate a CPU core, deny the Linux scheduler from using it, and assign it to a specific process. It can be used to ensure CPU core availability for critical processes and can be useful in many cases (especially on CPUs with asymmetric cores, like E and P cores in Intel desktop CPUs). In my case, I’m working with Raspberry Pi with my students for the past couple of weeks, so, as…
Raspberry Pi is a perfect choice for a tiny home server for low load levels, especially the RPi 5, which is powerful enough, cheap, and small in size. The only problem is that it works with SD cards, which die very fast if you use them on a server. Let’s see what we can do to reduce SD card wear when using the RPi as a server. SD card trimming
Go is my favorite language, without a doubt! Readable, simple code, active and friendly community, fast and modern language with GC, and a PERFECT vendoring system (absolutely love it). I realized that the channel mechanics in Go are not completely clear for some people, so let me explain! Basically, everything is really simple. We have goroutines—it’s like coroutines, but go-routines, did…
During COVID isolation in 2020-2021 I developed a very simple web reverse proxy in pure C. In 2025 I found this project, moved it to C23 standard and decided to release it publicly. It’s configurable, very fast and can serve even high loaded systems. Basically I made it just for manage few standalone web services hosted at single server. Key features: – Configurable by .ini file, very…
August was very busy for me so it was no publications here… Need to fix it then, let’s make a daemon for the FreeRTOS and understand how it works! :) First things first, let’s understand core concepts of the FreeRTOS: Standard language for FreeRTOS which is used by most developers is C89. In the daemon we need to have a blocking calls to allow other tasks to run. The daemon is based on…
Today we will talk about love… I mean, Love2D - the engine for 2D games. Basically, I really love the game engine because it’s fast, simple and will let you make your first game in just a couple of hours! The process of a game creation looks like just programming on Lua, without any heavy overloaded IDE or special tools. Little by little,we will create a prototype for a 2D RPG with…
It’s number of new programming languages here. Let’s look at Zig and check what features it offers and how it basically looks. So, Zig is a new language on the market, still having version 0.14.1. No GC here, strong static typing, really small size of compiled binaries. Positioned as a replacement for C. We will begin from pros and cons tnd then will try to code on it a bit.
So guys, welcome to my new blog. I have not blog since 2018 but in the past couple years I’ve been doing tons of interesting things and experiments and really wanna share my experience. I believe you will find something interesting about programming, electronics, networks, security and all around this. As well just a couple months ago I found myself interested in gamedev, maybe I will post…