Search
Write a publication
Pull to refresh
62
0
Дмитрий Лобашевский @0decca

User

Send message

3D-печатные подшипники — в массы

Level of difficultyMedium
Reading time14 min
Views22K

Что может быть интереснее, чем создать на 3D-принтере нечто, что обычно делают на заводах? Например - старые добрые подшипники качения?

Приветствую сообщество Хабра. Это моя первая статья, поэтому сделаем все хорошо =)

Читать далее

Как избегать типичных ошибок при встраивании ассемблерных вставок: подборка правил

Reading time5 min
Views5.1K

Ассемблерные вставки, используемые компиляторами GCC и Clang, опосредуют взаимодействие высокоуровневых и низкоуровневых языков программирования. Это тонкая и коварная штука. Многие попадают в расставленные здесь капканы, зачастую совершенно неожиданно для себя. В сущности, ключевое слово asm можно перевести на C и C++ как unsafe. Почти в любых руководствах по встроенному ассемблеру, в том числе, и на ужасной странице ibilio, которая десятилетиями попадает в самый верх поисковой выдачи, неисправимо фигурируют фундаментальные серьёзные ошибки, а примеры в большинстве своём некорректны. Наиболее опасно, что эти примеры обычно приводят к ожидаемым результатам! Ситуация плачевная. Эта статья — не руководство, а подборка элементарных правил, которые помогут вам избежать самых распространённых ошибок либо отловить их при ревью кода.

Здесь мы сосредоточимся сугубо на расширенном, а не на базовом ассемблере, а правила в этих версиях отличаются. На первом пишут любые инструкции, относящиеся к встроенному ассемблеру, с ограничениями или затираемыми. То есть, имеем токен : в обрамлении asm. Базовый ассемблер — тупой инструмент, который используется сравнительно нечасто, в основном в самом верху файла с кодом или в “голых” функциях. Поэтому злоупотребления базовым ассемблером на практике маловероятны.

Читать далее

Малопотребляющий датчик с передачей данных по радиоканалу

Level of difficultyMedium
Reading time14 min
Views18K
Несколько лет назад я опубликовал статью о простейших приемниках и передатчиках для обмена данными на частоте 433 МГц (на рисунке внизу левая пара). Публикация была вызвана в основном тем фактом, что абсолютно во всех источниках в интернете приемник подключался неграмотно, и это значительно снижало возможности удобного и дешевого способа связи. Приемник MX-RM-5V (известен также под названием XD-RF-5V) представляет собой дешевую регенеративную схему, которая крайне чувствительна к помехам и капризна к настройке, что хорошо известно радиолюбителям, но почему-то совершенно темный лес для остального мира, включая даже опытных ардуинщиков. Поэтому такой приемник, как минимум, следует включать с отдельным хорошо зафильтрованным аналоговым стабилизатором, что сразу повышает дальность в разы.



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

ESP32 тоже отчасти немножко ПЛИС? Делаем динамическую индикацию на матрице светодиодов за 0 тактов процессора

Level of difficultyMedium
Reading time14 min
Views17K

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

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

Делать нечего, придётся пилить — и давайте попробуем сделать это, совершенно не занимая процессор!

Читать далее

Некоторые малоизвестные фичи, фокусы и причуды языка C

Reading time19 min
Views35K

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

Конечно же, здесь я не берусь перечислять абсолютно всё, так как факты из разряда «функция nan() не может устанавливать errno, поскольку в определённых ситуациях поведёт себя как strtod()» не слишком интересны.

ВНИМАНИЕ: сам факт попадания тех или иных вещей в эту подборку  не означает автоматически, что я рекомендую или, наоборот, не рекомендую ими пользоваться! Некоторые из приведённых примеров никогда не должны просачиваться за пределы списков наподобие этого, тогда как другие примеры невероятно полезны! Уверен, что могу положиться на ваш здравый смысл, дорогие читатели.

Читать далее

Synthetic Minority Oversampling Technique

Reading time6 min
Views1.6K

В datascience все уже знают о важности данных для успеха любого проекта с машинным обучением. Часто бывает, что сами данные представляют собой гораздо большую ценность, чем модель, которая на них обучилась, поскольку процесс получения этих данных может быть гораздо сложнее, опаснее, дороже, чем обучение модели. Поэтому набирает популярность генерация наборов данных, создаются специальные фреймворки. Сегодня речь пойдет об одном из таких фреймворков, SMOTE, или же Synthetic Minority Oversampling Technique. За два последних десятилетия накопилось довольно много материала по этой технике. Ключевое отличие этой статьи в экспериментах, которые проводились в ходе исследования работоспособности такого типа овэрсэмплинга.

Постановка проблемы

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

Читать далее

Как работает генерация видео в open source проекте Wunjo CE

Level of difficultyEasy
Reading time9 min
Views2.4K

Генерация видео теперь open source? Наконец-то я нашёл время, чтобы добавить генерацию видео из текста и изображений в свой open source проект Wunjo CE. В этой статье мы рассмотрим, как это работает, сравним его с похожими решениями, изучим основы подхода и его альтернативы.

Смотрим

Ирина — опенсорс русский голосовой помощник. Offline-ready

Reading time9 min
Views63K

- Ирина, таймер...
- Ставлю таймер на пять минут.

Вполне себе обыденная история из моего быта. Я таки сделал собственного автономного голосового помощника.

TL;DR> Ирина вполне неплохо работает дома 24x7.

Потребуется установить Python 3.5+ и зависимости через pip (немного знаний Python).

Скиллы "из коробки": таймер, погода, контроль медиа (громче/тише/дальше), контроль плеера MPC-HC, запуск медиа из папки, расписание ближайших электричек, "подбрось кубик/монетку".

Плагинами добавляются: другие скиллы, Text-to-Speech и Speech-to-Text движки.

Интересно? Поехали >

Ноутбук с процессором RISC-V: современный лэптоп на базе ОС Linux. Что это за девайс?

Reading time4 min
Views12K

Похоже на то, что популярность архитектуры RISC-V постепенно растет. Это и неудивительно, учитывая ее бесплатность и отсутствие необходимости выплачивать лицензионные отчисления кому бы то ни было. Устройств на базе новых чипов тоже все больше. На днях появился ноутбук с крайне оригинальным названием Laptop II, выпущен он брендом DC-ROMA. Подробности — под катом.

Читать далее

Об управлении esp32-машинками (и не только) через wifi/websocket-ы с помощью пульта на базе смартфона

Level of difficultyMedium
Reading time10 min
Views12K
Картинка Freepik

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

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

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

Читать дальше →

Делаем резервное копирование кластера ClickHouse: простая инструкция

Reading time4 min
Views5.7K

Делаем резервное копирование кластера ClickHouse: простая инструкция

Меня зовут Леонид Блынский и я администратор баз данных в Лиге Цифровой Экономики. В этой небольшой статье расскажу, как я делаю резервное копирование кластера ClickHouse размером 20 ТБ.

Документация по резервному копированию довольно небольшая и содержит инструкции по созданию резервных копий отдельной инсталляции СУБД. К сожалению, информации о том, как создавать резервные копии кластера, практически нет. Как и нет промышленного решения для управления бэкапом. 

Читать далее

Создание своего UEFI приложения

Level of difficultyMedium
Reading time5 min
Views46K

Привет, Хабр! Мне 16 лет, я студент, учусь на первом курсе колледжа на программиста. Начал увлекаться низкоуровневым программированием на Ассемблере и C/C++

Я заметил что на Хабре есть множество статей о написании своих простых "загрузчиков" для BIOS-MBR, которые выводят на экран "Hello World!". И при этом практически нет ни одной статьи о создании того же самого, но только для UEFI, хотя будущее именно за ним, ведь BIOS уже давно устарел! Это я и хочу исправить в этой статье.

Читать далее

InstantID: Создание персонализированных изображений по одному фото. И лучший бесплатный генератор нейро-аватарок

Level of difficultyEasy
Reading time8 min
Views27K

Друзья, всем привет, вышла в свет новая удивительная технология, на гите она подписана как InstantID : Zero-shot Identity-Preserving Generation in SecondsНо по факту это самый крутой генератор аватарок в мире, который по одной лишь вашей фотографии может создать персонализированное изображение с вашим лицом в любом стиле по текстовому запросу используя SDXL модели Stable Diffusion. Так что к концу этой статьи, у вас так же как и у меня будет десяток новых аватарок и совершенно бесплатно.

В статье много красивых и тяжелых картинок.

Читать далее

Как (быстро) сделать русский локальный ChatGPT

Level of difficultyMedium
Reading time7 min
Views49K

Эта история началась в начале марта этого года. ChatGPT тогда был в самом расцвете. Мне в Telegram пришёл Саша Кукушкин, с которым мы знакомы довольно давно. Спросил, не занимаемся ли мы с Сашей Николичем языковыми моделями для русского языка, и как можно нам помочь.

И так вышло, что мы действительно занимались, я пытался собрать набор данных для обучения нормальной базовой модели, rulm, а Саша экспериментировал с существующими русскими базовыми моделями и кустарными инструктивными наборами данных.

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

Читать далее

STM32. Подготавливаем среду разработки в Linux

Level of difficultyEasy
Reading time21 min
Views37K
В недавнем времени получилось так, что у меня появилась пара интересных проектов, где одна из составных частей — микроконтроллер STM32. И каждый раз при смене ноутбука или ОС на домашнем компе приходится настраивать окружение для разработки как в первый раз. Плюсом, последние проекты, которые я делал для STM32 — выполнял в Windows, в демо-версии Keil uVision. Но поскольку я давно переехал в Linux — возникла необходимость основательно разобраться и изложить процесс настройки окружения для будущих применений.

Всем, кому интересно — добро пожаловать под кат.

Читать дальше →

Что нам стоит д̶о̶м̶ голограмму построить?

Reading time9 min
Views12K
Картинка freepik

Голограмма… Известное многим слово, за которым скрываются высокие технологии, сулящие большие перспективы в деле хранения информации, защиты, а также художественном самовыражении.

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

Читать дальше →

Как научить бабушку писать мемуары на самоизоляции с помощью VOSK-API. «Речь в текст» спешит на помощь

Level of difficultyMedium
Reading time10 min
Views8.2K
В ряде статей, опубликованных на этом сайте, есть описание того, что на рынок вышла новая Open Source платформа AI «речь в текст» VOSK-API. Ее инсталляция и один из способов применения расписан достаточно подробно в ее документации. Привожу ссылку на Гитхаб VOSK-API, рекомендую пробовать октябрьскую версию 2020 года.



Ознакомившись с комментариями и критикой в статье мне захотелось рассказать о моем полугодовом опыте работы с данной системой, привести четыре примера решенных на ней задач.
Читать дальше →

Неочевидные лайфхаки 3D реконструкции людей

Reading time4 min
Views7.7K

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

Читать далее

Transformer — новая архитектура нейросетей для работы с последовательностями

Reading time7 min
Views90K

Необходимое предисловие: я решил попробовать современный формат несения света в массы и пробую стримить на YouTube про deep learning.


В частности, в какой-то момент меня попросили рассказать про attention, а для этого нужно рассказать и про машинный перевод, и про sequence to sequence, и про применение к картинкам, итд итп. В итоге получился вот такой стрим на час:



Я так понял по другим постам, что c видео принято постить его транскрипт. Давайте я лучше вместо этого расскажу про то, чего в видео нет — про новую архитектуру нейросетей для работы с последовательностями, основанную на attention. А если нужен будет дополнительный бэкграунд про машинный перевод, текущие подходы, откуда вообще взялся attention, итд итп, вы посмотрите видео, хорошо?


Новая архитектура называется Transformer, была разработана в Гугле, описана в статье Attention Is All You Need (arxiv) и про нее есть пост на Google Research Blog (не очень детальный, зато с картинками).


Поехали.

Читать дальше →

Как развитие алгоритмов сжатия остановилось 20 лет назад, или о новом конкурсе на 200 тысяч евро

Reading time18 min
Views74K

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

Пост набрал 206 «плюсов», вышел на 2 место топа недели и вызвал оживленную дискуссию, в которой мне больше всего понравился комментарий: «Коммерческого интереса эффективность по сжатию алгоритмов сжатия без потерь сегодня не представляет, в силу отсутствия принципиально более эффективных алгоритмов. Деньги сегодня — в сжатии аудио-видео. И там и алгоритмы другие. Тема сжатия без потерь удобна именно лёгкостью верификации алгоритма, и не слегка устарела. Лет на 20.» 

Поскольку я сам уже 20 лет в области сжатия видео, с ее бурным развитием мне спорить сложно. А вот что сжатие без потерь развиваться перестало… Хотя логика тут понятна каждому. Я до сих пор пользуюсь ZIP, все мои друзья пользуются ZIP с 1989 года — значит, ничего нового не появляется. Так ведь? Похоже рассуждают сторонники плоской земли. ))) Я не видел, знакомые не видели, и даже некоторые авторитеты утверждают, значит, это так! 

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

Развивались ли алгоритмы сжатия без потерь в последние 20 лет? Чем закончился прошлый конкурс и на сколько опередили baseline? Сколько денег получили русские таланты, а сколько зарубежные? И есть ли вообще жизнь на Марсе в сжатии без потерь? 

Кому интересно — добро пожаловать под кат! 
Читать дальше →

Information

Rating
Does not participate
Location
Одесса, Одесская обл., Украина
Date of birth
Registered
Activity