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 95% 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
34 measurements spanning 50 days, net -109. 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 10,045–10,186 and does not start at zero.
Measurement log — every subscribers count we have recorded, most recent 20 of 34
Measured (UTC)
Subscribers
Change
26 Sept 2026, 03:02
10,061
-9
19 Sept 2026, 06:20
10,070
-3
16 Sept 2026, 20:15
10,073
-6
14 Sept 2026, 22:42
10,079
-4
13 Sept 2026, 10:41
10,083
-8
11 Sept 2026, 11:59
10,091
-5
8 Sept 2026, 22:17
10,096
+1
5 Sept 2026, 18:01
10,095
-3
3 Sept 2026, 14:39
10,098
-4
2 Sept 2026, 09:27
10,102
+1
1 Sept 2026, 11:23
10,101
-3
31 Aug 2026, 13:25
10,104
-4
30 Aug 2026, 11:26
10,108
-4
29 Aug 2026, 09:15
10,112
-3
28 Aug 2026, 11:43
10,115
-4
27 Aug 2026, 09:38
10,119
-6
26 Aug 2026, 06:13
10,125
-1
25 Aug 2026, 05:52
10,126
-2
24 Aug 2026, 02:07
10,128
-5
22 Aug 2026, 10:15
10,133
first reading
Engagement
34 posts held, back to 7 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 37 pages of Telegram’s post history, 20 posts per page.
Nothing published in the last 30 days. ERR and ER are rolling 30-day measures, so there is nothing to compute — we hold 34 posts for this entry, the most recent from 26 August 2026. An engagement rate over an empty window would be a number about nothing.
What this channel posts
Video runtime
13m 19s
Average length
13m 19s
Measured directly from 1 video with a duration reading, out of the posts we hold for this channel — not this channel’s whole posting history, only the sample this register has actually read. An exact reading to the second, taken from the post itself rather than from Telegram’s own rounded chrome, so it carries no ≈ mark.
Reaction mix
183 reactions across 33 posts, in 12 distinct kinds. The most used accounts for 48.6% of them.
Every reaction kind recorded on the sample, most used first
Reaction
Count
Share
Share, drawn
👍
89
48.6%
🔥
22
12.0%
👎
14
7.65%
🤩
13
7.10%
😁
11
6.01%
🤡
10
5.46%
❤
8
4.37%
💩
6
3.28%
🤮
6
3.28%
🥴
2
1.09%
✍
1
0.546%
💊
1
0.546%
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 33 of the 34 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 183 reactions in total: the kind of figure the paragraph above means by “a reaction total printed elsewhere on the page”.
Measured over the 34 most recent posts we hold, published 7 July 2026 to 26 August 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
5.88%
2 of 34 posts carry an ad marker
Regulatory tokens
2
posts carrying an erid · 2 distinct tokens
Median views · ads
637
over 2 measured posts
Median views · rest
834
over 32 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
2Vtzqve7BEj
1
18 August 2026
18 August 2026
2VtzqxCK4W6
1
4 August 2026
4 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 34 most recent posts we hold, published 7 July 2026 to 26 August 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.
🧠 Spring Boot: правильно логируем @ExceptionHandler
Сейчас покажу простой, но часто упускаемый момент при обработке ошибок в Spring Boot.
Если у вас есть глобальный @ExceptionHandler, убедитесь, что вы не теряете stacktrace при логировании.
❌ Плохо:
@ExceptionHandler(MyException.class)
public ResponseEntity<String> handle(MyException ex) {
log.error("MyException occurred: {}", ex.getMessage()); // stacktrace…
🧠 Spring Boot: как НЕ попасть в ловушку с @Scheduled и многопоточностью
Когда используете @Scheduled для периодических задач в Spring Boot, важно понимать: по умолчанию все задачи выполняются в одном потоке.
@Scheduled(fixedRate = 5000)
public void syncData() {
// долгая операция
}
📌 Если таких задач несколько или они работают долго — остальные ждут. Это создаёт бутылочное горлышко и приводит к неожиданным з…
🚀 Подборка полезных IT каналов в Max
Системное администрирование, DevOps 📌
https://max.ru/i_odmin Все для системного администратора
https://max.ru/bash_srv Bash Советы
https://max.ru/sysadminof Книги для админов, полезные материалы
https://max.ru/i_odmin_book Библиотека Системного Администратора
https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др.
https://max.ru/tipsysdmin Типичный Сисадмин
https://max…
💡 Не делай этого в @PostConstruct — особенно в проде
Сейчас расскажу, почему инициализировать важную бизнес-логику в @PostConstruct — плохая идея.
Типичный пример:
@Component
public class CacheLoader {
private final SomeService service;
public CacheLoader(SomeService service) {
this.service = service;
}
@PostConstruct
public void init() {
service.loadDataIntoCache(); // ⚠️ о…
🧠 JVM-разработчики, стягиваемся в Москву 29 августа
В последнюю субботу лета бэкенд- и JVM-комьюнити соберется на JVM Day, который устраивает Т-Банк. Ждут всех разработчиков, архитекторов и тимлидов, которые работают с Java, Kotlin и Scala.
В программе:
– Андрей Кулешов расскажет о том, что изменилось в мире JVM за год.
– Сергей Петрелевич разберет Mechanical Sympathy.
– Александр Ланцов покажет, какие модели конку…
🧠 @Value в Spring — это ловушка, если вы используете списки или map'ы
Многие знают, что можно заинжектить список строк из application.yml вот так:
app:
langs:
- en
- fr
- de
@Value("${app.langs}")
private List<String> langs;
Но знаете, что вы получите?
⚠️ ОШИБКУ. @Value не умеет парсить YAML-массивы. Он ожидает строку, и даже с CSV-строкой (en,fr,de) — всё не так очевидно: Spring не применяет C…
👩💻 Работа с Kafka через библиотеку Kafka Clients
Приглашаем на открытый урок.
🗓 26 августа в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Java разработчик. Продвинутый уровень».
Kafka Clients это нижний уровень для работы с Kafka из Java. Все более высокоуровневые библиотеки основаны на нем.
Данный открытый урок проходит в рамках курса Java разработчик. Продвинутый уровень.
О чем поговорим:
✔️ Чтение и отп…
🧠 Нюанс с Optional.map() и методами, возвращающими Optional
Многие Java-разработчики на автомате пишут что-то вроде:
Optional<User> user = findUserById(id); // возвращает Optional<User>
Optional<String> email = user.map(User::getEmail); // getEmail тоже возвращает Optional<String>
⚠️ Проблема: map() в Optional не "разворачивает" вложенные Optional. В этом примере email будет типа Optional<Optional<String>>, что…
Почему ты получаешь отказ после "норм собеса"?
Дело не в знаниях - ты просто не знаешь, что реально проверяют на собеседованиях
Отсюда:
— непонимание, какие навыки надо качать, чтобы выйти на следующий грейд
— ощущение стагнации и отсутствие роста в скиллах
— долгое время на одной и той же зп
Решение — знать, что от тебя ждёт интервьюер, и умение правильно донести свою мысль
Для этого ребята из ШОРТКАТ (менторско…
🧠 Как в Java сломать equals() и потерять данные в HashMap
Сегодня покажу, как неочевидный баг в equals()/hashCode() может привести к потере данных при работе с HashMap.
Допустим, у вас есть Entity:
public class User {
private String id;
private String name;
// equals/hashCode только по id
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceo…
💡Сегодня покажу крутую фишку для оптимизации чтения больших коллекций из базы через JPA.
📌 Проблема:
Когда загружаем большую коллекцию через @OneToMany, Hibernate часто делает это лениво (LAZY), но при первом доступе — забирает всю коллекцию целиком.
Это может привести к OutOfMemoryError или резкому проседанию производительности.
📌 Решение: использовать пагинацию (batch-size) или запрос коллекции порциями.
Как н…
👍4🔥1
Showing the 12 most recent of 34 posts we hold for @BookJava. 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.
Mentions
Named by 4 registered channels — every channel on the register whose own posts have named this one, by its current username or any other username it currently holds, merged from two separately captured readings of the same fact so a namer caught by only one of them is not missed and a namer both caught is not counted twice. A username this channel has since dropped is not matched — that handle may belong to someone else now, and crediting today’s namer to yesterday’s owner would misattribute it.
Named by
Channels on the register whose posts name this channel's handle.
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.
Handles this channel named that no longer answer
Dead references
7
handles named in this channel’s posts, vacant today
Evidenced gone
0
we ourselves saw one of these resolve, at some point
Never seen alive
7
vacant every time we have ever looked
@BookJava named 7 handles that resolve to nothing today. That is a fact about the reference, not necessarily a fact about the handle’s history — see the two groups below.
Most of these may never have existed as a live channel at all. A handle a channel names can be a typo, an aspirational name nobody registered, or a channel that was already gone before this one ever mentioned it. Unless a row below is marked evidenced, all we know is that it references a handle that is not a live channel today — not that anything “died”. How this is measured.
Never seen alive
References a handle that is not a live channel — we have no record it ever was one.
@component named in 19 posts, 8 August 2026 – 27 August 2026
@service named in 17 posts, 8 August 2026 – 11 August 2026
@configuration named in 8 posts, 8 August 2026 – 27 August 2026
@eventlistener named in 7 posts, 8 August 2026 – 27 August 2026
@scheduled named in 5 posts, 8 August 2026 – 27 August 2026
@getmapping named in 5 posts, 8 August 2026 – 13 August 2026
@importautoconfiguration named in 4 posts, 8 August 2026 – 11 August 2026
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.
Java библиотека @javalib · 30,666 Telegram ranks this channel #18 of 84 here — alongside 83 others — read 7 September 2026
Библиотека джависта | Java, Spring, Maven, Hibernate @javaproglib · 22,022 Telegram ranks this channel #19 of 88 here — alongside 87 others — read 21 September 2026
Senior Java Developer @seniorjavist · 20,641 Telegram ranks this channel #25 of 89 here — alongside 88 others — read 26 September 2026
This channel appears in 3 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 26 September 2026 — this
entry's latest reading, not the date you are reading this.
“Библиотека Java разработчика” (@BookJava), 10,061 subscribers as measured 26 September 2026. Telegram Register, tgregister.com/channel/BookJava.
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.