Pull to refresh
243
0
Дмитрий Притыкин @maisvendoo

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

Send message

Работа с кодом на C++ в Swift

Reading time9 min
Views2K

Привет, Хабр! Меня зовут Иван Мясников, я CTO проекта «Виртуальный ассистент» в МТС Диджитал. Встраивание кода С++ в приложения для iOS — достаточно трудная задача. Еще сложнее собрать SDK для дальнейшей поставки в сторонние приложения, используя логику на С++ совместно со Swift. В этой статье я расскажу, как мы создавали такой SDK так, чтобы он встраивался в любое приложение без танцев с целевой архитектурой процессора.

Встраивание C++ в Swift позволяет использовать один код на разных платформах и ускорить некоторые задачи, где Swift не хватает быстродействия. У нас есть библиотека на C++ для работы с ML на Tensorflow Lite. И эту библиотеку мы хотели встроить на Android, iOS, Linux под различные платформы и архитектуры процессора без переписывания логики оттуда на Kotlin, Swift или что-нибудь еще. В этой статье я расскажу, как мы заставили код на C++ работать в iOS и какие тут есть тонкости и ограничения. Я ориентировался на читателей, у которых может не быть экспертизы в iOS или в C++, и старался не погружаться в глубокие дебри. Этот материал познакомит с решениями, к которым мы пришли экспериментально, подбирая подходящие варианты под нашу задачу.

Читать далее
Total votes 11: ↑10 and ↓1+14
Comments12

Видео экстензометр

Level of difficultyEasy
Reading time4 min
Views1.4K

В 2010 году я начал работать в одной небольшой компании по производству испытательных машин (машины для физико-механических испытаний на растяжение, сжатие), там я в основном занимался разработкой программного обеспечения для управления испытательными машинами, а также сбором и анализом полученных данных.

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

Что значит инициализировать int в C++?

Level of difficultyMedium
Reading time10 min
Views15K

Недавно я получил по почте от Сэма Джонсона этот вопрос. Вот слегка отредактированное письмо Сэма:

«Возьмём для примера этот код в локальной области видимости функции:

int a;

a = 5;

Многие люди считают, что инициализация происходит в строке 1, потому что веб-сайты наподобие cppreference дают такое определение: "Инициализация переменной предоставляет его начальное значение на момент создания".

Однако я убеждён, что инициализация происходит в строке 2, потому что [в разных хороших книгах по C++] инициализация определяется как первое существенное значение, попадающее в переменную.

Можете ли вы сказать, какая строка считается инициализацией?»

Отличный вопрос. На Cppreference написано правильно, и для всех классовых типов ответ прост: объект инициализируется в строке 1 вызовом его стандартного конструктора.

Но (а вы ведь знали, что будет «но») для локального объекта фундаментального встроенного типа наподобие int ответ будет... чуть более сложным. И именно поэтому Сэм задал этот вопрос, ведь он знает, что язык достаточно свободно обращается с инициализацией таких локальных объектов по историческим причинам, имевшим в то время смысл.

Короткий ответ: вполне допустимо говорить, что переменная получает своё исходное значение в строке 2. Но заметьте, что я намеренно не сказал «Объект инициализируется в строке 2», к тому же и код, и этот ответ обходят молчанием более важный вопрос: «Ну ладно, а что, если код между строками 1 и 2 попробует считать значение объекта?»

Читать далее
Total votes 24: ↑22 and ↓2+29
Comments106

Шахматный компьютер «Интеллект-02», или делаем интерактивным ПЗУ

Level of difficultyMedium
Reading time4 min
Views4.2K

В этой статье я расскажу о советском шахматном компьютере "Интеллект-02", сделанном на основе 8-разрядного микропроцессора КР580ИК80А, и покажу, как можно внедриться вместо его ПЗУ и сделать его изменяемым, чтобы расширить функционал.

Читать далее
Total votes 45: ↑45 and ↓0+60
Comments22

find + mkdir полны по Тьюрингу

Level of difficultyMedium
Reading time5 min
Views9.7K

Введение

Мы покажем, что система, имеющая лишь команды GNU find и mkdir, полна по Тьюрингу.

Хорошо известно, что команды sed и awk сами по себе полны по Тьюрингу, но мне не удалось найти информации о Тьюринг-полноте find + mkdir.

Доказательство основано на реализации таг-системы.

Мы по порядку рассмотрим реализацию цикла, FizzBuzz и таг-системы.

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

Гайд по 3D-моделированию: Анимация в Blender для детей

Level of difficultyEasy
Reading time6 min
Views8.7K

3D-моделирование без сомнений остается одной из самых востребованных и перспективных ИТ-отраслей. По прогнозам, общий среднегодовой темп роста отрасли с 2024 по 2032 составит 13,5%, а это миллиарды долларов. Такой спрос объясняется тем, что трехмерное моделирование находит применение практически во всех отраслях. Традиционным для 3D является индустрия развлечений и игр, но это далеко не все. Так, в масштабе эти технологии используют для улучшения и моделирования умных городов, строят огромные метавселенные, используют для прототипирования на производстве и в туризме для виртуальных туров.

Так что перспективы развиваться как специалист в 3D очевидны. А начинать можно уже со школьного возраста на базе программы Blender. И пусть она используется повсеместно профессионалами, это не значит, что ребенок с ней не разберется. И вот, чем хорош Blender:

Читать далее
Total votes 15: ↑7 and ↓8+1
Comments3

Как подключить мультиметр к компьютеру

Level of difficultyMedium
Reading time5 min
Views16K

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

В бюджетных мультиметрах ZT102 и ZT301, которые построены на чипе DTM0660, можно реализовать подключение к компьютеру, но для этого придётся редактировать EEPROM и вносить изменения на печатную плату. Это несложно и Kerry Wong описывал как это сделать на примере мультиметра ennoLogic eM860T.

В тоже время у моего настольного мультиметра Agilent U3402A на задней панели уже есть порт RS232, но на нём указано "используется только для калибровки". Аналогичное предупреждение есть и в инструкции пользователя на русском и английских языках.

Читать далее
Total votes 37: ↑37 and ↓0+55
Comments25

Как сделать безопасную загрузку с полностью зашифрованным диском на Linux без загрузчика на UEFI

Level of difficultyHard
Reading time14 min
Views12K

Наша новая статья — для довольно искушённых пользователей Linux. В ней DevOps-инженер Алексей Гаврилов разобрал, как установить Debian или аналогичный дистрибутив на полностью зашифрованный диск без загрузчика на UEFI с включённым Secure Boot. 

После завершения установки вы получите включённый Secure boot с использованием личных ключей для подписи EFI-файлов, подписанные ключом файл ядра и initramfs, а также зашифрованные разделы диска за вычетом EFI boot. Это позволит уменьшить возможность векторного взлома ноутбука и усложнит жизнь потенциальному взломщику, поскольку в его распоряжении будут только подписанные EFI-файлы.

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

Комплексный анализ CX с использованием омниканальных данных

Level of difficultyEasy
Reading time8 min
Views393

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

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

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

История серии Mass Effect: любовь геймеров, скандалы и оглушительный провал

Level of difficultyEasy
Reading time24 min
Views9.5K

Студия BioWare выпустила первую игру знаменитой научно-фантастической франшизы аж 17 лет назад — в 2007 году. Мне трудно вообразить этот промежуток времени: кажется, что я играл в нее буквально вчера, сразу после выхода на Xbox 360. Но сколько же за это времени утекло воды….

Недавно я стал счастливым обладателем Xbox Series X. И решил первым делом перепройти всю оригинальную трилогию, тем более в подписке Game Pass есть Mass Effect: Legendary Edition. А после — поиграть в Mass Effect: Andromeda, про которую слышал так много негативного. В общем, в процессе игры вдохновился написать статью о том, как создавалась серия. И заодно — поделиться своими ощущениями от этого шедевра.

Читать далее
Total votes 37: ↑34 and ↓3+51
Comments18

Расширенный экран «Profi», что это такое и как с ним работать. Взгляд из 2003 года

Level of difficultyEasy
Reading time5 min
Views2.9K

Данная статья написана в 2003 году для газеты «Абзац» и была опубликована в 16 номере. Это моя первая статья на тему расширенного экрана компьютера «Profi».

Читать далее
Total votes 21: ↑19 and ↓2+29
Comments0

Гибкие шестерни

Level of difficultyMedium
Reading time9 min
Views17K
Картинка Jahobr, Youtube-канал «3DprintedLife»

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

В этой статье мы поговорим о том, как можно решить этот вопрос наиболее простым способом.
Читать дальше →
Total votes 66: ↑64 and ↓2+91
Comments42

Запуск I2S Трансивера на Artery [часть 2] (DMA, FSM, PipeLine)

Level of difficultyEasy
Reading time9 min
Views2.5K

В этом тексте вы узнаете, что общего между I2S трансивером и оладьями.

Да... Именно так. А также зачем программисту микроконтроллеров конвейеры и цифровые фильтры.

В тексте изложено про то, как источать звук при помощи I2S + DMA.

Читать далее
Total votes 13: ↑12 and ↓1+15
Comments23

Прорывной транспорт из СССР: 5 интересных проектов

Level of difficultyEasy
Reading time5 min
Views11K

Привет, Хабр! Меня зовут Кирилл, я рулю направлением спецпроектов в МТС Диджитал. Кроме моей любви к гаджетам, о которой я уже рассказывал, есть у меня еще одна слабость: транспорт.

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

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

Читать далее
Total votes 41: ↑32 and ↓9+35
Comments72

Матрица Вандермонда

Level of difficultyEasy
Reading time3 min
Views8.4K

Александр Теофил Вандермонд (28 февраля 1735 - 1 января 1796) - французский музыкант и математик, известный благодаря своей работе в области высшей алгебры.

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

В честь Александра Теофила был назван специальный класс матриц - матрицы Вандермонда, о котором пойдет речь в данной статье. [1]

Читать далее
Total votes 11: ↑6 and ↓5+4
Comments7

Заметки по архитектуре .NET библиотеки: пространства имён

Level of difficultyEasy
Reading time7 min
Views2.6K

Одно пространство имён для всего или же отдельные под каждую папку? Быть может, есть варианты интереснее? Рискнём и ступим на землю жестоких программистских баталий, в которых льётся цифровая кровь и рождается “истина”: какая из организаций пространств имён есть свет, а какая от лукавого.

Читать далее
Total votes 8: ↑7 and ↓1+9
Comments10

Просто о сложном: как я написал книгу по реверс-инжинирингу встраиваемых систем

Level of difficultyEasy
Reading time9 min
Views6K

Большую часть своей карьеры я руководил какими-то коллективами: брал себе стажеров, кого-то курировал, больше 10 лет преподавал в Бауманке. Мне всегда хотелось делиться своими знаниями. И в какой-то момент я понял, что у меня нет источника информации, который я могу дать человеку со словами: «На, прочитай, и на многие вопросы, которые тебя сейчас, в самом начале пути, мучают, ты получишь ответы — кратко, сжато и в доступном виде».

И тогда я подумал, что было бы неплохо написать книгу...

Читать далее
Total votes 30: ↑30 and ↓0+32
Comments12

Пишем «Hello, World!» на Си для OpenWRT

Level of difficultyMedium
Reading time3 min
Views4.3K

Мне стало интересно, как можно скомпилировать код на языке Си для OpenWRT на мой роутер.
В интернете инструкции имеются, но расплывчатые и то им уже по 6-8 лет. Поэтому, в этой статье собрана актуальная информация по компиляции.

Читать далее
Total votes 10: ↑10 and ↓0+12
Comments8

Как придумать, приготовить и решиться на публичное выступление

Level of difficultyEasy
Reading time6 min
Views1.7K

Если вы хотите сделать публичное выступление на конференции, но все никак не решаетесь или не знаете как — я вам помогу. Я расскажу, как выбрать тему, как подготовить доклад и выглядеть уверенным перед аудиторией. Если материал окажется для вас полезным, у меня есть канал в Telegram — подпишитесь.

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

А потом я заставляю себя шагнуть на сцену и говорю заученное “всем привет, меня зовут Олег Федоткин”. Примерно после этих слов я попадаю в поток и прихожу в себя только после фразы “спасибо за внимание, буду рад ответить на ваши вопросы”.

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

Но когда я предлагаю выступать своим сотрудникам или знакомым, в девяти из десяти случаев коллеги отказываются. Причин для отказа две:

Читать далее
Total votes 18: ↑15 and ↓3+15
Comments9

Information

Rating
Does not participate
Location
Ростов-на-Дону, Ростовская обл., Россия
Date of birth
Registered
Activity