Объясню кэш через холодильник, а потом покажу, где эта аналогия ломается, и что с этим делают в проде.
Статья для тех, кто кэш уже ставил, но не разбирался, почему он иногда роняет сервис вместо того, чтобы его ускорять.
Читать далееСоавтор статьи — Сергей Левенец, CTO в команде ТестОпс.
Что останется делать людям, когда код будут писать машины? Практика показывает — на удивление много, без работы никто не останется. В двух статьях мы опишем реальный опыт создания внутреннего агента для исправления багов в команде ТестОпс. Расскажем, сколько такой агент экономит, как его отлаживать, и чем автоматическая правка отличается от диалога с Claude Code.
В команде ТестОпс разработка поставила себе задачу: ноль багов в бэклоге. Эта амбициозная задача запустила большую работу по исследованиям и разработке, в результате которой родился агент, способный исправлять и проверять баги. Команда стихийно назвала его «Агент Смит».
Написать первую версию агента было делом двух-трёх дней. Гораздо сложнее оказалось внести в него экспертизу — то есть отладить его шаги и настроить помощников. Для этого потребовалось и набить шишек в реальной работе, и изучить много научной литературы. Возможно, самым сложным и важным было научиться оценивать издержки от внедрения агента. Об этом мы и поговорим — но вначале разберёмся, как устроен сам «Смит».
Читать далееПредположим, вас укусил комар прямо в задницу.
Что там, вы не видите, но зудит, поэтому вы чешетесь. То есть прям берёте и начинаете водить ногтями по месту укуса. До тех пор, пока это отвратительное состояние зуда в моменте не пройдёт.
Прикол в том, что почесаться надо достаточно сильно, чтобы боль от царапин перекрыла сигнал зуда в спинном мозге. Тогда вы чувствуете облегчение на несколько секунд. Но механическое воздействие на это место усиливает выброс гистамина и цитокинов, и раздражение становится сильнее. А раздражение — главная причина зуда.
Есть ещё невероятный прикол с серотонином в этой же цепочке, но про него чуть позже.
Боль вообще-то — технология отрицательной обратной связи. Не делай, чтобы тебе не было больно. Не трогай горячее; не выгибай вот так руку; береги пораненную ногу; не бей организмом по кокосу, бей лучше камнем и так далее.
Зуд от укуса комара даёт положительную обратную связь. Чем больше зудит, тем больше зудит.
Часто бывает, что 90% итогового воспалительного процесса — это не комар и его токсины, это мы своими ногтями.
Соответственно, если вы хотите, чтобы что-то на коже заживало, нужно успокоить пользователя, отключить чувствительность в первую очередь. Потом убрать раздражение на уровне сигнальных молекул (загасить цитокиновый микрошторм). Потом уже можно заниматься починкой структуры и полирнуть сверху защитным барьером, потому что сухой роговой слой сам по себе раздражает рецепторы.
И вот у нашей лаборатории появилась задача это всё собрать. Опыт за 30 лет накопился, в регенерации тканей мы уже хорошо разбираемся, но прошло не без сюрпризов.
Читать далее12 августа SpaceXAI выпустила Grok 4.6. Модель получила 500 тысяч токенов контекста, четыре режима рассуждения и явный уклон в длинную агентную работу. В первых тестах она держится рядом с сильнейшими конкурентами, а в CursorBench выходит вперед при средней стоимости 2,81 доллара за задание.
Цифра выглядит приятно. Почти так же приятно, как счет из ресторана, пока никто не вспомнил про вино. У Grok 4.6 таким вином стал длинный контекст: после 200 тысяч токенов тариф удваивается. Поэтому разберемся, где модель действительно прибавила, сколько стоит длинный прогон и кому есть смысл пробовать ее прямо сейчас.
Читать далееПривет, Хабр! Меня зовут Эрнест Гилязов, я тимлид группы разработки интерфейсов Рунити. В этой статье расскажу, как мы переносим на новый стек проект Рег.ру, кодовой базе которого исполняется 20 лет, и почему в итоге Nuxt-приложение само раздает шапку и футер в легаси-монолит через обычный JSON-эндпоинт.
Читать далееПочти любой NVMe-диск сегодня выпускается в двух версиях: с радиатором и без. Разница в цене между ними выходит не такая уж и большая, поэтому многие не глядя берут более дорогую. Да и чего бы не взять? Доплата копеечная, зато на выходе получаешь диск, который точно не перегреется. Звучит логично, вот только чаще всего деньги улетают в трубу. Не потому, что есть сценарии, когда SSD не греется. Греется. Просто настоящая причина ставить радиатор лежит совершенно в другой плоскости, о которой почему-то почти не говорят.
Читать далееВсем привет!
Меня зовут Дмитрий Шипилов, с вами команда поиска Uzum Market.
Мы уже рассказывали вам о нашем поисковом движке: о том, как вообще работает ранжирование и что у него под капотом и как мы получаем кандидатов с помощью векторного поиска.
Но хороший поиск — это не только правильное ранжирование и мощная retrieval-часть. Хороший поиск — это набор различных инструментов и компонентов, собранных в сложную систему. Поэтому в этой статье вы узнаете о важных вещах, без которых наш поиск не может обойтись, в том числе: как мы помогли опечаточнику понимать контекст нашего маркетплейса, почему безобидные синонимы могут привести к неожиданным эффектам, в каких случаях важно сужать количество товаров и как построить устойчивую LLM-систему для оценки качества ранжирования.
Так что там про поискСпоры между Elementor и Bricks обычно сводятся к попытке определить победителя: что быстрее, удобнее, чище, функциональнее.
После нескольких лет работы с WordPress мне такой вопрос кажется не совсем правильным.
Я много работаю с Elementor PRO и не собираюсь от него отказываться. При этом для новых проектов всё чаще смотрю в сторону Bricks.
Причина не в том, что один билдер «хороший», а второй «плохой». Они по-разному вписываются в процесс разработки.
Для себя я сейчас разделяю их примерно так:
Читать далееРаспределенная система может сломаться так, что по отдельности все ее части будут выглядеть исправными.
Представим обычную оплату заказа: сервис отправил запрос платежному провайдеру, тот списал деньги и вернул успешный ответ. На обратном пути соединение оборвалось. Для платежной системы операция завершена, а сервис заказа получил тайм-аут и не знает, произошло списание или нет.
Самое очевидное решение — повторить запрос. И получить второе списание.
В монолите подобные ситуации встречаются реже: операция обычно проходит внутри одного процесса или одной транзакции, поэтому место сбоя проще определить. В распределенной системе между началом и концом одной бизнес-операции могут быть несколько сервисов, брокер сообщений, разные базы данных и внешний API (интерфейс программирования приложений). У каждого компонента при этом свое состояние и свое представление о том, что уже произошло.
Так, проверки «отправили запрос — получили ожидаемый ответ» здесь недостаточно. Интереснее проверить, что будет, если ответ задержится или потеряется, запрос придет повторно, события поменяются местами, а один из сервисов восстановится после нескольких минут простоя.
В таких ситуациях проявляются ошибки, которые сложно увидеть на happy path (позитивном сценарии). Ниже разберем, как их воспроизводить и что проверять, чтобы отказ одного компонента не превращался в некорректное состояние всей системы.
Почему распределенную систему нельзя тестировать как обычное приложение
Возьмем простой пример — оплату заказа в интернет-магазине.
Читать далее13 августа состоялся выпуск rsync 3.5.0, свободной утилиты для синхронизации и передачи файлов, широко применяемой для резервного копирования, создания зеркал и переноса данных между системами. Основное внимание в новой версии уделено безопасности: разработчики устранили 33 проблемы, обнаруженные в ходе целевого аудита обработки путей, фаззинга сетевого протокола rsync daemon и анализа сообщений внешних исследователей.
( читать дальше... )
У меня хостинг-провайдер, в штате шесть человек. Когда я говорю, что мы внедрили СЭД, знакомые ржут: вам-то зачем, вас на одну переговорку хватит.
Пробежимся по цифрам. Шесть сотрудников и под сотню точек доступа, больше половины которых ведет не ко мне, а к клиентам. Учет всего хозяйства я вел в гугл-таблице. Заблудились мы в ней, когда нас было трое. Не шестеро, а трое.
Читать далееМне нужен был сервис, в котором должны были работать несколько разных алгоритмов. Часть математики я помнил, часть понимал поверхностно, часть собирался восстановить по ходу работы. Чтобы быстрее получить прототип, я подключил LLM к генерации бойлерплейта, интерфейсов и первых реализаций.
Через несколько дней (говно)кода стало много — вменяемого сервиса не получилось.
Один BFS принимал map[string][]string. DFS жил на другом типе графа. В одной реализации направленность задавалась на уровне графа, в другой вытекала из того, как было записано ребро. Опции существовали, но их комбинации не образовывали понятной политики. Result types возвращали срезы и числа, однако я не мог внятно ответить, что именно они гарантируют.
Проблема была не в том, что LLM «не умеет BFS». Я попросил реализации раньше, чем сформулировал общий контракт данных. Генератор заполнил пустые места правдоподобными допущениями — которые, очевидно, не совпали в разных кусках кода.
Исходный сервис я остановил. Дальше пришлось вернуться к математике, разобрать алгоритмы по отдельности и сначала спроектировать фундамент, на котором они вообще могут сосуществовать. ...решение смелое и честно говоря не самое лёгкое.. и совершенно не дооценённое
Спуститься на уровень архитектурыСегодня выдался какой-то безумный день. Сначала вышла финальная версия DeepSeek V4 Pro, а меньше чем через два часа появился Grok 4.6. Обе модели близки по масштабу: у одной около 1,6T параметров, у второй около 1,5T. И обе за одну ночь подобрались к уровню пользовательского опыта Claude Fable 5.
Читать далееЭта серия для тех, кто выучил синтаксис Go, написал первые go func() и хочет понять, что за ними стоит. Многопоточность знать не нужно: начнем с того, что такое поток. К концу первой части ты будешь понимать, почему поток операционной системы дорогой, что такое горутина физически и как Go пришел к схеме GMP.
Go читатьВ начале августа я сел делать игру для мессенджера MAX – обычный вордли, слово из пяти букв, шесть попыток. Мини-приложение на ванильном JS, сервер на Go, самый дешёвый VPS. По моим прикидкам – три вечера.
Первый вечер целиком ушёл на то, чтобы сервер вообще смог поговорить с API мессенджера. Не на игру, не на словарь – на TCP-соединение.
Дальше было ещё семь таких мест. Каждое выглядело как мой баг, каждое оказалось особенностью платформы, и ни одного из них нет в документации. Ниже – все восемь, с кодом и с тем, как именно я до них дошёл. Игра тут нужна только как повод: она набрала 107 игроков за пять дней, это скромно, и рассказывать я собираюсь не про неё.
Читать далееВдыхаемый в помещении воздух часто содержит пыль, вредные вещества, аллергены и микроскопические частицы, которые незаметны, но постепенно наносят ущерб нашему здоровью. Очистители воздуха набирают всё большую популярность, но зачастую они дороги, неудобны в настройке и почти не дают никакой информации об окружающем нас воздухе.
Для решения этой проблемы я создал AirSense — самодельный умный очиститель воздуха, сочетающий в себе очистку воздуха, мониторинг окружающей среды и подключение к облаку. AirSense не просто фильтрует воздух, но и непрерывно замеряет качество воздуха в помещении, сообщая в реальном времени информацию об окружающей среде, что помогает пользователям лучше понимать состояние вдыхаемого ими воздуха.
Эта система на основе Waveshare ESP32-S3 выполняет мониторинг концентрации пыли PM2.5, индекса качества воздуха (Air Quality Index, AQI), температуры, влажности и атмосферного давления при помощи специальных датчиков окружающей среды. Все собираемые данные отображаются локально на ЖК‑дисплее устройства; кроме того, к ним можно получить удалённый доступ при помощи Arduino IoT Cloud, что позволяет пользователям отслеживать состояние окружающей среды и управлять очистителем через смартфон.
Ядром AirSense служит HEPA‑фильтр Xiaomi Air Purifier 4 Lite, способный фильтровать до 99,97% частиц размером вплоть до 0,3 мкм, включая пыль, пыльцу, частицы дыма и другие распространённые загрязнители воздуха. Система оснащена мощным вытяжным вентилятором размером 150 мм, непрерывно пропускающим воздух через цилиндрический фильтр.
Чтобы проект выглядел как изготовленный профессионально, конструкцию всего корпуса я создал в Autodesk Fusion 360. Система объединяет в себе HEPA‑фильтр, вентилятор, датчики, дисплей и электронику.
Читать далееВ этот раз я пришёл с двухчастным текстом про F#, тайппровайдеры, скрипты, спортивное программирование, MVU, консольные интерфейсы в стиле FarManager, низкоуровневый интероп с виндой, некоторое количество хаков ХМ и, внезапно, живопись. Причём только консольные интерфейсы с некоторой натяжкой можно назвать центральным элементом повествования, поэтому я понятия не имею, как должен выглядеть потенциальный читатель этой статьи. Будем исходить из предположения, что он либо достаточно опытен, либо у него достаточно времени и усердия, чтобы расковырять всё, что я не счёл должным разобрать детально (я могу, но только за 16 глав).
Сегодня мы изучим небольшой .fsx-скрипт, который я ежедневно запускаю, чтобы получить очередную порцию задачек из архива codeforces.com. Необычно то, что скрипт функционирует как полноценное GUI-приложение, пусть и очень страшное старое. Кажется, что до меня так никто не делал, так что с осторожностью назову это авторской инновацией.
Читать далееПривет, Хабр!
На связи Виктор Иевлев, я руковожу отделом информационной безопасности в «Гарде».
Полноценную защиту корпоративной инфраструктуры сегодня сложно представить без коммерческих средств защиты информации. Однако далеко не каждая компания может позволить себе сразу построить такой стек. Стартапы, небольшие организации, компании с ограниченным бюджетом зачастую вынуждены искать компромиссные решения и использовать open source.
Я уже рассказывал в одной из статей об open source-сканерах уязвимостей. В этот раз предлагаю остановиться на защитных решениях и попробовать собрать минимальный стек на базе open source.
Узнать подробностиВы когда-нибудь считали, сколько времени команда теряет, пытаясь разобраться в том, что раньше знал один человек? Исследования показывают, что в крупных компаниях потери от недокументированных знаний составляют десятки миллионов рублей в год. Страдает не только бюджет, но и темпы развития: пока команда разбирается в чужом коде или процессах, конкуренты уходят вперед.
Читать далееДисклеймер. Пишу от своего имени и излагаю своё мнение — с учётом 15-летнего опыта в робототехнике. Прежде чем сесть за этот текст, я провёл порядка 20 полноценных встреч с разными специалистами: среди них геодезисты, маркшейдеры и поставщики оборудования. Так что это не пересказ встреч, а попытка свести в одно то, что я услышал «с земли».
Читать далее