Однажды у меня возникла потребность в кольцевом буфере на C++ для хранения довольно объёмных потоковых данных. Проблема заключалась в том, что мне было необходимо поддерживать непрерывность и упорядоченность данных в памяти, чтобы в любой момент времени я мог считать все элементы буфера одним бесшовным куском в порядке поступления элементов.
Как правило, кольцевой буфер реализуется через списки, вроде std::list или std::deque, либо через плоские массивы, вроде std::vector или boost::circular_buffer. Но ни одна реализация не гарантирует непрерывность и упорядоченность одновременно. В данной статье я расскажу про реализацию буфера через трюк с виртуальной памятью, сохраняющую упорядоченность элементов в непрерывной ограниченной области памяти.
Читать далееВ этой части разберём, зачем Kubernetes понадобился Gateway API, если уже существует Ingress. На простом примере посмотрим, как Gateway и HTTPRoute разделяют точку входа и маршрутизацию, зачем нужен GatewayClass и почему такая модель удобна, когда кластер и приложения обслуживают разные команды.
Читать далееМожно ли позаимствовать у мозга мухи способ накапливать индивидуальный опыт — и использовать его для персонализации прогнозов? Я backend-разработчик и начинающий в ML. Исследуя предсказание пищевых срывов, я взял фрагмент коннектома дрозофилы, отделил общую модель от персональной памяти и проверил конструкцию на синтетических данных.
Получилось интереснее, чем просто перенести биологическую аналогию в Python: память улучшила ошибку вероятностного прогноза внутри одной модели, и пока что убедительного преимущества над градиентным бустингом не получено. Рассказываю, как устроен мой эксперимент.
Читать далееПаттерн LLM Wiki предлагает хранить знания не как историю чата с моделью, а как вики, которую агент инкрементально собирает из источников. В статье предлагаются к использованию два репозитория: (А) llm-wiki-baseline — с шестью готовыми шаблонами «второго мозга» под разные домены и (Б) llm-wiki-kbt, реализующий тот же паттерн, но для вики в другой архитектуре, с проверяемой структурой на расширяемых схемах данных и с заделом под доказательный вывод: типизированные YAML-записи, строгие схемы, общая онтология и зонды, которые ловят противоречия программно. В качестве примера — вики евклидовой геометрии с интерактивным графом.
Читать далееПлатёжный сервис прошёл ревью, тесты зелёные, в базе один успешный платёж — а с карты списали деньги дважды. Причём в двух инцидентах к дублю привели разные сценарии. Разбираемся по коду и логам, откуда взялись повторные списания и как построить идемпотентность, которая закрывает оба случая.
Проверить решениеУ моей собаки Pin двенадцать сервоприводов, десять килограммов веса и ни грамма железа: она живёт в браузере. Тем не менее она трусит рысью со скоростью 35 см/с, держит курс по гироскопу и однажды села на хвост, когда я попробовал научить её прыгать.
Это рассказ о том, как в учебной платформе PinPort появился четвероногий робот, что у него внутри и почему ходить у него получилось раньше, чем бегать.
Читать далееНедавно Виктор Хагани - экс-сооснователь известнейшего LTCM и автор книги «Пропавшие миллиардеры», где он исследует эргодическую экономику, написал пост "Вы действительно хотите стать миллиардером?".
Читать далееУтечка данных может начинаться с обычного действия сотрудника: подключения USB-носителя, сканирования документов, отправки письма на личную почту или загрузки рабочего файла во внешний ИИ-сервис.
Сотрудник при этом уже имеет легитимный доступ. Он знает внутренние процессы, работает под корпоративной учетной записью и может обращаться с документами так же, как делал это раньше. Отдельное действие не всегда выглядит подозрительно, поэтому при расследовании учитывают последовательность событий и их контекст.
DLP-система фиксирует действия с данными: какие документы открывал пользователь, куда их передавал, что записывал на носитель, какие файлы загружал во внешние сервисы и как менялось его обычное поведение.
Эксперт в области защиты данных ГК «Солар» Виталий Петросян разбирает три расследования, в которых использовался Solar Dozor.
Дело первое. Чужая учетная запись
Руководитель крупного подразделения уходил в отпуск и передал пароль от рабочей станции доверенному человеку, чтобы тот мог продолжить работу. В результате под учетной записью руководителя получил возможность работать другой сотрудник.
Действия совершает один человек, а в системах они фиксируются за другим пользователем.
Первый сигнал Solar Dozor был связан с попыткой записать служебный документ на USB-носитель. Документ относился к чувствительным материалам и содержал пометку ДСП. Перед записью цвет пометки изменили так, чтобы она почти сливалась с фоном.
Команда ИБ зафиксировала событие и продолжила наблюдать за действиями учетной записи в рамках внутреннего расследования. Позже попытка переноса сведений повторилась.
Читать далееИзначально я хотел написать про узкую тему: ИИ-слоп на таких платформах, как Хабр. Есть ли он, какую долю занимает, как быстро растёт. Пока писал, пересматривал «Прослушку», и в рекламной паузе попался ролик, после которого я представил скорее промпт на 30 слов, чем работу опытного 3D-аниматора. По одному просмотру не поймёшь, как его делали, но впечатление было именно такое.
После этого ограничиваться платформами для статей расхотелось. Здесь про влияние ИИ-контента на интернет в целом: от видосов в тиктоке до карточек на ВБ, от песен с заурядным текстом в стримингах до экспертных постов в LinkedIn и научных публикаций. Насколько глубоко он проник, кому это выгодно и чем может кончиться.
Читать далееТы не владеешь источником — значит, не владеешь временем. Как поллер по updated_at молча теряет строки, почему exactly-once это свойство твоей записи, и почему сверка важнее потока.
Читать далееВ релизах ветки 16.x мы постепенно внедряли новую модель разработки, которая решает многие проблемы, с которыми вы сталкивались с самого появления App Router:
Обеспечивает быструю первоначальную загрузку даже персонализированных страниц.
Делает клиентские переходы в приложениях с серверным рендерингом мгновенными.
Делает кеширование декларативным и компонуемым, при этом включать его нужно явно.
Эта модель называется Cache Components, и в Next.js 17 она будет использоваться по умолчанию.
До этого релиза мы не рекомендовали её для всех без исключения приложений: в некоторых сценариях она не могла обеспечить те же гарантии по затратам и производительности, что и прежняя модель.
В этом релизе появились ключевые возможности, которые устраняют эти ограничения.
Начиная с Next.js 16.4, мы с уверенностью рекомендуем Cache Components как лучший выбор для любого приложения на Next.js.
Читать далее«Нужен простенький дашборд: продажи, популярные товары, фильтр по категориям. Всё в Excel, работы на пару часов».
Читать далееНесколько месяцев поиска работы, сотни откликов, отказы, игнор, десятки собесов и.... наконец-то вам пишут: "Мы готовы сделать оффер".
Кажется, можно выдохнуть, но вместо этого появляется новая проблема: а стоит ли соглашаться?
Особенно, если оффер особого восторга не вызывает, и думаешь, вдруг скоро предложат что-нибудь получше?
В этой статье расскажу, как оценить оффер и принять решение, чтобы потом не пожалеть.
Читать далееПлохая память, сонливость, рассеянность, стресс — для каждой из этих проблем уже придумали таблетку или БАД. Обитатели Хабра, по субъективным наблюдениям, знакомы с этим лучше всего) Из таких БАДов есть популярные глицин и ежовик.
Глицин с 0 лет советуют принимать для спокойствия, ежовик гребенчатый — для памяти и концентрации. Причём некая научная основа у таких средств действительно есть. Хочу рассмотреть её и понять, как отличить проверенный препарат от распиаренной пустышки.
Читать далееНу вот и докатились. Многие уже, наверное, слышали о выходе очередных ограничений от компании Google для Android‑разработчиков. На этот раз дело коснулось святая святых — независимых авторов, распространяющих свои приложения в обход официальной платформы Play Store. Под видом заботы о пользователях выраженной в обеспечении безопасности при распространении софта Google подложил неожиданную свинью.
Что уж говорить о недавнем случае, когда Google, мягко говоря, кинул своих клиентов на деньги. Разработчики щедро оплачивали регистрацию в Google Console и публиковали свои разработки. Ничто не предвещало беды. Потом Google выкатил депешу — мол, необходимо пройти верификацию личности разработчика и прислать документы для подтверждения. Многие тогда были возмущены и в результате потеряли свои аккаунты. Google просто их заблокировал.
Теперь для полноценного распространения приложений даже вне Google Store разработчикам необходимо пройти регистрацию в Android Developer Console. Основными требованиями стали предоставление личных документов, генерация хеша APK‑файла, указание имени пакета и самое «вкусное» — оплата членского взноса в размере всё тех же 25 долларов США за эту самую регистрацию. В итоге, если раньше разработчики распространяли свои приложения вне Google Store бесплатно, теперь Google решил залезть в карман и к ним.
Зачем Google это делает?
Версия Google: защита пользователей от вредоносного ПО, фишинга и клонов популярных приложений. Привязка к паспорту и хеш‑файлу позволяет заблокировать злоумышленников «намертво», чтобы они не смогли создавать тысячи анонимных аккаунтов.
Читать далееРанее я написал обширную статью про попытки сделать разговоры с NPC SkyrimNet более живыми, но упустил главное… Не рассказал, как вообще устроен NPC изнутри. Что происходит, когда вы дописываете реплику от лица своего персонажа и нажимаете Enter?
Читать далееЯ провёл бенчмарки различных серверов и режимов запуска PHP: PHP-FPM + Nginx, FrankenPHP (классический и worker-режим), Rapira (классический, worker, dispatcher), OxPHP (классический, worker), RoadRunner, FreeUnit, Swoole.
Читать далееПосле того как я начал делиться на Хабре опытом построения своего стартапа – почти семь лет работы, $1,35 млн инвестиций и 300 тысяч пользователей – оказалось, что тема людям действительно интересна. Поэтому после небольшой паузы продолжаю. Мы уже обсудили базовые уроки основателя, планирование в условиях полной неопределенности, управленческий долг и психологию управления стартапом.
Сегодня поговорим о финальной части этого пути: как искать стратегический выход, когда стартап жив, но взрывного роста уже нет. За несколько месяцев я собрал базу примерно из 170 потенциальных покупателей и 700 контактов, прошел через дюжину серьезных переговоров, получил ответ на письмо лично от основателя Dropbox, пообщался еще с парой tech-миллиардеров Долины, а в итоге мы с кофаундером получили офферы от компании-единорога.
Ниже – несколько практических уроков, которые я вынес из этого процесса. Поехали!
За двести лет инженерная профессия в России прошла путь от привилегированного положения, связанного с образованием, чином и полномочиями, до ситуации, когда востребованному специалисту может быть выгоднее сменить профессию. Разрыв между доходом от технического мастерства и заработком в других ролях назвал инженерным штрафом (подробнее в первой статье). К первой статье было несколько комментариев о том, что инженеры и раньше мало зарабатывали и уходили. Поэтому решил посмотреть, как менялись их положение и причины такого выбора.
При этом российский путь не был единственно возможным. В Италии Ingegnere сохранилось как уважительное обращение перед фамилией. Оно вошло и в массовую культуру: в комедиях о Фантоцци слово «инженер» соседствует с графскими и герцогскими титулами начальства. Во Франции инженерные школы вроде Политехнической школы сохранили роль в подготовке государственной и деловой элиты. Другой пример Австрия, где инженерный титул получил законодательную защиту ещё в 1917 году. Сегодня обладатель квалификации Ingenieur вправе ставить сокращение Ing. перед именем и требовать внесения титула в официальные документы, включая паспорт. Высокий статус сам по себе не гарантирует высокой зарплаты, но эти примеры заставляют внимательнее посмотреть, с чем были связаны перемены в России.
Читать далееБольшинство владельцев сайтов, на которых можно извлечь хоть какую-то пользу от регистрации, рано или поздно сталкиваются с фродом. В этой статье я опишу как построить ML модель на Catboost для анализа “человечности” email адреса и подсчета скоринга. В статье по шагам разбираю весь путь: подготовку и разметку датасета, генерацию синтетических примеров, feature engineering, n-граммы и словари имён.
Читать далее