Обновить

Разработка

Сначала показывать
Порог рейтинга
Уровень сложности

Как сделать программиста счастливее

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели24K

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

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

Читать далее

Как обстоят дела с WebAssembly?

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели22K

Когда заходит разговор про WebAssembly, где-нибудь в начале дискуссии обычно появляется комментарий в духе «А что, собственно, произошло?»

Этот язык преподносили как нечто поворотное. Неужели это просто был яркий маркетинг? А может, очередной случай с обречённым на провал апплетом JVM?

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

Читать далее

000xpda или как я реверсил электронный дневник и нашел ключи в логах

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели14K

В этом учебном году в нашей школе внедрили новый электронный дневник. Дизайн в стиле «привет из 2010-го», медленная загрузка - типичный набор для регионального госсектора. Глядя на всё это, я подумал: если визуальная часть сделана так лениво, то что же там под капотом?

Моё любопытство было вознаграждено сполна. Внутри мобильного приложения обнаружились: отладочные логи, пишущие сессионные куки в открытый доступ, самописная «криптография» на базе XOR, неиспользуемые фрагменты AES и вишенка на торте — захардкоженная в коде универсальная заглушка для авторизации, которую разработчики, видимо, забыли вырезать после тестов.

В этой статье я расскажу, как декомпиляция APK, USB-отладка и пара скриптов на Python помогли мне обойти защиту системы, написать собственного Telegram-бота для получения оценок, найти огромную дыру в безопасности и в очередной раз доказать, что концепция «Security through obscurity» не работает, если за дело берется школьник с JADX.

В программе:

Перехватываем X1_SSO через adb logcat.

Реверсим класс Crypt и реализуем его логику на Python.

Ищем загадочный pdakey и находим «магическую» строку 000xpda.

Находим полноценный IDOR и смотрим чужие оценки

Пишем бота, который работает быстрее официального приложения.

Читать далее

Ностальгические игры: Меч и Магия VIII

Уровень сложностиПростой
Время на прочтение16 мин
Охват и читатели15K

В 2000 году, когда у нас вышла первая лицензированная Might and Magic — восьмая часть, — большинство геймеров смогли впервые познакомиться с легендарной серией ролевых игр старой школы. Звучит странно, но всё было именно так: сначала официально появилась «восьмёрка», и только потом до нас добрались лицензированные Might and Magic 6 и 7. Я, как и многие тогда, начал знакомство с серией именно с VIII — и уже гораздо позже открыл для себя остальные части, постепенно втянулся во вселенную и неплохо разобрался в её лоре. Но в те годы я даже не подозревал, что события моих любимых «Героев 3» (как и вторых) происходят в том же мире и почти в одно время с Might and Magic 6, 7 и 8.

Игра продолжила знаменитую серию Might and Magic и стала прямым сюжетным наследником прошлых частей, но одновременно — их лебединой песней. В ней вновь предлагается окунуться в обширный мир «Меча и Магии» от первого лица, собрать отряд героев, обучив их множеству навыков и заклинаний, добыть эпические предметы и артефакты, чтобы после сразиться с многочисленными монстрами, знакомых многим по «Героям». Однако на фоне предыдущих хитов серии Might and Magic VIII привнесла несколько противоречивых нововведений и получила куда более сдержанный отклик — впервые в истории серии оценки критиков и геймеров стали скорее «средними», чем восторженными. Сегодня я постараюсь рассмотреть историю разработки Might and Magic VIII, пройтись по её геймплейным особенностям и рассказать, как с помощью модов «прокачать» любимый проект, чтобы удобно играть в 2026 году. Ну и, конечно, выложу для вас готовую сборку. Ладно, хватит прелюдий — поднимаем старые сейвы, накидываем свежие моды и ныряем в любимую классику!

Читать далее

Элитный вайбкодинг

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели63K

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

Вы же хотели узнать как обстоят дела в современном ИТ?

Читать далее

Ткачество 2.0: станок — прямо из 3D‑принтера, начинка — на Arduino

Время на прочтение10 мин
Охват и читатели34K

Моя жена и ее сестры занимаются ткачеством не одно десятилетие. В конце 2024 года я купил 3D-принтер Elegoo Neptune 4 Pro, и начал осваивать проектирование деталей в TinkerCad. Параллельно, чтобы занять свободное время на пенсии, взялся за курс по программированию Arduino от CraftingTable (ранее — Inventr.io).

Идея родилась сама собой: почему бы не создать настольный автоматизированный ткацкий станок? Однако реальность быстро дала понять — задача не из легких. В этом дебютном для меня руководстве подробно описываю создание прототипа. Увидеть получившееся устройство в действии можно на моем YouTube-канале Greg Zwadlo.

Достать паяльник, заправить 3D‑принтер →

Как передать сигнал по кабелю правильно

Уровень сложностиПростой
Время на прочтение15 мин
Охват и читатели28K

Как передать сигнал по кабелю правильно? Что подразумевается под словом «правильно»? В технике правильно – это передать сигнал в целости и сохранности, наловив по пути по-минимуму помех. Итак, какие у нас есть варианты? Если интересно, жмите "Читать далее"!

Читать далее

Cистема визуально-инерциальной навигации для дрона на C++

Уровень сложностиСложный
Время на прочтение10 мин
Охват и читатели20K

Дроны, которые работают на GPS, глушатся и это большая проблема для летательных аппаратов. Сигнал от спутников GPS проходит около 20 000 км и достигает антенны дрона с минимальной мощностью. Любая наземная глушилка, излучающая шум на частотах L1/L2/L5, для приемника дрона оказывается в тысячи раз громче спутников. Приемник слепнет, дрон теряет координаты, переходит в аварийный режим и сносится ветром.

И поэтому нам нужна MVIO (Monocular Visual Inertial Odometry).

Это технология, которая позволяет дрону понимать свое положение в пространстве, используя только одну камеру и IMU. В этой статье мы разберем реализацию такой системы на C++. Мы увидим, как объединить видеопоток и данные акселерометра в реальном времени, используя фильтр Калмана и библиотеку OpenCV.

Читать далее

HeadHunter виноват в сломанном найме

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели85K

Все мы знаем, что сейчас найти работу — особенно в IT — стало заметно сложнее.

Но что, если я скажу, что в этой ситуации частично виноват HeadHunter — доминирующая площадка на рынке поиска работы?

Казалось бы, всё предельно просто: есть люди, которые ищут работу, и есть работодатели, которым нужны специалисты. Нужно всего лишь свести одних с другими — и готово.

Но каким образом на таком, казалось бы, элементарном процессе можно умудриться всё испортить?

Да очень просто — сделать работу сервиса максимально непрозрачной. Настолько, что попадёт ли твоя анкета в выдачу у работодателя, порой кажется зависящим от фазы Луны.

Но обо всем по порядку.

Читать далее

Kaken — как мы внедрили четыре AI-сервиса для собственного использования

Уровень сложностиПростой
Время на прочтение14 мин
Охват и читатели13K

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

Всем привет! Меня зовут Сергей, я менеджер продукта, и я не буду пересказывать маркетинговые лозунги о пользе нейросетей. Расскажу, как мы в Selectel внедряем AI-инструменты в собственные процессы, чтобы понимать, как строить эффективную инфраструктуру для ML-задач

Мы прошли весь путь от архитектуры до эксплуатации, посчитали экономику и готовы делиться выводами. Прошу под кат!

Читать далее

Когда лопнет пузырь AI?

Время на прочтение16 мин
Охват и читатели17K

«Когда OpenAI обанкротятся, на Сен-Бартелеми будут пить меньше шампанского. Ну а мы — мы хорошо заработаем» ©

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

Получилось шесть вайб-школ разных отношений, 4 слоя AI со своими рисками и экскурс в железные дороги, электричество и доткомы.

Читать далее

У нас сложная этическая дилемма прямо сейчас, и, кажется, нужна помощь сообщества

Время на прочтение4 мин
Охват и читатели46K

Мы немного в когнитивном диссонансе, потому что история дикая и сделать правильно в ней явно будет неправильно. Сейчас объясню, но сначала хронология обращений в поддержку VDS-хостинга.

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

Аккаунт зарегистрирован на почту внутри домена, домен и сервер, соответственно, скомпрометированы, по всей видимости. Просит восстановить доступ к серверу и перевязать всё на его личный ящик.

Мы, естественно, на слово не верим. Запросили дополнительные документы: паспорт и всё возможное, связанное с аккаунтом. Он присылает скан паспорта. ФИО в паспорте совпадает с данными в профиле аккаунта. Во-вторых, самое главное — банковские чеки и квитанции об оплате этого самого сервера за последние месяцы. Мы смотрим: документы в порядке, деньги платил именно он. Ситуация штатная: человек — назовём его первым человеком-пауком — потерял почту, подтвердил личность, подтвердил оплаты. Мы переносим аккаунт на его личную почту и отдаём доступ.

И тут с почты внутри домена приходит такой же тикет, только на другое имя. Мол, утерял доступ, верните.

Читать далее

Ночь с пятницы на понедельник: борьба за устойчивость, когда облако дало сбой

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели13K

…Был обычный ноябрьский вечер, 2024 год шёл к своему завершению: на носу была «чёрная пятница». Я вернулся домой в Новосибирск из почти двухнедельной командировки, пробыв в пути 12 часов и поспав часа четыре. В 19:07 алерт сообщил мне о падении одного из контроллеров. В целом, проблема не критичная, так как сервисы зарезервированы. Но всё же одним глазом я заглянул в чат с разбором.

Через час ситуация стремительно ухудшилась: каскадом начали отказывать узлы, отвечающие за внешнюю связность. А затем развитие событий приняло фатальный оборот — в какой‑то момент одновременно отказали сервисы внешней связности сразу в двух зонах доступности… 

Это был один из самых крупных региональных инцидентов в облаке, после которого мы многое изменили в сети, чтобы сделать её устойчивее. С того момента прошло больше года, так что пришла пора рассказать эту историю от начала и до конца. 

В прошлой статье я уже показал наши основные подходы к повышению отказоустойчивости в этой ситуации. Однако за кадром остался сам процесс разработки новых решений и то, как мы мыслили, чтобы найти наилучший выход. Сегодня расскажу об этом подробнее. Статья основана на моём недавнем выступлении на Highload++ и дополнена по следам дальнейших расследований инцидентов.

Читать далее

Ближайшие события

OpenClaw/MoltBot/Clawdbot: разбираемся в AI-ассистенте, который взорвал GitHub за неделю

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели38K

Январь 2026 года. Ты листаешь ленту за утренним кофе и видишь, как люди массово скупают Mac Mini или арендуют VPS сервера. Не для разработки. Не для монтажа видео. Для бота. AI-бота, которому нужен целый компьютер, чтобы работать 24/7.

За две недели проект набирает почти 100 000 звёзд на GitHub. Сто. Тысяч. Для сравнения: у React 234K за 11 лет. А тут за месяц чуть ли не половина этого. TechCrunch, VentureBeat, IBM, Cisco- все пишут. Cloudflare запускает специальный сервис под него, и их акции подскакивают на 20%. Anthropic присылает автору письмо: "Братан, переименуй, слишком похоже на Claude". Он переименовывает. Дважды (для контекста: сначала это Clawdbot, потом становится MoltBot и вот наконец января 2026 это OpenClaw, надолго ли?).

Читать далее

Компилируем TypeScript в натив: хардкор и мясо

Время на прочтение17 мин
Охват и читатели18K

Зачем вообще компилировать TypeScript?

Есть большой проект, с кодовой базой в два миллиона строк на C++. Ядро на плюсах, поверх него работают несколько UI: десктопный интерфейс, веб и мобильное приложение. В какой-то момент проект упирается сразу в две проблемы. Первая — лицензионные ограничения: новые версии Qt, на которых мог бы жить десктопный интерфейс, становятся недоступны по санкционным причинам. Вторая — скорость разработки: UI давно хотелось писать быстрее.

Возникает логичный вопрос: что, если взять лучшие, максимально автоматизированные инструменты из веба и перенести их в мир нативных приложений без браузера и лишних прослоек? Ключевая цель — обеспечить возможность вызова C++-код из TypeScript с возвратом результата без промежуточных интерпретаторов.

Меня зовут Владимир Цышнатий @Tsyshnatiy. Я занимаюсь разработкой более 15 лет, мой основной профиль — C++. Помимо этого меня увлекают технологии на стыке разных миров. В том числе идея, лежащая в основе этой статьи: дать возможность писать на TS как на нативном языке.

Интересно узнать, как мы это делали и что получилось? Детали под катом! 

Читать далее

slowfetch: замедляем fastfetch ради эстетики. История одного овер-инжиниринга на Bash

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели14K

В мире Linux существует негласное соревнование: чей neofetch (земля ему пухом) или fastfetch запустится быстрее и покажет заветное лого дистрибутива. Разработчики бьются за миллисекунды, оптимизируют конфиги, переписывают всё на C... Я же решил построить своего рода Машину Голдберга.

Мой путь — это путь slowfetch. Я взял инструмент, который гордится своей скоростью (0.013с), и «оптимизировал» его до 0.77с. Зачем? Чтобы превратить терминал в панель управления космическим кораблём (или алтарь, об этом позже).

Это история о том, как простое желание «пофлексить» конфигом превратилось в полгода разработки на Bash и создание собственного инсталлера.

Читать далее

А знали ли вы, что в 2010 году, в России был журнал с Linux?

Время на прочтение4 мин
Охват и читатели28K

Внимание: Это полностью переписанный «ремастер» одной из моих старых статей. Данный материал подготовлен специально для юной аудитории Хабра, которая могла и не застать эту частичку Linux-истории :-)

Нет, глаза вас не обманывают: не про Linux, а на Linux! 16 лет назад, в 2009 году, чипсетов для медиаплееров на рынке стало настолько много, что китайские чипмейкеры начали продавать их за копейки. Буквально за пару долларов можно было купить процессор, который включал в себя производительное ARM-ядро, аппаратные декодеры аудио и видео, ЦАП/АЦП и другие периферийные модули...

Читать далее

Как мы искали «Луну-9»

Уровень сложностиСредний
Время на прочтение20 мин
Охват и читатели32K

Ровно 60 лет назад, 3 февраля 1966 года советский космический аппарат «Луна-9» совершил первую в истории человечества мягкую посадку на Луну. И только сейчас мы можем точно узнать, где именно он находится на Луне.

18+ НАСТОЯЩИЙ МАТЕРИАЛ (ИНФОРМАЦИЯ) ПРОИЗВЕДЕН, РАСПРОСТРАНЕН И (ИЛИ) НАПРАВЛЕН ИНОСТРАННЫМ АГЕНТОМ ЕГОРОВЫМ ВИТАЛИЕМ ЮРЬЕВИЧЕМ ЛИБО КАСАЕТСЯ ДЕЯТЕЛЬНОСТИ ИНОСТРАННОГО АГЕНТА ЕГОРОВА ВИТАЛИЯ ЮРЬЕВИЧА

Сразу после посадки «Луны-9» в советской прессе были опубликованы координаты места высадки, и сейчас их можно найти в Википедии и других источниках. Но тогда в прессе не уточняли, что это лишь центр области, в которой действительно произошла посадка, а точное местоположение аппарата тогда было невозможно установить, так же, как и рассмотреть его в телескопы с Земли или со спутников.

Зачем вообще искать «Луну-9», которая уже 60 лет не подает признаков жизни?

Для планетологии это может быть полезно как средство сравнения снимков поверхности Луны из космоса и на месте. Можно оценить, насколько верны были исследования 60-70-х на основе данных с «Луны-9». Для истории — это археологический памятник, свидетель зари космонавтики. Для меня, как энтузиаста космонавтики, это возможность прикоснуться к истории, о которой я читал ещё в детстве. С точки зрения популяризации космонавтики, это способ показать современные достижения науки и техники, которые позволяют простому пользователю интернета, не выходя из дома, провести своё собственное исследование в космосе.

Прямой поиск на Луне космических аппаратов разных стран стал возможен только после запуска американского лунного спутника NASA LRO в 2009 году. Его камера высокого разрешения NAC LROC отсняла почти всю поверхность Луны с разрешением 0,5-1 м на пиксель, а местами и до 0,35 м на пиксель. С её помощью были осмотрены следы американских астронавтов и найдены советские «Луноходы», обнаружены американские зонды Surveyor и советские станции серии «Луна», начиная с «Луны-16». 

Читать далее

Я год доверял ChatGPT в строительстве, а потом он придумал ГОСТы

Время на прочтение6 мин
Охват и читатели168K

Эту историю для моего блога рассказал Алексей Кривоносов

Год назад я начал использовать ChatGPT для работы. Занимаюсь загородным строительством — это основной бизнес. Также веду YouTube-канал компании. Нейросеть помогала генерировать сценарии, составлять контент-планы, оформлять технические отчёты.

Но когда попробовал использовать ChatGPT для работы со строительными нормами — СП, ГОСТами, нормативной документацией — столкнулся с проблемой. Нейросеть придумывала несуществующие пункты нормативов, выдавала цифры, которых не было в документах.

За полгода я с небольшой командой создал свой AI-инструмент — «Цифровой стандарт». Мы вручную обработали строительную нормативную базу, перевели её в векторный формат и настроили алгоритм, который даёт точные ответы без галлюцинаций.

Читать далее

Катастрофоустойчивый Kubernetes: как использовать балансировщик MetalLB с BGP-anycast

Уровень сложностиСредний
Время на прочтение18 мин
Охват и читатели11K

Клиенты часто спрашивают, как построить геораспределенный и катастрофоустойчивый Kubernetes. Так, чтобы при отказе целого дата-центра нагрузка переключалась на резервную площадку без смены IP-адресов сервисов.

Можно возразить, что проще изменить DNS-запись и направить трафик на инстанс в другом дата-центр. Но есть риск: кэширование на рекурсорах некоторых провайдеров может негативно повлиять на доступность. Они иногда игнорируют TTL и хранят старые данные неопределенный срок. Поэтому в таких сценариях крайне желательно сохранить IP-адрес.

Один из элементов «мозаики» такой геораспределенной системы — балансировщик нагрузки с возможностью использования адресов из anycast-подсети, которую выделяет поставщик услуг. В этой статье мы не будем затрагивать вопрос передачи данных и их консистентность на двух разных площадках — разберем только сетевую составляющую. Подробности под катом!

Читать далее