7565
Бесплатные лекции, курсы, книги, подкасты по программированию Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Другие наши проекты: https://tprg.ru/media
Scientific American собрали свежую статистику о том, как нейросети влияют на жизнь разработчиков. Изначально все надеялись, что ИИ разгрузит инженеров, но реальные цифры показывают обратную картину: программисты стали работать больше и чаще перерабатывать по вечерам.
Главные причины такого парадокса:
— Падает стабильность релизов. Нейросети выдают код мгновенно, но его нужно тщательно проверять. Отчёт DORA подтверждает, что активное использование ИИ напрямую связано с ростом откатов и горячих фиксов на проде.
— Растут ожидания руководства. Бизнес замечает ускорение и требует закрывать больше задач. В итоге инженеры берут дополнительный объем, а количество их коммитов в нерабочие часы выросло почти на 20%
— Усложняется отладка. Инженеры объективно хуже понимают сгенерированную логику. Когда такой код ломается, на поиск причин и исправление багов уходит гораздо больше сил.
Получается, что инструменты действительно ускоряют написание новых блоков, но вся экономия времени полностью сгорает на этапах тестирования и ревью. А если вы начинаете писать код быстрее, в качестве награды менеджеры просто накидывают вам больше новых тикетов.
Полная статья: https://www.scientificamerican.com/article/why-developers-using-ai-are-working-longer-hours/
@prog_stuff
Как эволюционировали OCR-программы
Инструменты для распознавания текста (OCR) появились еще в 1960-х, но только последние 20 лет они используются для чтения документов и облегчают нашу с вами жизнь.
За этот период направление получило мощное развитие: от простого считывания перешло к мультимодальной форензике и антифроду. Подробнее про историю этого увлекательного процесса можно прочитать в этой статье.
Разработчик из Mozilla Габриэле Свельто gabrielesvelto/116171750653898304">поделился технической статистикой о причинах падений Firefox. Некоторое время назад команда инженеров внедрила в браузер алгоритм для анализа краш-репортов, который умеет выявлять одиночные искажения битов в памяти.
Собранные данные показали неочевидную картину:
— система точно зафиксировала битфлипы в 5% всех отчётов об ошибках;
— по расчётам команды реальная доля таких инцидентов доходит до 10%.
Получается, что каждый десятый сбой браузера происходит не из-за ошибок в коде, а из-за физических проблем с оперативной памятью на устройствах пользователей. На обычных компьютерах крайне редко используется память с поддержкой коррекции ошибок (ECC), что неизбежно приводит к случайным искажениям данных.
Для нас как для разработчиков это полезный пример. Когда вы долго пытаетесь воспроизвести странный плавающий баг по логам клиента, проблема может скрываться не в написанной логике. Иногда приложение падает исключительно из-за случайного переключения одного бита на аппаратном уровне.
@prog_stuff
Никого не повышают за простоту
Инженер A делает фичу за два дня: пишет 50 строк понятного кода, тестирует, выкатывает.
Инженер B берёт ту же задачу, но строит «масштабируемую архитектуру»: добавляет pub/sub, новые абстракции и фреймворк для конфигурации. Тратит три недели.
На performance review работа B звучит как готовый кейс: «спроектировал масштабируемую событийно-ориентированную архитектуру, внедрил переиспользуемый слой абстракций». Работа A звучит как «сделал фичу X». Никто не получает повышение за ту сложность, которой он избежал.
Индустрия системно поощряет оверинжиниринг:
— На собеседованиях кандидаты рисуют сложные схемы с микросервисами и шардированием, потому что простое решение с одной БД кажется интервьюерам недостаточно «умным»
— На код-ревью простые решения обрастают абстракциями из-за вопросов коллег «а не стоит ли заложиться на будущее?»
В итоге код становится «профессиональнее», но не приносит пользу быстрее, а поддержка усложняется. Настоящая сеньорность — это не знание большего количества паттернов, а понимание, когда их не нужно применять.
Автор даёт совет: решение не строить сложную систему — это важное инженерное решение. Его нужно документировать. Вместо «сделал фичу X» пишите: «Оценил три подхода, включая event-driven архитектуру. Определил, что простое решение покрывает все текущие требования. Выкатил за 2 дня, 0 инцидентов за полгода».
Статья целиком: https://terriblesoftware.org/2026/03/03/nobody-gets-promoted-for-simplicity/
@prog_stuff
Последний день голосования в Tproger Award!
Две недели, 16 компаний, 4 номинации — спасибо, что читали, участвовали и лайкали. И отдельное спасибо, что голосовали! Вообще не представляем, что вы там наделали, уже узнать хочется!
Давайте сегодня зафиналим голосовалку и раздадим по максимуму золотых мышей. Интересно, расстановка сил сможет измениться за один день?
Если потеряли, то номинации вот:
— Продукт года
— Облачный продукт года
— ИТ-ивент года
— Дизайн года
Только сайт не положите, очень просим 🙏
Пойти голосовать: https://tprg.ru/bWfy
Лучший инженер ≠ хороший ментор
В педагогике есть термин «проклятие знания»: когда знаешь что-то слишком хорошо, ты буквально теряешь доступ к тому, каково это — не знать. Именно поэтому крутой разработчик может отлично писать код, но не уметь объяснить джуну, как он думает.
Мысли в статье такие:
🔘1-on-1 с сеньором в большинстве команд — это просто статус по проекту: как фича, есть ли блокеры. Выглядит как менторство, не является им
🔘Джуны задают технические вопросы: как алгоритм, почему запрос медленный. Но реальные тормоза роста обычно нетехнические: как работать с неопределённостью, как управлять ожиданиями, как не соглашаться с менеджером
🔘Эти вещи не спрашивают, потому что не знают, что они существуют. Нельзя попросить помощи с тем, о чём не подозреваешь
🔘Хороший ментор видит не только что джун делает, но и что тот не замечает в своих действиях. Это отдельный навык, который никто не развивает, потому что никто не просил
🔘Сеньора поставили менторить не потому что он умеет учить, а потому что он хорошо пишет код
Статья Simon Wang на Medium: https://levelup.gitconnected.com/stop-expecting-your-best-engineer-to-be-a-good-mentor-05eba3ff6c98
@prog_stuff
Давно пора выпустить новую версию cd
Кейсы из номинации «Дизайн года» ждут ваших голосов
Осталась ровно неделя до конца голосования в премии Tproger. Уже дико хочется узнать, кто в лидерах! Но даже мы в команде стараемся держать интригу. И чтобы скоротать время, давайте посмотрим на дизайнерские кейсы компаний:
— AcademiaDev представила интерактивную инсталляцию, которая разлетелась по СМИ и собрала 48 млн охвата.
— ИИ-платформа Сократик рассказала, как устроена их система по генерации готовых презентаций.
— Островок поделился, как они сделали отдельную айдентику для Ostrovok! Tech.
Какой кейс станет облачным продуктом года?
Давайте думать, подсказывайте голосовать! В этой номинации Tproger Awards также участвуют пять компаний. Вот статьи про их продукты:
👍ПАК виртуализации от Гравитона, который построен по гиперконвергентной архитектуре, что предусматривает простое и предсказуемое масштабирование.
👍ИИ-ассистент от Рунити, который начинался как внутренний продукт, но уже вышел на внешний рынок.
👍VPS от SmartApe, который помог онлайн-школе выдержать рост нагрузки в 5 раз.
👍Контейнерная платформа «Штурвал» от Лаборатории Числитель, благодаря которой система стала устойчива к высоким нагрузкам.
👍Облачная платформа от Selectel, которая позволяет компаниям самим управлять данными, подключать нужные сервисы в несколько кликов и иметь доступ к поддержке 24/7.
Выбираем лучший продукт года🐀
У нас в разгаре премия Tproger — в ней мы выбираем лучшие ИТ-разработки среди 16 компаний. Сегодня ближе знакомимся с участниками номинации «Продукт года».
В ней участвуют пять компаний. Изучаем:
👍ОТП Банк представляет ASOC-сканер, который спроектировал один разработчик за месяц.
👍Гравитон делится кейсом создания ПО мониторинга без агентов, который можно затестить бесплатно.
👍NetVision борется с недобросовестными самокатчиками с помощью платформы интеллектуального мониторинга СИМ.
👍Solar показывает appScreener, который вырос из стартапа до стандарта рынка; при работе над ним сотрудники получили научные степени.
👍Reksoft рассказывает о платформе Brain ERM, который помогает компаниям экономить до 70% времени на рутинных HR-операциях.
Ищут middle-разработчиков, а также тимлидов и senior-специалистов для онлайн-интервью в рамках исследования карьерного роста разработчиков уровня middle+, чтобы понять:
🔘 как на практике организовать работу, чтобы довести задачу до результата;
🔘 с какими трудностями сталкиваются мидл-разработчики;
🔘 как тимлиды на самом деле смотрят на рост мидлов.
Интервью занимает около 45 минут — это обычный разговор про реальный опыт, без «правильных» ответов.
➡️ Если вам есть что рассказать — можно написать сюда: /channel/kamalovaguz
Обзор облачных провайдеров с зарубежными дата-центрами, где можно платить в рублях. Внутри — сравнение по ценам, локациям и что у кого есть: GPU-серверы, S3-хранилища, Kubernetes, CDN.
Актуально, если нужен сервер за пределами РФ, а платить картой иностранному провайдеру не получается.
📎 https://tproger.ru/articles/arenda-oblaka-za-rubezhom-v-2026-godu--5-provajderov-s-oplatoj-v-rublyah
@prog_stuff
Документация для нейросетей — ключ к нормальному вайбкодингу
Статья о том, как структурировать документацию проекта так, чтобы LLM выдавала адекватный код, а не галлюцинации. Внутри — 5 готовых шаблонов, которые можно копировать в свой проект.
📎 https://tproger.ru/articles/sekret-effektivnogo-vajbkodinga---dokumentaciya-dlya-nejrosetej
@prog_stuff
Статья инженера из Modal (ex-Bloomberg, UIUC) «Тихая смерть хорошего кода» залетела в топ r/programming и HackerNews одновременно.
Тезис: ИИ-агенты пишут код, который работает, но не является хорошим. Раньше хороший код — это читаемый, минимальный, существующий ради конкретной причины. Сейчас всё чаще "acceptable" заменяет "good", потому что скорость важнее качества.
Из комментариев на HN:
🔘"Настоящая проблема большинства команд — не написание кода, а понимание того, что уже написанный код делает"
🔘"Аргумент другого лагеря: тебе не нужно понимать код, как не нужно понимать ассемблер"
📎 https://amit.prasad.me/blog/rip-good-code
@prog_stuff
Anthropic выпустили исследование про новый подход к работе с LLM — agent teams. 16 экземпляров Claude Opus 4.6 за 2 недели написали C-компилятор на 100 000 строк Rust-кода, способный собрать ядро Linux 6.9.
Затраты: $20 000 на API. Результат — полноценный компилятор с поддержкой x86-64, ARM64, RISC-V. Причём это clean-room реализация: у агентов не было доступа к интернету, код зависит только от стандартной библиотеки Rust.
Что умеет компилятор
🔘 Собирает PostgreSQL, SQLite, QEMU, FFmpeg, Redis, Doom
🔘 99% проходимость GCC torture test suite
🔘 Генерирует ELF-бинарники с DWARF debug info
Звучит впечатляюще, но есть пикантная деталь.
➡️ Компилирует Linux, но не hello world
GitHub Issue #1 показывает: компилятор не может собрать простейший hello world из-за ошибки:
/usr/include/stdio.h:34:10: error: stddef.h: No such file or directory
-I/usr/lib/gcc/.../include. В комментариях пишут: "Which you arguably shouldn't even have to do lmao".
Если вы когда-нибудь работали в кровавом энтерпрайзе на Java, этот репозиторий может вызвать у вас флешбеки и легкую панику. Разработчики создали пародийный проект FizzBuzz Enterprise Edition — ту самую задачу с собеседований про деление чисел на 3 и 5, но написанную «серьёзными бизнесменами для серьёзных бизнес-целей».
Вместо десяти строк кода авторы наворотили гигантскую архитектуру. Внутри бесконечные вложенные папки, десяток фабрик, интерфейсы для интерфейсов и классы с названиями в духе FizzBuzzOutputGenerationContextVisitor.
Отдельный вид искусства в этом проекте — раздел Issues. Пользователи активно подыгрывают авторам и создают гениальные тикеты. Например, кто-то пожаловался, что код написан слишком качественно и потребовал ухудшить его, чтобы соответствовать реальным индустриальным стандартам. Или предлагают уволить бизнес-аналитика, потому что он слишком понятно объяснил задачу, и требуют добавить больше уровней абстракции, чтобы никто не смог найти, откуда импортируется код.
@prog_stuff
Посмотрите на этот безумный проект. Полноценный эмулятор процессора архитектуры x86 на чистом CSS. Никакого JavaScript или WebAssembly, все вычисления происходят исключительно силами браузерного движка стилей.
Как это реализовано технически:
— эмулятор исполняет реальный машинный код для процессоров 8086;
— тактовый генератор построен на CSS-анимациях, поэтому система работает автономно и не требует от пользователя постоянно водить курсором по экрану;
— логика работает благодаря новым спецификациям CSS, таким как условные операторы if(), стилевые запросы и кастомные функции
Вы можете запустить в этом эмуляторе собственные программы. Достаточно написать код на C и прогнать его через GCC с помощью скрипта из репозитория автора. На выходе вы получите готовый HTML-файл со стилями, внутри которого будет крутиться ваш бинарник.
Практического применения у проекта нет, производительность получается крайне низкой. Зато это отличная демонстрация того, что современный CSS действительно стал тьюринг-полным языком программирования. Из-за использования экспериментальных функций запустить демку пока можно только в браузерах на базе Chromium.
@prog_stuff
Победителями премии Тпрогер 🐀становятся...
Здесь играет барабанная дробь и интригующая музыка... Вам нужно только выждать драматическую паузу перед объявлением победителей — в каждой номинации он один, и определяется большинством голосов. Готовы?
В номинации «Продукт года» золотая мышь достается компании:
🐀NetVision за платформу интеллектуального мониторинга СИМ.
В номинации «Облачный продукт года» побеждает компания:
🐀Гравитон с паком виртуализации «Гелиус»
Звание «IT-ивент года» вручается компании:
🐀Островок! за О!Хакатон
И в категории «Дизайн года» первое место занимает компания:
🐀AcademiaDev за интерактивную инсталляцию.
Каждый ваш лайк, голос влияли на исход премии. Давайте поддержим всех — ставьте 🏆участникам, которые хоть и не заняли призового места, но точно остались в сердечке.
И 🔥, если хотите аналогичных активностей и готовы выбирать еще!
Пару недель назад Андрей Карпаты написал скрипт MicroGPT — полноценную языковую модель с нуля на чистом Python, без единой внешней зависимости или библиотеки. В 200 строк уместился весь алгоритм, на котором работают большие модели вроде ChatGPT.
Разработчик GrowingSWE сделал из этого скрипта потрясающий интерактивный лонгрид. Он разобрал код по кусочкам и визуализировал каждый шаг прямо в браузере.
Каждый шаг алгоритма разобран и визуализирован прямо в браузере. Вы можете руками:
— Подвигать ползунки логитов и посмотреть, как Softmax превращает их в вероятности.
— Пройти по шагам backpropagation и увидеть, как модель понимает, куда крутить веса.
— Изучить матрицу Attention: как разные «головы» учатся обращать внимание на разные части слова.
Разница между этим скриптом и ChatGPT — только в масштабах (вместо триллионов токенов тут имена, а вместо сотен слоёв — парочка). Базовый цикл абсолютно тот же.
Интерактивный разбор: https://growingswe.com/blog/microgpt
@prog_stuff
Финал Tproger Awards уже близко! 🔥
Заканчивается февраль, и наше голосование за лучшие релизы года тоже подходит к концу.
К тем, кто вручил участникам золотые мыши, вопросов нет. Тех, кто еще не посещал премию, зовем предпоследний раз! Не упускайте возможность выбрать лучшую компанию года.
Напомним, что в премии четыре номинации, а все кейсы читаются легко и быстро. Так что вас ждет приключение ну буквально на 20 минут.
Голосуйте: https://tprg.ru/QtJE
Уве Фридрихсен (немецкий IT-архитектор и технический писатель с многолетним опытом) написал хороший антифомо-пост про ИИ. Суть: нет, вы не отстаёте, если не знаете наизусть все промпт-трюки и агентные фреймворки. Но полностью игнорировать тему тоже нельзя.
Про текущее состояние инструментов. Agentic AI пока ведёт себя как стажёр с СДВГ: задачу надо дробить, контекст давать многократно, и всё равно иногда что-то идёт не так. Это не катастрофа — это просто молодая технология в ранней стадии.
Про «секретные рецепты». Prompt engineering казался суперважным два года назад — целая индустрия курсов, вакансии с огромными зарплатами. Сегодня — практически бесполезное знание. Всё, что сейчас продают как «секрет успеха с ИИ», через год устареет точно так же.
Про настоящий риск. Не в том, что вы не знаете все трюки. А в том, чтобы не пропустить точки перегиба: первая — когда нужно добавить ИИ в арсенал (в разработке она уже пришла), вторая — когда ИИ станет доминирующей парадигмой. Кто проспал переход с DOS на Windows, начинал с нуля против конкурентов с годами опыта.
Вывод автора: не поддавайтесь фомо и не покупайте чужие «секретные соусы» за деньги. Но следите за эволюцией технологии достаточно внимательно, чтобы не пропустить момент, когда она действительно повзрослеет.
@prog_stuff
Где лучшие тусовки? На тех-ивентах!
Последняя по очереди, но не по значимости — номинация «IT-ивент года». Здесь тоже собрались три компании, и если вы еще не добрались до чтения их кейсов, то давайте сделаем это вместе.
— Лаборатория Числитель собрала конференцию, на которой обсуждают строго только K8s.
— Мероприятие Selectel, которое стало уже традицией, делали полностью in-house.
— Специально для своего хакатона Островок создал платформу, чтобы участвовать могли разработчики из любой точки мира.
Выбирайте компанию-фаворита и вручайте ей золотую мышь — голосование доступно на сайте.
Соло-фаундер два года писал коммерческое веб-приложение на Rust. Получил реальный продукт, два доклада на конференциях, и всё-таки переехал на Node.js.
И написал статью об этом, конечно. Кратко перескажу причины.
Шаблоны. Tera, Handlebars — нет type-safety между моделью и вьюхой. Maud, Askama — type-safe, но через макросы, а макросы — это ещё больше компиляции
i18n. Node.js из коробки даёт полный ICU + Intl API + i18next с автокомплитом. В Rust i18n до сих пор незрелый.
CI/CD. 14 минут от push до деплоя (12 из них на компиляцию Docker-образа). На Node.js это 5 минут, включая линт и тесты. Автор признаётся: игнорировал баги в Sentry, потому что фикс = ждать компиляцию
Динамика веба. Бесконечные .ok_or().map_err(), десятки кастомных error enum'ов ради обработки (де)сериализации. sqlx проверяет SQL в compile-time, но динамические запросы то ещё мучение. kysely в Node делает то же без подключения к БД
Итог: проблемы в динамических вещах (шаблоны, i18n, SQL). Для API-сервиса без вьюх выбрал бы Rust снова. Для фулстек-веба соло Node.js хватает.
@prog_stuff
llm-checker — CLI, который сканирует железо и говорит, какие модели потянет Ollama
Определяет GPU, RAM, CPU, оценивает каждую модель по скорости, качеству и совместимости. 35+ моделей от 1B до 32B, список модерируется вручную.
Установить: npm install -g llm-checker
📎 Репо на GitHub
@prog_stuff
Пять вопросов, которые определят профессию разработчика в ближайшие два года
Эдди Османи (инженер в Google, автор книг по JS) написал большой разбор: что происходит с индустрией, когда ИИ-агенты пишут код, компании режут найм джунов, а 84% разработчиков уже используют AI ежедневно .
🔘 Джуны: Harvard нашли, что найм джунов падает на 9–10% через 6 кварталов после внедрения ИИ в компании. Но BLS всё ещё прогнозирует +15% рост вакансий в софте до 2034 — за счёт распространения разработки в нетехнические индустрии.
🔘Навыки: Ключевой скилл — понимать, когда ИИ ошибается. Рутинные 80% задач уходят к агентам, человек фокусируется на архитектуре, безопасности, edge cases.
🔘 Роль: Разработчик превращается из «кодера» в «дирижёра» — оркестрирует ИИ-агентов, сервисы, пайплайны. Меньше написания кода, больше ревью и системного дизайна.
🔘Специализация: Узкие специалисты рискуют больше всех. 45% вакансий уже требуют знания нескольких доменов. Выигрывает T-shaped инженер — глубокая экспертиза + широкий кругозор.
🔘Образование: 45% компаний планируют убрать требование бакалавра. Портфолио на GitHub и сертификаты начинают весить больше диплома.
📎 https://addyosmani.com/blog/next-two-years/
@prog_stuff
Сохранёнка дня: уведомления для Claude Code голосом из Warcraft III
Включите звук, запустите видос.
Установить:curl -fsSL https://raw.githubusercontent.com/tonyyont/peon-ping/main/install.sh | bash
Есть паки озвучки: Orc Peon, Soviet Engineer, Battlecruiser, Kerrigan. Можно добавить свой — кидаешь файлы в packs/<name>/sounds/ и открываешь PR.
📎 Демо на видео в этом посте или на сайте автора.
@prog_stuff
Премия Tproger объявляется открытой! 🐀
Каждый год команды разработки фиксят баги, выкатывают редизайн, добавляют фичи или создают совершенно новые продукты внутри известных нам брендов. Какие-то результаты работы мы видим, но чаще внутрянка не доступна и оценить по достоинству ее не получается.
Отсюда родилась идея Премии Tproger. В ней ИТ-компании делятся успешными кейсами разработки, а аудитория решает, какой проект заслуживает награды — золотой мыши 🐀
В премии участвуют 16 компаний в 4 номинациях:
⚫ Продукт года
Здесь представлены платформенные решения, направленные на комплексную автоматизацию ключевых направлений деятельности: от контроля безопасности разработки ПО и ИТ-инфраструктуры до управления ресурсами компании.
В этом разделе вас ждут платформы виртуализации, облачные среды для AI/ML, инструменты управления кластерами и микросервисами, обеспечивающие высокую производительность и быстрый запуск цифровых сервисов.IT-ивент года
⚫
Участники рассказывают о профессиональных конференциях и хакатонах, объединяющих тысячи разработчиков и инженеров.
В номинации представлены проекты, где дизайн встречается с инженерией: нейросети, создающие презентации за секунды; инсталляции, собравшие десятки миллионов контактов; и визуальные стратегии, транслирующие ценности разработки.
Короткая история, способная растрогать рассмешить любого
Крис Маршалек, CEO Crypto․com, купил домен AI․com за $70 млн в крипте — это самая дорогая доменная сделка в истории. Предыдущий рекорд ($49,7 млн за CarInsurance.com) держался 16 лет.
Так вот, домен запустили во время Super Bowl с рекламой за ~$8 млн, посмотрите её на видео в этом посте. Платформа позиционируется как персональный ИИ-агент: управление приложениями, отправка сообщений, торговля акциями.
Весь ролик по сути призывал к одному — зайдите на AI․com.
И миллионы людей буквально это и сделали.
Сайт упал почти сразу после эфира — 504 ошибка. Маршалек написал в X: «Мы готовились к нагрузке, но не к ТАКОЙ». Позже уточнил, что упёрлись в глобальные лимиты Google.
AI․com — не единственный ИИ-бренд на Super Bowl. По данным iSpot, 23% всех рекламодателей (15 из 66 роликов) продвигали ИИ-компании — включая OpenAI, Anthropic и Google.
Так что вот, даже 78 лямов баксов не спасают от 504.
📎 Статья-разбор на Medium
@prog_stuff
🍔 Артефакт №7. Категория: «Производительность» 🍔
Как говорят в интернетах: а вы принесли сегодня пользу бизнесу? Мы — стараемся, а вот ребята из этого кейса уже это сделали. Они смогли ускорить время загрузки страниц сайта онлайн-школы иностранных языков с помощью VPS на базе KVM-виртуализации с серверными NVMe SSD, которые в 600 раз быстрее обычных HDD. В результате бустанулись и бизнес-метрики — конверсии выросли, а операционные затраты снизились. В общем, артефакт абсолютной полезности.
🤩Внутри статьи кроются: принципы архитектуры, семь фич и описание кейса со школой.
Кейс в кейсе, спросите вы? Именно так. Погружайтесь: https://tprg.ru/QZ7H
Jira ушла, а задачи остались — где трекать в 2026?
Сравнение российских таск-трекеров: Visary Tracker, Штаб, WEEEK и других. Смотрим, какие сценарии закрывают, как устроены под капотом и кому что подойдёт.
@prog_tools