Technology — a classification, not a measurement. An on-box language model (Qwen3.6-35B-A3B-FP8, prompt version 1) read this channel’s own recent posts on 11 September 2026 and assigned it the closest of 31 fixed categories, at 100% confidence. This is a model’s judgement about what the channel is likely to be about, not a fact this register measured the way a subscriber count or a view count is measured — it can be revised on a later pass, and it carries no weight anywhere else on this page. How this classification works, and why it has no browse page of its own yet.
Growth
32 measurements spanning 41 days, net -313. Dots are measurements; the straight line between them is drawn to join them, not to claim we know the path taken in between — snapshots are recorded only when a count changes, so gaps mean “no change observed”, never “interpolated”. The vertical axis spans 13,069–13,476 and does not start at zero.
Measurement log — every subscribers count we have recorded, most recent 20 of 32
Measured (UTC)
Subscribers
Change
17 Sept 2026, 20:18
13,116
-20
15 Sept 2026, 15:56
13,136
-5
13 Sept 2026, 20:42
13,141
-15
12 Sept 2026, 00:39
13,156
-10
9 Sept 2026, 13:42
13,166
-27
6 Sept 2026, 06:20
13,193
-15
3 Sept 2026, 23:59
13,208
-9
2 Sept 2026, 12:57
13,217
-6
1 Sept 2026, 09:33
13,223
-6
31 Aug 2026, 12:55
13,229
-5
30 Aug 2026, 11:55
13,234
-9
29 Aug 2026, 15:02
13,243
-7
28 Aug 2026, 13:32
13,250
-8
27 Aug 2026, 12:42
13,258
-8
26 Aug 2026, 14:56
13,266
-1
25 Aug 2026, 15:12
13,267
+1
24 Aug 2026, 13:55
13,266
-7
22 Aug 2026, 20:04
13,273
-9
21 Aug 2026, 11:25
13,282
-7
20 Aug 2026, 08:16
13,289
first reading
Engagement
68 posts held, back to 29 July 2026 — the reader has not yet reached the start of this channel’s public history, so older posts may sit further back, unread. Read across 50 pages of Telegram’s post history, 20 posts per page.
ERR · 30 days
8.08%
avg views ÷ 13,116 subscribers
Avg views / post
1,060
11 posts measured
Reaction rate
0.661%
reactions ÷ views · ER floor
Posts in window
11
of 68 held
ERR is average views per post over the last 30 days divided by subscribers, the definition TGStat uses, so this figure is comparable with the one you will see elsewhere. It falls structurally as a channel grows: a high ERR on a small channel and a low one on a large channel describe reach mathematics, not quality. We publish the figure and the sample it came from and pass no verdict on it.
ER is defined industry-wide as (forwards + reactions + comments) ÷ views — note the denominator is views, not subscribers. Telegram’s public web preview carries views and reactions but not forward or comment counts, so the reaction rate above is the reactions term only and is therefore a floor: the true ER for this channel is higher by an amount we have not measured and will not estimate.
What these figures were computed from
Window
Rolling 30 days · latest post in window 2 September 2026
Posts held
68 (29 July 2026 – 2 September 2026)
Views total
11,652
Reactions total
77
Forwards / comments
not exposed by the public surface — not measured, not estimated
Readings taken
2 Sept 2026, 20:24 UTC
Views are a single reading per post, taken at the time above. A post published in the last day or two is still accumulating views, which pulls the 30-day average down slightly. That is a property of the standard definition rather than a fault in it, so we keep the definition rather than “correcting” the number into something nobody can reproduce.
Precision. Telegram publishes view counts on its public widget in short form — 8.12K, 3.7M — so any reading at or above 1,000 reaches us rounded to three significant figures, and only counts below 1,000 are exact. Averages and rates derived from them are shown to the same precision rather than to the unit: a figure like 3,701,250 would assert digits nobody measured.
Reaction counts are published per emoji and rounded the same way, so a total below 1,000 is exact and a larger one is a sum that may carry a rounded component from each emoji above 1,000. Because it is a sum, it does not look rounded — read a large reaction total as three significant figures per contributing emoji rather than as the figure it prints.
Reaction mix
568 reactions across 68 posts, in 21 distinct kinds. The most used accounts for 36.4% of them.
Every reaction kind recorded on the sample, most used first
Reaction
Count
Share
Share, drawn
👍
207
36.4%
❤
106
18.7%
🍾
100
17.6%
❤🔥
33
5.81%
🔥
24
4.23%
🤯
20
3.52%
🤨
13
2.29%
⚡
12
2.11%
💯
11
1.94%
🥰
8
1.41%
👎
7
1.23%
🥴
7
1.23%
😁
5
0.88%
🤔
5
0.88%
🎉
3
0.528%
😍
2
0.352%
🐳
1
0.176%
👌
1
0.176%
👨💻
1
0.176%
😈
1
0.176%
1 further kind
1
0.176%
No sentiment is inferred, and none should be read in. This table is ordered by count and by nothing else. Emoji do not carry stable meaning across languages or communities — 🙏 is thanks in one channel and mourning in another — so we publish which ones were pressed and how often, and pass no judgement on what an audience meant by them.
Precision. Telegram publishes reaction counts per emoji and short-forms each one — 4.34K, 1.2M — so any single kind at or above 1,000 reaches us at three significant figures, and only counts below 1,000 are exact. The shares above are ratios of those figures and carry the same error. This is also why the total here can differ slightly from a reaction total printed elsewhere on the page: both are sums of the same rounded parts, taken over samples with different edges.
Coverage. Reactions were read on 68 of the 68 sampled posts in this sample. Summed by Telegram’s own count on each post — not by adding up the per-emoji breakdown above — those same posts carry 568 reactions in total: the kind of figure the paragraph above means by “a reaction total printed elsewhere on the page”.
Measured over the 68 most recent posts we hold, published 29 July 2026 to 2 September 2026, using the newest reading held for each. Telegram Stars are excluded: they are a payment, not a reaction, and they have their own section.
Advertising
Ad load
1.47%
1 of 68 posts carry an ad marker
Regulatory tokens
1
posts carrying an erid · 1 distinct token
Median views · ads
1,550
over 1 measured post
Median views · rest
1,640
over 67 measured posts
An ad marker, not a judgement about a post. A post is counted here because it carries one of two explicit markings: an erid token, which Russian law has required on paid placements since 2022 and which is issued against a specific advertising contract, or a #реклама / #ad hashtag in the body, which is the channel declaring it itself. The first is documentary; the second is a self-declaration and is weaker. No classifier reads the text and decides — nothing on this site guesses that a post is an advertisement.
This is a floor, and it can only ever be a floor. A channel that runs paid placements without marking them produces no marker for us to count, and an unmarked ad is indistinguishable from an ordinary post on the public surface. The ad load above therefore means “the share of posts that declared themselves”, never “the share of posts that were paid for”. A low figure is not evidence of a channel that runs few ads.
Both figures are medians, and no ratio between them is published. Each is a view reading that actually occurred on a post, picked by percentile_disc rather than averaged, so one viral post cannot move it and no interpolated value is invented between two readings. The sample on one side is under five posts, which is too thin to compare. The two figures are shown side by side with the count behind each, and deliberately not divided into a headline like “ads get x% fewer views” — an arithmetic that is easy to print and, at this sample size, means nothing.
Advertising tokens recorded on this entry
erid
Posts
First seen
Last seen
currentUser
1
27 August 2026
27 August 2026
A token repeated across several posts is one advertising contract placed more than once, which is what the identifier is for. The strings are reproduced exactly as they appeared in the post or in its click-through URL and are not validated against any registry — we record the marker a channel published, and whether it resolves to a real contract is a question for the register that issued it.
Measured over the 68 most recent posts we hold, published 29 July 2026 to 2 September 2026. Views are the latest single reading held for each post, and any reading at or above 1,000 is rounded by Telegram to three significant figures.
Добавляем Fixed Window Rate Limiter в ASP.NET Core
Можно настроить:
PermitLimit — количество разрешённых запросов
Window — размер временного окна в секундах (TimeSpan)
Нужно ли ставить входящие запросы в очередь
Rate limiting работает только in-memory.
Если нужен distributed rate limiter, часто используют что-то вроде Redis.
А для долгоживущих и персистентных лимитов можно использовать даже Postgres с locking, ч…
Похоже, для создания презентаций появился настоящий чит-код: загружаете документ и получаете готовый PPTX, где каждую страницу можно нормально редактировать.
На GitHub проект уже набрал 50 тысяч звёзд.
Раньше больше всего бесило, что ИИ для презентаций часто выдавал набор картинок или статичный шаблон. Захотели передвинуть блок или поменять размер шрифта — приходится переделывать вручную.
PPT Master создаёт нативн…
now() — это не «сейчас», а скорее «когда-то было сейчас».
На самом деле now() возвращает время начала текущей транзакции. Реальные часы продолжают идти, но каждый последующий вызов now(), CURRENT_TIMESTAMP, CURRENT_TIME и CURRENT_DATE внутри этой же транзакции всё равно возвращает одно и то же время.
В Postgres это называется transaction-frozen timestamp.
То есть INSERT на 10 000 строк с created_at DEFAULT now() п…
params существует в C# ещё с версии 1.0, но большинство разработчиков сегодня знают только половину того, что он умеет.
params позволяет методу принимать переменное количество аргументов без необходимости вручную создавать массив на стороне вызывающего кода.
static void PrintAll(params object[] values)
{
foreach (object value in values)
{
Console.WriteLine(value);
}
}
Один и тот же метод можно …
10 MCP-серверов, которые стоит рассмотреть для следующего .NET-проекта с ИИ.
MCP-сервер даёт агенту инструмент, который позволяет выйти за пределы чата и работать с реальными системами — читать данные, запускать действия и взаимодействовать с инфраструктурой.
1. Microsoft Learn
Официальная актуальная документация по C#, ASP.NET Core, EF Core и NuGet.
2. Context7
Похожий вариант, но уже для библиотек, которые не …
Три главных встроенных обобщённых делегата в C# — Func, Action и Predicate.
Делегаты можно воспринимать как ссылки на функции. Они используются для передачи поведения, обратных вызовов и взаимодействия между разными частями программы.
В C# есть три основных встроенных обобщённых делегата.
1️⃣ Func
Принимает значения и возвращает результат.
Например:
Func<int, string>
Здесь на вход передаётся int, а возвращаетс…
Самый простой способ отправлять HTTP-запросы в .NET — использовать HttpClient.
Но есть интересная альтернатива.
Проблема HttpClient в том, что при неправильном использовании можно столкнуться с исчерпанием портов и проблемами с DNS. Плюс сериализацию и десериализацию приходится настраивать вручную.
Для этого есть отличная библиотека Refit.
Это автоматически генерируемый и типобезопасный клиент для REST API в .NET…
Пора перестать использовать DateTime.Now в коде.
И вот почему.
Я часто разбираю .NET-проекты, и эта проблема встречается почти везде.
DateTime.Now раскидан по сущностям домена, бизнес-логике, валидаторам и сервисам. На ревью кода на это обычно никто не обращает внимания. Выглядит как совершенно безобидный вызов.
А потом в понедельник утром начинают падать тесты, и никто не понимает почему.
Что на самом деле лома…
10 навыков для .NET, которые стоит использовать в следующей разработке с ИИ.
Навык — это файл с инструкциями, который агент загружает только тогда, когда задача действительно этого требует.
1. analyzing-dotnet-performance
Проверяет код примерно на 50 типичных проблем с производительностью: async, память, строки, коллекции, LINQ, регулярные выражения, сериализация и ввод-вывод.
2. optimizing-ef-core-queries
Б…
Если «результатов нет», лучше возвращать пустую коллекцию, а не null.
Если метод возвращает коллекцию, вызывающему коду почти всегда проще работать с пустой коллекцией.
Вместо:
return null;
Лучше:
return [];
Тогда вызывающий код может просто сделать так:
foreach (var user in users)
{
// ...
}
Никакой проверки на null перед циклом не требуется.
Одно небольшое изменение дает сразу несколько плюсов:
✔️ Чищ…
Эндпоинт работает медленно. В логах написано, что запрос занял 800 мс. И что дальше?
Одних логов недостаточно, чтобы понять, куда ушло время. Это был обработчик? Запрос к базе данных? Внешний вызов? В итоге приходится гадать или добавлять Stopwatch, снова разворачивать приложение и проверять ещё раз.
Именно поэтому в моём шаблоне полная картина доступна сразу.
Приложение отправляет логи, трассировки и метрики чере…
Showing the 12 most recent of 68 posts we hold for @KodBlog. View and reaction counts are the latest single reading for each post, not a live figure, and a recent post is still accumulating both. A view count marked ≈ was rounded by Telegram before we ever saw it — t.me prints views in full below 1,000 and to three significant figures above, so ≈1,200,000 means somewhere between 1,150,000 and 1,249,999. Unmarked counts are exact. Text is reproduced from the public post preview and truncated for length.
Forward network
Republished by
Channels on the register that have forwarded this channel's posts into their own feed.
Built only from forwarded posts we have actually read, on both sides. Coverage is early and deliberately incomplete: a missing link means we have not read the post that would prove it, never that the relationship does not exist. Counts are distinct forwarded posts observed, so they only ever go up as we read more.
Mentions
Names
Channels on the register whose handles appear in this channel's posts.
A mention is a weaker signal than a forward and is counted separately for that reason — naming a channel is not republishing it, and a handle in a post body is easy to place deliberately. The post counts beside each row below are distinct posts in which the handle appeared, from posts we have read on both sides — the “Named by N registered channels” figure above is a different count, of distinct NAMING CHANNELS rather than posts, and is not the sum of the rows under it.
Appears in Telegram’s recommendations for other channels
The reverse of the list above, and a different kind of signal. This does not require this channel to have ever been asked about directly — each row below is a channel we DID ask Telegram about, whose Telegram-generated list happened to include this one. A channel can appear here with an empty list above it, because being named by someone else’s query is independent of having been queried itself.
Python Portal @PythonPortal · 50,417 Telegram ranks this channel #20 of 80 here — alongside 79 others — read 25 August 2026
Montana.exe @dejavu041 · 49,886 Telegram ranks this channel #28 of 80 here — alongside 79 others — read 25 August 2026
IT Portal @IT_Portal · 100,284 Telegram ranks this channel #46 of 78 here — alongside 77 others — read 15 August 2026
Unity & Unreal | GameDev @unity_gamedev_unreal · 32,817 Telegram ranks this channel #49 of 76 here — alongside 75 others — read 4 September 2026
Frontend Portal @FrontendPortal · 36,678 Telegram ranks this channel #57 of 90 here — alongside 89 others — read 1 September 2026
This channel appears in 5 seed channels' Telegram-generated recommendation lists in total. Each is Telegram’s list for THAT channel, not this one — see how this is measured.
Cite this entry
A live page changes as we take new readings, so a citation should name the measurement it is based on, not just the URL. The line below cites the subscriber count as measured 17 September 2026 — this
entry's latest reading, not the date you are reading this.
“C# Portal | Программирование” (@KodBlog), 13,116 subscribers as measured 17 September 2026. Telegram Register, tgregister.com/channel/KodBlog.
Full measurement history, CC BY 4.0. Every reading this register holds for this entry, not just the latest one, as a dated, downloadable record: CSV · JSON. Free to use with attribution to tgregister.com. Each file carries its own generation timestamp, which is the figure to cite for exactly when the data was retrieved.