Как стать автором
Обновить
196
0
Михаил Бахтерев @mikhanoid

ИММ УрО РАН

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

Немного о движении частиц в квантовом мире

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

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

Читать далее
Всего голосов 18: ↑17 и ↓1+28
Комментарии25

Роботы TRI осваивают новые навыки за полдня

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

Исследовательский институт Toyota (TRI) объявил о революционном подходе к генеративному искусственному интеллекту, позволяющем обучать роботов новым навыкам за несколько часов.

Читать далее
Всего голосов 13: ↑13 и ↓0+13
Комментарии3

Тангажные колебания малого спутника

Уровень сложностиСложный
Время на прочтение4 мин
Количество просмотров3.4K

Вывод уравнений тангажных колебаний для малых спутников на магнитной системе управления (по типу Университетский-Татьяна-2).

Читать далее
Всего голосов 15: ↑14 и ↓1+19
Комментарии2

Extremum Seeking Control в системе адаптивного круиз-контроля автомобиля

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров2.9K

Существует множество подходов к управлению адаптивным круиз-контролем: ПИД-контроллеры, управление на основе нечеткой логики, MPC-контроллеры и др. MPC-контроллеры, из-за решения задачи оптимизации в пределах каждого шага расчета, довольно требовательны к целевой платформе. Остальные способы управления, несмотря на простоту настройки и физической реализации, не способны обеспечить оптимальное функционирование во всех режимах движения. Промежуточным решением этой проблемы является применение экстремального управления или управления на основе поиска экстремума (Extremum Seeking Control). В данной статье кратко коснемся того, что же такое управление на основе поиска экстремума, в чём его преимущества и недостатки, а также предложим общие рекомендации по настройке таких контроллеров. Тут вы не найдете исчерпывающих объяснений по всем тонкостям управления, материал представляет собой больше «быстрый взгляд» на возможный подход к управлению системой адаптивного круиз-контроля.

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии3

Я написал одну из самых быстрых библиотек датафреймов

Уровень сложностиСложный
Время на прочтение9 мин
Количество просмотров9.9K
image

1. Вступление


У меня в портфолио есть несколько готовых пет-проектов на Rust, и я заметил, что позиция «а у нас уже получилась DataFrame?» нисколько меня не устраивает. Поэтому я подумал, не сделать ли мне элементарный контейнер, который решал бы мою конкретную задачу. Но этот проект вышел из-под контроля.

Год спустя, написав немало кода, я создал одну из самых быстрых библиотек датафреймов, применимую в Rust и Python. Вот мой первый официальный «Hello World» на polars, размещённый у меня в блоге. Надеюсь, что с помощью этого поста я смогу пояснить читателю некоторые решения, которые мне довелось принять при проектировании, и вам станет понятнее, как Polars работает под капотом.
Читать дальше →
Всего голосов 32: ↑26 и ↓6+29
Комментарии9

Энергетический расчёт и выбор на этой основе исполнительных двигателей

Время на прочтение6 мин
Количество просмотров4.7K

Блог компании Специальный Технологический Центр , туториал

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

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Комментарии6

Логисторная логика

Время на прочтение4 мин
Количество просмотров6.9K

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

Читать далее
Всего голосов 26: ↑25 и ↓1+33
Комментарии17

STM32MP1 запуск Ubuntu 22.04

Время на прочтение40 мин
Количество просмотров16K

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

Совсем недавно, компания Canonical, выпустила Ubuntu 22.04, "потыкав" ее на виртуалке, решил накатить апдейт на рабочий ноут, пока накатывались обновления, перебирал девкиты в полке, нашел запыленную STM32MP157c-DK2 отладучную платку от старого проекта, ну и подумал - почему бы и не попробовать запустить 22-ю убунту на этом CPU.

В интернете полно статей как собрать Yocto или Buildroot под данный процессор, но ни одной как собрать свой собственный дистрибутив, по крайней мере, я не встречал.

Читать далее
Всего голосов 49: ↑49 и ↓0+49
Комментарии21

Нейросеть, способная объяснить себе задачу: P-tuning для YaLM

Время на прочтение9 мин
Количество просмотров18K

Мы уже рассказывали о том, как применили семейство генеративных нейросетей YaLM для подготовки ответов в Поиске, Алисе или даже в Балабобе. Главная особенность наших моделей — метод few-shot learning, который позволяет без дополнительного обучения решать большинство задач в области обработки естественного языка. Достаточно лишь подготовить подводку на человеческом языке — и модель сгенерирует текст. Но что, если это не самый оптимальный путь?

Сегодня я расскажу читателям Хабра про апгрейд этого метода под названием P-tuning. Вы узнаете про недостатки оригинального метода few-shot и преимущества нового подхода. Покажу, где он уже применяется на примере покемонов. Добро пожаловать под кат.
Читать дальше →
Всего голосов 32: ↑32 и ↓0+32
Комментарии6

Оптимизированный доступ к GPIO. Или GPIO как constexpr класс. С++

Время на прочтение4 мин
Количество просмотров6.8K

Добрый день, жители Хабра. Данный пост будет посвящен программированию на C++, и использованию constexpr объектов с целью повышения уровня удобства и одновременно оптимизации кода с точки зрения размера и производительности.

В процессе работы над одним из проектов, задумался: "нельзя ли сделать удобный доступ к GPIO портам на STM32, и при этом сделать его оптимальным по размеру кода и производительности". Что я хотел получить...

Читать далее
Всего голосов 9: ↑7 и ↓2+7
Комментарии44

Интеграция поисковой машины Яндекса с сайтом. Красивый дизайн, мощные алгоритмы и немного багов

Время на прочтение5 мин
Количество просмотров3K

За 3 месяца сразу 2 клиента обратились к нам с просьбой «улучшить поиск».

В этой статье рассмотрим, как установить поиск Яндекс на сайт, какие могут быть сложности и какие дополнительные настройки могут понадобиться.

Читать далее
Рейтинг0
Комментарии2

Как мы получили реалистичные лица с новых ракурсов с помощью нейросетей

Время на прочтение7 мин
Количество просмотров12K

В этой статье вы узнаете про глубокий нейросетевой подход Neural Radiance Fields — метод для генерации новых изображений сцены с различных ракурсов. Основная задача — интерполяция новых views между исходными оригинальными изображениями для получения “непрерывной сцены” из ограниченного числа фотографий.

Поскольку в нашем стартапе twin3d мы занимаемся созданием фотореалистичных 3D моделей людей, то упор будет сделан именно на фотографии людей. Мы расскажем, какие подзадачи нам пришлось решить, чтобы получить новые фотореалистичные изображения людей с разных ракурсов.

Читать далее
Всего голосов 23: ↑23 и ↓0+23
Комментарии4

Ускоряем на 70% игру на процессоре в 1 МГц

Время на прочтение16 мин
Количество просмотров31K

Давным-давно, во времена студенчества в колледже я немного занимался разработкой компьютерных видеоигр. Это была эпоха 8-битных PC, когда игровое оборудование по современным стандартам было почти невозможно медленным.

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

Это история об одном из таких трюков.

Я постараюсь припомнить все важные подробности, однако в чём-то могу ошибиться. Если так случится, простите меня, это было очень давно.

Исходные данные


Мой друг, одарённый программист, почти закончил свою новую игру. Каким-то образом ему удалось почти без изменений уместить в компьютер эпохи 1980-х довольно впечатляющую графически на то время игру, популярную на аркадных автоматах.

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

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

Я посмотрел. Но там нельзя было найти никакой простой оптимизации.
Читать дальше →
Всего голосов 125: ↑125 и ↓0+125
Комментарии97

Как подключить АЦП HX711 к NRF52832

Время на прочтение4 мин
Количество просмотров4.7K

1. Введение


На повестке дня стояла задача разработать протокол общения микроконтролера nrf52832 с двумя полумостовыми китайскими тензодатчиками.

Задача оказалась не простой, так как столкнулся с отсутствием какой — либо внятной информации. Вероятнее, что «корень зла» находится в самом SDK от Nordic Semiconductor — это постоянное обновления версий, некоторая избыточность и запутанность функционала. Пришлось писать все с нуля.


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


2. Описание проекта


image

Железо:


  • Adafruit Feather nRF52 Bluefruit LE (то что оказалось под рукой)
  • АЦП HX711
  • Китайские тензодатчики 2 шт. (50х2 кг)
  • Программатор ST-LINK V2

Софт:


  • IDE VSCODE
  • NRF SDK 16
  • OpenOCD
  • Программатор ST-LINK V2

Читать дальше →
Всего голосов 22: ↑22 и ↓0+22
Комментарии15

Новое доказательство решает вопрос аппроксимации таких чисел, как пи

Время на прочтение9 мин
Количество просмотров18K

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



Двоичная запись π бесконечна. Но бесконечное число дробей могут приближаться к этому числу со всё возрастающей точностью.

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

Доказательство разрешает задачу почти 80-летней давности, известную, как гипотеза Даффина-Шаффера. Тем самым оно даёт окончательный ответ, занимавший математиков с древних времён: при каких условиях возможно представлять иррациональные числа, длящиеся бесконечно долго – типа числа пи – простыми дробями типа 22/7? Доказательство устанавливает, что ответ на этот довольно общий вопрос обнаруживается в результате единственного вычисления.
Читать дальше →
Всего голосов 35: ↑30 и ↓5+25
Комментарии5

Часть 5/2 корп. 1: Перекрёсток проспекта RocketChip и скользкой дорожки инструментации

Время на прочтение17 мин
Количество просмотров1.4K

В предыдущих четырёх частях велась подготовка к экспериментам с RISC-V ядром RocketChip, а именно, портирование этого ядра на «нестандартную» для него плату с ПЛИС фирмы Altera (теперь уже Intel). Наконец, в прошлой части на этой плате получилось запустить Linux. Знаете, что меня во всём этом забавляло? То, что одновременно приходилось работать с ассемблером RISC-V, C и Scala, и из всех них Scala была самым низкоуровневым языком (потому что именно на ней написан процессор).


Давайте в этой статье сделаем так, чтобы C тоже не было обидно. Более того, если связка Scala+Chisel использовалась лишь как domain-specific language для явного описания аппаратуры, то сегодня мы научимся «затягивать» простенькие функции на C в процессор в виде инструкций.


Конечная же цель — тривиальная реализация тривиальных AFL-like инструментаций по аналогии с QInst, а реализация отдельностоящих инструкций — лишь побочный продукт.

Читать дальше →
Всего голосов 19: ↑19 и ↓0+19
Комментарии0

Инженерный подход к разработке ПО

Время на прочтение25 мин
Количество просмотров38K

Как проверить идеи, архитектуру и алгоритмы без написания кода? Как сформулировать и проверить их свойства? Что такое model-checkers и model-finders? Требования и спецификации — пережиток прошлого?


Привет. Меня зовут Васил Дядов, сейчас я работаю программистом в Яндексе, до этого работал в Intel, ещё раньше разрабатывал RTL-код (register transfer level) на Verilog/VHDL для ASIC/FPGA. Давно увлекаюсь темой надёжности софта и аппаратуры, математикой, инструментами и методами, применяемыми для разработки ПО и логики с гарантированными, заранее определёнными свойствами.


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


Не буду лукавить: основная задача статьи — возбудить интерес. Так что в ней будет минимум пространных рассуждений и максимум конкретики.


Читать дальше →
Всего голосов 63: ↑61 и ↓2+59
Комментарии135

Будущее WebAssembly в виде «дерева навыков»

Время на прочтение18 мин
Количество просмотров16K
Некоторые люди как-то неправильно поняли WebAssembly. Есть те, кто считает, что раз браузеры уже поддерживают выполнение WebAssembly (ещё с 2017 года), значит всё уже готово. Даже и близко ещё нет, готов лишь MVP (минимально жизнеспособный продукт). Я могу предположить откуда произрастает корень этого заблуждения: после релиза MVP его разработчики пообещали поддерживать обратную совместимость на уровне «любой написанный сейчас код будет работать и в будущем». Но это ведь не значит, что разработка WebAssembly закончена, совсем нет! Множество фич разрабатывается прямо сейчас и планируется к разработке в ближайшем будущем. И когда они будут реализованы — всё очень сильно изменится.

Все эти фичи можно попробовать представить себе в виде дерева навыков в какой-нибудь игре. У нас есть пару «базовых» (уже реализованные фичи) и целое дерево со множеством веток и листьев, которые будут со временем открываться, давая нам всё больше и больше могущества.
image
Давайте посмотрим на то, что у нас уже есть сейчас и что нам ещё предстоит открыть.
(Под катом много картинок, трафик)
Читать дальше →
Всего голосов 58: ↑55 и ↓3+52
Комментарии87

Обзор актуальных протоколов достижения консенсуса в децентрализованной среде

Время на прочтение19 мин
Количество просмотров15K
Эта статья посвящена поверхностному обзору ключевых подходов к достижению консенсуса в децентрализованной среде. Материал позволит разобраться с задачами, которые решают рассмотренные протоколы, областью их применения, особенностями проектирования и использования, а также позволит оценить перспективы их развития и имплементации в децентрализованных системах учета.
Читать дальше →
Всего голосов 36: ↑35 и ↓1+34
Комментарии26

Почти все, что вы хотели знать про плавающую точку в ARM, но боялись спросить

Время на прочтение10 мин
Количество просмотров27K
Привет, Хабр! В этой статье я хочу рассказать про работу с плавающей точкой для процессоров с архитектурой ARM. Думаю, эта статья будет полезна прежде всего тем, кто портирует свою ОС на ARM-архитектуру и при этом им нужна поддержка аппаратной плавающей точки (что мы и делали для Embox, в котором до этого использовалась программная реализация операций с плавающей точкой).

Итак, приступим.
Читать дальше →
Всего голосов 49: ↑47 и ↓2+45
Комментарии17
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Екатеринбург, Свердловская обл., Россия
Зарегистрирован
Активность

Специализация

Backend Developer, Научный сотрудник
Applied math
System Programming
Machine learning
Compilers
Scheme
C
Assembler
Linux
Clojure
Haskell