Обновить
-7
0.2

Пользователь

Отправить сообщение

Математика равновесия: как уравнение Ляпунова держит весь мир в узде

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

Это пре-релиз статьи для русской Википедии.

Я выкладываю материал на суд сообщества Хабра. Я хочу, чтобы мы вместе сделали лучший материал по этой теме в рунете.

Моя просьба к вам:

Читайте с пристрастием. Если видите математическую неточность или знаете, как объяснить проще — пишите в комменты.

Забирайте код. Он рабочий, его можно использовать для своих лаб или проектов.

Поддержите пост. Если вам нравится идея качественного научпопа — ставьте лайк и стрелку вверх. Чем больше людей увидит, тем качественнее станет статья.

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

Читать далее

Closures для 3D-художника? Зачем?! Как сложная концепция сделает ноды проще и мощнее

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

«Опять эти ваши программистские штуки! DI, closures, bundles, декларативная система... Я просто хочу сделать красивую симуляцию частиц, а не изучать Computer Science!»

Если эта мысль промелькнула в голове, когда вы услышали о Closures в Blender — вы не одиноки. Давайте разберёмся, почему разработчики добавляют в ноды сложные концепции и как это в итоге упростит жизнь именно 3D-художникам.

Читать далее

Размышления о машине Тьюринга и причинах возникновения ошибок в языках программирования

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

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

А вот теперь настало время написать про некоторые проблемы машины Тьюринга - фундаментальной основы всех информационных технологий.

Читать далее

CRISPR снова в строю! Генная терапия против холестерина прошла первое в мире клиническое испытание на людях

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

В первом в мире исследовании ученые применили разовое редактирование генома с помощью CRISPR. Цель – отключить ген, способствующий накоплению плохого холестерина. Благодаря чему удалось снизить уровни холестерина и триглицеридов у пациентов, которые не реагировали на стандартное лечение.

Читать далее

Как разработать удобный дизайн-продукт, который будет приносить прибыль бизнесу?

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

Чтобы создать по-настоящему удобный, эффективный и прибыльный продукт, важно последовательно пройти через все этапы: от изучения клиента до визуальной реализации.

Методика Сигаевой: CX→UX→UI Pipeline, помогает выстроить последовательный процесс работы над диджитал продуктом. CX — даёт понимание мотиваций, UX — логику взаимодействия, UI — визуального усиления. Вместе они формируют продукт, который отвечает ожиданиям, укрепляет лояльность и поддерживает рост бизнеса.

Хороший дизайн — это не только красиво. Это логика, эмпатия, исследование и внимание к деталям. Особенно к деталям, которые важны пользователю.

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

Узнать о подходе

Что такое топологическое многообразие?

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

Стоя посреди поля, мы легко забываем, что живём на круглой планете. Мы настолько малы по сравнению с Землёй, что с нашей точки зрения она кажется плоской.

Мир полон таких форм, которые кажутся плоскими для живущих на них муравьёв, хотя в целом они могут иметь более сложную структуру. Математики называют эти формы многообразиями. Введённые Бернхардом Риманом в середине XIX века, многообразия изменили представление математиков о пространстве. Оно перестало быть просто физической средой для других математических объектов, а стало абстрактным, чётко определённым объектом, заслуживающим самостоятельного изучения.

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

Читать далее

Минимальный каркас самописного Bootloader'a на STM32F103C8T6. Пошаговый пример

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

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

Загрузчики до этого не писал, статьи на хабре не нашел, а хотелось. Вернее нашел, но только вводный ликбез, без практики)

Поэтому было решено разбить задачу на мелкие и начать с минимального примера. Подопытным будет BluePill на stm32f103c8t6.

В соответствии с декомпозицией задачи, у меня получилось так:

Читать далее

Увидел-указал-полетел: как управлять автономными дронами без обучения с нуля

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

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

Теперь команда для беспилотника — это не набор слов, а пиксель на изображении, а значит, связь между вашим замыслом и настоящим полетом стала куда более непосредственной. Модель сама определяет, как лететь к этой точке, одновременно замечает препятствия и быстро реагирует, если что-то изменится. Что получилось из этой попытки «разговаривать» с дроном языком зрения — и c какими проблемами исследователи столкнулись на практике? Всё оказалось интереснее, чем кажется на первый взгляд.

Читать далее

SPICE-модели: Просто о сложном. Часть 3. Силовые выпрямительные диоды

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

В прошлых статьях цикла, а именно

Часть 1, вводная

Часть 2. Более сложные приемы анализа

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

Читать далее

ARM Cortex-M: пуск Memory Рrotection Unit (MPU)

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

В ARM Cortex-M (Arm v7-M) процессорах есть очень полезный блочок. Называется MPU (Memory Рrotection Unit). Попробуем разобраться что это такое и зачем нужно. .

Читать далее

Всеобъемлющая Теория Матриц

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

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

Погрузится в мир матриц

Квантовые компьютеры: патентный анализ за 20 лет

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

Квантовый компьютер — вычислительное устройство, которое использует явления квантовой механики (квантовая суперпозиция, квантовая запутанность) для хранения, передачи и обработки данных. Квантовый компьютер (в отличие от классического) оперирует не битами (способными принимать значение либо 0, либо 1), а кубитами, значения которых представляют собой вектор — суперпозицию 0 и 1. Теоретически это позволяет обрабатывать все возможные состояния одновременно, достигая существенного преимущества (квантового превосходства) над обычными компьютерами в ряде алгоритмов. В этой статье мы рассмотрим, что творилось с патентами на квантовые компьютеры за последние 20 лет. 

Читать далее

Lens Blur Fields: нейросетевая ФРТ на службе улучшения фотографий и идентификации камеры

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

Оптическое размытие — обобщающий термин для различных факторов деградации изображения, таких как расфокусировка, дифракция и аберрации. Математически оно описывается функцией рассеяния точки. Форма ФРТ, как правило, пространственно-вариантна и зависит от координат в поле изображения, настройки фокуса, расстояния до объекта (глубины резкости), апертуры и длины волны. Поэтому любые попытки точно описать размытие реальной камеры сталкиваются с необходимостью измерять слишком большое количество параметров, что на практике выполнить почти невозможно.

Метод Lens Blur Fields предлагает новое решение: использовать многослойные перцептроны, которые обучаются представлять ФРТ в виде непрерывной функции высокой размерности (arXiv:2310.11535). Такая модель способна обобщать по всем параметрам сразу и восстанавливать плавные изменения ФРТ вместо того, чтобы хранить её в виде разрозненной таблицы замеров.

В теории это значит, что метод Lens Blur Fields позволит не только сделать очередной красивый фильтр с боке, но и различать экземпляры камер по снимкам с них.

Читать далее

Я отклоняю комиты с использованием кучи и прошу коллег переписать такую логику

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

Хочу поделиться своим опытом разработки крупных игровых проектов на C++, где производительность и стабильность — это не просто приятные бонусы, а абсолютно естественные требования к разработке. За годы работы над движками и играми я понял, что подход к управлению памятью очень сильно влияет на весь проект. В отличие от многих приложений - игры, особенно большие, часто работают часами без прерываний и должны поддерживать стабильный фреймрейт и отзывчивость. Когда проседание fps или фриз происходит на глазах у сотен тысяч игроков, вам уже никто не поможет — ущерб уже нанесен, а в steam полетели отзывы о кривизне рук разработчиков.

Однажды моя команда закончила работу над довольно интересным проектом, который портировали больше двух лет на плойку. Движок старый, большой и мощный, но работа с памятью была ориентирована на ПК времен конца 2000-х, и что меня поразило, так это насколько сильно большая часть кодовой базы зависела от динамической памяти во время выполнения. На ограниченном железе (далеко не у всех есть PS5 pro) и в условиях жёстких требований к сертификации на консолях такие решения быстро превращаются в проблему.

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

Читать далее

Покраска Cтека (Stack Painting)

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

В процессорах ARM Cortex‑M стек растет от большего адреса к меньшему. То есть вниз. В этом тексте я написал как оценивать расходование стековой памяти прямо во время исполнения программы на микроконтроллере. Считать израсходованный стек можно определив соотношение непрерывно прописанных нулей к ненулевым значениям в диапазоне стековой памяти.

Читать далее

Как мы видеокарту AMD на ПЛИС с RISC-V и Linux запускали

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

У нас была рабочая видеокарта, драйвер для нее, Linux, полный набор кода, который заставлял работать нашу видеокарту, возможно, была даже прошивка. Не то чтобы это был необходимый запас для запуска AMD GPU на ПЛИС с RISC-V. Но если начал запускать видеокарту на ПЛИСе с RISC-V Linux, становится трудно остановиться…

Читать далее

Как Swift Runtime влияет на производительность iOS-приложений

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

Привет, Хабр! Я Кристиан Бенуа, iOS-разработчиĸ в Т-Банĸе. В современном мире производительность приложения — ĸритичесĸи важный фаĸтор, определяющий его успех. Пользователи ожидают мгновенного отĸлиĸа и плавной работы, даже небольшие задержĸи могут негативно сĸазаться на восприятии приложения.  

Для больших iOS-приложений, написанных на Swift, понимание работы Swift Runtime и его влияния на производительность — важный навыĸ разработчиĸов. Swift Runtime при исполнении ĸода отвечает за фундаментальные вещи языĸа Swift: управление памятью и систему типов в рантайме.

В статье сосредоточимся на механизмах приведения типов и создания generic-типов внутри Swift Runtime и рассмотрим один ĸонĸретный метод, ĸоторый является узĸим местом в производительности приложения. Разберем примеры ĸода, демонстрирующие, ĸогда и почему этот метод вызывается, ĸаĸово его влияние на отзывчивость приложения и ĸаĸие стратегии использовать для смягчения негативного воздействия. 

Читать далее

Как выбрать опорный генератор и не разочароваться. Пример точной настройки 10 МГц с помощью ЦАП до 0.3 ppb (3 мГц)

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

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

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

Также приводятся практические результаты: экспериментальные данные по долговременной стабильности частоты доработанного термостатированного генератора и результаты его программной подстройки с использованием ЦАП после выхода на рабочий режим.

Читать далее

Что такое детерминизм и как с ним бороться?

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

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

Много лет можно наблюдать один и тот же ритуал: человек берёт фиксированный seed, торжественно записывает его в три места, запускает обучение и искренне ожидает, что всё будет повторяться до бита. А потом accuracy скачет на третьем знаке, лосс уплывает и приходит вопрос: «Почему не детерминируется?» А потому что детерминизм в ML это не один флажок. Это сумма десятка мелких факторов, от выбора алгоритма в cuDNN до порядка файлов в каталоге.

Читать далее

Интеграция DMR858M: Практическое руководство по созданию пользовательских цифровых раций на ESP32

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

В области разработки встраиваемых систем интеграция радиочастотных (РЧ) функций в продукт часто сопряжена со сложным проектированием аппаратного обеспечения и трудоемкой реализацией стека протоколов. Модуль DMR858M значительно упрощает этот процесс, предоставляя высокоинтегрированную подсистему цифровой мобильной радиосвязи (DMR) с мощностью передачи до 5 Вт.1 Это не просто РЧ-трансивер, а комплексное решение, внутренне объединяющее микроконтроллер (MCU), чип цифровой рации, РЧ-усилитель мощности и аудиоусилитель.1 Такая конструкция позволяет разработчикам управлять полнофункциональным ядром рации — поддерживающим стандарт DMR Tier II, совместимым с традиционными аналоговыми режимами и оснащенным функциями SMS и шифрования голоса — через простой последовательный интерфейс.1

Читать далее
1
23 ...

Информация

В рейтинге
2 738-й
Зарегистрирован
Активность