Pull to refresh
196
0
Михаил Бахтерев @mikhanoid

ИММ УрО РАН

Send message

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

Level of difficultyMedium
Reading time12 min
Views15K

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

Читать далее
Total votes 18: ↑17 and ↓1+28
Comments26

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

Level of difficultyEasy
Reading time8 min
Views3K

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

Читать далее
Total votes 13: ↑13 and ↓0+13
Comments3

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

Level of difficultyHard
Reading time4 min
Views3.4K

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

Читать далее
Total votes 15: ↑14 and ↓1+19
Comments2

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

Level of difficultyMedium
Reading time8 min
Views3K

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

Читать далее
Total votes 5: ↑5 and ↓0+5
Comments3

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

Level of difficultyHard
Reading time9 min
Views9.9K
image

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


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

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

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

Reading time6 min
Views4.9K

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

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

Читать далее
Total votes 8: ↑8 and ↓0+8
Comments6

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

Reading time4 min
Views7K

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

Читать далее
Total votes 26: ↑25 and ↓1+33
Comments17

STM32MP1 запуск Ubuntu 22.04

Reading time40 min
Views16K

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

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

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

Читать далее
Total votes 49: ↑49 and ↓0+49
Comments21

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

Reading time9 min
Views18K

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

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

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

Reading time4 min
Views6.9K

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

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

Читать далее
Total votes 9: ↑7 and ↓2+7
Comments44

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

Reading time5 min
Views3.2K

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

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

Читать далее
Rating0
Comments2

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

Reading time7 min
Views12K

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

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

Читать далее
Total votes 23: ↑23 and ↓0+23
Comments4

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

Reading time16 min
Views31K

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

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

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

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

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


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

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

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

Я посмотрел. Но там нельзя было найти никакой простой оптимизации.
Читать дальше →
Total votes 125: ↑125 and ↓0+125
Comments97

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

Reading time4 min
Views4.8K

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

Читать дальше →
Total votes 22: ↑22 and ↓0+22
Comments15

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

Reading time9 min
Views18K

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



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

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

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

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

Reading time17 min
Views1.5K

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


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


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

Читать дальше →
Total votes 19: ↑19 and ↓0+19
Comments0

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

Reading time25 min
Views38K

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


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


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


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


Читать дальше →
Total votes 63: ↑61 and ↓2+59
Comments135

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

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

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

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

Reading time19 min
Views15K
Эта статья посвящена поверхностному обзору ключевых подходов к достижению консенсуса в децентрализованной среде. Материал позволит разобраться с задачами, которые решают рассмотренные протоколы, областью их применения, особенностями проектирования и использования, а также позволит оценить перспективы их развития и имплементации в децентрализованных системах учета.
Читать дальше →
Total votes 36: ↑35 and ↓1+34
Comments26

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

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

Итак, приступим.
Читать дальше →
Total votes 49: ↑47 and ↓2+45
Comments21
1
23 ...

Information

Rating
Does not participate
Location
Екатеринбург, Свердловская обл., Россия
Registered
Activity

Specialization

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