ar
Feedback

لا تقع ضحية للمخادعين! تيليمتريو يكتشف ويُميّز هذه القنوات 👉 إذا كنت تريد رؤية العلامة، اشترك

ITmozg

ITmozg

الذهاب إلى القناة على Telegram

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

إظهار المزيد
2 616
المشتركون
-124 ساعات
-57 أيام
-1630 أيام
جذب المشتركين
نوفمبر '26
نوفمبر '26
+2
في 0 قنوات
أكتوبر '26
+19
في 0 قنوات
Get PRO
سبتمبر '26
+18
في 0 قنوات
Get PRO
أغسطس '26
+22
في 0 قنوات
Get PRO
يوليو '26
+17
في 0 قنوات
Get PRO
يونيو '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 قنوات
التاريخ
نمو المشتركين
الإشارات
القنوات
12 نوفمبر0
11 نوفمبر0
10 نوفمبر0
09 نوفمبر+1
08 نوفمبر0
07 نوفمبر0
06 نوفمبر0
05 نوفمبر0
04 نوفمبر0
03 نوفمبر0
02 نوفمبر0
01 نوفمبر+1
منشورات القناة
В чем разница между Latency, Throughput и Bandwidth? Разбираемся раз и навсегда 🌐 Часто видишь эти термины в требованиях к серверам или при замере скорости интернета, но всё еще путаешь их между собой? Давай закроем этот гештальт с помощью одной простой аналогии - автомобильного шоссе. 📌 1. Latency (Задержка) • Что это: Время, за которое один пакет данных долетает от отправителя к получателю. • Аналогия: Скорость одной машины. Если дорога пустая и ты жмешь на газ, машина доедет быстро. В сетях это измеряется в миллисекундах (ms). Чем меньше задержка, тем быстрее открываются сайты и тем меньше «пингует» в онлайн-играх. • На инфографике: 40 ms. 📌 2. Bandwidth (Ширина канала) • Что это: Максимальная теоретическая вместимость сети. То, за что ты платишь провайдеру (например, «интернет до 100 Мбит/с»). • Аналогия: Количество полос на шоссе. Чем больше полос, тем больше машин в теории могут ехать одновременно. Но это не значит, что они будут ехать быстро, если впереди пробка. • На инфографике: 100 Mbps. 📌 3. Throughput (Реальная пропускная способность) • Что это: Количество данных, которое фактически доставляется за единицу времени. • Аналогия: Реальное количество машин, которое успевает пересечь мост за минуту с учетом пробок, аварий и сужений дороги. Из-за потерь пакетов и сетевых протоколов throughput почти всегда меньше, чем bandwidth. • На инфографике: 62 Mbps. 🤖 Короткий итог для собеседований: • Bandwidth - сколько полос на дороге. • Throughput - сколько машин реально едет по дороге прямо сейчас. • Latency - сколько времени занимает поездка у одной машины. Сохраняй картинку, чтобы не потерять! 💾 ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg

2
🔍 Мини-гайд: Индексы в 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
125
3
Архитектура Docker состоит из трех основных компонентов 🔹 Клиент Docker Это интерфейс, через который осуществляется взаимоде
Архитектура Docker состоит из трех основных компонентов 🔹 Клиент Docker Это интерфейс, через который осуществляется взаимодействие с пользователями. Он взаимодействует с демоном Docker. 🔹 Docker Host Здесь демон Docker принимает запросы Docker API и управляет различными объектами Docker, включая образы, контейнеры, сети и тома. 🔹 Реестр Docker Здесь хранятся образы Docker. Например, широко используется публичный реестр Docker Hub. ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg
177
4
Как работают сертификаты? Как подтверждается соединение? ⚫️ Браузер или сервер (клиент) пытается подключиться к веб-сайту (веб-серверу), защищенному с помощью SSL. ⚫️ Клиент запрашивает идентификацию у веб-сервера. ⚫️ В ответ веб-сервер отправляет копию своего SSL-сертификата и публичный ключ. ⚫️ Клиент проверяет, является ли этот SSL-сертификат доверенным. В него зашиты сервера с помощью которых нужно производить проверку, с помощью центров сертификации. Если это так, он сообщает об этом веб-серверу. Генерирует сеансовый ключ, шифрует публичным ключом и отправляет на сервер. ⚫️ Сервер расшифровывает сообщение и сохраняет сеансовый ключ. Затем веб-сервер возвращает подтверждение с цифровой подписью и начинает сеанс, зашифрованный с использованием SSL. ⚫️ Зашифрованные данные используются совместно браузером или сервером и веб-сервером. Этот процесс иногда называют подтверждением SSL-соединения. Хотя по описанию этот процесс выглядит длительным, в реальности он занимает миллисекунды. ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg
216
5
Все о DHCP! 1- 🌐 DHCP (Dynamic Host Configuration Protocol) - это ключевой игрок в управлении сетью, упрощающий процесс назначения IP-адресов и связанной с ними информации о конфигурации устройств. 2- 🔗 DHCP работает по модели клиент-сервер. Когда устройство (клиент) подключается к сети, оно отправляет запрос DHCP. В ответ DHCP-сервер предоставляет клиенту IP-адрес, маску подсети, основной шлюз, DNS-серверы и многое другое. Это как цифровой приветственный пакет! 3- 🔄 DHCP динамически распределяет IP-адреса, что позволяет избежать головной боли, связанной с ручной настройкой. Такая гибкость особенно удобна в больших сетях, где назначение IP-адресов вручную было бы непрактичным. 4-💡 DHCP использует механизм аренды. Сервер предоставляет клиенту IP-адрес в аренду на определенный срок. Когда срок аренды истекает, клиент должен продлить его. В противном случае IP-адрес возвращается в пул доступных адресов. 5- 📑 Сообщения DHCP включают в себя Discover, Offer, Request и Acknowledge. Клиент отправляет сообщение Discover, чтобы найти сервер, а сервер отвечает сообщением Offer. Клиент запрашивает предложенный IP-адрес, а сервер подтверждает. 6- 🏢 В сети может существовать несколько DHCP-серверов. Чтобы предотвратить конфликты, клиенты DHCP следуют процессу выбора сервера, гарантируя, что они не примут конфликтующие предложения. Это похоже на выбор лучшего сигнала WiFi в переполненном районе! 7- 🚀 DHCP поддерживает IPv4 и IPv6, адаптируясь к развивающимся технологиям. IPv6 с его расширенным адресным пространством обеспечивает актуальность DHCP в постоянно развивающемся цифровом ландшафте. 8- 🔒 Безопасность DHCP очень важна. Несанкционированные серверы DHCP могут посеять хаос, поэтому такие методы, как DHCP snooping, помогают выявить и смягчить потенциальные угрозы. Это как вышибалы на входе в сеть, чтобы держать все под контролем! 9- 📚 Понимание DHCP является основополагающим для сетевых администраторов и ИТ-специалистов. Это безмолвный герой, который обеспечивает бесперебойное подключение наших устройств к огромной паутине сетей и их взаимодействие. 10- 🔄 Знаете ли вы? DHCP не только назначает IP-адреса, но и предоставляет такую информацию, как адреса DNS-серверов и шлюзов по умолчанию. Это все равно что получить карту и ключ для навигации по огромному ландшафту Интернета! 11- 🌐 Агенты ретрансляции DHCP расширяют зону действия серверов DHCP в разных сетях. Когда клиент находится в другой подсети, агенты ретрансляции пересылают сообщения DHCP, обеспечивая бесперебойную связь. Думайте о них как об эффективных перевозчиках почты для цифровых адресов! 12- 🔍 Устранение проблем с DHCP? Проверьте журналы событий! Серверы DHCP регистрируют важные события, помогая администраторам выявлять и устранять проблемы. Это как сетевой детектив, который оставляет улики для беспрепятственного расследования. 13- 📈 Масштабируемость - сильная сторона DHCP. От небольших домашних сетей до огромных корпоративных комплексов - DHCP легко масштабируется, управляя IP-адресами для нескольких устройств или тысяч. Универсальность на высоте! 14- 🔄 DHCP может работать наряду со статическими IP-адресами. Некоторым устройствам, например серверам или принтерам, может быть полезен фиксированный адрес. DHCP позволяет им сосуществовать, обеспечивая лучшее из двух миров - гибкость и стабильность! ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg
225
6
Postgres против MySQL. Postgres спроектирован как единая, целостная система, и этот архитектурный подход определяет принципы
Postgres против MySQL. Postgres спроектирован как единая, целостная система, и этот архитектурный подход определяет принципы работы всех остальных компонентов. Данные хранятся в виде «кучи» (heap), где могут одновременно существовать несколько версий одной и той же строки. При обновлении создаются новые версии, а старые сохраняются до тех пор, пока не будут удалены в процессе очистки (VACUUM). Механизм MVCC (многоверсионное управление параллельным доступом) встроен непосредственно в модель данных, что открывает широкие возможности для индексации и расширения функциональности. В основе MySQL лежит архитектура с подключаемыми модулями хранения (storage engines). Уровень SQL находится «сверху», а за хранение данных отвечает движок InnoDB. Старые версии строк хранятся в журналах отката (undo logs) и восстанавливаются по мере необходимости. Данные организованы в виде кластеризованного индекса, где первичный ключ определяет их физическое расположение. ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg
239
7
🤖 Разработчик Telegram предложил увольнять программистов, которые продолжают писать код вручную. По его словам, искусственный интеллект уже генерирует 99,9% кода клиентских приложений мессенджера. Майк, занимающийся разработкой Telegram для macOS, рассказал, что нейросеть Claude всего за одну ночь адаптировала приложение под складной iPhone Duo. А сайт Gram, по его утверждению, полностью создали с помощью ИИ за один день. Теперь в компании программированием занимаются даже дизайнеры, используя нейросети. 🔐 На опасения по поводу безопасности разработчик ответил, что искусственный интеллект самостоятельно обнаруживает и устраняет уязвимости. 💻 Похоже, умение писать код вручную скоро перестанет быть главным навыком программиста. ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg
292
8
🧱 Пишем Тетрис на 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
248
9
Как работает SSH ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg
Как работает SSH ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg
274
10
💡 Универсальная шпаргалка по SQL ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg+7
💡 Универсальная шпаргалка по SQL ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg
382
11
5 малоизвестных Git-приёмов, которые спасут вашу жизнь 1️⃣ git reflog — история всех ваших шагов Не только коммиты, но и пере
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
248
12
🚀 Подборка полезных 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.ru/channel_win_sysadmin Системный Администратор Windows https://max.ru/channel_linux_admin Linux: Системный администратор https://max.ru/channel_linuxmod Linux https://max.ru/channel_i_linux Системный администратор https://max.ru/channel_devopslib DevOps, SRE, Sysadmin https://max.ru/channel_devops_star DevOps Star (Звезда Девопса) Excel лайфхак 📌 https://t.me/Excel_lifehack Excel лайфхак Английский с нуля 🇬🇧 https://max.ru/UchuEnglish 1C разработка 📌 https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С https://max.ru/channel_DevLab1C 1С:Предприятие 8 Программирование C++📌 https://max.ru/cpp_lib Библиотека C/C++ разработчика https://max.ru/channel_cpp_geek C++ geek Программирование Go📌 https://max.ru/golang_lib Библиотека Go (Golang) разработчика Программирование React📌 https://max.ru/react_lib React Программирование Rust📌 https://max.ru/channel_rust_lib Программирование Python 📌 https://max.ru/python_of Python академия. https://max.ru/BookPython Библиотека Python разработчика Java разработка 📌 https://max.ru/bookjava Библиотека Java разработчика https://max.ru/channel_java_geek Java Geek 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 Обучающие видео, книги по Физике и Математике Вакансии в IT📌 https://max.ru/progjob https://max.ru/channel_rabotait Мир технологий 📌 https://max.ru/mir_teh Канал для любознательных Городские📌 https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга https://max.ru/mockva_life Свежие новости Москвы https://max.ru/piterspb Питер Новости: Санкт-Петербург / СПБ / ДТП https://max.ru/channel_krasnodar_novosty Краснодар Новости https://max.ru/channel_novosibirsk_novosti Новосибирск https://max.ru/channel_samara_novosti Новости Самары https://max.ru/channel_ekaterinburg_novosti Новости Екатеринбурга https://max.ru/channel_kazan_novosti Новости Казани https://max.ru/channel_omsk_novosti Новости Омска https://max.ru/channel_moskva_24 Москва 24
174
13
Пишем собственную виртуальную машину В этом руководстве я научу вас, как написать собственную виртуальную машину (VM), котора
Пишем собственную виртуальную машину В этом руководстве я научу вас, как написать собственную виртуальную машину (VM), которая сможет выполнять программы на языке ассемблера, такие как игра моего друга "2048" или мой Roguelike. Если вы умеете программировать, но хотите лучше понять, что происходит внутри компьютера, и глубже разобраться, как работают языки программирования, то этот проект для вас. Написание собственной виртуальной машины может показаться сложной задачей, но я обещаю, что вы найдете это удивительно простым и познавательным. Конечный код занимает около 250 строк на C (unix, windows). Все, что вам нужно знать, — это как читать базовый C или C++ и выполнять двоичную арифметику. https://justinmeiners.github.io/lc3-vm/ ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg
223
14
Паттерн Saga автор: roadofbugs ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg
Паттерн Saga автор: roadofbugs ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg
238
15
🦾 CyberScraper 2077 - собираем данные с сайтов с помощью LLM Открываешь страницу и пишешь: «Собери названия товаров, цены и
🦾 CyberScraper 2077 - собираем данные с сайтов с помощью LLM Открываешь страницу и пишешь: «Собери названия товаров, цены и ссылки в таблицу». Такой сценарий предлагает CyberScraper 2077 - открытый инструмент для веб-скрейпинга с интерфейсом на Streamlit. Что умеет: 🔹 Использовать OpenAI, Gemini и локальные модели через Ollama. Есть подключение моделей через LiteLLM. 🔹 Извлекать и структурировать данные по текстовому запросу. 🔹 Экспортировать результат в JSON, CSV, HTML, SQL и Excel, а также загружать CSV в Google Sheets. 🔹 Собирать данные с нескольких страниц: можно задавать диапазоны и шаблоны URL. Функция пока в бета-версии. 🔹 Кэшировать содержимое и запросы, сокращая повторные обращения к API. 🔹 Работать с .onion-сайтами через отдельно настроенный Tor. 🐳 Запуск: Python 3.10+ или Docker. Для Windows автор рекомендует контейнер. ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg
247
16
📌3 частых ситуации с Git и как их разрулить 🔁 1. Случайно закоммитил не то и хочу откатиться Ситуация: сделал коммит, понял, что рано. Решение: git reset --soft HEAD~1 ✅ Убирает последний коммит, но оставляет изменения в staged — можно поправить и снова закоммитить. 💥 2. Запушил коммит с багом, нужно отменить на сервере Ситуация: баг ушёл в main, надо быстро отменить. Решение: git revert <hash> ✅ Создаёт новый коммит, который отменяет изменения указанного. Без force-push, удобно в команде. 🕵️ 3. Нужно достать файл из старого коммита, но не откатывать всё Ситуация: удалили/изменили важный файл, а он был раньше. Решение: git checkout <commit_hash> -- путь/к/файлу ✅ Извлекает конкретный файл без изменения текущей ветки. Можно сохранить, сравнить, закоммитить. 📌 Все три команды — незаменимые штуки в повседневной работе. Можно сохранить себе как Git-аптечку. ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg
267
17
Что происходит, когда вы вводите URL в браузер? В процесс вовлечены: браузер, операционная система вашего компьютера, интерне
Что происходит, когда вы вводите URL в браузер? В процесс вовлечены: браузер, операционная система вашего компьютера, интернет-провайдер, сервер, где размещён сайт, и сервисы, работающие на этом сервере. 1. Вы вводите https://somewebsite.com/page в браузере и нажимаете Enter Здесь https:// — это схема, указывающая браузеру подключаться к серверу с использованием TLS. somewebsite.com — доменное имя сайта, которое указывает на конкретный IP-адрес сервера. А /page — путь к нужному ресурсу. 2. Браузер ищет IP-адрес домена После того как вы ввели URL и нажали Enter, браузеру нужно определить, к какому серверу в Интернете подключиться. Для этого он ищет IP-адрес по доменному имени с помощью DNS-запроса. Сначала проверяется кэш, если записи там нет — запрос уходит к DNS-серверам (от корневого до серверов 3-го уровня). 3. Браузер устанавливает TCP-соединение с сервером Протокол TCP используется для маршрутизации пакетов: от запроса браузера — через роутер, провайдера, интернет-обменники и сети — до сервера с нужным IP-адресом. Чтобы ускорить доставку, многие сайты используют CDN, кэширующие контент ближе к пользователю. 4. Браузер отправляет HTTP-запрос на сервер После установления соединения браузер начинает взаимодействовать по протоколу HTTP(s). Он отправляет HTTP-запрос, который состоит из стартовой строки, заголовков и тела. По этим данным сервер определяет, что именно хочет клиент. 5. Сервер обрабатывает запрос и отправляет ответ Сервер принимает запрос, анализирует строку, заголовки и тело. Для GET /page/ HTTP/1.1 сервер находит соответствующий ресурс, формирует ответ и возвращает его клиенту вместе с HTTP-статусом. 6. Браузер рендерит контент Получив ответ, браузер смотрит на заголовки, чтобы понять, как обработать ресурс. Например, Content-Type указывает, что в теле ответа находится HTML-страница, которую и нужно отрисовать. ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg
249
18
Visualgo - это интерактивный учебный ресурс, посвящённый визуализации алгоритмов и структур данных. 📚 Структуры данных: - Ма
Visualgo - это интерактивный учебный ресурс, посвящённый визуализации алгоритмов и структур данных. 📚 Структуры данных: - Масивы - Связные списки - Стеки и очереди - Деки - Хеш-таблицы - Деревья (BST, AVL, красно-черные и др.) - Кучи - Графы (в виде списков и матриц смежности) ⚙️ Алгоритмы: - Сортировки (bubble, merge, quick и др.) - Поиск (линейный, бинарный) - Графовые алгоритмы: - Поиск в ширину (BFS) - Поиск в глубину (DFS) - Алгоритмы кратчайшего пути (Dijkstra, Bellman-Ford) - Алгоритмы остовных деревьев (Prim, Kruskal) https://visualgo.net/en ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg
230
19
Алиасы (псевдонимы)- это лучший способ сэкономить время и не печатать длинные команды по сто раз в день. Вы можете добавить их в свой глобальный конфиг 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
261
20
⚡️ Совет по работе с базами данных 💡 Уникальные индексы с исключением определенных строк Создание уникальных индексов в неко
⚡️ Совет по работе с базами данных 💡 Уникальные индексы с исключением определенных строк Создание уникальных индексов в некоторых случаях невозможно из-за дублирования значений - например, в строках, помеченных как «мягко удаленные» (soft-deleted). Исключив такие строки из индекса, можно корректно настроить ограничение уникальности. В MySQL частичные уникальные индексы (unique partial indexes) требуют эмуляции. В современных базах данных часто используется паттерн Soft Delete, когда данные не удаляются физически, а помечаются флагом is_deleted = true. Если вы хотите, чтобы поле email было уникальным только для активных пользователей, обычный уникальный индекс выдаст ошибку при попытке регистрации нового пользователя с почтой, которая уже есть в «корзине». Использование частичного индекса решает эту проблему, позволяя игнорировать помеченные на удаление записи. Нюанс для MySQL: В отличие от PostgreSQL или SQL Server, MySQL не поддерживает синтаксис WHERE внутри команды CREATE INDEX. Чтобы добиться такого же поведения, разработчики обычно используют: • Виртуальные колонки (Generated Columns): создается колонка, которая принимает значение только если запись активна, и на нее вешается уникальный индекс. • Составные индексы: включение флага удаления или временной метки в сам индекс. ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg
233