Pull to refresh
28
0
Efim Alekseevich @Efi-fi

Software Developer

Send message

Создание «Google Sheets» через Websockets на Node.js

Reading time10 min
Views6K

Введение

Всем привет! Меня зовут Герман Панов и в этой статье мы разработаем табличный редактор - аналог Google Sheets (в упрощенном виде), работающий на основе вебсокетов, чтобы познакомиться со способами применения этой технологии в браузерах.

Поскольку цель - ознакомление, код будет не очень «чистым», но для базового примера этого будет достаточно. В качестве серверной платформы будем использовать Node.js, также потребуется пакет ws, предоставляющий API для работы с вебсокетами на сервере.

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

ROS книги по робототехнике переведенные на русский язык

Reading time6 min
Views14K

Robot Operating System это фреймворк который позволяет эффективно программировать современных роботов.

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

Наблюдение за выполнением конкурирующих задач в Go и Rust

Reading time17 min
Views11K

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

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

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

Читать далее
Total votes 16: ↑13 and ↓3+13
Comments10

Полезные возможности ST+Codesys 3, которые многие не замечают

Reading time8 min
Views22K

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

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

Простой показометр

Reading time3 min
Views9.6K

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

Подробности
Total votes 18: ↑16 and ↓2+21
Comments11

gRPC на практике: особенности, преимущества и недостатки

Reading time9 min
Views24K

Привет, Хабр!  Разрабатывая экосистему для «Метр квадратный», мы со старта проекта планировали большую линейку продуктов. Поэтому подбирали стек, который поможет реализовать максимум идей. В итоге мы пришли к протоколу gRPC.

 В этом материале я расскажу:

— о преимуществах gRPC;

— об особенностях работы с протоколом, и о том, как с ними жить;

— о тех проблемах, с которыми мы столкнулись; 

— и о том, как их решить.

gRPC или не gRPC?
Total votes 21: ↑18 and ↓3+22
Comments6

Выявление DoS атаки на Wi-Fi сеть

Reading time9 min
Views19K

На китайских интернет-аукционах появилось громадное количество устройств для проведения различных атак на Wi-Fi протокол, например, Jammer. Каждый из нас может столкнуться с ситуацией, когда в настроенной и сданной в успешную эксплуатацию сети появляются проблемы, причины которых могут оказаться весьма неожиданными. В статье я хочу рассказать, как выявить DoS атаку на радиоканал Wi-Fi, и обозначить способы противодействия. Материалы не несут технической сложности и доступны в интеллектуальном смысле широкому кругу читателей, которые могут элементарно столкнуться с соседом, начитавшимся распространённых мануалов по взлому Wi-Fi, оттачивающим свои скилы на практике и тем самым намеренно или не очень вредящим своими действиями добропорядочным соседям.
Читать дальше →
Total votes 17: ↑16 and ↓1+27
Comments23

Оформляем README-файл профиля на GitHub

Reading time14 min
Views232K

Летом 2020 года GitHub позволила пользователям создавать персональные README-файлы и с их помощью кастомизировать свои профили. Сама платформа при создании подобного файла предлагает уже готовый шаблон, в который можно вписать свои данные. Но о какой кастомизации может идти речь, если у всех будут одинаково оформленные профили? За почти два года сообщество придумало множество различных способов выделиться и особенно оформить свою страницу на GitHub.

Читать далее
Total votes 62: ↑60 and ↓2+73
Comments25

Современный Python: пишем модульные тесты и применяем соглашения о коммитах в Git

Reading time14 min
Views13K

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

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

Что необходимо знать, чтобы написать свою Embedded RTOS (часть 1)

Reading time22 min
Views12K

Хотел бы написать небольшой цикл статей посвященных тому, как я написал свою RTOS с какими трудностями столкнулся и зачем вообще писать свою RTOS если уже есть FreeRTOS, RTX, embOS и т.д. список достаточно большой.

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

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

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

При написании RTOS, я осознанно отказался от поддержки проприетарных архитектур как AVR, PIC и мой выбор пал на семействе CORTEX, поскольку cortex-mX, на сегодня самая распространенная архитектура в Embedded.

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

Удаленный доступ к IP камерам, теперь на Python

Reading time19 min
Views53K

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

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

Война или мир: используем MATLAB и Python вместе

Reading time8 min
Views13K

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

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

Вычитываем прошивку STM32

Reading time7 min
Views44K

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

Flash Readout Protection (RDP) ключевой компонент в защите, включенный во все линейки микроконтроллеров. Он защищает системную прошивку, сохраненную во внутренней флэш памяти от вычитывания. В зависимости от линейки, могут быть включены дополнительные механизмы, такие как Memory Protection Unit (MPU) и привилегированные / непривилегированные режимы исполнения. Вместе, эти системы призваны повысить защищенность.

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

Узнать подробнее
Total votes 52: ↑52 and ↓0+52
Comments28

Хакаем CAN шину авто. VAG диагностический бортовой компьютер

Reading time5 min
Views35K

С огромным увлечением исследую протоколы CAN шины и разрабатываю устройства взаимодействующие с автомобилем. У меня уже есть голосовое управление центральным замком, виртуальная панель приборов и даже мобильное приложение для моей Skoda Octavia A5.

Теперь я решил разработать диагностический бортовой компьютер для автомобилей группы VAG (VW, Audi, Skoda, Seat). Моими техническими требованиями было: OLED дисплей, лёгкая установка и подключение, множество диагностических параметров. В качестве компонентной базы выбрал:
Читать дальше →
Total votes 76: ↑76 and ↓0+76
Comments41

Безопасная разработка: какую часть Sec занимает в DevSecOps

Reading time11 min
Views6.4K

Всем привет! Меня зовут Тимур Гильмуллин, я руководитель направления по построению процессов безопасной разработки в компании Positive Technologies. Раньше я работал в DevOps-отделе, где инженеры занимаются автоматизацией различных процессов и помогают программистам и тестировщикам. В числе прочего мы проводили работы, связанные с внедрением инструментов безопасной разработки в CI/CD-конвейер. В этой статье я рассмотрю концепцию безопасной разработки DevSecOps (или SecDevOps) в целом: разберемся, что это за концепция, что она дает бизнесу, разработчикам, инженерам DevOps и безопасникам, какие инструменты можно при этом использовать и насколько трудоемко их внедрение.

Читать
Total votes 1: ↑1 and ↓0+1
Comments2

Открытый проект индуктивного абсолютного энкодера

Reading time11 min
Views31K

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

Читать далее
Total votes 102: ↑101 and ↓1+125
Comments122

Низкоуровневое обнаружение Wi-Fi устройств в домашней сети

Reading time10 min
Views23K

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

В этой статье я расскажу про несколько способов «‎научить» микроконтроллер распознавать присутствие людей дома исключительно с помощью Wi-Fi.
Читать дальше →
Total votes 51: ↑51 and ↓0+51
Comments21

Безопасность ПЛК: 20) Ловите ложные срабатывания для критических предупреждений

Reading time4 min
Views2.7K

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

Разбираем последние рекомендации по безопасному программированию ПЛК. Обсудим где, кому и зачем данные рекомендации нужны.

Всех неравнодушных прошу под кат.

Читать далее
Total votes 2: ↑1 and ↓10
Comments9

LabView: былое и думы

Reading time11 min
Views9K
image
Как полагается, сначала отмазка: все совпадения случайны и ни одно животное не пострадало.

Больше 20 лет назад я попал в Финляндию. Случилось это почти как по приколу.
Жил я, переезжая из одного городка в другой, около Иркутска. В 90-е работы по специальности не было. Ходили слухи, что в Москве и Питере работу можно было найти, но переехать туда реальным не выглядело — прописку никто не отменял, проблем для переезда с семьей было выше крыши.
Читать дальше →
Total votes 50: ↑48 and ↓2+59
Comments10

Восстановление датчика давления Honeywell 19 mm Series

Reading time2 min
Views6.4K

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

Установка с переменным успехом протестировала пачку стентов. Один из факторов "переменности" успеха стал отказавший датчик избыточного давления 19C015PG1K.

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

Information

Rating
Does not participate
Location
Минск, Минская обл., Беларусь
Registered
Activity