Можно ли на STM32 реализовать однобитный ADC ?
Причем без использования аппаратного ADC.
Да так, чтобы GPIO пин читался со строго определенным микросекундным периодом по команде аппаратного таймера и сохранял значения прочитанных логических уровней в массив.
При этом во время чтения N однобитных семплов должно произойти не более 2х аппаратных прерываний.
Да, можно.
Читать далееСгенерированная картинка для привлечения внимания. Промпт: «Продемонстрируй, что всё новое — это хорошо забытое старое» (нет)
За последний год инструментов для агентной разработки стало столько, что в них легко потеряться: одни обещают сохранять контекст между сессиями, другие — «понимать» всю кодовую базу целиком, третьи — память, планирование и автономность в одном флаконе. На GitHub каждую неделю появляются репозитории с внушительным (и не всегда честно заработанным) числом звёзд, которые обещают всё и сразу, а на поверку оказываются README-проектами; другие честно работают на демо-репозитории и падают с OOM при первой же встрече с реальным энтерпрайз-проектом — и так далее, список можно продолжать долго.
Осенью прошлого года я пользовался связкой Claude + RooCode + семантический поиск на Ollama, и это был мой основной рабочий инструмент — ровно до того момента, как связка перестала работать (об этом чуть ниже). Я решил полностью пересесть на Claude Code и начал искать замену семантическому индексу, но так её и не нашёл: альтернативы для меня просто не работали — на монолите в 3,5M+ строк они либо индексировались часами, либо требовали отдать код в облако (и заплатить немалую сумму за эмбеддинги!!!), либо поддерживали Ruby, мягко говоря, номинально. В итоге я принял непростое для себя решение сделать собственный инструмент — начав с форка простого движка семантического поиска на Ollama + Qdrant — и, что характерно, сделал: полностью локальный, чтобы ни код, ни его производные (индекс, эмбеддинги, граф вызовов) никуда не уезжали. На сегодняшний день на него ушло больше полугода (и, честно признаюсь, не одна сотня чашек чая).
Читать далееНачало в статье ERP внедрили. Что дальше?
Термины, используемые в статье
Project-DR ERP Technology Distribution — полное название технологической сборки. В дальнейшем — «технологическая сборка Project-DR ERP», версия.
Project-DR — Project Digital Replica, проектная цифровая реплика — внутренняя производственная технология и проектная среда, в которой строится и при необходимости структурно перестраивается профессиональная модель предприятия. Заказчику Project-DR как технологическая среда не передаётся.
Project Core — проектное ядро — проектный носитель специализированного ресурса, в котором хранится подробный результат его работы по конкретному проекту.
Unified Project Store — единое проектное хранилище — машиночитаемый слой Project-DR, в котором собираются принятые проекции результатов специализированных Project Core.
Enterprise-DR — Enterprise Digital Replica, цифровая реплика предприятия — эксплуатационная машиночитаемая модель конкретного предприятия, полученная из принятого состояния Project-DR. Именно Enterprise-DR передаётся заказчику.
Enterprise-DR Runtime — эксплуатационная среда Enterprise-DR — физически работающая система, в которой клиентская модель загружена в базу данных и доступна через Enterprise-DR API.
Enterprise-DR Runtime Kit — комплект, передаваемый заказчику для развёртывания и эксплуатации Enterprise-DR.
PostgreSQL — система управления базами данных, используемая в версии 2.5.1 как эталонная реализация базы Enterprise-DR. Далее — «база Enterprise-DR».
Enterprise-DR API — программный интерфейс доступа к эксплуатационной модели. Через него получают профессиональный контекст, причины решений, зависимости, сигналы и операции изменения.
Читать далееПривет, Хабр. Я Игорь Юрченко, backend-разработчик Сбера. В предыдущей статье я описал автоматизацию развёртывания потоков NiFi, а сейчас расскажу о дальнейшем развитии этого подхода для интеграции с корпоративной системой управления секретами — SecMan. Буду использовать терминологию предыдущей статьи.
Читать далееУ меня есть проекты, на который я привлекаю инвестиции. Потому что эти инвестиции помогут проектам масштабироваться, привлечь больше юзеров, выполнять задачи большего масштаба и тд и тп - в общем все, что будет приносить этим проектам больше денег. Соответственно, инвесторы с этого получат хороший процент прибыли.
Я автоматизировал почти всю цепочку действий по фандрейзингу: сбор инвесторов из источников, отбор, отправку им сообщений через свою CRM, отслеживание ответов и вывод на звонок.
Чуть ниже описываю, как делал и какие цифры получились. Ну и где не получилось так, как мне бы хотелось.
Читать далееЭто шестая статья цикла о том, почему акустика, которая хорошо измеряется, может плохо звучать.
В первой статье выяснилось то, что АЧХ суммирует всю поступившую энергию независимо от времени её прихода. Во второй — что помещение добавляет к звуку большое количество отраженных копий и резонансов, с которыми надо научиться дружить. В третьей — что качество воспроизведения низких частот сухие цифры характеристик не отражают. Четвёртая спустилась глубже — до самого динамика: идеального решения не существует, а ошибки проектирования после покупки уже не исправить. Пятая (ч.1 и ч.2) была посвящена искажениям: что это такое, почему порядок гармоники важнее её абсолютной величины, и почему слух отзывается на эти явления совсем не так, как измерительный прибор. На тот момент все закончилось заменой усилителя, но проблема с высокими частотами осталась на месте.
С усилителями получилась занятная картина — эти устройства незаметно присутствовали фоном практически с самого начала цикла. Уже в первой статье я сознательно отложил разговор о них приняв допущение об их невиновности по сравнению с динамиками: измерительный стенд, синусоида, резистивная нагрузка и красивые цифры. Позже, в пятой, тема снова возникла вскользь — упоминались выходной каскад класса B, режекторный фильтр и мысль о том, чтобы управлять током вместо напряжения. Каждый раз разговор откладывался, и вот настал момент, когда откладывать дальше некуда.
Главный вопрос звучит просто: все ли усилители звучат одинаково? Когда происходили описываемые события готового ответа у меня не было. Понимание приходило постепенно, шаг за шагом. Мешало то, что распутывались сразу две нити, усилитель и источник сигнала, и понадобилось несколько заходов, чтобы понять, кто из них за что отвечает. Поэтому объяснение первопричин моего недовольства и разделилось надвое: источникам будет посвящена отдельная статья.
Читать далееДва фронтенда, один C#-мозг — что действительно различается, что похоже сильнее, чем принято считать, и что говорит рынок труда.
До 2019 года моим фронтендом были семантический HTML и CSS. Div'ы, классы, разметка, которую я мог удержать в голове. Я был бэкенд-разработчиком, и меня это вполне устраивало.
Потом случились две вещи. Компания попросила меня залезть в проект на Vue, а Microsoft выпустила Blazor. В следующие годы я плотно поработал с обоими: с Vue — у двух работодателей, с Blazor — на личном проекте, который до сих пор работает.
Это не статья с бенчмарками. Это про то, как эти две технологии ощущаются, когда мышление у тебя C#-овое.
Читать далееГайдлайны Apple, Android и Flutter по-разному, но одинаково настойчиво подталкивают задавать переход прямо в коде экрана — в документации go_router это штатный пример. В результате экран отвечает и за интерфейс, и за навигацию: его трудно переиспользовать, он знает про следующие экраны, а модульный тест превращается в интеграционный.
В статье — приём, который выносит переход из кода виджета туда, где для решения есть вся информация: экран сообщает о запросе пользователя, а решение принимает роутер вкладки или приложения. Одна и та же задача (две вкладки со своими стеками и общий экран, который в каждой вкладке ведёт себя по-своему) решена трижды: на штатном Navigator, на go_router и на auto_route.
Прием подходит и для постепенного рефакторинга существующего кода: внедрять приём целиком не требуется — переходы выносятся из экранов по одному экрану за раз, без смены библиотеки навигации и без изменения остальной части приложения. Код всех трёх реализаций — в репозитории.
Читать далееНет, разумеется, хотят. И многие даже соглашаются. Правда потом возвращаются обратно в разработку, но соглашаются же. Так что вопрос стоит ставить ребром: «почему то, что им предлагают, вообще называется повышением».
У Максима было восемь лет опыта. В пятницу он сеньор. В понедельник он — кто? По грейду выше, но по факту джун в специальности, где у него ноль лет практики, с зарплатой и ожиданиями как от человека с восемью. И самое издевательское — ему никто не сказал, что он джун. Ему сказали «ты вырос». А что, если это не повышение, а смена профессии с билетом в один конец?
Читать далееНемного экспериментальный формат, который надеюсь, вам зайдет. Мне лично очень нравится изучать разные темы вне статистики, аналитики и прикладных к ним темам, поэтому иногда для того, чтобы лучше разобраться с какой-то темой лучше всего ее попробовать объяснить или описать самостоятельно.
В данном материале речь пойдет про ИИ, но немного с непривычного формата - попробуем разобраться, зачем охлаждают и чем сейчас охлаждаются дата-центры, в которых происходят все расчеты того, какой шампунь для волос нам выбрать или как написать слово "винегрет" без ошибок. И за каждым таким ответом стоят серверы, а серверы эти во время работы выделяют довольно много тепла.
Читать далееКак три вопроса к заказчику про жизнь после MVP поменяли ролевую модель портала: от одной таблицы связей к RBAC + ABAC. Внутри ER-диаграмма, SQL проверки доступа и пример на живом пользователе.
Плюс список вопросов, которые теперь задаём на каждом брифинге про доступы.
Читать далееОдин сломанный драйвер принтера, который нельзя было починить, потому что код был чужой собственностью. И вот так родилось движение, изменившее юридическую архитектуру половины современного софта.
Это седьмая статья цикла “Код как борьба: Кратчайшая история IT”. И сразу хочу предупредить о структуре статьи, она будет чуть сложнее, чем обычно. Нам придётся держать в голове одновременно две вещи, которые нельзя смешивать в одну оценку. Техническое и юридическое наследие нашего героя - это одна история, вполне нейтральная. А личная куда более сложная.
ПогналиЯ помогаю жене войти в backend-разработку. На её примере хорошо видно противоречие, которое появилось у начинающих программистов: AI позволяет учиться быстрее, но одного работающего кода теперь недостаточно, чтобы доказать свою квалификацию.
До backend она пробовала войти в профессию через дизайн, затем изучала frontend. Первую работу во frontend получить удалось, но закрепиться в компании не получилось. Процессы были плохо выстроены, а общение с частью коллег оказалось токсичным.
Позже я предложил попробовать C# и backend. Это мой основной стек, поэтому здесь я могу не только посоветовать материал, но и проверить решение, объяснить контекст из реальной разработки или заметить, когда нейронка ведёт не туда.
Мы поправили резюме, подготовили рассказ об опыте и сделали тестовый task tracker. В нём есть задачи и подзадачи, которые можно завершать. Проект разворачивали в Azure примерно на месяц, чтобы пройти весь путь до работающего сервиса, а затем выключили. Я помогал с частью реализации и деплоем. С метриками жена разбиралась в основном сама.
Сейчас её приглашают на интервью. Основное препятствие переместилось в техническую часть: алгоритмическая практика, структуры данных, проектирование и способность объяснить написанный код.
Что именно AI упрощает в обучении
Когда я учился программированию в университете, между вопросом и нормальным ответом могло пройти много времени. Нужно было найти подходящую книгу, сформулировать запрос для поисковика, прочитать несколько обсуждений или дождаться человека, который разберётся в теме.
Читать далееМы выпустили очередной релиз NEOMSA ESB. Фокус этого цикла — состав поставки: мы прошли по всем контурам сборки, сформировали SBOM, устранили уязвимости уровня Critical и High и зафиксировали версии так, чтобы они не «уехали» при следующей сборке.
В статье разбираем как устроен процесс, какие решения мы принимали и почему в нескольких местах ответ «просто обновиться до последней версии» оказался неверным. А в конце — о том, где заканчиваются возможности точечных исправлений, к какому решению нас привели накопленные данные и что это решение дало в цифрах.
Читать далееМеня зовут Саша Черток, руковожу отделом безопасности контейнерных и облачных технологий в Альфа-Банке. Расскажу, как вывести организацию в облако, даже если она максимально зарегулирована.
Статья будет интересна как организациям схожим по масштабу, так и компаниям с большей свободой действий, но тем не менее, имеющим уже выстроенные процессы, в частности, процессы ИБ.
Читать далееИстория разработки Ptah: как небольшой Go-first инструмент для миграций собственной базы данных постепенно превратился в полноценную open-source систему управления схемой БД. Причины появления проекта, какие архитектурные решения пережили весь проект, зачем понадобилась совместимость с Atlas, к чему привёл конфликт с его разработчиками, как это повлияло на развитие Ptah и что в итоге представляет собой решение сегодня.
Читать далееМаршрут в .route.xml на том же движке, что и C#: подсказки в VS Code, проверка пакета в dotnet build, граф-редактор и горячая замена модуля.
Интеграционный маршрут живёт дольше, чем код вокруг него. Партнёр переезжает в другую папку на SFTP, аналитик просит отдельную ветку под новый тип файла, поддержка хочет понять, каким путём прошла заявка, которую ночью отклонили. Всё это вопросы к маршруту, и отвечать на них через C#-проект, сборку и выкладку модуля выходит дороже, чем сам вопрос.
В 4.0 у redb.Route появилась вторая запись маршрута: XML. Файл .route.xml кладётся в пакет, пакет в папку работающего сервиса, и меньше чем через полсекунды по новому маршруту идёт первое сообщение. При этом ...
Читать далееНа Hacker News есть два треда, которые стоит прочитать целиком, если вы русский разработчик. Первый — «Why So Many Top Hackers Hail from Russia», июнь 2017 года, 142 балла. Второй — «Ask HN: Why does the Eastern…
Читать далееПривет! Меня зовут Олег Игнатов. Сейчас я руковожу продуктовой аналитикой в Garage Eight. До этого я строил продуктовую аналитику в Литрес. Параллельно преподаю продуктовую аналитику в ВШЭ, менторю аналитиков и руководителей и веду свой канал.
За это время я проходил похожий путь: от небольшой группы аналитиков, где многое держится на личной вовлечённости руководителя, к многоуровневой аналитической функции. И оба раза наблюдал одну и ту же историю. Человек становится лидом и продолжает действовать как самый ответственный аналитик в команде: берёт больше задач, помогает всем, закрывает сложные вопросы и старается держать всё под контролем. Какое‑то время это работает. Затем бэклог продолжает расти, сроки становятся менее предсказуемыми, команда перегружается, а сам руководитель постепенно превращается в главное узкое место системы.
В этой статье я разберу практические инструменты, которые помогли мне перейти от ручного управления к более автономной команде: регулярные 1–1, ревизию бэклога, командные ритуалы, приоритизацию, Focus Factor и развитие аналитиков через реальные задачи. Я не буду пытаться описывать идеальный процесс из учебника. Это скорее набор подходов, которые я проверял на практике и которые помогли мне уйти от хаоса.
Читать далееПредставим ситуацию. Продажи мороженого и число утоплений летом растут одновременно — статистика, что графики почти совпадают. Но мороженое никого не топит: оба показателя зависят от третьей переменной — жары. Корреляция показывает, что показатели движутся вместе, но не объясняет причину. Но часто это путают. В научной статье или ее пересказе корреляции легко превращают в объяснение причины. Рассказываю, как часто авторы публикаций допускают такой скачок и что добавляет от себя ИИ.
Ученые из Университета Пенсильвании проанализировали с помощью LLM заголовки и аннотации 194,6 тысяч статей по социальным наукам за 1980–2024 годы. Они отобрали работы с кросс-секционными данными: в таких исследованиях ученые сравнивают людей, организации или другие объекты в один момент времени, а не наблюдают за их изменениями.
Так можно обнаружить связь, но обычно нельзя установить ее причину. Например, если люди, довольные работой, чаще занимаются спортом, это еще не значит, что спорт повышает удовлетворенность работой. Возможно, довольные сотрудники находят больше сил для тренировок. Или и то и другое связано с более удобным графиком.
Тем не менее в 46,3% отобранных статей авторы использовали формулировки, которые прямо или косвенно указывали на причинность. Речь именно о заголовках и аннотациях к статьям. С 2000 по 2024 год доля таких публикаций выросла примерно с 20% до более 60%. В 2024 году в работах по бизнесу она достигла 84%, по экономике — 67%.
Читать далее