<feed xmlns="http://www.w3.org/2005/Atom"> <id>https://nitely.github.io/</id><title>Nitely's blog</title><subtitle>Nitely's blog about programming topics, algorithms and then some</subtitle> <updated>2026-08-31T03:26:38+00:00</updated> <author> <name>nitely</name> <uri>https://nitely.github.io/</uri> </author><link rel="self" type="application/atom+xml" href="https://nitely.github.io/feed.xml"/><link rel="alternate" type="text/html" hreflang="en" href="https://nitely.github.io/"/> <generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator> <rights> © 2026 nitely </rights> <icon>/assets/img/favicons/favicon.ico</icon> <logo>/assets/img/favicons/favicon-96x96.png</logo> <entry><title>Fast unicode (UTF-8) validation with autovectorization</title><link href="https://nitely.github.io/2026/08/30/fast-unicode-utf-8-validation.html" rel="alternate" type="text/html" title="Fast unicode (UTF-8) validation with autovectorization" /><published>2026-08-30T03:15:00+00:00</published> <updated>2026-08-31T03:26:21+00:00</updated> <id>https://nitely.github.io/2026/08/30/fast-unicode-utf-8-validation.html</id> <content type="text/html" src="https://nitely.github.io/2026/08/30/fast-unicode-utf-8-validation.html" /> <author> <name>nitely</name> </author> <summary>TLDR: This article describes a very fast algorithm for UTF-8 unicode validation. It has two paths, ascii and UTF-8, both paths are autovectorized. Introduction This UTF8 validator is based on a branchless lookbehind algorithm which is autovectorizable. It checks every byte position from a 4-byte window (current byte + 3-byte lookbehind), and it has an ascii check fast path that skips ascii te...</summary> </entry> <entry><title>HTTP/2 zero latency write coalescing</title><link href="https://nitely.github.io/2025/03/28/http-2-write-coalescing.html" rel="alternate" type="text/html" title="HTTP/2 zero latency write coalescing" /><published>2025-03-28T22:11:00+00:00</published> <updated>2025-04-03T08:39:55+00:00</updated> <id>https://nitely.github.io/2025/03/28/http-2-write-coalescing.html</id> <content type="text/html" src="https://nitely.github.io/2025/03/28/http-2-write-coalescing.html" /> <author> <name>nitely</name> </author> <summary>Write coalescing is an I/O optimization technique where multiple small writes are merged into a single larger write before sending data to the underlying system. In Http/2, we can batch multiple frames from one or more streams and send them all at once. This reduces the number of syscalls, and avoids sending tiny TCP packets under load. Nagle’s Algorithm Most OSes implement Nagle’s Algorithm,...</summary> </entry> <entry><title>HTTP/2 in-depth server design</title><link href="https://nitely.github.io/2024/10/24/http-2-in-depth-server-client-design.html" rel="alternate" type="text/html" title="HTTP/2 in-depth server design" /><published>2024-10-24T23:51:00+00:00</published> <updated>2025-02-13T21:20:23+00:00</updated> <id>https://nitely.github.io/2024/10/24/http-2-in-depth-server-client-design.html</id> <content type="text/html" src="https://nitely.github.io/2024/10/24/http-2-in-depth-server-client-design.html" /> <author> <name>nitely</name> </author> <summary>This is a high-level description of nim-hyperx, an HTTP/2 server &amp;amp;amp; client. It may be useful for HTTP/2 implementers and the curious. The core of nim-hyperx is ~1K LoC and can be read alongside this post. This is not an overview of the HTTP/2 protocol. I won’t go over frame types, stream states, flow-control, nor the spec in general. Axioms Frames must be read and processed as soon as...</summary> </entry> <entry><title>HTTP/2 flow control deadlock</title><link href="https://nitely.github.io/2024/08/23/http-2-flow-control-dead-lock.html" rel="alternate" type="text/html" title="HTTP/2 flow control deadlock" /><published>2024-08-23T02:04:00+00:00</published> <updated>2024-08-23T12:03:26+00:00</updated> <id>https://nitely.github.io/2024/08/23/http-2-flow-control-dead-lock.html</id> <content type="text/html" src="https://nitely.github.io/2024/08/23/http-2-flow-control-dead-lock.html" /> <author> <name>nitely</name> </author> <summary>This is a high-level description of HTTP/2 flow control, potential deadlocks, delays, and how to prevent them. It may be useful for HTTP/2 implementers and the curious. HTTP/2 allows full-duplex communication over a single stream, along with stream multiplexing. This means a peer can send and receive data simultaneously on a single stream and do the same on multiple streams at the same time. ...</summary> </entry> <entry><title>HTTP/2 the missing state</title><link href="https://nitely.github.io/2024/08/20/http-2-the-missing-state.html" rel="alternate" type="text/html" title="HTTP/2 the missing state" /><published>2024-08-20T21:49:00+00:00</published> <updated>2024-11-14T03:26:14+00:00</updated> <id>https://nitely.github.io/2024/08/20/http-2-the-missing-state.html</id> <content type="text/html" src="https://nitely.github.io/2024/08/20/http-2-the-missing-state.html" /> <author> <name>nitely</name> </author> <summary>There is a missing state in the HTTP/2 spec. Lets look at the closed state carefully: An endpoint that sends a RST_STREAM frame on a stream that is in the “open” or “half-closed (local)” state could receive any type of frame. The peer might have sent or enqueued for sending these frames before processing the RST_STREAM frame. An endpoint MUST minimally process and then discard any frames it...</summary> </entry> </feed>
