Pull to refresh
8
1

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

Send message

Обзор недавно выпущенной модели Evo для анализа геномных данных

Level of difficultyEasy
Reading time6 min
Views1.3K

Давайте представим, что вы начинающий или опытный биоинформатик, или "простой смертный", который хочет углубиться в анализ биологических данных. Спойлер: биоинформатики тоже смертные! Зачастую, не у каждого хватает ценного времени на проверку огромных последовательностей геномных данных, будь то поиск различных мутаций или прогнозирование структуры белков на основе последовательности аминокислот.

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

Читать далее

DE-1. DIY ассистент на LLM

Level of difficultyMedium
Reading time9 min
Views9.8K

Привет Хабр, let's set the future.

Недавно у меня появилась идея фикс: 'Хочу собственного AI ассистента'. Казалось бы, нет никаких проблем - рынок предлагает массу готовых решений. Но моя вечная паранойя про утечку данных и стремление сделать все самому взяли верх. Решил поэкспериментировать и собрать ассистента своими руками, да еще как-то с учетом будущих возможностей для гибкой настройки. Времени на оптимизацию производительности и эстетический вид кода у меня не было, 'хочу здесь и сейчас', поэтому let me introduce this shit.

Читать далее

Моя б̶е̶з̶умная колонка: часть вторая // программная

Level of difficultyEasy
Reading time16 min
Views12K

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

В прошлой статье я описал аппаратную реализацию своего голосового ассистента на базе бюджетного одноплатника Orange Pi Zero 2W с 4Гб оперативной памяти. Эту же статью хочу посвятить программной реализации данного устройства. Если стало интересно, то добро пожаловать под кат.
Читать дальше →

Собираем удобный CAN bus сниффер с интерактивной консолью за $3

Level of difficultyMedium
Reading time13 min
Views22K

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

Протокол CAN сейчас широко распространён не только в автомобильной сфере, но и на предприятиях, в различных самоделках, и даже в Средствах Индивидуальной Мобильности (контроллеры VESC, например). В ноябре прошлого года я сделал для себя удобный инструмент для анализа CAN и отправки фреймов, сейчас же хочется сделать код опенсорсным и рассказать о самом проекте.

Читать далее

Оптика в техническом зрении. Лекция 2: Аберрации

Level of difficultyMedium
Reading time17 min
Views13K

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

Меня зовут Андрей, я – специалист по оптическим системам, оптик и инженер-конструктор в одном лице.

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

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

Читать далее

Множественная кусочно-постоянная регрессия

Level of difficultyMedium
Reading time3 min
Views2.9K

Описан алгоритм построения кусочно-постоянной зависимости переменной y от взвешенной суммы x=w_1x_1+\ldots+w_px_p, минимизирующей сумму квадратов отклонений y от средних значений на диапазонах изменения величины x.

Читать далее

Принцип определения дальности между радио трансиверами

Level of difficultyEasy
Reading time3 min
Views6.5K

Настал второй за 11 лет случай, когда в профессии программист‑микроконтроллеров понадобилась математика. Она нужна чтобы решить задачу из радиотехники.

В этом тексте показан алгоритм определения дальности между радио трансиверами.

Читать далее

Взлёт и падение «Живого Журнала». Часть 1: как ЖЖ родился и стал русскоязычным

Reading time9 min
Views30K

Мёртвый ЖЖ стал мемом ещё десять лет тому назад. Платформа технически продолжает жить и здравствовать, там по сей день есть читаемые и популярные блоги, но эпоха «Живого Журнала» как главной дискуссионной площадки рунета безвозвратно ушла в прошлое. А ведь было, было время!

Именно там кипели бурные страсти и жуткие ср*чи, рождались мемы и дискурсы, вспыхивали звёзды знаменитых блогеров и афедроны комментаторов. Кащениты тгавили пейсателя, падонки учили олбанскей, аффтарами писались тонны лытдыбров, а с многострадальным головным убором Антона Носика чего только ни происходило.

ЖЖызнь кипела во всех формах и расцветках — и казалось, не будет этому конца и края. Конец таки пришёл куда быстрее, чем можно было предположить, но ЖЖ остался в сердцах ветеранов рунета и в истории его развития.

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

Теперь наш синтез на 20 языках

Reading time7 min
Views13K

hero_image


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


В этот раз мы добавили:


  • 1 высококачественный голос на русском языке (eugeny);
  • Синтез на 20 языках, 174 голоса;
  • В список языков входят 5 языков народов СНГ: калмыцкий, русский, татарский, узбекский и украинский;
  • В список языков входят 5 вариаций на тему романо-германских языков: английский, индийский английский, испанский, немецкий, французский;
  • Также в список языков входят 10 языков народов Индии;
  • Новую значительно улучшенную модель для простановки ударений и буквы ё со словарем в 4 миллиона слов и точностью 100% (но естественно с рядом оговорок);
  • Все модели наследуют все "фишки" прошлого релиза, кроме автоматической простановки ударений для языков отличных от русского;

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


Попробовать модель как обычно можно в нашем репозитории и в колабе.

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

Управляем подсветкой клавиатуры при смене языка ввода

Reading time7 min
Views14K

Недавно я купил себе клавиатуру от Corsair модели K55 RGB Pro. У нее есть модная нынче RGB-подсветка, а чтобы ее настраивать, производитель предлагает скачать программу iCUE. На сайте написано, что некоторые игры могут управлять подсветкой совместимых устройств. Я заинтересовался, как они это делают. Гугл обнаружил официальный SDK с примерами, а также документацию. Я решил сделать что-то полезное для себя, а заодно посмотреть, как создаются приложения под Windows.

Мой код (для Visual Studio) можно найти здесь.

Подробнее о том, как я это сделал, примеры кода и как это выглядит - под катом.

Читать далее

Как распутать уроборос роутинга в Linux

Reading time7 min
Views14K
image

Описание проблемы


Ситуация: у нас имеется один интерфейс eth0, «смотрящий» в интернет, с IP-адресом 192.168.11.11/24 и шлюзом 192.168.11.1. Нам нужно организовать интерфейс vpn0, который будет через VPN соединяться с неким сервером, и весь исходящий с этой машины трафик должен идти через этот интерфейс vpn0.

Примечание: я оставляю за скобками детали работы с IPv6, поскольку там хватает своих особенностей. Рассматривается только ситуация с IPv4.

Итак, мы берём в руки программу для подключения в VPN-у — она соединяется с неким VPN-сервером по адресу 10.10.10.10 и поднимает нам интерфейс vpn0 например с таким адресом: 192.168.120.10/24, шлюз 192.168.120.1. Казалось бы, всё хорошо, пинги через vpn0 ходят, коннект есть, он стабильный, осталось только прописать нечто вроде

ip route add default dev vpn0 metric 1000

чтобы перенаправить все соединения через новый интерфейс и…

И всё благополучно падает. Пропадает интернет, отваливается VPN, отключается ssh (если вы по нему подключены к хосту). Если приложение VPN-а не выключит интерфейс при потере соединения, то извне вы до этого хоста до ребута больше не подсоединитесь.

Что случилось?

Domain-driven design, Hexagonal architecture of ports and adapters, Dependency injection и Python

Reading time23 min
Views23K

Пролог

- Глянь, статью на Хабр подготовил.
- Эм... а почему заголовок на английском?
- "Предметно-ориентированное проектирование, Гексагональная архитектура портов и адаптеров, Внедрение зависимостей и Пайто..."

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

--

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

Читать далее

По зубам: гигиена, часть 1

Reading time7 min
Views18K

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



Зубной налёт (макрофото с электронного микроскопа)

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

Stm32 + USB на шаблонах C++. Продолжение. Делаем HID

Reading time11 min
Views7.8K

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

Читать далее

USB на регистрах: bulk endpoint на примере Mass Storage

Reading time13 min
Views10K


Еще более низкий уровень (avr-vusb)
USB на регистрах: STM32L1 / STM32F1
USB на регистрах: interrupt endpoint на примере HID
USB на регистрах: isochronous endpoint на примере Audio device

В прошлый раз мы познакомились с общими принципами организации USB и собрали простое устройство, иллюстрирующее работу конечной точки типа Control. Пришло время изучать следующий тип — Bulk. Конечные точки такого типа предназначены для обмена большими объемами информации, причем чувствительной к надежности, но не скорости обмена.

Классические примеры — запоминающие устройства и переходники вроде USB-COM. Но переходники требуют еще наличия конечной точки типа Interrupt, которую мы пока «не проходили», так что остановимся на эмуляции флешки. Точнее, двух флешек одновременно.
Читать дальше →

Синхронные двигатели с постоянными магнитами на роторе: управление (синус и/или трапеция)

Reading time11 min
Views47K

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

От теории к практике, наглядно, понятно и занимательно.

Читать далее

3. Частотные характеристики систем автоматического управления (АФЧХ, ЛАХ, ФЧХ) ч. 3.1

Level of difficultyMedium
Reading time12 min
Views89K

Лекции по курсу «Управление Техническими Системами» читает Козлов Олег Степанович на кафедре «Ядерные реакторы и энергетические установки» факультета «Энергомашиностроения» МГТУ им. Н.Э. Баумана. За что ему огромная благодарность!


Данные лекции готовятся к публикации в виде книги, а поскольку здесь есть специалисты по ТАУ, студенты и просто интересующиеся предметом, то любая критика приветствуется.


В предыдущих сериях:
1. Введение в теорию автоматического управления.
2. Математическое описание систем автоматического управления 2.1 — 2.3, 2.3 — 2.8, 2.9 — 2.13


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

C++ template аллокатора с потокобезопасным циклическим буфером

Reading time9 min
Views8.8K
Вашему вниманию простой C++ template аллокатора с потокобезопасным циклическим буфером.

Вся реализация в одном заголовочном .h файле: [fast_mem_pool.h]

Фишки, чем этот аллокатор лучше сотни подобных — под катом.
Читать дальше →

Сэмулируй сборку приложения ARM на x86 процессоре на примере Qt

Reading time14 min
Views19K
Мощность современных процессоров растёт, как в стационарных компьютерах, так и в различных embedded устройствах, на борту которых процессоры на базе ARM с операционной системой linux. Сегодня в рамках данной статьи мы запустим эмулятор процессора ARM на x86 компьютере и в нём попробуем собрать Qt из исходников и тестовое приложение, т.е. так сказать сиэмулируем сборку ARM приложения.

В первой части статьи будем использовать эмулятор QEMU для aarch64, во второй части запустим эмулятор Raspberry и проверим работоспособность приложения в нём.

От себя хочу отметить, это все делается не быстро, и если Вы попробуете все это выполнить, то полный цикл займет у вас несколько дней!)


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

Всё-таки я не зря учился! Как клёвые алгоритмы и школьные формулы помогают создавать инновационные лекарства

Reading time16 min
Views10K

image


Введение


Меня зовут Александр Садовников, я выпускник корпоративной магистерской программы ИТМО и JetBrains «Разработка программного обеспечения» и по совместительству старший разработчик биоинформатического ПО в департаменте вычислительной биологии компании BIOCAD.


В этом посте я в доступной форме и без чрезмерного жонглирования нудными биоинформатическими терминами опишу один из ключевых этапов создания лекарственного средства — этап предсказания места взаимодействия лекарства с целевой молекулой в организме человека. Данная тема выбрана мной не случайно: в рамках своей дипломной работы я занимался именно этой проблемой.


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

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

Information

Rating
1,351-st
Registered
Activity

Specialization

Embedded Software Engineer, Project Manager
Middle
C++
Qt
Linux
Electronics Development