Pull to refresh
1
0.5
Семёнов Алексей @saege5b

User

Send message

А в чем проблема работать с файлами?

Level of difficulty Medium
Reading time 52 min
Views 3.3K

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

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

Кто участвует в процессе записи

Ошибки, которые могут произойти

Что от нас зависит, а что нет

И самое главное - как это этого защититься

Читать далее
Total votes 39: ↑39 and ↓0 +39
Comments 7

Секретная китайская плата с ЦАП: вспоминаем COVOX

Level of difficulty Easy
Reading time 9 min
Views 2.3K


Привет, Хабр! Сегодняшний радиоконструктор меня очень порадовал. Предельно простая схема позволяет получить весьма интересную форму выходного сигнала, благодаря программируемому двоично-десятичному счётчику КР1533ИЕ2 (74LS90) и резистивному цифро-аналоговому преобразователю, как в винтажной звуковой карте «COVOX».

КР1533ИЕ2 сама по себе является очень интересной микросхемой стандартной логики, которую стоит рассмотреть подробнее.
Читать дальше →
Total votes 28: ↑28 and ↓0 +28
Comments 7

Логистическая и Softmax-регрессии. Теоретические основы и реализация с нуля на Python

Level of difficulty Medium
Reading time 9 min
Views 371

Начнём с более простого. Логистическая регрессия — линейный бинарный классификатор, основанный на применении сигмоидальной функции к линейной комбинации признаков, результатом которого является вероятность принадлежности к определённому классу. Обычно порог устанавливается 0.5: если вероятность меньше порога — класс относится к 0, а если больше — к 1. В принципе, условия определения логистической регрессии такие же как и у линейной за исключением бинаризации таргета.

Читать далее
Rating 0
Comments 0

Искусственный химический элемент Технеций и его польза

Level of difficulty Medium
Reading time 16 min
Views 1.8K

Технеций находится в 7 группе 5-го периода таблицы Менделеева, в окружении давно известных и хорошо изученных элементов. Но его ячейка под номером 43 долгое время оставалась вакантной. В 1937 году новый элемент был наконец получен на циклотроне и выделен – в следовых количествах, которые нельзя ни взвесить, ни увидеть глазом. Дело в том, что 43-й элемент не имеет стабильных изотопов, а из тех, что есть, самый долгий период полураспада – 2,6·106 лет – имеет изотоп Тс-97. Чтобы в земной коре оставалось хоть какие-нибудь количества занесенного при сжатии протооблака радиоактивного элемента, его период полураспада должен быть не менее 150 млн. лет. Таким образом, никакого первозданного 43 элемента на Земле остаться не могло.

В атомных реакторах происходит накопление технеция уже в макроскопических количествах – примерно 1 кг в год - за кампанию на тонну облученного топлива. Физика ядерных процессов такова, что в реакторах накапливается преимущественно изотоп 99Тс, обладающий периодом полураспада чуть более 200 тысяч лет. Этот элемент обладает богатой химией и насчитывает девять целочисленных степеней окисления от -1 до +7. Несмотря на, казалось бы, не очень значительное количество технеция в отработавшем топливе (0.1%), поливалентность этого элемента сказывается на процессах разделения урана и плутония. Значительное количество неожиданных окислительно-восстановительных и каталитических реакций с участием технеция приводило к непредсказуемым результатам при переработке ядерного топлива. Именно это инициировало изучение химии и технологии технеция как отдельного элемента. Лучшее понимание поведения технеция позволило решить многие проблемы, связанные с переработкой отработанного ядерного топлива, и в основном нейтрализовать вредоносные побочные процессы.

 О том, какие возможности сулит применение изотопов технеция, рассказывает научный сотрудник лаборатории химии технеция ИФХЭ РАН, кандидат химических наук Михаил Александрович Волков.

Читать далее
Total votes 14: ↑13 and ↓1 +12
Comments 0

Чем сейчас занимается научная голография

Reading time 9 min
Views 507

Периодически на Хабре появляются новости о новых голографических устройствах. Одна из таких разработок, на которую мы обратили внимание, ― «голографический» дисплей, представленный на CES. Любопытно, что к голографии в научном понимании такие разработки имеют очень косвенное отношение. Holobox ― просто прозрачный жидкокристаллический экран, на который выводится плоская картинка ― проекция трехмерного объекта. Воспринять объем с помощью такого дисплея действительно можно, но только если смотреть прямо и избавиться от бликов.

Но голография как научное направление активно развивается. Возможно, новости этого сегмента не на хайпе, но здесь есть о чем рассказать. Разрабатываются новые материалы для записи полноцветных голограмм, фиксируется терминология, прорабатываются подходы и методы. В этой статье на примере работы Лаборатории цифровой и изобразительной голографии ИТМО поговорим о том, чем на самом деле живет научная голография (дисклеймер: речь пойдет о статических голограммах ― сферу динамических трогать не будем).

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

Как работает multiprocessing в Python под капотом

Level of difficulty Hard
Reading time 12 min
Views 1.2K

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

Мне захотелось залезть в исходники multiprocessing, разобраться и заодно написать статью. Данная статья в основном рассчитана на новичков в Python и тех, кто хочет подробнее разобраться в том, как именно создаются процессы и пулы в Python и погрузиться в детали реализации.

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

Галактика Андромеды

Level of difficulty Medium
Reading time 21 min
Views 22K

Галактика, расположенная в созвездии Андромеды, является ближайшей к нам крупной галактикой, и ярчайшей из спиральных галактик, после Млечного пути (который тоже является спиральной галактикой, и тоже виден на нашем небе). Есть еще Магеллановы облака, которые по яркости соперничают с Галактикой Андромеды, но они — галактики не самостоятельные, а их спиральные структуры уже сильно разрушены приливным влиянием Млечного пути, в гравитационном плену которого они находятся уже несколько миллиардов лет. Они — наши спутники. А галактика Андромеды — это полноценный и очень крупный звёздный город, являющийся одновременно и центром влияния на другие звездные города — меньшего размера, объединивший их вокруг себя в количестве нескольких десятков.

Будет справедливым утверждение, что Галактика Андромеды возглавляет Местную Группу галактик. Не Мы! — Не Млечный путь, а именно галактика Андромеды здесь главная.

Читать далее
Total votes 86: ↑85 and ↓1 +84
Comments 37

TOTP без смартфона

Level of difficulty Easy
Reading time 5 min
Views 10K

Когда я решил избавиться от необходимости постоянно носить с собой смартфон, одной из проблем оказалась двухфакторная аутентификация (2FA, приложение Google Authenticator). Остаться без возможности авторизации на множестве сервисов было неприемлемо, нужна была альтернатива.

Беглый поиск вывел меня на утилиту oathtool: командная строка, POSIX, OSS — всё, как я люблю, проблема в принципе решена. Но, как и большинство CLI утилит, её удобно использовать в сочетании с другими утилитами, а для этого полезно написать скриптовую обвязку. Собственно этой обвязкой, а также опытом использования, я и решил поделиться.

Читать далее
Total votes 56: ↑56 and ↓0 +56
Comments 80

Много-агентное планирование траекторий в децентрализованном режиме: эвристический поиск и обучение с подкреплением

Level of difficulty Medium
Reading time 17 min
Views 1.4K

Привет! Меня зовут Константин Яковлев, я научный работник и вот уже более 15 лет я занимаюсь методами планирования траектории. Когда речь идет о том, чтобы построить траекторию для одного агента, то задачу зачастую сводят к поиску пути на графе, а для этого в свою очередь обычно используют алгоритм A* или какие‑то из его многочисленных модификаций. Если же агентов много, они перемещаются в рабочем пространстве одновременно, то задача (внезапно) становится несколько более сложной и применить напрямую A* не получится. Вернее получится, но лишь для небольшого числа агентов (проклятье размерности, куда деваться). Тем не менее для централизованного случая, т. е. для случая, когда есть один (мощный) вычислитель, с которым связаны все агенты и который всё про всех знает, решить задачу много‑агентного планирования можно достаточно эффективно. Можно даже находить оптимальные решения для умеренного количества агентов за относительное приемлемое время (например, порядка 1 секунды на современном десктопном PC для 30–50 агентов).

Если же говорить о децентрализованном случае, т. е. о том случае, когда агентам необходимо действовать индивидуально (например, нет устойчивой связи с центральным контроллером), опираясь лишь на собственные (локальные) наблюдения и опыт, то с хорошими решениями задачи становится гораздо сложнее. Когда я говорю «хорошие решения», я имею в виду прежде всего такие алгоритмы, которые бы давали стройные теоретические гарантии в общем случае. Хотя бы гарантии того, что каждый агент дойдёт (за конечное время) до своей цели. Тем не менее, задача интересная и специалисты из индустрии и академии её пытаются решать.

В этом посте я расскажу о наших свежих наработках в этой области, а именно о гибридном методе, которые сочетает в себе принципы классического эвристического поиска (A*) и обучения с подкреплением (PPO). Метод получился неплохим, превосходящим многие современные аналоги по результатам экспериментов, а соответствующая статья была принята на The 38th AAAI Conference on Artificial Intelligence (пока доступен только препринт). Это одна из топовых академических конференций по искусственному интеллекту, которая в этом (2024) году проходила в Канаде (спойлер: я сам визу получить не успел, но моим коллегам и со‑авторам, кто имел ранее выданные Канадские визы, удалось принять личное участие и достойно представить нашу науку на мировом уровне).

Итак, поехали!
Total votes 25: ↑25 and ↓0 +25
Comments 5

Как работает механизм испускания света при триболюминесценции? Знаменитый опыт с сахаром

Reading time 4 min
Views 3.1K

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

Читать далее
Total votes 5: ↑3 and ↓2 +1
Comments 5

Приручение света: история солнечных панелей

Reading time 13 min
Views 3K

Сейчас солнечные панели по всему миру вырабатывают по примерным оценкам почти 400 ГВт электроэнергии. Технология, которую придумали еще в 1954 году (а предпосылки появились вообще в XIX веке), за последние 15 лет стала важной частью нашей жизни. Тысячи домовых хозяйств по всему миру устанавливают такие элементы на крыше и экономят на оплате за потребление электричества, а также более эффективно отапливают свои дома. 

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

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

Линейный дискриминантный анализ (LDA). Принцип работы и реализация с нуля на Python

Level of difficulty Hard
Reading time 7 min
Views 3.4K

Линейный дискриминантный анализ (Linear Discriminant Analysis или LDA) — алгоритм классификации и понижения размерности, позволяющий производить разделение классов наилучшим образом. Основная идея LDA заключается в предположении о многомерном нормальном распределении признаков внутри классов и поиске их линейного преобразования, которое максимизирует межклассовую дисперсию и минимизирует внутриклассовую. Другими словами, объекты разных классов должны иметь нормальное распределение и располагаться как можно дальше друг от друга, а одного класса — как можно ближе.

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

Электронный выключатель — избавляемся от дребезга контактов

Level of difficulty Medium
Reading time 2 min
Views 5.5K

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

Читать далее
Total votes 16: ↑16 and ↓0 +16
Comments 43

Первые способы защиты компьютерных игр от пиратства

Level of difficulty Easy
Reading time 12 min
Views 12K
За несколько десятилетий ЭВМ эволюционировали от «100 квадратных метров площади, 25 человек обслуживающего персонала и 30 литров спирта ежемесячно» до вполне миниатюрных образцов: Commodore-64, Atari 800XL, Apple II, Электроника БК-0010… Проблема была в цене: все эти модели весьма били по карману рядовому обывателю (примерно как покупка автомобиля).

Всё изменил Клайв Синклер, выпустивший на рынок ZX Spectrum – первый дешёвый персональный компьютер. Спектрумы продавались ударными темпами: только в одной Англии за неделю приобретали порядка пятнадцати тысяч машин. Причём, помимо и так недорогой версии «в сборе», покупателям предлагался удешевлённый вариант в виде отдельных комплектующих – эдакий конструктор «Собери сам».

Читать дальше →
Total votes 70: ↑69 and ↓1 +68
Comments 68

Наивный байесовский классификатор. Основная идея, модификации и реализация с нуля на Python

Level of difficulty Hard
Reading time 8 min
Views 4.2K

Наивный байесовский классификатор (Naive Bayes classifier) — вероятностный классификатор на основе формулы Байеса со строгим (наивным) предположением о независимости признаков между собой при заданном классе, что сильно упрощает задачу классификации из-за оценки одномерных вероятностных плотностей вместо одной многомерной.

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

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

Как пытались (пере)программировать мозги, и что из этого получилось? Часть 1: проект «Артишок»

Level of difficulty Easy
Reading time 10 min
Views 9.9K

Во все века разведчики, шпионы и спецслужбы полагались в своей работе на разные вещества и психологические уловки. Тёмные рыцари плаща и кинжала травили врагов всевозможными ядами, усыпляли стражу, подсылали убийц-фанатиков с промытыми пропагандой и веществами мозгами — как легендарные ассасины времён Крестовых походов, чьё название происходит от неумеренного накачивания одноразовых киллеров гашишем. Развитие науки и техники в ХХ веке только подстегнуло энтузиазм шпионских ведомств. Если в СССР секретная токсикологическая лаборатория №12 при КГБ занималась в основном ядами для ликвидации врагов трудового народа, то в США к боевым токсинам из закрытого центра Форт-Детрик добавлялись безумные во всех смыслах эксперименты ЦРУ по взлому чужих (и даже своих!) мозгов посредством веществ и гипноза. Это привело к грандиозному скандалу в 70-е годы, породило немало теорий заговора, а также отсылок в массовой и не очень культуре. Впрочем — обо всём по порядку.
Читать дальше →
Total votes 75: ↑60 and ↓15 +45
Comments 19

Услышать несказанное: преобразование движений мышц в речь

Reading time 18 min
Views 712


Одним из самых явных эволюционных отличий человека от других обитателей планеты является умение говорить. Конечно, другие животные также способны издавать звуки, используемые для коммуникации между особями. Но именно человек способен на вербальное, связанное по смыслу и логике общение. Для реализации вербальной передачи сигналов человеку нужны голосовые связки. Однако из-за травм, заболеваний или хирургического вмешательства у человека может развиться дисфония (нарушение речи) или полная дисфункция речи. Ученые из Калифорнийского университета в Лос-Анджелесе (США) разработали тонкое гибкое устройство, которое прикрепляется к шее и преобразует движения мышц гортани в слышимую речь. В создании этого устройства использовалось машинное обучение, позволяющее распознавать и сопоставлять определенные движения мышц с определенными словами. Из чего сделано чудо-устройство, как именно оно работает, и насколько оно эффективно? Ответы на эти вопросы мы найдем в докладе ученых.
Читать дальше →
Total votes 16: ↑15 and ↓1 +14
Comments 0

Как я «малину» собирал. История создания KVM на базе Raspberry Pi

Level of difficulty Easy
Reading time 4 min
Views 6.7K

Рассказываю, что такое KVM Over IP, как можно создать решение своими руками и выгодно ли это сегодня. Спойлер: в 2024 году смысла заморачиваться мало. И да, я понял это только в процессе. Но давайте обо всем по порядку... 

Читать о моем фиаско
Total votes 8: ↑5 and ↓3 +2
Comments 26

Как в России в XIX веке компьютер изобрели

Reading time 12 min
Views 6K
Компьютер придумал русский учёный Семён Корсаков в первой половине XIX века. Что? Да! И теоретическое обоснование к изобретению искусственного интеллекта впервые подвёл тоже он. «Как микроскоп и телескоп усилили наши чувства, так и интеллектуальные машины могут усиливать наш разум», — писал изобретатель.

image
Кстати, вот он — Семён Корсаков, человек, опередивший своё время

Интеллектуальные машины, которые создал Корсаков, достаточно простые и недорогие. Базы данных и некий прототип языка программирования Корсаков для них тоже придумал. Машины могли проводить поиск среди множества критериев, учитывая их относительную важность, и обрабатывать большие объёмы информации. Они умели проводить все основные операции с множествами, то есть делать всё, что сейчас делает дискретная математика. Их появление могло физически перевернуть всю науку XIX века и лет на пятьдесят ускорить появление современных компьютеров. Но что-то пошло не так.
Читать дальше →
Total votes 32: ↑27 and ↓5 +22
Comments 10

Как мы сделали Embedded Controller для ПЛК на Linux

Level of difficulty Medium
Reading time 15 min
Views 7.4K

Мы уже рассказывали о том, как приручили робота-пайщика, как делаем устройства и тестируем их. Теперь хотим поделиться опытом разработки полноценного Embedded Controller для ПЛК на Linux — какие задачи решает, как устроен и что у него под капотом в прошивке.

Читать далее
Total votes 42: ↑41 and ↓1 +40
Comments 34

Information

Rating
1,600-th
Location
Иваново, Ивановская обл., Россия
Date of birth
Registered
Activity