9 лучших практик разработки микросервисов
При разработке микросервисов рекомендуется придерживаться следующих практик:
1. Используйте отдельное хранилище данных для каждого микросервиса
2. Поддерживайте одинаковый уровень зрелости кода
3. Выполняйте отдельную сборку для каждого микросервиса
4. Назначайте каждому микросервису одну ответственность
5. Разворачивайте микросервисы в контейнерах
6. Проектируйте сервисы без сохранения состояния (stateless)
7. Используйте предметно-ориентированное проектирование (DDD)
8. Проектируйте микрофронтенды
9. Организуйте оркестрацию микросервисов
📲 Мы в MAX
👉 @Bookflow
При разработке микросервисов рекомендуется придерживаться следующих практик:
1. Используйте отдельное хранилище данных для каждого микросервиса
2. Поддерживайте одинаковый уровень зрелости кода
3. Выполняйте отдельную сборку для каждого микросервиса
4. Назначайте каждому микросервису одну ответственность
5. Разворачивайте микросервисы в контейнерах
6. Проектируйте сервисы без сохранения состояния (stateless)
7. Используйте предметно-ориентированное проектирование (DDD)
8. Проектируйте микрофронтенды
9. Организуйте оркестрацию микросервисов
👉 @Bookflow
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
📌3 частых ситуации с Git и как их разрулить
🔁 1. Случайно закоммитил не то и хочу откатиться
Ситуация: сделал коммит, понял, что рано.
Решение:
✅ Убирает последний коммит, но оставляет изменения в staged — можно поправить и снова закоммитить.
💥 2. Запушил коммит с багом, нужно отменить на сервере
Ситуация: баг ушёл в
Решение:
✅ Создаёт новый коммит, который отменяет изменения указанного. Без force-push, удобно в команде.
🕵️ 3. Нужно достать файл из старого коммита, но не откатывать всё
Ситуация: удалили/изменили важный файл, а он был раньше.
Решение:
✅ Извлекает конкретный файл без изменения текущей ветки. Можно сохранить, сравнить, закоммитить.
📌 Все три команды — незаменимые штуки в повседневной работе. Можно сохранить себе как Git-аптечку.
📲 Мы в MAX
👉 @Bookflow
🔁 1. Случайно закоммитил не то и хочу откатиться
Ситуация: сделал коммит, понял, что рано.
Решение:
git reset --soft HEAD~1
✅ Убирает последний коммит, но оставляет изменения в staged — можно поправить и снова закоммитить.
💥 2. Запушил коммит с багом, нужно отменить на сервере
Ситуация: баг ушёл в
main, надо быстро отменить.Решение:
git revert <hash>
✅ Создаёт новый коммит, который отменяет изменения указанного. Без force-push, удобно в команде.
🕵️ 3. Нужно достать файл из старого коммита, но не откатывать всё
Ситуация: удалили/изменили важный файл, а он был раньше.
Решение:
git checkout <commit_hash> -- путь/к/файлу
✅ Извлекает конкретный файл без изменения текущей ветки. Можно сохранить, сравнить, закоммитить.
📌 Все три команды — незаменимые штуки в повседневной работе. Можно сохранить себе как Git-аптечку.
👉 @Bookflow
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2
В новом сезоне учимся уверенно проходить все этапы отбора на стажировку в Яндекс. Участников ждут короткие видеоуроки, соревнования и призы.
Как Тренировки помогут при отборе:
🔘 Топ-300 участников Тренировок смогут пропустить Яндекс Контест при отборе на стажировку🔘 Топ-300 пройдут пробный техсобес (успешный — зачтём!)🔘 Прокачаем алгоритмы, научим искать краевые случаи, отлаживать код без тестов и не стрессовать🔘 Участников ждёт гид по финалам, а топ-100 получат карьерную консультацию
Регистрация уже открыта: yandex.ru/yaintern/training/algorithm-training
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Пишем собственную виртуальную машину
В этом руководстве я научу вас, как написать собственную виртуальную машину (VM), которая сможет выполнять программы на языке ассемблера, такие как игра моего друга "2048" или мой Roguelike. Если вы умеете программировать, но хотите лучше понять, что происходит внутри компьютера, и глубже разобраться, как работают языки программирования, то этот проект для вас. Написание собственной виртуальной машины может показаться сложной задачей, но я обещаю, что вы найдете это удивительно простым и познавательным.
Конечный код занимает около 250 строк на C (unix, windows). Все, что вам нужно знать, — это как читать базовый C или C++ и выполнять двоичную арифметику.
https://justinmeiners.github.io/lc3-vm/
📲 Мы в MAX
👉 @Bookflow
В этом руководстве я научу вас, как написать собственную виртуальную машину (VM), которая сможет выполнять программы на языке ассемблера, такие как игра моего друга "2048" или мой Roguelike. Если вы умеете программировать, но хотите лучше понять, что происходит внутри компьютера, и глубже разобраться, как работают языки программирования, то этот проект для вас. Написание собственной виртуальной машины может показаться сложной задачей, но я обещаю, что вы найдете это удивительно простым и познавательным.
Конечный код занимает около 250 строк на C (unix, windows). Все, что вам нужно знать, — это как читать базовый C или C++ и выполнять двоичную арифметику.
https://justinmeiners.github.io/lc3-vm/
👉 @Bookflow
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
5 малоизвестных Git-приёмов, которые спасут вашу жизнь
1️⃣
Не только коммиты, но и переключения веток, сбросы и прочие «хаки»:
2️⃣
Если в одной и той же точке вы часто сталкиваетесь с конфликтами, включите rerere:
3️⃣
Когда баг появился неясно где, let Git do the detective work:
4️⃣
Чтобы не забыть, зачем вы сохраняете рабочие правки:
5️⃣
Для одновременной работы над фичами и багфиксами без переключений:
🔥 Попробуйте эти трюки уже сегодня и забудьте про потерянный код и бесконечные конфликты!
📲 Мы в MAX
👉 @Bookflow
1️⃣
git reflog — история всех ваших шаговНе только коммиты, но и переключения веток, сбросы и прочие «хаки»:
git reflog
# вернёт список всех HEAD-перемещений
git checkout HEAD@{3}
# вернёт вас на три шага назад
2️⃣
git rerere — повторное разрешение конфликтовЕсли в одной и той же точке вы часто сталкиваетесь с конфликтами, включите rerere:
git config --global rerere.enabled true
# при повторном конфликте Git запомнит ваше решение
3️⃣
git bisect — автоматический поиск «битого» коммитаКогда баг появился неясно где, let Git do the detective work:
git bisect start
git bisect bad # текущая версия с багом
git bisect good v1.0 # последний рабочий тег
# Git сам предложит вам протестировать промежуточные коммиты
4️⃣
git stash push -m — храни временные изменения с заметкойЧтобы не забыть, зачем вы сохраняете рабочие правки:
git stash push -m "WIP: эксперимент с OAuth"
git stash list
# будет видно вашу подпись
5️⃣
git worktree — несколько рабочих копий одного репозиторияДля одновременной работы над фичами и багфиксами без переключений:
git worktree add ../my-feature-branch feature/X
cd ../my-feature-branch
# у вас рядом две папки: main и my-feature-branch
🔥 Попробуйте эти трюки уже сегодня и забудьте про потерянный код и бесконечные конфликты!
📲 Мы в MAX
👉 @Bookflow
👍5❤1👎1🔥1
🧱 Пишем Тетрис на C++: Идеальный старт для новичка
Написание Тетриса это своеобразный обряд посвящения для любого игрового разработчика. Это лучший способ понять, как работать с массивами, игровым циклом и таймингами, не отвлекаясь на сложные движки.
Нашли для вас легендарный туториал от Javi Lopez.
✅ Акцент на логике: Автор учит думать структурами данных, а не пикселями.
✅ Платформонезависимость: Код пишется на чистом C++. Его можно запустить хоть на Windows, хоть на Linux, хоть на тостере (почти).
✅ Чистый код: Отличный пример того, как отделять игровую логику от рендеринга.
Внутри разбирается всё: от хранения фигур (тетромино) в памяти до реализации сгорания линий.
🔗 Читать туториал: https://javilop.com/gamedev/tetris-tutorial-in-c-platform-independent-focused-in-game-logic-for-beginners/
📲 Мы в MAX
👉 @Bookflow
Написание Тетриса это своеобразный обряд посвящения для любого игрового разработчика. Это лучший способ понять, как работать с массивами, игровым циклом и таймингами, не отвлекаясь на сложные движки.
Нашли для вас легендарный туториал от Javi Lopez.
✅ Акцент на логике: Автор учит думать структурами данных, а не пикселями.
✅ Платформонезависимость: Код пишется на чистом C++. Его можно запустить хоть на Windows, хоть на Linux, хоть на тостере (почти).
✅ Чистый код: Отличный пример того, как отделять игровую логику от рендеринга.
Внутри разбирается всё: от хранения фигур (тетромино) в памяти до реализации сгорания линий.
🔗 Читать туториал: https://javilop.com/gamedev/tetris-tutorial-in-c-platform-independent-focused-in-game-logic-for-beginners/
📲 Мы в MAX
👉 @Bookflow
🔥6👍3
📝 Гайд: Как научиться читать Assembly
Не нужно быть инженером Intel, чтобы понимать ассемблер. Это навык, который резко прокачивает понимание того, как работает компьютер и ваш код.
О чем речь:
• Основы регистров (x86-64).
• Самые частые инструкции.
• Как читать вывод компилятора и не сходить с ума.
Отличный туториал для старта: https://wolchok.org/posts/how-to-read-assembly-language/
Сохраняй, пригодится при следующей жесткой отладке. 🔥
📲 Мы в MAX
👉 @Bookflow
Не нужно быть инженером Intel, чтобы понимать ассемблер. Это навык, который резко прокачивает понимание того, как работает компьютер и ваш код.
О чем речь:
• Основы регистров (x86-64).
• Самые частые инструкции.
• Как читать вывод компилятора и не сходить с ума.
Отличный туториал для старта: https://wolchok.org/posts/how-to-read-assembly-language/
Сохраняй, пригодится при следующей жесткой отладке. 🔥
📲 Мы в MAX
👉 @Bookflow
👍2
Архитектура Docker состоит из трех основных компонентов
🔹 Клиент Docker
Это интерфейс, через который осуществляется взаимодействие с пользователями. Он взаимодействует с демоном Docker.
🔹 Docker Host
Здесь демон Docker принимает запросы Docker API и управляет различными объектами Docker, включая образы, контейнеры, сети и тома.
🔹 Реестр Docker
Здесь хранятся образы Docker. Например, широко используется публичный реестр Docker Hub.
📲 Мы в MAX
👉 @Bookflow
🔹 Клиент Docker
Это интерфейс, через который осуществляется взаимодействие с пользователями. Он взаимодействует с демоном Docker.
🔹 Docker Host
Здесь демон Docker принимает запросы Docker API и управляет различными объектами Docker, включая образы, контейнеры, сети и тома.
🔹 Реестр Docker
Здесь хранятся образы Docker. Например, широко используется публичный реестр Docker Hub.
📲 Мы в MAX
👉 @Bookflow
👍2
⚡️ РКН фактически «положил» обновления Linux в России - разработчики массово жалуются прямо в чате Минцифры.
После замедления Telegram и введения новых ограничений многим приходится тянуть обновления и даже ядро ОС через VPN. Ситуация длится уже примерно неделю, а внятного решения и официального ответа от властей до сих пор нет.
https://www.linux.org.ru/forum/talks/18218768/page1#comments
📲 Мы в MAX
👉 @Bookflow
После замедления Telegram и введения новых ограничений многим приходится тянуть обновления и даже ядро ОС через VPN. Ситуация длится уже примерно неделю, а внятного решения и официального ответа от властей до сих пор нет.
https://www.linux.org.ru/forum/talks/18218768/page1#comments
📲 Мы в MAX
👉 @Bookflow
🤯17💩7🤡7
1. Поиск в глубину (DFS, Depth First Search)
2. Поиск в ширину (BFS, Breadth First Search)
3. Топологическая сортировка
4. Алгоритм объединения и поиска (Union Find, или Система непересекающихся множеств)
5. Обнаружение циклов
6. Нахождение связанных компонент
7. Двуцветный граф (Bipartite Graphs, определение двудольности)
8. Заливка области (Flood Fill)
9. Минимальное остовное дерево (Minimum Spanning Tree)
10. Кратчайший путь (Shortest Path)
📲 Мы в MAX
👉 @Bookflow
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤3
🔍 Мини-гайд: Индексы в PostgreSQL
1. Зачем нужны индексы?
▪️ Ускоряют
▪️Снижают нагрузку при выборках без полного сканирования таблицы.
2. Типы индексов
▪️B-tree (по умолчанию): точный поиск (
▪️Hash: для точного сравнения, но используется редко.
▪️GIN: массивы и полнотекстовый поиск.
▪️GiST: геоданные (PostGIS), диапазоны (
▪️BRIN: очень большие таблицы, где данные «почти упорядочены» (по дате).
3. Практические советы
▪️Оценивайте запросы через
▪️Не создавайте индекс «про запас»: каждый замедляет
▪️Составные индексы: порядок колонок критичен.
▪️Избегайте низкокардинальных колонок (boolean, ENUM) — индекс неэффективен, если фильтр возвращает большинство строк.
▪️Актуализируйте статистику: запускайте
▪️Удаляйте устаревшие индексы:
▪️Используйте
4. Подводные камни
▪️Бесполезный индекс: если
▪️Функциональные индексы:
▪️Блокировки: для создания без блокировки пишите:
Но этот процесс дольше и требует больше места.
▪️Индексы на внешних ключах: без них при удалении/обновлении родительской записи будут долгие сканы.
Итог:
Индексы — мощный инструмент, если их грамотно использовать. Анализируйте планы запросов, не создавайте лишних, следите за статистикой и удаляйте устаревшие.
Сохрани, чтобы не забыть, и поделись с коллегами. А как ты выбираешь индексы у себя? Пиши в комментариях!
📲 Мы в MAX
👉 @Bookflow
1. Зачем нужны индексы?
▪️ Ускоряют
SELECT, JOIN, ORDER BY, GROUP BY.▪️Снижают нагрузку при выборках без полного сканирования таблицы.
2. Типы индексов
▪️B-tree (по умолчанию): точный поиск (
=), диапазоны (<, >), сортировки.
CREATE INDEX idx_users_email ON users(email);
▪️Hash: для точного сравнения, но используется редко.
▪️GIN: массивы и полнотекстовый поиск.
CREATE INDEX idx_docs_content
ON documents USING GIN(to_tsvector('russian', content));
▪️GiST: геоданные (PostGIS), диапазоны (
int4range, tsrange).▪️BRIN: очень большие таблицы, где данные «почти упорядочены» (по дате).
CREATE INDEX idx_logs_created_at
ON logs USING BRIN(created_at);
3. Практические советы
▪️Оценивайте запросы через
EXPLAIN ANALYZE или pg_stat_statements.▪️Не создавайте индекс «про запас»: каждый замедляет
INSERT/UPDATE/DELETE.▪️Составные индексы: порядок колонок критичен.
CREATE INDEX idx_users_city_age
ON users(city, age);
▪️Избегайте низкокардинальных колонок (boolean, ENUM) — индекс неэффективен, если фильтр возвращает большинство строк.
▪️Актуализируйте статистику: запускайте
ANALYZE после больших загрузок/удалений.▪️Удаляйте устаревшие индексы:
DROP INDEX IF EXISTS idx_old_column;
▪️Используйте
REINDEX для устранения фрагментации:
REINDEX INDEX idx_users_email;
4. Подводные камни
▪️Бесполезный индекс: если
WHERE возвращает ≥90% строк (например, is_active = true при 99% активных).▪️Функциональные индексы:
CREATE INDEX ON table ((LOWER(name))) сработает только при точном вызове WHERE LOWER(name) = 'ivan'.▪️Блокировки: для создания без блокировки пишите:
CREATE INDEX CONCURRENTLY idx_orders_status ON orders(status);
Но этот процесс дольше и требует больше места.
▪️Индексы на внешних ключах: без них при удалении/обновлении родительской записи будут долгие сканы.
Итог:
Индексы — мощный инструмент, если их грамотно использовать. Анализируйте планы запросов, не создавайте лишних, следите за статистикой и удаляйте устаревшие.
Сохрани, чтобы не забыть, и поделись с коллегами. А как ты выбираешь индексы у себя? Пиши в комментариях!
📲 Мы в MAX
👉 @Bookflow
👍5❤2
Как избежать выгорания программисту 🔥👨💻
Выгорание – частая “болезнь” айтишников: дедлайны давят, код не сходится, а в голове постоянно мысли о задачах. Чтобы не оказаться “выгоревшим” через пару месяцев интенсивной работы, обратите внимание на эти практики:
1. Распознавайте первые признаки
🔹Хроническая усталость, даже после полноценного сна
🔹Потеря интереса к проектам, раньше приятным казавшимся
🔹Снижение концентрации и продуктивности
🔹Раздражительность, нервозность без видимых причин
Если вы заметили хотя бы пару пунктов – пора действовать заранее.
2. Организуйте рабочий процесс
🔹Чёткое планирование: разбейте крупные задачи на маленькие шаги. Каждодневный список дел (to-do) поможет “не тонуть” в мелочах.
🔹Техника Pomodoro: 25 минут работы + 5 минут отдыха. После 4 циклов — длинный перерыв 15–20 минут. Такой ритм позволяет сохранять свежесть мыслей.
🔹Ограничьте время “погружения”: не сидите за кодом по 12 часов подряд. Оптимальная рабочая смена для программиста – 6–8 часов с регулярными паузами.
3. Выделяйте время на восстановление
🔹Физическая активность: хотя бы 30 минут в день. Прогулка, лёгкая пробежка, упражнения на растяжку между задачами улучшают кровообращение и снимают напряжение.
🔹Сон и режим: ложитесь и вставайте в одно и то же время, даже в выходные. Качественный ночной сон (7–8 часов) – залог продуктивности и хорошего настроения.
🔹Цифровой детокс: вечером полностью отвяжитесь от гаджетов, чтобы мозг успел “отключиться” от задач. Ограничьте соцсети и мессенджеры минимум за час до сна.
4. Умейте сказать “нет”
🔹Реалистичные дедлайны: если видите, что не успеваете, обсудите с менеджером или заказчиком перенос. Лучше честно признаться, чем до последней минуты “ломать” себя.
🔹Не берите задачу сверх возможностей: если проект слишком сложный или сроки нереальны, предложите альтернативный подход или помощь коллег.
5. Баланс между “я” и “кодом”
🔹Хобби вне IT: найдите увлечение, не связанное с технологией — музыка, рисование, спорт, настольные игры. Это переключит мозг и наполнит энергией.
🔹Кружки и сообщества: общайтесь с теми, кто разделяет ваши интересы: книжные клубы, клубы настольных игр, спортивные секции. Социальная поддержка помогает “не застрять” только в рабочих задачах.
6. Периодические “мини-отпуска”
🔹Отпуск хотя бы раз в полгода: даже короткая поездка на уик-энд без работы способна “перезагрузить” голову.
🔹Регулярные выходные без диагоналки: не проверяйте почту, не отвечайте на рабочие сообщения. Дайте себе реально отдохнуть.
7. Постоянное обучение – но без перегрузок
🔹Учитесь постепенно: вместо марафонов видеокурсов лучше 30 минут в день. Так новые знания встраиваются в мозг легче и без стресса.
🔹Не гонитесь за всеми трендами: выбирайте то, что важно именно для ваших проектов и целей, а не всё подряд.
8. Работайте в команде и делегируйте
🔹Парное программирование (pair programming): совместная работа помогает находить ошибки быстрее и снижает психологическую нагрузку.
🔹Помощь коллег: если застряли, не мучайтесь в одиночку – попросите совета. Иногда взгляд со стороны решает проблему за пару минут.
9. Осознанность и простые практики
🔹Медитация или дыхательные упражнения (5–10 минут утром/вечером). Помогают снизить уровень тревожности.
🔹Ведение дневника: записывайте мысли и идеи, избавляясь от “ментального шума”. Это упорядочивает внутреннее состояние.
10. Регулярно оценивайте свой “уровень выгорания”
🔹Раз в месяц задавайте себе вопросы: “Насколько я воодушевлён проектом?”, “Что вызывает раздражение?”, “Когда в последний раз я отдыхал без мыслей о работе?”
🔹Если градус недовольства растёт – сразу включайте превентивные меры: пора добавить отдыха, сменить активность или обратиться к ментору/психологу.
📲 Мы в MAX
👉 @Bookflow
Выгорание – частая “болезнь” айтишников: дедлайны давят, код не сходится, а в голове постоянно мысли о задачах. Чтобы не оказаться “выгоревшим” через пару месяцев интенсивной работы, обратите внимание на эти практики:
1. Распознавайте первые признаки
🔹Хроническая усталость, даже после полноценного сна
🔹Потеря интереса к проектам, раньше приятным казавшимся
🔹Снижение концентрации и продуктивности
🔹Раздражительность, нервозность без видимых причин
Если вы заметили хотя бы пару пунктов – пора действовать заранее.
2. Организуйте рабочий процесс
🔹Чёткое планирование: разбейте крупные задачи на маленькие шаги. Каждодневный список дел (to-do) поможет “не тонуть” в мелочах.
🔹Техника Pomodoro: 25 минут работы + 5 минут отдыха. После 4 циклов — длинный перерыв 15–20 минут. Такой ритм позволяет сохранять свежесть мыслей.
🔹Ограничьте время “погружения”: не сидите за кодом по 12 часов подряд. Оптимальная рабочая смена для программиста – 6–8 часов с регулярными паузами.
3. Выделяйте время на восстановление
🔹Физическая активность: хотя бы 30 минут в день. Прогулка, лёгкая пробежка, упражнения на растяжку между задачами улучшают кровообращение и снимают напряжение.
🔹Сон и режим: ложитесь и вставайте в одно и то же время, даже в выходные. Качественный ночной сон (7–8 часов) – залог продуктивности и хорошего настроения.
🔹Цифровой детокс: вечером полностью отвяжитесь от гаджетов, чтобы мозг успел “отключиться” от задач. Ограничьте соцсети и мессенджеры минимум за час до сна.
4. Умейте сказать “нет”
🔹Реалистичные дедлайны: если видите, что не успеваете, обсудите с менеджером или заказчиком перенос. Лучше честно признаться, чем до последней минуты “ломать” себя.
🔹Не берите задачу сверх возможностей: если проект слишком сложный или сроки нереальны, предложите альтернативный подход или помощь коллег.
5. Баланс между “я” и “кодом”
🔹Хобби вне IT: найдите увлечение, не связанное с технологией — музыка, рисование, спорт, настольные игры. Это переключит мозг и наполнит энергией.
🔹Кружки и сообщества: общайтесь с теми, кто разделяет ваши интересы: книжные клубы, клубы настольных игр, спортивные секции. Социальная поддержка помогает “не застрять” только в рабочих задачах.
6. Периодические “мини-отпуска”
🔹Отпуск хотя бы раз в полгода: даже короткая поездка на уик-энд без работы способна “перезагрузить” голову.
🔹Регулярные выходные без диагоналки: не проверяйте почту, не отвечайте на рабочие сообщения. Дайте себе реально отдохнуть.
7. Постоянное обучение – но без перегрузок
🔹Учитесь постепенно: вместо марафонов видеокурсов лучше 30 минут в день. Так новые знания встраиваются в мозг легче и без стресса.
🔹Не гонитесь за всеми трендами: выбирайте то, что важно именно для ваших проектов и целей, а не всё подряд.
8. Работайте в команде и делегируйте
🔹Парное программирование (pair programming): совместная работа помогает находить ошибки быстрее и снижает психологическую нагрузку.
🔹Помощь коллег: если застряли, не мучайтесь в одиночку – попросите совета. Иногда взгляд со стороны решает проблему за пару минут.
9. Осознанность и простые практики
🔹Медитация или дыхательные упражнения (5–10 минут утром/вечером). Помогают снизить уровень тревожности.
🔹Ведение дневника: записывайте мысли и идеи, избавляясь от “ментального шума”. Это упорядочивает внутреннее состояние.
10. Регулярно оценивайте свой “уровень выгорания”
🔹Раз в месяц задавайте себе вопросы: “Насколько я воодушевлён проектом?”, “Что вызывает раздражение?”, “Когда в последний раз я отдыхал без мыслей о работе?”
🔹Если градус недовольства растёт – сразу включайте превентивные меры: пора добавить отдыха, сменить активность или обратиться к ментору/психологу.
📲 Мы в MAX
👉 @Bookflow
👍9
This media is not supported in your browser
VIEW IN TELEGRAM
🌦 Weathr - погода прямо в терминале
Если ты живёшь в консоли, то это маст-хэв: weathr рисует живую погоду в виде ASCII-анимаций - дождь, снег, грозы, смена дня/ночи и даже пролетающие самолётики. Данные тянет из Open-Meteo.
Что умеет:
🔴 realtime-погода + атмосферные ASCII-анимации
🔴 автоопределение локации (по IP) или ручные координаты в конфиге
🔴 гибкие единицы измерения (metric/imperial)
🔴 режим симуляции погоды для теста (
Установка (самый простой вариант):
Про приватность: авто-локация делает запрос к ipinfo.io, но это опционально - можно отключить и указать координаты вручную.
⭐️ Репозиторий: GitHub https://github.com/Veirt/weathr
📲 Мы в MAX
👉 @Bookflow
Если ты живёшь в консоли, то это маст-хэв: weathr рисует живую погоду в виде ASCII-анимаций - дождь, снег, грозы, смена дня/ночи и даже пролетающие самолётики. Данные тянет из Open-Meteo.
Что умеет:
--simulate rain/snow/thunderstorm/...) Установка (самый простой вариант):
cargo install weathr Про приватность: авто-локация делает запрос к ipinfo.io, но это опционально - можно отключить и указать координаты вручную.
⭐️ Репозиторий: GitHub https://github.com/Veirt/weathr
📲 Мы в MAX
👉 @Bookflow
Please open Telegram to view this post
VIEW IN TELEGRAM
🤓4👍2❤1
Я дал 100 AI-агентам равный бюджет — они изобрели кредиты под 15%
Дал 100 AI-агентам по 1000 токенов и одну цель — набрать максимум очков. Не программировал ни торговлю, ни кредиты, ни специализацию. Через двое суток агент №23 попросил у агента №91 займ под 15%. К 72-му часу — три банкира, 12 банкротов и коэффициент Джини 0.71. Внутри — код на Python, логи, распределение ресурсов. И честный разбор того в чем я до сих пор не уверен.
https://habr.com/ru/articles/1001646/
📲 Мы в MAX
👉 @Bookflow
Дал 100 AI-агентам по 1000 токенов и одну цель — набрать максимум очков. Не программировал ни торговлю, ни кредиты, ни специализацию. Через двое суток агент №23 попросил у агента №91 займ под 15%. К 72-му часу — три банкира, 12 банкротов и коэффициент Джини 0.71. Внутри — код на Python, логи, распределение ресурсов. И честный разбор того в чем я до сих пор не уверен.
https://habr.com/ru/articles/1001646/
👉 @Bookflow
Please open Telegram to view this post
VIEW IN TELEGRAM
😁5🔥4❤1
🚀 Регулярные выражения (RegEx) в Linux: Полная шпаргалка
Сохраняйте в избранное, чтобы всегда было под рукой при работе с
🧩 Базовые символы (Matching Characters)
•
•
•
•
•
•
•
⚓️ Якоря (Anchors)
•
•
•
•
🧮 Квантификаторы (Quantifiers)
•
•
•
•
•
👻 Жадные vs Ленивые (Greedy vs Lazy)
•
•
•
🗂 Классы символов (Character Classes)
•
•
•
•
📦 Группы и Диапазоны (Groups and Ranges)
•
•
•
•
🚩 Флаги / Модификаторы (Flags)
•
•
•
•
•
🛡 Экранирование (Escaping)
•
• Символы, которые нужно экранировать:
👀 Опережающие и ретроспективные проверки (Lookarounds)
•
•
•
🌐 Свойства Unicode (работают с флагом u)
•
•
•
📲 Мы в MAX
👉 @Bookflow
Сохраняйте в избранное, чтобы всегда было под рукой при работе с
grep, sed, awk или при написании Bash-скриптов! 📌🧩 Базовые символы (Matching Characters)
•
. — Любой символ (кроме переноса строки)•
\w — Буквенно-цифровой символ + подчеркивание•
\W — Любой НЕ буквенно-цифровой символ•
\d — Любая цифра (0-9)•
\D — Любой символ, кроме цифры•
\s — Пробельный символ (пробел, таб, перенос)•
\S — Непробельный символ⚓️ Якоря (Anchors)
•
^ — Начало строки•
$ — Конец строки•
\b — Граница слова•
\B — Не граница слова🧮 Квантификаторы (Quantifiers)
•
* — 0 или более вхождений•
+ — 1 или более вхождений•
? — 0 или 1 вхождение•
{n} — Ровно n вхождений•
{n,} — n или более вхождений👻 Жадные vs Ленивые (Greedy vs Lazy)
•
* — Жадный (захватывает как можно больше символов)•
*? — Ленивый (захватывает как можно меньше символов)•
+?, ??, {n}? — Ленивые версии остальных квантификаторов🗂 Классы символов (Character Classes)
•
[abc] — Любой символ из списка: a, b или c•
[^abc] — Любой символ, КРОМЕ a, b или c•
[a-z] — Любая буква в диапазоне от a до z•
[0-9] — Любая цифра от 0 до 9📦 Группы и Диапазоны (Groups and Ranges)
•
(abc) — Захватывающая группа (сохраняет совпадение)•
(?:abc) — Незахватывающая группа (ищет, но не сохраняет)•
| — Логическое ИЛИ (например, cat|dog)•
\1, \2, \3 — Ссылки на 1-ю, 2-ю, 3-ю захваченные группы🚩 Флаги / Модификаторы (Flags)
•
g — Глобальный (ищет все совпадения, а не только первое)•
i — Игнорировать регистр (A = a)•
m — Многострочный (^ и $ работают для каждой строки текста)•
s — Dotall (позволяет точке . совпадать с переносами строк)•
x — Extended (позволяет использовать пробелы и комментарии в самом RegEx)🛡 Экранирование (Escaping)
•
\ — Используется для экранирования спецсимволов, чтобы искать их буквально.• Символы, которые нужно экранировать:
[ \ ^ $ . | ? * + ( ) { }👀 Опережающие и ретроспективные проверки (Lookarounds)
•
(?=abc) — Позитивный lookahead (совпадает, если дальше идет abc)•
(?!abc) — Негативный lookahead (совпадает, если дальше НЕ идет abc)•
(?<=abc) — Позитивный lookbehind (совпадает, если перед ним идет abc)🌐 Свойства Unicode (работают с флагом u)
•
\p{L} — Любая буква из любого языка•
\p{N} — Любой числовой символ•
\p{Sc} — Любой символ валюты👉 @Bookflow
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4❤1
🚀 Подборка полезных 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 и др.
1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
https://max.ru/cpp_lib Библиотека C/C++ разработчика
Программирование Python 📌
https://max.ru/python_of Python академия.
https://max.ru/BookPython Библиотека Python разработчика
Java разработка 📌
https://max.ru/bookjava Библиотека Java разработчика
GitHub Сообщество 📌
https://max.ru/githublib Интересное из GitHub
Базы данных (Data Base) 📌
https://max.ru/database_info Все про базы данных
Фронтенд разработка 📌
https://max.ru/frontend_1 Подборки для frontend разработчиков
Библиотеки 📌
https://max.ru/programmist_of Книги по программированию
https://max.ru/proglb Библиотека программиста
https://max.ru/bfbook Книги для программистов
Программирование 📌
https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций
https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT
https://max.ru/php_lib Библиотека PHP программиста 👨🏼💻👩💻
Шутки программистов 📌
https://max.ru/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://max.ru/thehaking Канал о кибербезопасности
https://max.ru/xakkep_1 Хакер Free
Книги, статьи для дизайнеров 📌
https://max.ru/odesigners Статьи, книги для дизайнеров
Математика 📌
https://max.ru/Pomatematike Канал по математике
https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике
Вакансии 📌
https://max.ru/progjob Вакансии в IT
Мир технологий 📌
https://max.ru/mir_teh Канал для любознательных
Бонус 📌
https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга
https://max.ru/mockva_life Свежие новости Москвы
Системное администрирование, 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 и др.
1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
https://max.ru/cpp_lib Библиотека C/C++ разработчика
Программирование Python 📌
https://max.ru/python_of Python академия.
https://max.ru/BookPython Библиотека Python разработчика
Java разработка 📌
https://max.ru/bookjava Библиотека Java разработчика
GitHub Сообщество 📌
https://max.ru/githublib Интересное из GitHub
Базы данных (Data Base) 📌
https://max.ru/database_info Все про базы данных
Фронтенд разработка 📌
https://max.ru/frontend_1 Подборки для frontend разработчиков
Библиотеки 📌
https://max.ru/programmist_of Книги по программированию
https://max.ru/proglb Библиотека программиста
https://max.ru/bfbook Книги для программистов
Программирование 📌
https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций
https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT
https://max.ru/php_lib Библиотека PHP программиста 👨🏼💻👩💻
Шутки программистов 📌
https://max.ru/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://max.ru/thehaking Канал о кибербезопасности
https://max.ru/xakkep_1 Хакер Free
Книги, статьи для дизайнеров 📌
https://max.ru/odesigners Статьи, книги для дизайнеров
Математика 📌
https://max.ru/Pomatematike Канал по математике
https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике
Вакансии 📌
https://max.ru/progjob Вакансии в IT
Мир технологий 📌
https://max.ru/mir_teh Канал для любознательных
Бонус 📌
https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга
https://max.ru/mockva_life Свежие новости Москвы
MAX
Системный администратор
Все для системного администратора.
Реклама: https://xn--r1a.website/evgenycarter
Реклама: https://xn--r1a.website/evgenycarter
👎8
Please open Telegram to view this post
VIEW IN TELEGRAM
😁28👍14👏5🔥1
Как работает Git?
Для начала важно понять, где хранится наш код. Обычно предполагается, что существует только два места: удалённый сервер (например, GitHub) и локальный компьютер. Однако это не совсем так. Git использует три локальных хранилища на нашем компьютере, а значит, наш код может находиться в четырёх местах:
• Рабочая директория (Working directory): место, где мы редактируем файлы.
• Область подготовки (Staging area): временное место, где файлы находятся перед коммитом.
• Локальный репозиторий (Local repository): содержит закоммиченный код.
• Удалённый репозиторий (Remote repository): сервер, где хранится код (например, GitHub).
Большинство команд Git в основном перемещают файлы между этими четырьмя локациями.
Теперь вопрос к тебе: знаешь ли ты, с каким хранилищем работает команда git tag?
Эта команда позволяет добавлять аннотации к коммиту.
📲 Мы в MAX
👉 @Bookflow
Для начала важно понять, где хранится наш код. Обычно предполагается, что существует только два места: удалённый сервер (например, GitHub) и локальный компьютер. Однако это не совсем так. Git использует три локальных хранилища на нашем компьютере, а значит, наш код может находиться в четырёх местах:
• Рабочая директория (Working directory): место, где мы редактируем файлы.
• Область подготовки (Staging area): временное место, где файлы находятся перед коммитом.
• Локальный репозиторий (Local repository): содержит закоммиченный код.
• Удалённый репозиторий (Remote repository): сервер, где хранится код (например, GitHub).
Большинство команд Git в основном перемещают файлы между этими четырьмя локациями.
Теперь вопрос к тебе: знаешь ли ты, с каким хранилищем работает команда git tag?
Эта команда позволяет добавлять аннотации к коммиту.
👉 @Bookflow
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤2🔥1