fa
Feedback
ITmozg

ITmozg

رفتن به کانال در Telegram

Программисты, дизайнеры, новости из мира IT. Официальный канал. (vk.com/itmozg, ITmozg.ru)

نمایش بیشتر
2 659
مشترکین
اطلاعاتی وجود ندارد24 ساعت
-37 روز
-1430 روز
جذب مشترکین
ژوئیه '26
ژوئیه '26
+2
در 0 کانال‌ها
ژوئن '26
+13
در 1 کانال‌ها
Get PRO
مه '26
+60
در 0 کانال‌ها
Get PRO
آوریل '26
+15
در 0 کانال‌ها
Get PRO
مارس '26
+37
در 0 کانال‌ها
Get PRO
فوریه '26
+25
در 0 کانال‌ها
Get PRO
ژانویه '26
+18
در 0 کانال‌ها
Get PRO
دسامبر '25
+24
در 0 کانال‌ها
Get PRO
نوامبر '25
+32
در 32 کانال‌ها
Get PRO
اکتبر '25
+29
در 1 کانال‌ها
Get PRO
سپتامبر '25
+46
در 37 کانال‌ها
Get PRO
اوت '25
+44
در 1 کانال‌ها
Get PRO
ژوئیه '25
+49
در 27 کانال‌ها
Get PRO
ژوئن '25
+89
در 21 کانال‌ها
Get PRO
مه '25
+39
در 45 کانال‌ها
Get PRO
آوریل '25
+71
در 38 کانال‌ها
Get PRO
مارس '25
+49
در 39 کانال‌ها
Get PRO
فوریه '25
+60
در 32 کانال‌ها
Get PRO
ژانویه '25
+51
در 34 کانال‌ها
Get PRO
دسامبر '24
+54
در 35 کانال‌ها
Get PRO
نوامبر '24
+55
در 33 کانال‌ها
Get PRO
اکتبر '24
+59
در 30 کانال‌ها
Get PRO
سپتامبر '24
+77
در 29 کانال‌ها
Get PRO
اوت '24
+62
در 18 کانال‌ها
Get PRO
ژوئیه '24
+59
در 1 کانال‌ها
Get PRO
ژوئن '24
+74
در 24 کانال‌ها
Get PRO
مه '24
+89
در 19 کانال‌ها
Get PRO
آوریل '24
+72
در 0 کانال‌ها
Get PRO
مارس '24
+118
در 23 کانال‌ها
Get PRO
فوریه '24
+106
در 19 کانال‌ها
Get PRO
ژانویه '24
+154
در 24 کانال‌ها
Get PRO
دسامبر '23
+157
در 24 کانال‌ها
Get PRO
نوامبر '23
+126
در 17 کانال‌ها
Get PRO
اکتبر '23
+135
در 18 کانال‌ها
Get PRO
سپتامبر '23
+117
در 0 کانال‌ها
Get PRO
اوت '23
+90
در 0 کانال‌ها
Get PRO
ژوئیه '23
+120
در 0 کانال‌ها
Get PRO
ژوئن '23
+129
در 0 کانال‌ها
Get PRO
مه '23
+128
در 0 کانال‌ها
Get PRO
آوریل '23
+100
در 0 کانال‌ها
Get PRO
مارس '23
+125
در 0 کانال‌ها
Get PRO
فوریه '23
+103
در 0 کانال‌ها
Get PRO
ژانویه '23
+193
در 0 کانال‌ها
Get PRO
دسامبر '22
+245
در 0 کانال‌ها
Get PRO
نوامبر '22
+272
در 0 کانال‌ها
Get PRO
اکتبر '22
+249
در 0 کانال‌ها
Get PRO
سپتامبر '22
+30
در 0 کانال‌ها
Get PRO
اوت '22
+8
در 0 کانال‌ها
Get PRO
ژوئیه '22
+5
در 0 کانال‌ها
Get PRO
ژوئن '22
+7
در 0 کانال‌ها
Get PRO
مه '22
+9
در 0 کانال‌ها
Get PRO
آوریل '22
+12
در 0 کانال‌ها
Get PRO
مارس '22
+13
در 0 کانال‌ها
Get PRO
فوریه '22
+10
در 0 کانال‌ها
Get PRO
ژانویه '22
+3
در 0 کانال‌ها
Get PRO
دسامبر '21
+8
در 0 کانال‌ها
Get PRO
نوامبر '21
+10
در 0 کانال‌ها
Get PRO
اکتبر '21
+13
در 0 کانال‌ها
Get PRO
سپتامبر '21
+13
در 0 کانال‌ها
Get PRO
اوت '21
+4
در 0 کانال‌ها
Get PRO
ژوئیه '21
+14
در 0 کانال‌ها
Get PRO
ژوئن '21
+14
در 0 کانال‌ها
Get PRO
مه '21
+14
در 0 کانال‌ها
Get PRO
آوریل '21
+12
در 0 کانال‌ها
Get PRO
مارس '21
+10
در 0 کانال‌ها
Get PRO
فوریه '21
+13
در 0 کانال‌ها
Get PRO
ژانویه '21
+5
در 0 کانال‌ها
Get PRO
دسامبر '20
+983
در 0 کانال‌ها
تاریخ
رشد مشترکین
اشارات
کانال‌ها
03 ژوئیه0
02 ژوئیه+1
01 ژوئیه+1
پست‌های کانال
🚀 Регулярные выражения (RegEx) в Linux: Полная шпаргалка Сохраняйте в избранное, чтобы всегда было под рукой при работе с gr
🚀 Регулярные выражения (RegEx) в Linux: Полная шпаргалка Сохраняйте в избранное, чтобы всегда было под рукой при работе с 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} — Любой символ валюты ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg

2
🌦 Weathr - погода прямо в терминале Если ты живёшь в консоли, то это маст-хэв: weathr рисует живую погоду в виде ASCII-анима
🌦 Weathr - погода прямо в терминале Если ты живёшь в консоли, то это маст-хэв: weathr рисует живую погоду в виде ASCII-анимаций - дождь, снег, грозы, смена дня/ночи и даже пролетающие самолётики. Данные тянет из Open-Meteo. Что умеет: 🔴realtime-погода + атмосферные ASCII-анимации 🔴автоопределение локации (по IP) или ручные координаты в конфиге 🔴гибкие единицы измерения (metric/imperial) 🔴режим симуляции погоды для теста (--simulate rain/snow/thunderstorm/...) Установка (самый простой вариант): cargo install weathr Про приватность: авто-локация делает запрос к ipinfo.io, но это опционально - можно отключить и указать координаты вручную. ⭐️ Репозиторий: GitHub https://github.com/Veirt/weathr ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg
103
3
Как избежать выгорания программисту 🔥👨‍💻 Выгорание – частая “болезнь” айтишников: дедлайны давят, код не сходится, а в голове постоянно мысли о задачах. Чтобы не оказаться “выгоревшим” через пару месяцев интенсивной работы, обратите внимание на эти практики: 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 👉 @itmozg
89
4
🔍 Мини-гайд: Индексы в PostgreSQL 1. Зачем нужны индексы? ▪️ Ускоряют SELECT, JOIN, ORDER BY, GROUP BY. ▪️Снижают нагрузку п
🔍 Мини-гайд: Индексы в PostgreSQL 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 👉 @itmozg
90
5
Архитектура Docker состоит из трех основных компонентов 🔹 Клиент Docker Это интерфейс, через который осуществляется взаимоде
Архитектура Docker состоит из трех основных компонентов 🔹 Клиент Docker Это интерфейс, через который осуществляется взаимодействие с пользователями. Он взаимодействует с демоном Docker. 🔹 Docker Host Здесь демон Docker принимает запросы Docker API и управляет различными объектами Docker, включая образы, контейнеры, сети и тома. 🔹 Реестр Docker Здесь хранятся образы Docker. Например, широко используется публичный реестр Docker Hub. ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg
149
6
🚀 Подборка полезных 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 Типичный Сисадмин Excel лайфхак 📌 https://t.me/Excel_lifehack Excel лайфхак Английский с нуля 🇬🇧 https://max.ru/UchuEnglish 1C разработка 📌 https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С Программирование C++📌 https://max.ru/cpp_lib Библиотека C/C++ разработчика Программирование Go📌 https://max.ru/golang_lib Библиотека Go (Golang) разработчика Программирование React📌 https://max.ru/react_lib React Программирование 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 Свежие новости Москвы https://max.ru/piterspb Питер Новости: Санкт-Петербург / СПБ / ДТП
119
7
🧱 Пишем Тетрис на C++: Идеальный старт для новичка Написание Тетриса это своеобразный обряд посвящения для любого игрового р
🧱 Пишем Тетрис на C++: Идеальный старт для новичка Написание Тетриса это своеобразный обряд посвящения для любого игрового разработчика. Это лучший способ понять, как работать с массивами, игровым циклом и таймингами, не отвлекаясь на сложные движки. Нашли для вас легендарный туториал от Javi Lopez. ✅ Акцент на логике: Автор учит думать структурами данных, а не пикселями. ✅ Платформонезависимость: Код пишется на чистом C++. Его можно запустить хоть на Windows, хоть на Linux, хоть на тостере (почти). ✅ Чистый код: Отличный пример того, как отделять игровую логику от рендеринга. Внутри разбирается всё: от хранения фигур (тетромино) в памяти до реализации сгорания линий. 🔗 Читать туториал: https://javilop.com/gamedev/tetris-tutorial-in-c-platform-independent-focused-in-game-logic-for-beginners/ ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg
152
8
5 малоизвестных Git-приёмов, которые спасут вашу жизнь 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 👉 @itmozg
144
9
Пишем собственную виртуальную машину В этом руководстве я научу вас, как написать собственную виртуальную машину (VM), котора
Пишем собственную виртуальную машину В этом руководстве я научу вас, как написать собственную виртуальную машину (VM), которая сможет выполнять программы на языке ассемблера, такие как игра моего друга "2048" или мой Roguelike. Если вы умеете программировать, но хотите лучше понять, что происходит внутри компьютера, и глубже разобраться, как работают языки программирования, то этот проект для вас. Написание собственной виртуальной машины может показаться сложной задачей, но я обещаю, что вы найдете это удивительно простым и познавательным. Конечный код занимает около 250 строк на C (unix, windows). Все, что вам нужно знать, — это как читать базовый C или C++ и выполнять двоичную арифметику. https://justinmeiners.github.io/lc3-vm/ ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg
162
10
Паттерн Saga автор: roadofbugs ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg
Паттерн Saga автор: roadofbugs ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg
160
11
Привет, друзья! 👋 Сегодня разбираем одну из самых важных тем для любого инженера и разработчика - Big O Notation (О-большое)
Привет, друзья! 👋 Сегодня разбираем одну из самых важных тем для любого инженера и разработчика - Big O Notation (О-большое). Если вы готовитесь к алгоритмическим собеседованиям или просто хотите писать более быстрый и оптимальный код, эта шпаргалка обязательно должна быть под рукой. ⏱ Шпаргалка по алгоритмической сложности Разберем, как растет время выполнения от самых быстрых алгоритмов к самым ресурсоемким: • O(1) - Константное время: Время выполнения не меняется при увеличении данных. Пример: Доступ к элементу массива по индексу или вставка в хеш-таблицу. • O(log n) - Логарифмическое время: Растет логарифмически при увеличении данных. Пример: Бинарный поиск или операции в сбалансированных деревьях. • O(sqrt(n)) - Корневое время: Растет пропорционально квадратному корню размера данных. Пример: Поиск простых чисел в диапазоне (Решето Эратосфена). • O(n) - Линейное время: Растет прямо пропорционально объему данных. Пример: Поиск минимума или максимума в неотсортированном массиве. • O(n log n) - Линеарифмическое время: Комбинация линейного и логарифмического роста. Пример: Эффективные алгоритмы сортировки (Merge Sort, Quick Sort). • O(n^2) - Квадратичное время: Растет квадратично, часто из-за вложенных циклов. Пример: Простые сортировки (Пузырьком, Выбором). • O(n^3) - Кубическое время: Растет кубически. Пример: Умножение плотных матриц в лоб. • O(2^n) - Экспоненциальное время: Время удваивается с каждым новым элементом данных. Пример: Рекурсивное решение задачи коммивояжера. • O(n!) - Факториальное время: Растет факториально, то есть невероятно быстро. Пример: Задачи на генерацию всех возможных перестановок. 💡На практике алгоритмы со сложностью от O(1) до O(n log n) считаются эффективными. Если ваш код работает за O(n^2) или хуже - это повод задуматься об оптимизации (исключение составляют случаи, когда объем данных гарантированно мал). ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg
145
12
📌3 частых ситуации с Git и как их разрулить 🔁 1. Случайно закоммитил не то и хочу откатиться Ситуация: сделал коммит, понял, что рано. Решение: git reset --soft HEAD~1 ✅ Убирает последний коммит, но оставляет изменения в staged — можно поправить и снова закоммитить. 💥 2. Запушил коммит с багом, нужно отменить на сервере Ситуация: баг ушёл в main, надо быстро отменить. Решение: git revert <hash> ✅ Создаёт новый коммит, который отменяет изменения указанного. Без force-push, удобно в команде. 🕵️ 3. Нужно достать файл из старого коммита, но не откатывать всё Ситуация: удалили/изменили важный файл, а он был раньше. Решение: git checkout <commit_hash> -- путь/к/файлу ✅ Извлекает конкретный файл без изменения текущей ветки. Можно сохранить, сравнить, закоммитить. 📌 Все три команды — незаменимые штуки в повседневной работе. Можно сохранить себе как Git-аптечку. ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg
166
13
9 лучших практик разработки микросервисов При разработке микросервисов рекомендуется придерживаться следующих практик: 1. Исп
9 лучших практик разработки микросервисов При разработке микросервисов рекомендуется придерживаться следующих практик: 1. Используйте отдельное хранилище данных для каждого микросервиса 2. Поддерживайте одинаковый уровень зрелости кода 3. Выполняйте отдельную сборку для каждого микросервиса 4. Назначайте каждому микросервису одну ответственность 5. Разворачивайте микросервисы в контейнерах 6. Проектируйте сервисы без сохранения состояния (stateless) 7. Используйте предметно-ориентированное проектирование (DDD) 8. Проектируйте микрофронтенды 9. Организуйте оркестрацию микросервисов ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg
185
14
Visualgo — это интерактивный учебный ресурс, посвящённый визуализации алгоритмов и структур данных. 📚 Структуры данных: - Ма
Visualgo — это интерактивный учебный ресурс, посвящённый визуализации алгоритмов и структур данных. 📚 Структуры данных: - Масивы - Связные списки - Стеки и очереди - Деки - Хеш-таблицы - Деревья (BST, AVL, красно-черные и др.) - Кучи - Графы (в виде списков и матриц смежности) ⚙️ Алгоритмы: - Сортировки (bubble, merge, quick и др.) - Поиск (линейный, бинарный) - Графовые алгоритмы: - Поиск в ширину (BFS) - Поиск в глубину (DFS) - Алгоритмы кратчайшего пути (Dijkstra, Bellman-Ford) - Алгоритмы остовных деревьев (Prim, Kruskal) https://visualgo.net/en ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg
192
15
Алиасы (псевдонимы)- это лучший способ сэкономить время и не печатать длинные команды по сто раз в день. Вы можете добавить их в свой глобальный конфиг Git одной командой: git config --global alias.имя_алиаса "команда" Вот подборка самых полезных алиасов, разделенных по назначению: 1. Сокращения для базы Самые часто используемые команды до одной-двух букв. • st - быстрый статус: git config --global alias.st "status -s" (флаг -s делает вывод компактным). • co - переключение веток: git config --global alias.co "checkout". • cm - коммит с сообщением: git config --global alias.cm "commit -m". • br - список веток: git config --global alias.br "branch". 2. Визуализация логов (Красивый граф) Стандартный git log часто выглядит перегруженным. Этот алиас рисует понятное дерево проекта: • lg: git config --global alias.lg "log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all" 3. Работа с изменениями • unstage - если случайно добавили файл в индекс (git add), этот алиас его «вытащит»: git config --global alias.unstage "reset HEAD --" • last - посмотреть детали последнего коммита: git config --global alias.last "log -1 HEAD --stat" • amend - если забыли что-то добавить в последний коммит или опечатались в сообщении (без открытия редактора): git config --global alias.amend "commit --amend --no-edit" 4. Для DevOps и автоматизации • pur - подтянуть изменения и «перебазировать» свои сверху (чистая история без лишних merge-коммитов): git config --global alias.pur "pull --rebase" • ec - быстро открыть конфиг гит для редактирования: git config --global alias.ec "config --global -e" Как посмотреть все свои алиасы? Просто введите: git config --get-regexp alias 💡Если вы работаете в Linux/macOS, также полезно добавить алиас в ваш шелл (.bashrc или .zshrc), чтобы не писать даже слово git. Например: alias g='git'. Тогда статус можно будет проверить просто командой g st. ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg
184
16
⚡️ Совет по работе с базами данных 💡 Уникальные индексы с исключением определенных строк Создание уникальных индексов в неко
⚡️ Совет по работе с базами данных 💡 Уникальные индексы с исключением определенных строк Создание уникальных индексов в некоторых случаях невозможно из-за дублирования значений - например, в строках, помеченных как «мягко удаленные» (soft-deleted). Исключив такие строки из индекса, можно корректно настроить ограничение уникальности. В MySQL частичные уникальные индексы (unique partial indexes) требуют эмуляции. В современных базах данных часто используется паттерн Soft Delete, когда данные не удаляются физически, а помечаются флагом is_deleted = true. Если вы хотите, чтобы поле email было уникальным только для активных пользователей, обычный уникальный индекс выдаст ошибку при попытке регистрации нового пользователя с почтой, которая уже есть в «корзине». Использование частичного индекса решает эту проблему, позволяя игнорировать помеченные на удаление записи. Нюанс для MySQL: В отличие от PostgreSQL или SQL Server, MySQL не поддерживает синтаксис WHERE внутри команды CREATE INDEX. Чтобы добиться такого же поведения, разработчики обычно используют: • Виртуальные колонки (Generated Columns): создается колонка, которая принимает значение только если запись активна, и на нее вешается уникальный индекс. • Составные индексы: включение флага удаления или временной метки в сам индекс. ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg
244
17
🐳 Как на самом деле работает Docker? Взгляд изнутри Мы привыкли писать в терминале docker run и магия происходит сама собой.
🐳 Как на самом деле работает Docker? Взгляд изнутри Мы привыкли писать в терминале docker run и магия происходит сама собой. Но что стоит за этими командами? Давайте разберем архитектуру Docker на одной наглядной схеме. Все держится на трех китах: 1️⃣ Docker Client - это ваш терминал. Вы отдаете приказы (build, pull, run), а клиент передает их главному исполнителю. 2️⃣ Docker Host - «мозги» и «мускулы» системы. Здесь живет Daemon, который слушает команды клиента и управляет объектами: 🔴Images (Образы): Чертежи или слепки ваших приложений (MySQL, Nginx, Ubuntu). 🔴Containers (Контейнеры): Запущенные версии этих образов (живые процессы). 3️⃣ Docker Registry - склад (например, Docker Hub). Здесь хранятся образы, доступные всему миру или вашей команде. 🎨 Что значат стрелки на схеме? 🔹 Build (Синяя): Клиент командует собрать образ из Dockerfile. Демон создает его на хосте. 🔸 Push (Оранжевая): Готовый образ отправляется с хоста в реестр (в облако). 💖 Pull (Розовая): Нужно скачать образ? Демон тянет его из реестра к себе на хост. 💚 Run (Зеленая): Самая частая команда. Демон берет локальный образ и разворачивает из него рабочий контейнер. 📌 Сохраняй шпаргалку в «Избранное», чтобы не путаться в потоках данных! #docker #devops #шпаргалка #обучение ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg
243
18
С++ фреймворк для описания пайплайнов распределенных вычислений Огромное количество С++ кода в Яндексе можно описать словами
С++ фреймворк для описания пайплайнов распределенных вычислений Огромное количество С++ кода в Яндексе можно описать словами «распределенные вычисления». Доклад посвящен активно разрабатываемому сейчас С++ фреймворку, вдохновленному библиотеками std::ranges и Apache Beam. Этот фреймворк позволяет достаточно компактно и просто описывать такие процессы и запускать их в MapReduce-режиме для обработки таблиц данных или в real-time режиме для обработки бесконечных потоков (очередей) данных. Доклад не предполагает знакомства с какими-либо специфичными технологиями. Он будет полезен разработчикам и пользователям различных распределенных систем обработки данных и тем, кто интересуется этой темой. источник ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg
260
19
Claude Fable 5 ОТКЛЮЧИЛИ для всех Правительство США, ссылаясь на полномочия в сфере национальной безопасности, выпустило дире
Claude Fable 5 ОТКЛЮЧИЛИ для всех Правительство США, ссылаясь на полномочия в сфере национальной безопасности, выпустило директиву экспортного контроля, предписывающую приостановить любой доступ к Fable 5 и Mythos 5 для всех иностранных граждан — как находящихся в США, так и за их пределами, включая иностранных сотрудников Anthropic. Фактически это распоряжение означает, что мы должны срочно отключить Fable 5 и Mythos 5 для всех наших клиентов, чтобы обеспечить соблюдение требований. Доступ ко всем остальным моделям Claude не затронут. Приносим извинения нашим клиентам за это нарушение работы. Мы считаем, что произошла ошибка или недоразумение, и работаем над тем, чтобы восстановить доступ как можно скорее. ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg
299
20
🖥 Пишем свою операционную систему с нуля. Серьезно. Многим кажется, что создание ОС это черная магия, доступная только избра
🖥 Пишем свою операционную систему с нуля. Серьезно. Многим кажется, что создание ОС это черная магия, доступная только избранным инженерам из Microsoft или создателям Linux. Но на самом деле, разобраться в том, как "железо" оживает после нажатия кнопки питания, может каждый разработчик. На GitHub лежит легендарный репозиторий os-tutorial, который буквально за руку проведет вас от пустого файла до работающего ядра. Это не теоретический учебник на 1000 страниц. Это набор последовательных шагов (от 01 до конца), где каждый новый урок наслаивается на предыдущий. Вы начинаете с того, что учите компьютер выводить "Hello World" без всякой ОС, и заканчиваете написанием простейшей файловой системы. Что вы изучите на практике: 🔴Boot sector: Как работает загрузочный сектор и почему в нем всего 512 байт. 🔴Assembly: Основы ассемблера x86 (без боли, только необходимое). 🔴Режимы процессора: Переход из 16-битного Real Mode в 32-битный Protected Mode. 🔴C Kernel: Как запустить C-код на "голом" железе. 🔴Драйверы: Написание простых драйверов для экрана и клавиатуры. 💡 Главная фишка: Автор объясняет почему мы делаем то или иное действие, а не просто дает код для копирования. Это идеальный способ понять, как работает компьютер "под капотом". Для старта не нужны глубокие знания, только Linux (или WSL), QEMU и желание разобраться. 🔗 Ссылка на репозиторий: https://github.com/cfenollosa/os-tutorial ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg
299