ru
Feedback

Не попадитесь на канал ботавода! Telemetrio находит и помечает такие каналы 👉 Хотите видеть метку — оформите подписку

ITmozg

ITmozg

Открыть в Telegram

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

Больше
2 631
Подписчики
Нет данных24 часа
-37 дней
-230 дней
Архив постов
ITmozg
2 631
Как работает SSH ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg

ITmozg
2 631
💡 Универсальная шпаргалка по SQL ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg
+7
💡 Универсальная шпаргалка по SQL ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg

ITmozg
2 631
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

ITmozg
2 631
🚀 Подборка полезных 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

ITmozg
2 631
Пишем собственную виртуальную машину В этом руководстве я научу вас, как написать собственную виртуальную машину (VM), котора
Пишем собственную виртуальную машину В этом руководстве я научу вас, как написать собственную виртуальную машину (VM), которая сможет выполнять программы на языке ассемблера, такие как игра моего друга "2048" или мой Roguelike. Если вы умеете программировать, но хотите лучше понять, что происходит внутри компьютера, и глубже разобраться, как работают языки программирования, то этот проект для вас. Написание собственной виртуальной машины может показаться сложной задачей, но я обещаю, что вы найдете это удивительно простым и познавательным. Конечный код занимает около 250 строк на C (unix, windows). Все, что вам нужно знать, — это как читать базовый C или C++ и выполнять двоичную арифметику. https://justinmeiners.github.io/lc3-vm/ ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg

ITmozg
2 631
Паттерн Saga автор: roadofbugs ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg

ITmozg
2 631
🦾 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

ITmozg
2 631
📌3 частых ситуации с Git и как их разрулить 🔁 1. Случайно закоммитил не то и хочу откатиться Ситуация: сделал коммит, понял, что рано. Решение:

git reset --soft HEAD~1
✅ Убирает последний коммит, но оставляет изменения в staged — можно поправить и снова закоммитить. 💥 2. Запушил коммит с багом, нужно отменить на сервере Ситуация: баг ушёл в main, надо быстро отменить. Решение:

git revert <hash>
✅ Создаёт новый коммит, который отменяет изменения указанного. Без force-push, удобно в команде. 🕵️ 3. Нужно достать файл из старого коммита, но не откатывать всё Ситуация: удалили/изменили важный файл, а он был раньше. Решение:

git checkout <commit_hash> -- путь/к/файлу
✅ Извлекает конкретный файл без изменения текущей ветки. Можно сохранить, сравнить, закоммитить. 📌 Все три команды — незаменимые штуки в повседневной работе. Можно сохранить себе как Git-аптечку. ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg

ITmozg
2 631
Что происходит, когда вы вводите 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

ITmozg
2 631
Visualgo - это интерактивный учебный ресурс, посвящённый визуализации алгоритмов и структур данных. 📚 Структуры данных: - Масивы - Связные списки - Стеки и очереди - Деки - Хеш-таблицы - Деревья (BST, AVL, красно-черные и др.) - Кучи - Графы (в виде списков и матриц смежности) ⚙️ Алгоритмы: - Сортировки (bubble, merge, quick и др.) - Поиск (линейный, бинарный) - Графовые алгоритмы: - Поиск в ширину (BFS) - Поиск в глубину (DFS) - Алгоритмы кратчайшего пути (Dijkstra, Bellman-Ford) - Алгоритмы остовных деревьев (Prim, Kruskal) https://visualgo.net/en ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg

ITmozg
2 631
Алиасы (псевдонимы)- это лучший способ сэкономить время и не печатать длинные команды по сто раз в день. Вы можете добавить их в свой глобальный конфиг 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

ITmozg
2 631
⚡️ Совет по работе с базами данных 💡 Уникальные индексы с исключением определенных строк Создание уникальных индексов в неко
⚡️ Совет по работе с базами данных 💡 Уникальные индексы с исключением определенных строк Создание уникальных индексов в некоторых случаях невозможно из-за дублирования значений - например, в строках, помеченных как «мягко удаленные» (soft-deleted). Исключив такие строки из индекса, можно корректно настроить ограничение уникальности. В MySQL частичные уникальные индексы (unique partial indexes) требуют эмуляции. В современных базах данных часто используется паттерн Soft Delete, когда данные не удаляются физически, а помечаются флагом is_deleted = true. Если вы хотите, чтобы поле email было уникальным только для активных пользователей, обычный уникальный индекс выдаст ошибку при попытке регистрации нового пользователя с почтой, которая уже есть в «корзине». Использование частичного индекса решает эту проблему, позволяя игнорировать помеченные на удаление записи. Нюанс для MySQL: В отличие от PostgreSQL или SQL Server, MySQL не поддерживает синтаксис WHERE внутри команды CREATE INDEX. Чтобы добиться такого же поведения, разработчики обычно используют: • Виртуальные колонки (Generated Columns): создается колонка, которая принимает значение только если запись активна, и на нее вешается уникальный индекс. • Составные индексы: включение флага удаления или временной метки в сам индекс. ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg

ITmozg
2 631
🐳 Как на самом деле работает 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

ITmozg
2 631
🖥 Пишем свою операционную систему с нуля. Серьезно. Многим кажется, что создание ОС это черная магия, доступная только избра
🖥 Пишем свою операционную систему с нуля. Серьезно. Многим кажется, что создание ОС это черная магия, доступная только избранным инженерам из 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 #github #os #lowlevel #assembly #cpp #tutorial ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg

ITmozg
2 631
Сборка C++ проектов. Оптимизации компилятора. Inline, constexpr, alignment. Game Engine серии 0:00:00 - Введение 0:02:26 - Дизассемблер 0:09:31 - Общие оптимизации 0:20:46 - Inline 0:35:24 - Constexpr 0:45:28 - Compile-time raytracer 0:52:40 - Internal vs. external linkage 0:55:18 - Выравнивание структур 1:06:46 - Pragma optimize источник ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg

ITmozg
2 631
Как выполняются SQL-запросы 👨‍💻 Порядок выполнения SQL-запроса определяет последовательность выполнения различных частей запроса SQL. Этот порядок важен, потому что он определяет, как данные фильтруются, группируются и упорядочиваются. Вот упрощённое объяснение порядка выполнения SQL: 🔴FROM / JOIN - оператор FROM указывает таблицы, из которых будут извлечены данные. JOIN может использоваться для объединения данных из нескольких таблиц. 🔴WHERE - оператор WHERE используется для фильтрации данных по заданным условиям. 🔴GROUP BY - оператор GROUP BY группирует данные по одной или нескольким колонкам. 🔴HAVING - оператор HAVING фильтрует уже сгруппированные данные по условиям. 🔴SELECT - оператор SELECT определяет столбцы, которые будут возвращены в результат. 🔴DISTINCT - ключевое слово DISTINCT используется для возврата только уникальных строк. 🔴ORDER BY - оператор ORDER BY сортирует результаты по возрастанию или убыванию. 🔴LIMIT - оператор LIMIT ограничивает количество возвращаемых строк. ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg

ITmozg
2 631
♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg

ITmozg
2 631
Doom снова доказал, что его можно запустить буквально на чём угодно. На этот раз культовую игру умудрились открыть прямо в фавиконе — маленьком значке сайта, который отображается на вкладке браузера. https://vidferris.github.io/FaviconDoom/favicondoom.html ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg

ITmozg
2 631
🔌 API против SDK: В чем реальная разница? Мы часто слышим эти аббревиатуры вместе, но это не одно и то же. Давайте разберем
🔌 API против SDK: В чем реальная разница? Мы часто слышим эти аббревиатуры вместе, но это не одно и то же. Давайте разберем шпаргалку с картинки. 1️⃣ API (Application Programming Interface) На картинке сверху. Это «мессенджер». Набор правил, по которым одна программа может попросить что-то у другой. 🔴Задача: Обеспечить общение (To Communicate). 🔴Как это работает: Вы отправляете запрос (Request) на конкретный адрес (Endpoint) с определенными параметрами. Сервер отвечает (Response) данными (обычно JSON) или кодом ошибки. 🔴Пример: Ваше приложение доставки еды «стучится» в Google Maps API, чтобы просто показать точку на карте. Оно не строит карту само, оно просит её у Google. 2️⃣ SDK (Software Development Kit) На картинке снизу. Это «ящик с инструментами». Полноценный комплект для создания приложений под конкретную платформу (Android, iOS, Windows). 🔴Задача: Дать инструменты для стройки (Tool Box to Build Apps). 🔴Что внутри: SDK - это «старший брат». Он гораздо больше и обычно включает в себя API, а также библиотеки кода, документацию, дебаггеры и примеры. 🔴Пример: Чтобы написать приложение под Android на Kotlin, вам нужен Android SDK. Вы берете этот чемоданчик, достаете оттуда готовые кнопки, окна и инструменты для вызова API. 💡 Главное отличие в одной фразе: API - это интерфейс для взаимодействия с сервисом (как меню в ресторане), а SDK - это набор инструментов для создания чего-то нового (как полностью оборудованная кухня). ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg

ITmozg
2 631
FTXUI Простая кроссплатформенная библиотека C++ для пользовательских интерфейсов на базе терминала! • Функциональный стиль • Простой и элегантный синтаксис • Создаваемые консольные UI поддерживают навигацию с помощью клавиатуры и мыши • Поддержка UTF8 • Поддержка анимации • Поддержка рисования • Нет зависимостей • Кроссплатформенность: Linux/MacOS, WebAssembly, Windows https://github.com/ArthurSonzogni/FTXUI ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @itmozg