Программирование {BookFlow}
Мы публикуем лекции и книги по программированию, видеоуроки, доклады с IT конференций, новости технологий. Группа в https://vk.com/bookflow. По всем вопросам @evgenycarter РКН https://clck.ru/3KoAbH
Show more📈 Analytical overview of Telegram channel Программирование {BookFlow}
Channel Программирование {BookFlow} (@bookflow) in the Russian language segment is an active participant. Currently, the community unites 15 645 subscribers, ranking 8 106 in the Technologies & Applications category and 42 064 in the Russia region.
📊 Audience metrics and dynamics
Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 15 645 subscribers.
According to the latest data from 25 August, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -49 over the last 30 days and by 0 over the last 24 hours, overall reach remains high.
- Verification status: Not verified
- Engagement rate (ER): The average audience engagement rate is 6.12%. Within the first 24 hours after publication, content typically collects 2.62% reactions from the total number of subscribers.
- Post reach: On average, each post receives 958 views. Within the first day, a publication typically gains 410 views.
- Reactions and interaction: The audience actively supports content: the average number of reactions per post is 5.
- Thematic interests: Content is focused on key topics such as git, программист, программирование, c++, sql.
📝 Description and content policy
The author describes the resource as a platform for expressing subjective opinions:
“Мы публикуем лекции и книги по программированию, видеоуроки, доклады с IT конференций, новости технологий.
Группа в https://vk.com/bookflow.
По всем вопросам @evgenycarter
РКН https://clck.ru/3KoAbH”
Thanks to the high frequency of updates (latest data received on 26 August, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.
Dockerfile занимает минуты - это мешает dev-loop'у. А ведь можно сильно ускориться с парой простых правил 👇
🧠 Основные принципы ускорения:
1. Максимально используем кэш
Docker кэширует каждый слой. Если слой не изменился - пересобирать не будет.
➤ Сначала COPY зависимости, потом остальной код:
COPY requirements.txt .
RUN pip install -r requirements.txt # кэшируется
COPY . . # некэшируемо при любом изменении в коде
2. Объединяем RUN-команды
Меньше слоёв - быстрее сборка и push:
RUN apt update && apt install -y curl git \
&& rm -rf /var/lib/apt/lists/*
3. .dockerignore
Убедись, что не копируешь лишние файлы (например, .git/, tests/, node_modules/):
.git node_modules *.log __pycache__/4. Меньше COPY, больше multi-stage Разделяй сборку и runtime - не таскай компиляторы в прод:
FROM golang:1.20 AS builder
WORKDIR /app
COPY . .
RUN go build -o app
FROM debian:bullseye-slim
COPY --from=builder /app/app /usr/bin/app
CMD ["app"]
5. Кэшируй pip/npm/go-пакеты
→ в Dockerfile сначала копируй файл зависимостей, ставь пакеты, только потом - весь код проекта.
📌 Используй эти практики, чтобы ускорить CI/CD, локальную сборку и деплой. Чем меньше слоёв изменяется - тем быстрее весь процесс.
♻️ Сделай репост, чтобы помочь другим.
📲 Мы в MAX
👉 @Bookflow"([0-9]{1,3}[\.]){3}[0-9]{1,3}"
Найти Все IP Адреса с Помощью Grep
Пропарсим файл и найдем в нем все IP адреса из диапазона от 0.0.0.0до 999.999.999.999с помощью grep:
$ grep -E -o "([0-9]{1,3}[\.]){3}[0-9]{1,3}" file.txt
Поиск Правильных IPv4 Адресов
Регулярное выражение для поиска и проверки правильных IPv4 адресов:
"(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"
Поиск IPv6 Адресов
Регулярное выражение для проверки IPv6 адреса:
"((^|:)([0-9a-fA-F]{0,4})){1,8}"
♻️ Сделай репост, чтобы помочь другим.
📲 Мы в MAX
👉 @Bookflowstd::sort и пользовательскими компараторами
- Некоторые алгоритмы устойчивы (stable), другие — нет (для повышения скорости)
- Поддержка сортировки по ключу (projection)
💡 Если ты работаешь с C++ и тебе нужна кастомная или быстрая сортировка — обязательно стоит взглянуть. Особенно если std::sort не даёт нужного эффекта.
https://github.com/Morwenn/cpp-sort
♻️ Сделай репост, чтобы помочь другим.
📲 Мы в MAX
👉 @Bookflowstd::stacktrace упрощает вывод стека вызовов, избавляя от необходимости использовать платформозависимые API и снижая дублирование работы между различными платформами.
https://en.cppreference.com/w/cpp/utility/basic_stacktrace
♻️ Сделай репост, чтобы помочь другим.
📲 Мы в MAX
👉 @BookflowINSERT или UPDATE запрос, чтобы двигаться, стрелять или поворачивать персонажа.
🔹 Вся логика игрового процесса завязана на базу данных, превращая DOOM в своеобразный SQL-интерфейс.
🔹 Это скорее арт-проект, чем практичный инструмент, но отличный пример того, как базы данных можно использовать в самых неожиданных сценариях.
https://github.com/cedardb/DOOMQL
♻️ Сделай репост, чтобы помочь другим.
📲 Мы в MAX
👉 @Bookflowgit merge), Git создаёт новый merge-коммит.
У этого коммита два родителя — по одному от каждой ветки, что символизирует объединение их истории.
- Это неразрушающая операция, которая сохраняет точную историю проекта.
- Merge особенно полезен в командной работе, когда важно сохранить целостность и хронологию изменений.
Минус: merge-коммиты могут "засорять" историю, усложняя отслеживание конкретных изменений.
2. Rebase (перебазирование)
Когда вы перебазируете ветку A на ветку B (с помощью git rebase), это означает:
"Давайте сделаем вид, что изменения из ветки A были сделаны поверх последних изменений ветки B."
- Rebase переписывает историю проекта, создавая новые коммиты для каждого из исходных коммитов.
- Результат — чистая, линейная история.
Минус: может быть проблематично, если над веткой работают несколько человек, ведь перебазирование переписывает историю, что усложняет совместную работу при уже опубликованных ветках.
Когда что использовать?
- Merge — когда важно сохранить полную историю и вы работаете с общими ветками. Идеально для слияния feature-веток в main или develop.
- Rebase — для личных веток или когда нужна чистая, линейная история для удобства отслеживания изменений.
Важно: не делайте rebase публичной истории. Если ветка уже опубликована и с ней работают другие, переписывание истории приведёт к конфликтам и путанице.♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @Bookflow
