Pull to refresh

Technotext

OpenSource, или как я перестал бояться и полюбил автотесты

Level of difficultyEasy
Reading time5 min
Reach and readers9.4K

Всем привет! Меня зовут Илья. Я давно читаю habr, не так долго занимаюсь программированием и еще чуть меньше времени хочу написать здесь статью. Не то, чтобы это идея фикс (или hotfix), но лучше опубликоваться и жалеть, чем поставить в план на «когда-нибудь потом», ничего не сделать, и «получить за это премию». Таких задач у меня уже накопилось на несколько жизней вперед, поэтому, приняв волевое решение, я выделил время на графоманию.

В прошлом мне доводилось писать околонаучные статьи и вести блог про путешествия, совершенные в разных стадиях трезвости (на рецензируемые статьи ВАК про пьяные авантюры, к сожалению, не хватило грантов). Но поскольку срок давности по этим событиям давно прошел, а все самое значимое я забыл, то опишу свой недавний опыт, связанный с OpenSource. 

Идея открытого программного обеспечения мне нравится. Люди, создающие OpenSource проекты вызывают интерес, особенно, когда их продукты востребованы и конкурентноспособны. Двигать индустрию IT в свободное от работы время, вместо того, чтобы предаваться гедонизму — достойно уважения. Особенно, когда сам активно пользуешься подобными продуктами, вместо платных аналогов или ручного труда.

Читать далее

Как наказать цифрового воробья или как я проходил таск PigeonsRevenge от платформы ACLabs.pro

Level of difficultyMedium
Reading time8 min
Reach and readers11K

Данный таск был частью 5 сезона CTF, который проходил на площадке ACLabs. Машина необычная с увлекательным сюжетом и интересными уязвимостями.

Условие задачи:

Борис — старый почтовый голубь. Катя, его голубка, улетела к наглому Воробью. Три дня Борис пил дешёвое пойло и строчил план мести. Теперь этот план у тебя. Помоги Борису пробраться в цифровое гнездо Воробья, украсть его аккаунт и стать рутом. Следуй за пьяными записками — там всё сказано и даже больше. Внимание, стенд будет полностью готов только по истечении обратного времени отсчета, даже если адрес появился раньше!

Цепочка атаки

Атакующая цепочка «PigeonsRevenge» комбинирует одну реальную критическую CVE (Webmin 1.910 — CVE-2019-15107, 9.8 CRITICAL) с набором классических техник ATT&CK: активная разведка → port knocking → эксплуатация публичного приложения → Metasploit reverse-shell → туннелирование Ligolo-ng → инъекция через переменную окружения в кастомный бинарник → обход фильтра табуляцией → закрепление с root-привилегиями.

Читать далее

ИИ решает вашу судьбу: как баг в ATS оставляет людей без работы. HR Tech в России 2026

Level of difficultyMedium
Reading time8 min
Reach and readers26K

Всем привет! На связи снова Карьерный Хакер — тот самый консультант по поиску работы, который не ленится изучать технологии, амбассадор здравого смысла на рынке труда и в HR Tech :)

Сегодня расскажу, как я поймала баги при AI-оценке релевантности опыта, когда тестировала самые популярные в России HR Tech-решения.

Также обсудим, куда уходят ваши персональные данные при интеграции российских ATS с зарубежными AI и какие есть риски на уровне государства при «сливе» данных о кадровых резервах страны в Пентагон по мнению GPT (надеваем шапочки из фольги).

Начну с небольшого экскурса в историю российских роботов-рекрутеров и того, как HR покупают технологии для решения своих задач. В этом важно разбираться, чтобы оценить потенциальный масштаб трагедии вокруг хайпа на ИИ в рекрутинге.

Погнали :-)

Читать далее

Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки

Level of difficultyEasy
Reading time6 min
Reach and readers10K

Когда я возглавил отдел разработки в Sape, вокруг меня появились интересные, классные ребята со своими сильными сторонами. У нас было много неформальных практик: общение, обмен опытом, поддержка, но не хватало измеримости. И мы начали постепенно внедрять и оцифровывать процессы.

В этой статье я расскажу, как мы это сделали: от структуры команд и регулярных архитектурных встреч до неожиданных инструментов вроде новогодних книжных подарков. Покажу, как встречи один на один помогают каждому сотруднику найти свой вектор развития, а Performance Review превращает разговоры о развитии в реальные планы. Все с конкретными примерами из нашей практики.

Читать далее

Жизнь без CubeMX: Первая прошивка для STM32, имея под рукой только блокнот

Level of difficultyMedium
Reading time11 min
Reach and readers14K

Если вы не понимаете, как ваша программа попадает из FLASH в RAM, значит, вы не контролируете свой микроконтроллер. Здесь не будет кнопок «Generate Code». Только чистый Си, суровая разметка памяти и запуск STM32 с полного нуля. Хардкор, как он есть.

Читать далее

Как я дверной звонок делал

Level of difficultyEasy
Reading time9 min
Reach and readers13K

Привет, Хабр. Решил слегка разбавить нескончаемый поток статей «K8S для ёжиков», «ИИ добавлен в туалетную бумагу» и прочих авторов нейростатей, пиарящих телеграм‑каналы. Я просто напишу, как захотел руками сделать дверной звонок на ESP32 и какие трудности я при этом преодолевал.

Кому интересно — велкам под кат.

Собственно, подкат.

Параметризация: PyTest vs RobotFramework

Level of difficultyEasy
Reading time19 min
Reach and readers2.6K

В этой статье вы можете найти наглядное сравнение двух популярных инструментов для автоматизации тестирования: PyTest и RobotFramework.

На Хабре уже есть хорошая статья с общим сравнением этих фреймворков. Я сфокусируюсь на простоте параметризации тестов. 

Читать далее

Эксперимент с трекингом парапланерных гонок ГЛОНАСС/GPS LoRa трекерами

Level of difficultyEasy
Reading time14 min
Reach and readers7.5K

Всем привет! Представьте, что у вас есть маршрут на 250 километров в горах, где нет сотовой связи и дорог, а вам нужно обеспечить безопасность участников парапланерной гонки!

TL;DR: В этом рассказе я опишу, как запилил систему трекинга спортсменов для парапланерных гонок RusXFly из LoRa-трекеров, палок и пылесосных шлангов. А потом свозил то, что получилось, в Приэльбрусье. Было эмоционально, экстремально, местами — страшно, но всё получилось и закончилось хорошо. И да, я просто люблю длинные тире – текст AI-free.

Фактически, этот текст продолжение моих экспериментов с LoRa трекерами:

AGLoRa. Или прототип простого самодельного спутникового LoRa-трекера

AGLoRa 2.0 Вторая версия LoRa трекера. Всё сломать и переделать

Можно рассматривать как третью часть! :-)

Изначально это был более развернутый текст, но модераторы Хабра не любят какие-либо упоминания даже отдаленно напоминающие рекламу, так что если сокращая текст где-то потерял суть, не стесняйтесь спрашивать. Отвечу на все вопросы в комментариях.

Ничего не понятно, но давайте почитаю...

Сделай бота для работы

Level of difficultyMedium
Reading time20 min
Reach and readers15K

Согласно Hype Cycle от Gartner за 2025 год, AI-агенты достигли пика завышенных ожиданий. Но что скрывается за хайпом с технической точки зрения? Самое время разобраться, чтобы не ждать от технологии чудес, а использовать её по назначению.

В статье объединим теорию и практику построения AI-агентов. Сначала разберем ключевые концепции: цикл Perception-Reasoning-Action, модель PEAS (Performance, Environment, Actuators, Sensors), уровни автономии. А затем, опираясь на эти принципы, построим работающего AI-агента 3-го уровня автономии. Наш технологический стек: 

- Оркестратор n8n;

- LLM через агрегатор OpenRouter;

- Telegram в качестве пользовательского интерфейса.

Читать далее

Почему законы физики описываются уравнениями?

Level of difficultyEasy
Reading time6 min
Reach and readers18K

Разработан единый взгляд на математические способы формулировки физических законов и найдена возможность взглянуть на них с единой точки зрения, что может быть полезно в некоторых вопросах, например, специальной теории относительности и аналитической механике.

Читать далее

Как запустить свою LLM для инференса. Руководство по запуску: Ollama, vLLM, Triton, LM Studio, llama.cpp, SGLang

Level of difficultyMedium
Reading time11 min
Reach and readers58K

В этой статье будет приведено практическое руководство по базовой настройке и запуску следующих инструментов для работы с LLM: Ollama, LM Studio, vLLM, Triton, llama.cpp, SGLang.

🔥 Начинаем? 🔥

Карьерный потолок в IT: почему я перестал стремиться в менеджмент и начал делать свой продукт

Level of difficultyEasy
Reading time9 min
Reach and readers65K

Каждый разработчик в начале пути видит перед собой ясную лестницу: Junior → Middle → Senior. Рост компетенций сопровождается ощутимым ростом зарплаты, и это даёт мощный заряд мотивации. Но что происходит, когда вы достигаете уровня Senior? Зарплата упирается в «стеклянный потолок», задачи становятся однотипными, а привычный драйв исчезает.

Читать далее

Как собрать систему захвата ниши: семантика, архитектура сайта, LLM-пайплайн и подготовка к AI-поиску

Level of difficultyHard
Reading time23 min
Reach and readers9.2K

SEO‑индустрия умеет делать две вещи особенно стабильно. Во‑первых, каждые несколько лет торжественно объявлять свою смерть. Во‑вторых, продавать одни и те же хаотичные процессы под новыми словами. Раньше это называлось «контент‑маркетинг», потом «topic clusters», потом «programmatic SEO», теперь на сцену влетели LLM, AI Overviews, GEO, AEO и еще десяток аббревиатур, от которых у любого редактора дергается глаз.

На этом месте обычно появляется очередной бодрый тред в духе «SEO умерло, теперь нейросеть сама все сделает». Потом кто‑то идет в ChatGPT, просит «собери семантику по нише», получает 400 красивых галлюцинаций, 120 дублирующих друг друга страниц, 30 заголовков в стиле «Купить купить купить недорого цена» и торжественно называет это pipeline.

Проблема, конечно, не в LLM. Проблема в том, что хаос не становится системой только потому, что вы добавили к нему API‑ключ.

Если упростить весь тезис статьи до одной мысли, то она будет такой: захват ниши начинается не с контента и не с промпта «сделай мне хорошо». Он начинается с инженерии спроса. С понимания того, какие интенты вообще существуют в рынке, какие типы страниц им соответствуют, где нужна коммерческая посадочная, где фильтр, где сравнительная страница, а где честнее вообще ничего не создавать.

В этой статье я хочу разобрать не набор SEO‑ритуалов и не коллекцию модных слов про AI, а рабочую систему. Ту самую, в которой семантика перестает быть кладбищем таблиц и превращается в управляемый пайплайн: от сырых запросов до кластеров, от кластеров до структуры сайта, от структуры до страниц, а от страниц до понятного плана разработки, контента и AI‑видимости. Это не теоретическая экскурсия и не набор “полезных советов”. Это схема процессов, которую можно адаптировать под реальную нишу, реальный сайт и реальный production.

Читать далее

Генераторы

Level of difficultyMedium
Reading time6 min
Reach and readers9.1K

Борис Цирлин

В статье обсуждаются генераторы, построенные из трех логических элементов. Рассматриваются семейства изоморфных схем для этих устройств и проблемы принадлежности их классу последовательных схем.

Читать далее

Тоталитарный Golang

Level of difficultyMedium
Reading time14 min
Reach and readers14K

Легковесные треды есть и в Java, скорость — в Rust, микросервисы можно делать на чём угодно. Так почему Go? Потому что он не даёт вам писать красиво.

Читать далее

Уволить всех – у нас появился ИИ

Level of difficultyEasy
Reading time3 min
Reach and readers7.6K

... я возненавидела искусственный интеллект с первого дня. Как и многим специалистам, мне пришлось пройти через сомнения, внутреннее сопротивление и страх перед тем, что профессия меняется слишком быстро. Но со временем я поняла, ИИ может быть не конкурентом, а сильным помощником в работе, развитии и даже в повседневной жизни. В этой статье я делюсь своим опытом, наблюдениями и практическими выводами о том, как преодолеть внутреннее сопротивление, начать использовать новые технологии себе во благо и при этом не потерять себя.

Так-так, что там...

Теория мертвого 2GIS

Level of difficultyEasy
Reading time62 min
Reach and readers134K

Выбрали хороший ресторан (врача, СТО, юриста, риэлтора) по отзывам и высокому рейтингу в 2GIS, а оказалось, что там если не ужас-ужас-ужас, то как-то средне, явно не похоже на то, что вы бы ожидали от рейтинга 4.8 или даже 5 баллов. Знакомо?

Все знают, что в 2GIS могут быть накрученные фейковые отзывы (а их там всего 10-20 на весь город или там 99% фейковых? Есть ведь разница!), но не все умеют их легко опознавать. У 2gis, похоже, еще нет антифрода (что вполне нормально для пет-проекта, который делают веб-программисты в свободное время), но вы теперь можете различать ботов-зомби-инопланетян через мой антифрод af2gis, и выбирать себе те заведения, которые нравятся людям, а не ботам.

Статья будет длинная (она про все подряд о чем я думал и с чем разбирался последнее время), но тех, кто ее прочитает ждет фантастическая награда! Они смогут ходить в самые лучшие заведения города, их будут обслуживать самые красивые и шустрые официантки, еда будет очень вкусной, порции огромными и все это за довольно разумные деньги! Такие места есть, живые люди их любят и ставят им высокие оценки, а боты - любят другие заведения. Нужно только надеть волшебные очки чтобы увидеть, какие заведения хвалят люди, а какие - боты.

Прочитать и получить волшебные очки!

Про асинхронное программирование микроконтроллеров и программирование аппаратных функций периферии процессора

Level of difficultyHard
Reading time15 min
Reach and readers21K

Когда вы работаете с прерываниями это всегда асинхронное программирование. Прерывания асинхронны по отношению к фоновой программе по определению. Но если вы сосредоточитесь только на решении проблем асинхронного программирования вы скорее всего потеряете все остальные составляющие работоспособного, хорошего-надежного, расширяемого-управляемого решения вашей задачи.

Читать далее

Программируемые калькуляторы. Часть третья «Первый второй»

Reading time14 min
Reach and readers7.3K

240 байт памяти на мотке проволоки шесть метров, программирование как эзотерика, внешний носитель на магнитной карте, расчеты для управления Лунным модулем «Аполлон-11». Сплошное «Итало Макси Хитс», которого могло и не быть. Что же это?

И да, это действительно дерзкий итальянец, которому так и не дали стать первым персональным компьютером.

В третьей части цикла: Olivetti Programma 101 —инженерный компромисс, доведённый до персонального изящества.

Читать далее

Разработка аркадной гонки на Rust с нуля. Ошибки и успехи

Reading time7 min
Reach and readers10K

14 месяцев назад я начал разрабатывать гонку. Идея была простой — с дедлайном 4 месяца сделать простую игру без пафоса. Ну, любой разработчик знает, что произошло дальше: без пафоса не вышло.

Читать далее