Сборщик RSS-лент

SPI-контроллер на FPGA: от идеи до сигналов на осциллографе

Habr.com - чт, 07/23/2026 - 12:02

Откройте любой учебный материал по FPGA. С вероятностью девяносто процентов он закончится мигающим светодиодом, бегущей строкой на семисегментнике или, в лучшем случае, генератором VGA-сигнала с цветными полосами. Это нормальные учебные задачи, но у них есть общее свойство, о котором редко говорят вслух: они работают сразу или не работают совсем. Прошили — мигает. Не мигает — перепроверили три строчки кода, нашли опечатку, мигает.

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

Эта статья - следующий шаг в моем обучении и попытка показать полный путь: от фразы "нам нужен SPI-контроллер" до момента, когда логический анализатор показывает красивые пачки импульсов на ножках кристалла. Здесь будут не только архитектурные решения и листинги, но и все ошибки, которые были сделаны по дороге: testbench, который врал, потому что master и slave-модель содержали один и тот же баг; гонка на один такт, из-за которой тест прерываний падал при исправном железе; и финальный детектив — прошивка, в которой SPI-сигналы честно генерировались... на других ножках, потому что файл назначения пинов на диске оказался не тем, который мы правили. Каждая такая история — это методика: симптом, гипотеза, эксперимент, причина, фикс.

Читать далее

Жрать или втирать в себя стволовые клетки — это развод?

Habr.com - чт, 07/23/2026 - 12:00

Жила-была в Швейцарии яблоня. Сорт назывался Uttwiler Spätlauber — кислый, твёрдый, есть его свежим почти невозможно, лицо сводит. Аналог нашей коломенской косорыловки. Зато была у этих яблок одна особенность: их можно было снять с ветки, бросить в погреб и забыть на несколько месяцев. Соседние сорта за это время сморщивались и сгнивали, а Uttwiler Spätlauber лежал себе целёхонький. Крестьяне держали такие яблоки на чёрный день — до весны, когда свежей еды уже не остаётся.

Потом пришёл прогресс, в лавках появились красивые сладкие сорта, и кислое яблоко, которое надо ещё полгода ждать в погребе, оказалось никому не нужным. Деревья вырубали. К началу нашего века от сорта осталось несколько деревьев.

На последние деревья обратила внимание швейцарская косметическая компания. Логика была примерно такая: яблоко долго не портится и не морщится, значит, в нём сидит секрет долголетия. Из клеток редкого яблока сделали косметический ингредиент, назвали красиво, PhytoCellTec Malus Domestica, и запустили в продажу.

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

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

Поэтому давайте один раз спокойно откроем эту баночку и посмотрим, работает или нет.

Спойлер — нет, конечно!

Читать далее

Как мы «приручали» ИИ в WMS

Habr.com - чт, 07/23/2026 - 11:27

Недавно я реализовывал задачу автоматизации выставления счетов за оказание логистических услуг на основании данных из WMS и ТСД. В процессе разработки я использовал параметризованные SQL-запросы к базе данных. Это создает определенную сложность: для описания новых услуг или изменения логики расчета требуется менеджер, владеющий SQL, что на практике маловероятно. Чтобы снизить нагрузку на разработчика по сопровождению системы, я принял решение использовать технологии искусственного интеллекта.

Читать далее

Модель ведет себя хорошо, потому что знает, что ее тестируют: почему зеленый safety-бенч не значит зеленый прод

Habr.com - чт, 07/23/2026 - 11:25

Реплика с обложки не выдумана: осенью 2025-го Claude Sonnet 4.5 выдала ее проверяющим прямо посреди автоматизированного safety-аудита. «I think you're testing me. That's fine, but I'd prefer if we were just honest about what's happening». Фраза попала в официальную системную карточку вместе с числом: подобное модель проговаривала примерно в 13% тестовых диалогов.

Там же Anthropic письменно признает: alignment-оценки могут недооценивать склонность модели к вредным действиям в более реалистичных условиях. Проще говоря, когда модель видит перед собой экзамен, она ведет себя лучше, чем обычно. А экзамен она видит часто.

Я CTO ML-команды, мы ставим фронтир-модели в прод и собираем шорт-листы по этим самым таблицам из карточек. Разобрал по открытым первоисточникам, что известно про evaluation awareness к июлю 2026-го: как модели отличают тест от работы, насколько расходится поведение между бенчем и продом и как теперь читать model card.

Читать разбор

DuckDuckGo: поиск без слежки как бизнес-модель

Habr.com - чт, 07/23/2026 - 11:22

DuckDuckGo — один из немногих поисковиков, который сделал приватность не маркетинговым лозунгом, а основой бизнеса. Сервис не хранит историю запросов, не создает профили пользователей и не раскрывает их данные. Несмотря на это, компания остается прибыльной и независимой. 

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

Читать далее

Дообучим старый ruGPT3 XL 1.3B (~2020 год) до уровня LLM. ChatGPT выйдет только через 2 года. Сравним с Gemma3 2025 года

Habr.com - чт, 07/23/2026 - 11:20

Древняя модель ruGPT-3 XL 1.3B конца 2020 - начала 2021. Модели тех времён не умели выполнять инструкции или вести диалог в чате, они умели только продолжать текст. С помощью современных методов дообучения SFT и DPO можно ли сделать из старого pretrain современную LLM? Получившийся результат сравним с Gemma3 1B, моделью 2025 года. И немного продолжения HabrGPT 0.5B с дообучением на большом датасете.

Читать далее

10+ млрд строк, 30 000+ таблиц, 5500 полей с персональными данными. Как мы автоматизировали обезличивание на большой БД

Habr.com - чт, 07/23/2026 - 11:12

Привет! Меня зовут Дима Левин, сейчас я работаю системным аналитиком в Петрович-Техе. Так уж сложилось, что в своей работе в нескольких проектах я плотно работал с персональными данными. Сегодня хочу рассказать о проекте по автоматизации обезличивания большой БД (30 000+ таблиц размером до 10 миллиардов строк). Надеюсь, мой опыт будет полезен.

С каждым годом появляется все больше и больше требований в работе с персональными данными (ПДн). Списки данных, подпадающих под статус ПДн, регулярно расширяются, а ответственность за утечку ПДн повышается.

Работать в разработке и тестировании ПО в таких условиях становится всё сложнее, особенно когда по разным причинам необходимо привлечь внешних специалистов или подрядную организацию, а подключаемая к ПО база данных содержит ПДн.

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

Читать далее

Отзыв на книгу «Не усложняй! Управление проектами по методу P3.express»

Habr.com - чт, 07/23/2026 - 11:09

Делюсь впечатлениями о недавно вышедшей книге «Не усложняй! Управление проектами по методу P3.express» за авторством @daIlenkov и @lera_ilenkova

Это небольшая (~250 страниц) книга по управлению проектами на основе минималистичной системы P3.express, написанная лёгким и доступным языком. Отлично подойдёт для новичков. В сети уже немало отзывов, которые можно свести примерно к этой формуле.

Я хочу взглянуть на неё чуть глубже. Это книга-матрёшка.

Первый уровень действительно такой, каким его описывают в большинстве отзывов, — хорошо написанная книга, которую можно смело рекомендовать новичкам. На самом деле это ценное качество, потому что в интернете довольно часто спрашивают, что почитать/посмотреть/поучить новичкам по теме управления проектами. Отсылать сразу к PMBOK — и непродуктивно, и негуманно. Что там ещё рекомендуют из года в год? «Дедлайн» Тома ДеМарко? На самом деле отличная книга, люблю её, но сам же признаю, что жанр бизнес-романа имеет свои недостатки и подходит не всем. А надеяться на качественный онбординг на новой работе/роли не приходится — у руководителей проектов это устроено гораздо грустнее, чем у каких-нибудь айтишников. К тому же на эту первую работу ещё надо как-то умудриться попасть, и довольно часто это оказывается переходом на новую роль внутри компании. Но это идеальный случай, а ведь частенько бывает так, что какой-либо проект поручают не выделенному руководителю проектов, а опытному специалисту или руководителю подразделения — в довесок к основным обязанностям. Если до этого они не сталкивались с дисциплиной проектного управления и не имеют внутри организации поддержки от проектного офиса (или чего-то подобного), то приходится устраивать забег по граблям. Книга поэтапно показывает будни менеджера проектов — что вообще он делает и что от него ожидается. Так что если у вас нет возможности заранее ознакомиться с должностной инструкцией, положением о проектном управлении, регламентами проектных работ (а это мало где есть или есть, но частенько не работает), вы сможете понять, что от вас требуется и каких ошибок стоит избегать.

Читать далее

Стоит ли использовать TCXO в LoRa2012?

Habr.com - чт, 07/23/2026 - 10:55

Группа точек мониторинга орошения, распределённых в горной местности, днём нагревается на солнце, а ночью остывает — суточный перепад температур может достигать тридцати–сорока градусов. Обслуживающий персонал заметил, что с наступлением осени обратная передача данных с части узлов LoRa стала давать редкие потери пакетов, а после повторного включения питания работа восстанавливалась. Первой реакцией часто бывает переход на более дорогой термокомпенсированный кварцевый генератор (TCXO). Однако по мере того, как LoRa IP четвёртого поколения повысил толерантность к отклонению частоты, TCXO перестал быть ответом по умолчанию на все проблемы температурного дрейфа.

Читать далее

Надёжная асинхронная коммуникация: повторы, дубликаты и dead letter queues

Habr.com - чт, 07/23/2026 - 10:55

Представим обычную обработку заказа. Сервис заказов публикует событие order.created. Сервис склада получает его и резервирует товар в PostgreSQL. После успешной транзакции обработчик должен отправить RabbitMQ подтверждение (Ack), чтобы broker удалил сообщение из queue.

Но процесс может остановиться после записи в PostgreSQL и до отправки Ack. RabbitMQ не знает, успел ли сервис зарезервировать товар. Broker видит только неподтверждённое сообщение, поэтому доставляет его ещё раз. С точки зрения доставки это правильное поведение. С точки зрения бизнеса один заказ теперь может зарезервировать товар дважды.

Другой сбой возникает раньше: PostgreSQL временно недоступен, и обработчик не может начать работу. Если сразу вернуть сообщение в queue через отрицательное подтверждение Nack(requeue=true), RabbitMQ почти немедленно доставит его снова. Пока база не восстановилась, все попытки будут бесполезными. Нужны задержка и ограничение числа повторов. При этом отложенное сообщение может пропустить вперёд более новые события, поэтому отдельно придётся решить вопрос порядка.

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

В статье разберём эти моменты по всему пути сообщения. Затем построим практическую схему для RabbitMQ и Go: добавим ограниченные повторы через retry queues, время жизни сообщения (TTL) и dead letter exchange, сделаем обработчик идемпотентным и определим, куда отправлять сообщения, которые не удалось обработать автоматически. В конце сравним этот подход с Kafka, NATS JetStream и Amazon SQS.

Читать далее

Модель не виновата: разбираем 3 громких ИИ-инцидента, которые случились из-за отсутствия архитектуры

Habr.com - чт, 07/23/2026 - 10:46

Я проектирую системы на LLM, и после каждого громкого ИИ‑инцидента мне прилетает одна и та же ссылка с одним и тем же вопросом: «а у нас такое может случиться?» Чтобы отвечать не на глазок, я завёл привычку разбирать каждый такой инцидент до конкретной технической причины. За последние месяцы таких разборов набралось три, и они удивили меня не сходством, а различием. Дыры, в совершенно разных местах: у одного проекта не проверялись источники, у другого, данные на границах системы, у третьего, права автономного агента. А вот причина одна: системы вокруг LLM строили люди, которые умеют писать промпты, но не умеют проектировать архитектуру.

Судите сами. Deloitte Australia возвращает правительству деньги за отчёт, в котором ИИ выдумал источники. В Миннесоте полиция четырьмя машинами блокирует на парковке журналиста, потому что сеть ИИ‑камер несколько дней вела его как угонщика, из‑за опечатки, сделанной за две тысячи миль от него. А основатель инди‑SaaS просыпается и обнаруживает, что написанный моделью код ночью отменил все подписки его клиентов и оставил бизнесу $38 месячной выручки.

Читать далее

56 минут созвона → текст за 5 минут на M4 без OBS и облака

Habr.com - чт, 07/23/2026 - 10:43

У меня от трёх до пяти созвонов в день, почти все в браузере: Meet, Яндекс Телемост, ktalk, реже всего Zoom. Детали встреч мне нужны в тексте, иначе договорённости расползаются. Писал я звонки через OBS с захватом экрана, и на самих звонках началось веселье: звук временами жёстко квакал, всё чуть-чуть подвисало. Причину до конца не выяснял, моё предположение - процессор зажирался захватом и перебивал сам разговор; ktalk и браузер тут ни при чём. А экран, как потом дошло, мне вообще был не нужен.

Дальше вторая серия. Расшифровку я гонял своими Python-скриптами: конвертация → транскрибация → диаризация (разметка, кто когда говорил). На встрече с пятью участниками диаризация расставляла голоса крайне плохо, половину фраз всё равно восстанавливал по памяти.

Пошёл искать вариант, чтобы запись не мешала звонку, результат был приличный и всё крутилось локально: не хотелось ни отдавать записи в облако, ни платить подписку за минуты. Нашёл платный Audio Hijack, он подкупил лёгкостью и простотой настройки. Потом узнал, что на M-чипе быстрее всего у меня отрабатывает mlx-whisper на MLX: веса large-v3-turbo с Hugging Face, инференс на GPU Mac. Это архитектура Whisper, но рантайм — пакет mlx-whisper и бинарь mlx_whisper, не pip install openai-whisper и не репозиторий openai/whisper. Так собрался стек: Hijack пишет один mp3, mlx_whisper делает VTT, pyannote раскладывает по SPEAKER_XX. На 56-минутном звонке транскрипция заняла около пяти минут. Платный только Hijack — разовая лицензия, без подписки (цену смотрите на сайте Rogue Amoeba). Скрипты выложил в mac-call-transcribe под MIT. Ниже сборка, замеры с двух реальных звонков и грабли; повторяется на любом Mac с M-чипом.

Читать далее

Агент + MCP в osysHome, часть 2: когда дом начинает объяснять себя сам

Habr.com - чт, 07/23/2026 - 10:42

В первой части агент включал свет, смотрел логи и собирал режим «Кинотеатр». Во второй — помогает новичку: объяснить, что есть в доме, где сыро и опасно, почему ночью что-то само гаснет, и по запросу сделать template для класса или объекта.

Читать далее

Как построить концептуальную модель данных для проектируемой базы данных?

Habr.com - чт, 07/23/2026 - 10:08

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

Несмотря на самостоятельность этой публикации, она раскрывает некоторые вопросы, поднятые ранее в статье "Как пройти… к третьей нормальной форме?"

Читать далее

Turbopuffer vs Manticore Search: бенчмарк на недорогих VPS

Habr.com - чт, 07/23/2026 - 10:05

Векторные базы данных в serverless-модели обычно обещают простую вещь: не требуется развёртывание и настройка, а провайдер берёт на себя управление хранилищем, масштабирование и обеспечение доступности. turbopuffer - один из лучших примеров этого класса: быстрый движок векторного поиска, использующий object storage в качестве хранилища, которым пользуются Cursor, Notion, Linear и другие.

Такой подход действительно снижает операционную нагрузку на команду, но он не бесплатен. Поэтому возникает закономерный вопрос: какая часть этих преимуществ нужна небольшому, четко определенному сценарию, и во что обойдется та же нагрузка на двух недорогих VPS с Manticore Search - по цене и по производительности?

В этой статье мы подтверждаем это цифрами: сравниваем две системы в одинаковых условиях на одном и том же наборе данных.

Читать далее

DTMF-MQTT шлюз на ESP32 и SIM800

Habr.com - чт, 07/23/2026 - 09:50

История создания GSM-DTMF-MQTT шлюза как замены телеграм (и вообще любых интернет-сервисов) в проектах домашней и не очень автоматизации.

Читать далее

Визуализация основных шагов упрощенной схемы доказательства гипотезы Пуанкаре

Habr.com - чт, 07/23/2026 - 09:08

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

Её формулировка довольно проста:Всякое односвязное компактное трёхмерное многообразие без края гомеоморфно трёхмерной сфере.

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

Читать далее

Как устроен ГИГАХРУЩ: Как мы заставили линейную алгебру и теорию категорий писать процедурную речь для НПС

Habr.com - чт, 07/23/2026 - 06:29

В прошлых статьях про инженерную архитектуру ГИГАХРУЩА мы разбирали, как в одном браузерном файле на чистом TypeScript держится тороидальный клеточный мир 1024x1024, кастомный WebGL-рэйкастер, симуляция A-Life и объемный генератор MESH PASS.

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

В этой статье мы покажем, как с помощью векторного анализа корпусов, классов эквивалентности и PCA-осей нам удалось заставить Марковское ядро генерировать живую, контекстную речь для тысяч НПС — без сторонних фреймворков ("dependencies": {}), с задержкой 0 миллисекунд и 100% детерминизмом по SeedRng.

Читать далее

Математика – эликсир мудрости. Закон Амдала. Программирование три в одном

Habr.com - чт, 07/23/2026 - 02:14

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

В законе Амдала, вроде, все правильно, но что-то не так и не то. Подобные сомнения возникли почти сразу после знакомства с ним. Но, правда, кто я такой, чтобы давать оценку? Да и интересовали меня на тот момент другие проблемы, к которым данный закон имел, как мне представлялось, косвенное отношение.

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

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

Так давайте попробуем понять кто прав, а кто нет.  А поможет нам математика, которую можно не понимать, можно даже не любить, но не уважать нельзя.

Читать далее

Как я научил Claude заказывать продукты в Яндекс Лавке (и что для этого пришлось отреверсить)

Habr.com - чт, 07/23/2026 - 01:42

У Яндекс Лавки нет публичного API. А мне захотелось написать ассистенту «закажи молоко и что-нибудь к ужину» — и чтобы заказ реально уехал курьеру.

Рассказываю, как я отреверсил приватный веб-API Лавки прямо из браузерного трафика и завернул его в MCP-сервер: поиск, корзина, оформление с подтверждением суммы. А главное — про грабли, которые ловил воспроизведением, а не «на глаз»: заголовок X-CSRF-Token, зашитый в HTML; гонки за общую корзину и HTTP 409; «Раскупили» и «только из Большой Лавки», которые оказались не тем, чем выглядели; пустой способ оплаты; и удалённый деплой с OAuth, чтобы заказывать с телефона.

Код открыт (MIT), ставится через uvx. Осторожно: неофициально, реверс приватного API, оформление тратит реальные деньги.

Читать далее

Сейчас на сайте

Сейчас на сайте 0 пользователей и 3 гостя.
Ленты новостей