Обновить

Все потоки

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

Детектор жизни

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

Как насчёт поисков внеземной жизни всерьёз? Отложим на время разговоры о зондах высокоразвитых цивилизаций и недостроенных сферах Дайсона; нас и внеземная бактерия обрадует. Вот вам инженерная задачка: попробуйте спроектировать детектор внеземной жизни, который зажигает индикатор и пищит при контакте с живым образцом.

Погодите тянуться за паяльником. На что должен реагировать прибор? На обмен веществ? Отдельные реакции ничего не доказывают: их на раз имитирует автокатализ. Рост и поддержание структуры? Под такой размытый критерий попадает даже пламя свечи. Может, способность к размножению — маркер жизни? Но мулы, гибриды кобылы и осла, потомства не дают. А как реагировать на пограничные формы жизни, вроде прионов, белков без генома, которые, в отличие от мулов, размножаются? Сейчас разговор не о них; считать прионы живыми или нет, может быть делом договорённости. Хуже другое: мы тратим миллиарды на поиски следов жизни в марсианских песках и облаках Венеры, так и не договорившись окончательно, по какому признаку признаем находку живой.

Читать далее

Двойная бронь: как мы поймали гонку в записи и закрыли её EXCLUDE-констрейнтом

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

Я делаю сервис онлайн-записи для салонов красоты: клиент записывается в чат-боте или на странице, а запись падает в расписание мастера. Однажды мастер написал мне: на 15:00 к ней пришли два клиента. Оба записаны, оба уверены, что слот их. Классическая двойная бронь — и классическая race condition. Разберу, почему наивная проверка «свободно ли время?» не спасает, и как мы закрыли дыру двумя слоями: advisory-lock и EXCLUDE-констрейнтом в PostgreSQL. По пути — один неочевидный подвох с IMMUTABLE, на который легко напороться.

Читать далее

Мыслю, следовательно, страдаю

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

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

Читать далее

Бенчмаркая ArrayPool: подстава при копировании потоков — 131 072 байта в LOH

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

ArrayPool используют ради экономии на аллокациях. Но есть размеры, где он делает обратное: массив уходит в LOH, а через new остаётся в нулевом поколении.

Один такой размер зашит в .NET по умолчанию — им копируются потоки. Проверил на четырёх машинах и трёх рантаймах.

Читать далее

Как быстро загнать страницу в индекс Яндекса — и почему для Алисы AI этого мало

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

Новую страницу в поиске Яндекса не видно, пока её не обошёл робот. Пока страницы нет в индексе (базе поиска), её не будет ни в обычной выдаче, ни в ответе Алисы AI. Алиса опирается на источники, которые высоко стоят в поиске, это прямо написано в документации Вебмастера. Дальше — конкретная последовательность: что отдать роботу вручную, что настроить один раз, как проверить статус и где в Метрике смотреть отдачу.

Ускорение индексации — управляемая история: переобход, IndexNow, sitemap реально сокращают время до попадания в базу. А вот топ-10 и цитирование в ответе Алисы — отдельная работа над содержанием страницы, индексация только открывает туда дверь.

Читать далее

Бэкдоры в вакансиях на работу

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

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

Внедрение бэкдоров через вакансии на популярных сайтах встречается всё чаще. Об одном таком случае в сети LinkedIn рассказывает Python-разработчик Роман Иманкулов, о другом — разработчик Николай Коновалов, и похожих историй предостаточно.

Читать далее

Мой агент Ouroboros побил Codex с Claude Code на Terminal-Bench, OSWorld и CL-Bench. Он написал себя сам

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

Я долго думал, как мог бы выглядеть идеальный универсальный агент. Такой Jarvis из «Железного человека». И довольно быстро понял: фиг я смогу такого сделать. Зато можно попробовать дать агенту возможность придумать и построить себя самого в автономном цикле эволюции.

Так появился Уроборос: кривой косой агентный луп на чистом Python с доступом к git, правом переписывать свой рантайм, безопасным рестартом на новой версии и откатом к прошлой, если всё сломалось. Я поселил первую версию в Google Colab, чтобы он не убил мне комп самоэволюцией (сервера Google не жалко, у них хорошая изоляция), дал бюджет и автономность, и понеслось.

С тех пор прошло несколько месяцев. Когда я последний раз рассказывал про него публично, это был ещё милый desktop‑агент, который рисовал котиков, зависал на ютюбе и менял обои. Сейчас на Terminal‑Bench 2.1, CL‑Bench и OSWorld у него SOTA результаты, а на GAIA и SWE‑Pro получается паритет с Claude Code и Codex. Сам бы я такой харнесс не придумал, а вот автономная эволюция и куча сожжённых денег на токены — да.

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

Читать далее

Уведомления на Android без Google: почему UnifiedPush через публичный ntfy у вас не работает

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

Как вы помните мы делаем мессенджер. Google-сервисы в нашем основном регионе недоступны, значит FCM отпадает, что мы с этим сделали?

Стандартный ответ на эту задачу известен и выглядит красиво: UnifiedPush. Открытый контракт, никакого Google, пользователь сам выбирает, через кого получать сигналы. Мы так и сделали в июне, всё заработало на тестовых устройствах, и мы поехали дальше.

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

Читать далее

Метрика, ты что?! Всё верно, но я забыл про реорганизацию

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

Если метрика растёт — это точно улучшение? Разбираю кейс, где тренд выглядит убедительно, но оказывается артефактом структуры. Где ломается аналитика, если не учитывать контекст изменений, и как с этим работать.

Читать далее

Моя котельная

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

На этот раз хочу описать контроллер и обвес для котельной, который я с переменным успехом ваяю уже с полгода. ESP32, Kinkony A16, Modbus, тепломер, Arduino в слейв-режиме по i2c, ШИМ-управляемые насосы, дашборд, ну и MQTT. Тупой газовый котёл, гидрострелка, тёплые полы. Если эти слова вам близки, или хотя бы интересны - может и моя статья пригодится.

Итак, начиналось всё как всегда со статьи на Хабре. Кажется вот этой: Kincony KC868-A16: контроллер 16-го уровня. Ну или даже нет, если быть совсем точным, началось всё с комментария в одной из статей, что эта железка на озоне продается дешевле полутора тысяч рублей. В тот момент я еще не очень понимал, зачем мне эта штуковина, но решил взять, просто чтобы было.

Читать далее

Как мы проектировали идеальный пользовательский опыт для OTP-поля

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

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

Меня зовут Антонина, я дизайнер интерфейсов ЮMoney. Мы изучили десятки исследований — от Baymard Institute до Google web.dev. Единого документа с лучшими практиками не нашлось: источники противоречили друг другу или оказывались слишком общими.

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

Читать далее

Хаос, шок, приватные ключи от не менее приватного GitLab

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

Последние пару месяцев злоумышленник распространял трояны с нескольких npm-учеток: alex05255, mdrafiqulislamrabby, b.w1001, abdev8773 и mollspotwood54400.

Список пакетов:svg-fetcher, tradepilot, polytrade, polymarket-kit, react-svg-chunk, gamified-trading-system, font-huge, font-hub, mdb-vite, router-processor, route-processor.

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

Читать далее

Подборка книг о вирусах и защите от них

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

Я собираю автоматические переводы материалов по хакингу и выкладываю их на сайте библиотеки. И вот, миллионы сожженых токенов спустя, архив наполнился. В сегодняшней подборке книги как по анализу, так и по написанию малвари. Представлены книги под Mac, Android и Windows.

Читать далее

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

ИИ умеет придумывать идеи, но не умеет в них верить

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

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

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

В конце 2020-го - начале 2021 года я работал с Комитетом по культуре Санкт-Петербурга и руководил официальной культурной афишей города. В распоряжении комитета появилось помещение, которое собирались превратить в магазин сувениров. Лично мне эта идея казалась бессмысленной. Зачем создавать ещё одну сувенирную лавку, причем в нетуристической части пусть и центра, если городу не хватает совсем другого....

Читать далее

Как сделать приложение быстрым и надёжным с помощью межсервисных запросов

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

Микросервисы обещают независимость и гибкость, но вместе с этим добавляют новый класс проблем: задержки между сервисами, каскадные сбои и сложность управления зависимостями.

В статье разберём, какие подходы помогают выстроить устойчивое межсервисное взаимодействие — от агрегаторов и API Gateway до GraphQL и CQRS — и где у каждого решения есть свои ограничения.

Читать далее

CONTRACT: одна схема вместо N×M сериализаторов

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

Одна C++ схема — protobuf, binary, JSON, YAML и structured logging без ручных маппингов. В статье разбираю, как CONTRACT отделяет стабильный контракт типа от конкретных форматов, зачем нужны BASE, PROPERTY и REFERENCE и как атрибуты полей задают общую политику для разных адаптеров. Всё - на реальном коде из репозитория: YAML-конфиг, структурированный лог и сравнение производительности с libprotobuf. GitHub.

Читать далее

Сколько стоит час практики на курсах веб‑дизайна: считаем по публичным страницам трёх школ

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

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

Все цифры сняты 28 июля 2026 года со страниц курсов. Ничего закрытого: школы публикуют часы, сроки и цены сами.

Читать далее

Tg базового материала печатной платы: что это и почему важно

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

При выборе материала для печатной платы инженеры и конструкторы обращают внимание на множество параметров. Один из ключевых — температура стеклования, или Tg. Этот показатель определяет, как поведёт себя плата при нагреве, и напрямую влияет на надёжность готового изделия.

В этой статье разберём, что такое Tg, почему он важен и как правильно выбрать материал под конкретную задачу.

Читать далее

Как я пустил LLM в базу 1С и не открыл ни одного порта

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

Привет, Хабр.

Из каждого утюга вещают, что нейросети напишут за нас код и отправят выращивать кабачки. Давайте проверим. Попросите модель написать запрос к регистру накопления в УТ 11.5 с разбивкой по номенклатуре. Она напишет Т.Номенклатура. А в этом регистре номенклатуры нет, там Т.АналитикаУчетаНоменклатуры.Номенклатура, и это ключ аналитики, отдельный справочник. Модель не ошиблась в синтаксисе. Она не знает вашу базу и не узнает, пока вы ей её не покажете.

Меня зовут Александр, я разработчик 1С. Команда у нас небольшая, выделенного консультанта нет, и разбор вопросов вида «почему документ не проводится» падает на разработчика. Выжигает быстрее, чем рефакторинг чужого легаси.

Полтора года назад я решил сделать не «ИИ-помощника для 1С», а скучную инфраструктурную вещь: канал, по которому внешний агент дотягивается до данных 1С, не превращая базу в публичный веб-сервис. Дальше про то, как он устроен, и про три места, где всё могло сломаться.

Читать далее

Как облегчить переезд бота из Telegram в MAX

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

В связи с тем, что Павел Дуров теперь террорист, Telegram скоро признают экстремистской сетью, что окончательно выведет бизнес в черную зону. Несмотря на то, что мы видим, как до сих пор всё прекрасно работает в соц.сети с картинками, важно перестраховаться. Поэтому сейчас, чтобы “обелиться”, многие бизнесы и эксперты переезжают или будут переезжать в другие соц.сети, в том числе в тот, который ловит даже на парковке

Если вам кажется, что для перевода бота с Telegram на МАХ достаточно пары кликов: получить токен, поменять адрес API и подключить прежние обработчики, то, к сожалению, все не совсем так. Обычно это намного сложнее, ведь у платформ отличаются события, кнопки, медиа, работа с мини-приложениями и идентификаторами.

А если вам не повезло и в проекте намешаны бизнес-логика и код конкретной платформы, то скорее всего, надо будет написать практически нового бота

Читать далее