Обновить
-7
0.2

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

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

Пора внедрять ORM в вашу систему

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

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

Сегодня я буду навязывать своё субъективное, однобокое, единственно правильное мнение, зачем вам ORM.

Читать далее

Миниатюризация систем квантового распределения ключей с помощью фотонных интегральных схем, часть 2: Сценарии применения

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

В первой части статьи мы обсуждали вопрос о потенциале применения фотонных интегральных схем (ФИС) для миниатюризации систем квантового распределения ключей (КРК) с точки зрения оптических материалов. Прежде чем перейти к вопросу о конкретных реализациях, стоит остановиться на некоторых рассматриваемых сейчас экспертами сценариях применения этой технологии в квантовом интернете.

В конце 2023 года Росстандартом были утверждены первые четыре предварительных национальных стандарта в области квантовых коммуникаций, включая «Квантовые коммуникации. Термины и определения» и «Квантовый интернет вещей. Термины и определения». Согласно им:

Квантовый интернет — глобальная информационная квантовая сеть, в узлах которой формируется, обрабатывается и хранится квантовая информация, и узлы которой соединены квантовыми каналами.

«Квантовый интернет вещей — интернет вещей с использованием квантовых технологий».

Читать далее

Библиотечка электровакуумщика-кустаря

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

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

На пути к полной жизни: Онлайн-синтез речи для людей с неврологическими нарушениями

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

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

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

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

В данной статье я расскажу о тестировании возможности применения технологии имплантируемого интерфейса “мозг-компьютер” (brain–computer interface) для онлайн-синтеза речи с использованием активности мозга, регистрируемой внутричерепными электродами, чтобы проложить путь к новым коммуникационным возможностям для людей, потерявших способность говорить.

Приятного прочтения!

Читать далее

Вербальные вычисления (VC) в доказательных DSS и NLP

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

С.Б. Пшеничников

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

Использование IT в обработке естественного языка (Natural Language Processing, NLP)  требует стандартизации текстов, например, токенизации или лемматизации. После этого можно пробовать применять математику, поскольку она является высшей формой стандартизации и превращает исследуемые объекты в идеальные, например, таблицы данных в матрицы элементов. Только на языке матриц можно искать общие закономерности данных (чисел и текстов).

Если текст превращается в числа, то в NLP это сначала натуральные числа для нумерации слов, которые затем погружаются в действительное векторное пространство.

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

Для гипербинарных чисел существует своя арифметика и если к ней привыкнуть, то она покажется привычнее и проще пифагорейской арифметики.

В системах поддержки принятия решений (DSS) текстами являются оценочные суждения и пронумерованная шкала вербальных оценок. Далее (как и в NLP) номера превращаются в векторы действительных чисел и используются как наборы коэффициентов средних арифметических взвешенных.

Читать далее

Похоже, я придумал свой алгоритм поиска кратчайшего пути (upd: меня опередили...)

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

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

Почему собственный? Я искал подобное решение, но не нашел, возможно, оно уже было реализовано, просто плохо поискал. Жду Нобелевскую премию =)

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

Читать далее

Выбор структур данных для самописного текстового редактора

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

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

Ресурсы


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

  • Build Your Own Text Editor — наверно, самый фундаментальный пост о создании текстового редактора с нуля, который я видел. Это превосходный туториал на случай, если вы хотите начать писать собственный текстовый редактор. Стоит заметить, что в редакторе из этого туториала в качестве внутренней структуры для текста используется, по сути, вектор строк.
  • Text Editor: Data Structures — отличный обзор множества структур данных, которые можно использовать при реализации текстового редактора. (Спойлер: как минимум одна из них будет рассмотрена в моём посте)
  • Плейлист Ded (Text Editor) на YouTube — это потрясающая серия, в которой @tscoding фиксирует процесс создания с нуля текстового редактора. Эти видео стали для меня источником вдохновения.

Зачем?


Если в сети есть так много хороших ресурсов о создании собственного текстового редактора (не говоря уже о том, что уже существует множество феноменальных текстовых редакторов), то зачем я это пишу? На то есть несколько причин:

  1. Я хотел заняться проектом, непохожим ни на один свой прошлый.
  2. Я хотел создать инструмент, которым смогу пользоваться.
  3. Мне всегда хотелось глубже разобраться с созданием собственных структур данных.
Читать дальше →

Черная магия метапрограммирования: как работают макросы в Rust 1.15

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

В прошлой статье мы познакомились с одной из самых интересных возможностей языка Rust — процедурными макросами.


Как и обещал, сегодня я расскажу о том, как писать такие макросы самостоятельно и в чем их принципиальное отличие от печально известных макросов препроцессора в C/C++.


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

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

Краткий обзор поведенческих паттернов в Rust

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

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

Зачем нужны поведенческие паттерны? Вопрос риторический, но ответ на него кроется в самой сути разработки. Поведенческие паттерны предоставляют нам для решения часто встречающихся проблем взаимодействия между объектами и классами.

Паттерны можно реализовать на любом ЯПе и сегодня рассмотрим, как их реализовать в Rust.

Читать далее

Арифметика первого класса в системе типов Rust

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

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

Начало работы с Axum — самым популярным веб-фреймворком Rust

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


Когда дело доходит до выбора серверного веб-фреймворка в экосистеме Rust, можно запутаться из-за большого количества вариантов. В прошлом, лидером по популярности был Rocket, но сейчас за первенство сражаются Axum и actix-web, и Axum все больше набирает обороты. В этой статье мы немного погрузимся в Axum — веб-фреймворк для создания REST API на Rust, разрабатываемый командой Tokio. Он прост в использовании и хорошо совместим с Tower — надежной библиотекой для создания модульных компонентов сетевых приложений.


В этой статье мы подробно рассмотрим, как использовать Axum для создания веб-сервиса. Кроме того, мы рассмотрим изменения, которые произошли в версии 0.7.

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

Основы многопоточности в Rust

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

Привет!

Думаю, уже всем известно, что многопоточность – это мастхев для большинства приложений.

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

Читать далее

На гребне гравитационной волны: космический детектор LISA

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

Один парень изучал физику и пытался опровергнуть выводы Теории Относительности. Он даже пытался опубликовать свои изыскания в престижном журнале Physical Review Letters. Его заслуженно отбрили рецензенты и развернул редактор журнала - статья была ошибочной. И хорошо, потому что было бы, мягко говоря, неловко. Этим парнем был Альберт Эйнштейн, а ошибался он в своих выводах о гравитационных волнах.

Через 10 лет будет запущен новый детектор гравитационных волн — в космосе! Самое время о нем поговорить подробнее.

Читать далее

Лист золота толщиной один атом

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


Химические и физические свойства материалов могут меняться в ответ на воздействие тех или иных факторов. К ним могут относиться как внешние (температура среды, приложенное давление, направленное излучение и т. д.), так и внутренние. К таковым относится и габариты, а точнее толщина данного материала. Ученые очень долго пытались создать лист золота толщиной в один атом, так как такой лист будет обладать рядом полезных свойств, которые не присущи трехмерному «куску» золота. Однако успеха в этом начинание не было до сего дня. Ученые из Линчепингского университета (Швеция) смогли наконец то создать одноатомный лист золота. Как именно им это удалось, какими свойствами обладает новый материал, и в каких отраслях он может быть использован? Ответы на эти вопросы мы найдем в докладе ученых.
Читать дальше →

Разработка программного средства по обработке данных фонокардиограммы

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

Медицинские исследования играют важную роль в понимании различных заболеваний и разработке эффективных методов лечения. Одним из инструментов, используемых в кардиологии, является фонокардиограмма (ФКГ).

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

ФКГ может использоваться для оценки эффективности лечения сердечных заболеваний и для наблюдения за состоянием сердца в течение времени. Если у вас есть симптомы, такие как боль в груди, одышка, учащенный пульс, упадок сил, обратитесь к кардиологу, который посоветует, нужна ли вам ФКГ [1].

Объектом исследования выпускной квалификационной работы является список файлов формата .csv, содержащих разделенные знаком ";" смещенные целочисленные значения амплитуды шумов сердца, записанные в течение нескольких секунд, частота дискретизации – 1000 гц (числа в записи обозначают амплитуду сигнала, временной промежуток между соседними значениями - 1 миллисекунда).

Цель работы состоит в создании алгоритма автоматической интерпретации снятых данных, который пытается по форме кривых делать выводы, аналогичные тем, которые по этим же кривым умеет делать эксперт и создание собственного алгоритма. Необходимо определить и выделить точку максимальной амплитуды, начало и окончание тона 1 для каждого из сердечных циклов. Ответ необходимо вывести в виде списка списков [t1, t2, t3], где t1 – начало тона 1, t2 – точка максимальной амплитуды, t3 – окончание тона 1. Также, для проверки результата, необходимо визуализировать полученный результат на графике. Данную процедуру необходимо произвести для каждого файла.

Ссылка на github: medical_date/script.py at main · ReshetnikovDmitrii4918/medical_date (github.com)

Читать далее

Реверс-инжиниринг механизмов биологической памяти

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

Память является ключевым элементом в функционировании нашего мозга, обладая множеством разновидностей, каждая из которых играет свою особую роль. Существуют декларативная, эмоциональная, сенсорная, временная и долговременная память, и это лишь начало списка. Но давайте подойдем к этому вопросу с инженерной точки зрения: какие типы памяти можно выделить, если анализировать саму природу биологической памяти и механизмы, на которых она строится? Какие методы позволят нам воссоздать эти уникальные процессы? - Давайте разберемся вместе. Конечно биологическая память неразрывно связана с механизмом обучения - подкрепления, которые мы тоже разберем, а также выясним чего же не хватает правилу Хебба. И сделаем мы это максимально наглядно и доступно.  

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

Читать далее

Теория управления шаговым двигателем (или как вертеть PTZ камеру)

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

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

При управлении шаговыми двигателями важно решать кинематическую задачу. Правда по уровню сложности её можно отнести к школьной программе 6 класса.

Читать далее

Зачем Программисту Микроконтроллеров Линейная Алгебра (или Как Найти Угол Между Векторами?)

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

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

Это всяческие встраиваемые системы, где есть подвижные, вращающиеся детали: PTZ камеры, поворотные платформы для радаров, турели, ветрогенераторы, солнечные панели, SDR обработка и прочее.

В данном тексте я приведу простое и понятное решение задачи вычисления угла между векторами на языке программирования Си.

Читать далее

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

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

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

Возьмем датасет “Heartbeat Sound”, который содержит аудиофрагменты сердечных ритмов различной продолжительности от 1 до 30 секунд, как здоровых пациентов, так и имеющих аномальные звуки сердцебиения. Набор содержит 813 аудиофайл с записями, разбитыми по категориям: artefact, extrastole, murmur, normal и unlabel. Попробуем разобраться, что обозначают эти категории.

Normal - как и следует из названия, нормальное сильное ритмичное сердцебиение.

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

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

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

Читать далее

Космики: моделирование эволюции многоклеточных организмов

Время на прочтение4 мин
Количество просмотров43K
Здравствуй, Хабр!

Несколько лет назад в прикладных целях я реализовал обычный Force-based визуализатор графов.

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

Со временем возникло несколько идей, что интересного можно смоделировать.

Вот что получилось с одной из них (в кадре мелкие объекты, смотреть в HD):



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

Информация

В рейтинге
2 882-й
Зарегистрирован
Активность