Как стать автором
Поиск
Написать публикацию
Обновить
0
@smuravread⁠-⁠only

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

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

Универсальный контроллер моторов на ARM Cortex-M85. Трассировка

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

Новейшее семейство микроконтроллеров RA8M1 просится быть использованным в умном электроприводе. Вычислительная мощь ядра ARM Cortex-M85 (480 МГц) позволяет легко управлять на нашей плате одновременно двумя PMSM/BLDC или тремя DC коллекторными моторами с использованием алгоритмов машинного обучения и еще оставляет ресурс для комплексной удаленной диагностики в реальном времени. Добавим сюда IoT на ESP32-С6, дисплей, интерфейсы энкодеров, полевые шины и в результате получаем универсальный контроллер моторов.

Читать далее

Самодельная отладочная плата на базе STM32G431CB — STM32G431 DevBoard V1.1

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

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

Перейти к статье

DevSecOps: организация фаззинга исходного кода

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


Узнав результаты голосования, проведённого в одной из наших прошлых статей, мы решили более подробно обсудить вопрос организации фаззинга. Кроме того, в рамках онлайн-встречи по информационной безопасности "Digital Security ON AIR" мы представили доклад, основанный на нашем опыте в DevSecOps, где также рассказали об этой интересной теме.


Записи всех докладов можно посмотреть на нашем Youtube-канале. Если же вы предпочитаете текстовый формат, добро пожаловать под кат!

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

Airflow — инструмент, чтобы удобно и быстро разрабатывать и поддерживать batch-процессы обработки данных

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

image


Привет, Хабр! В этой статье я хочу рассказать об одном замечательном инструменте для разработки batch-процессов обработки данных, например, в инфраструктуре корпоративного DWH или вашего DataLake. Речь пойдет об Apache Airflow (далее Airflow). Он несправедливо обделен вниманием на Хабре, и в основной части я попытаюсь убедить вас в том, что как минимум на Airflow стоит смотреть при выборе планировщика для ваших ETL/ELT-процессов.


Ранее я писал серию статей на тему DWH, когда работал в Тинькофф Банке. Теперь я стал частью команды Mail.Ru Group и занимаюсь развитием платформы для анализа данных на игровом направлении. Собственно, по мере появления новостей и интересных решений мы с командой будем рассказывать тут о нашей платформе для аналитики данных.

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

Своё частичное зеркало PyPi, на всякий случай

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

Создание своего зеркала PyPi в текущей ситуации — это наверное почти обязательное действие, если вы программируете на Python и хотите сохранить работоспособность менеджера пакетов pip (в прошлом случайная блокировка уже нарушала его работу). Решение известно — можно создать своё зеркало PyPi, куда будут загружаться все используемые вами пакеты. Автор данной статьи постарался подготовить как можно более простой в использовании вариант, своё зеркало запускается в четыре простых шага: git clone ..., настройка пароля администратора зеркала, docker-compose up -d и настройка pip на использование вашего зеркала.

Читать далее

Безопасная работа с секретами при сборке в Docker Compose

Время на прочтение5 мин
Количество просмотров15K
Перевод статьи подготовлен в преддверии старта курса «Web-разработчик на Python».




Когда вы собираете Docker-образ вам могут понадобиться секреты, например, пароль к приватному репозиторию пакетов. Вы не хотите, чтобы этот секрет в конечном итоге оказался в образе, потому что тогда любой, кто получит доступ к образу, получит доступ и к вашу приватному репозиторию.
Примечание: Если вы думаете «Почему бы просто не использовать переменные среды?», которые используются для секретов в рантайме при создании образа. Эта статья посвящена секретам сборки, которые используются при создании образа с помощью Docker-файла.
Более новые версии Docker поддерживают секреты с помощью экспериментального сервиса BuildKit, а в Docker Compose 1.25 и более поздних версиях уже можно создавать образы с помощью BuildKit. К сожалению, по состоянию на март 2020 года, возможность безопасной работы с секретами из Compose все еще находится в процессе разработки.
Читать дальше →

Поговорим об оптимизирующих компиляторах. Сказ восьмой: размотка циклов

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

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

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

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

Читать далее

Основы Kubernetes

Время на прочтение13 мин
Количество просмотров931K
В этой публикации я хотел рассказать об интересной, но незаслуженно мало описанной на Хабре, системе управления контейнерами Kubernetes.

image

Что такое Kubernetes?


Kubernetes является проектом с открытым исходным кодом, предназначенным для управления кластером контейнеров Linux как единой системой. Kubernetes управляет и запускает контейнеры Docker на большом количестве хостов, а так же обеспечивает совместное размещение и репликацию большого количества контейнеров. Проект был начат Google и теперь поддерживается многими компаниями, среди которых Microsoft, RedHat, IBM и Docker.
Читать дальше →

Знакомимся с архитектурой Apache Kafka

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

- Вы работали с Кафкой?
- Нет, только читали.

За несколько десятилетий развития ИТ систем разработчики накопили огромный опыт хранения и обработки данных. Различные СУБД позволяют с помощью запросов извлекать нужные данные за определенный период и обрабатывать их так как необходимо. Однако, со временем увеличились вычислительные мощности серверов, пропускная способность каналов связи, и соответственно, возникла необходимость обрабатывать бОльшие объемы данных за единицу времени. И тут выяснилось, что при всем многообразии различных решений для хранения данных, отсутствуют решения для обработки непрерывных потоков больших объемов данных. Для решения этой проблемы стали появляться различные системы, такие как системы обмена сообщениями и агрегирования журналов. Но они не могли в полной мере обеспечить нужную производительность на больших, непрерывных потоках данных.

Для решения этой проблемы в LinkedIn решили создать нужное решение что называется с нуля. Разработчики решили отказаться от хранения больших объемов данных, как в реляционных базах данных, хранилищ пар «ключ/значение», поисковых индексов или кэшей, а рассматривать данные как непрерывно развивающийся и постоянно растущий поток и проектировать информационные системы и архитектуру данных — на этой основе. Так появилось решение Apache Kafka, которое изначально использовалось для обеспечения функционирования работающих в реальном масштабе времени приложений и потоков данных социальной сети. Но сейчас это решение используется во многих крупных компаниях. Посмотрим подробнее как оно устроено.

Читать далее

Российский Kubernetes, какой он? Знакомимся с платформой Deckhouse

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

Исследование Statista в России показывает, что около 60% компаний применяют технологию оркестрации контейнеров в рамках своей инфраструктуры. При этом самостоятельная разработка на Open Source для решения этой задачи значительно повышает требования к скиллам команды и характеризуется высокой стоимостью. Другой вариант — облачные PaaS-сервисы, но они зачастую имеют ограниченный набор инструментов, а зарубежные платформы ушли с российского рынка.


Есть ли сегодня в России аналоги западным платформам контейнеризации? Мы решили изучить этот вопрос и пригласили директора по развитию Deckhouse компании «Флант» Артёма Кожокина, чтобы подробно расспросить про их платформу оркестрации контейнеров.


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


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

Запускаем свой нейросетевой детектор на Raspberry Pi с помощью Neural Compute Stick и OpenVINO

Время на прочтение15 мин
Количество просмотров27K
С распространением и развитием нейронный сетей все чаще возникает потребность их использования на встроенных и маломощных устройствах, роботах и дронах. Устройство Neural Compute Stick в связке с фреймворком OpenVINO от компании Intel позволяет решить эту задачу, беря тяжелые вычисления нейросетей на себя. Благодаря этому можно без особых усилий запустить нейросетевой классификатор или детектор на маломощном устройстве вроде Raspberry Pi практически в реальном времени, при этом не сильно повышая энергопотребление. В данной публикации я расскажу, как использовать фреймворк OpenVINO (на C++) и Neural Compute Stick, чтобы запустить простую систему обнаружения лиц на Raspberry Pi.

Как обычно, весь код доступен на GitHub.


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

Лучшие практики CI/CD с Kubernetes и GitLab (обзор и видео доклада)

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


7 ноября на конференции HighLoad++ 2017, в секции «DevOps и эксплуатация» прозвучал доклад «Лучшие практики CI/CD с Kubernetes и GitLab». В нём мы делимся практическим опытом решения проблем, возникающих при построении эффективного процесса CI/CD на базе указанных Open Source-решений.

По традиции рады представить видео с докладом (около часа, гораздо информативнее статьи) и основную выжимку в текстовом виде.

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

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

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

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

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

Любой проект компьютерного зрения начинается с разметки и аннотирования сырых данных командами аннотаторов; это огромные объёмы изображений и видео. Успешные результаты аннотирования гарантируют, что модель сможет «учиться» на этих данных обучения, решая задачи, поставленные перед ней организацией.

После формулирования задачи и целей проекта у организаций возникает непростой выбор перед этапом аннотирования: нужно ли отдавать эту работу на аутсорс, или выполнять аннотирование массивов данных изображений и видео собственными силами?
Читать дальше →

Делай нейминг как сеньор

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

Это объект Pizza, там хранится инфа о латте, а заказали его в Restaurant или в Pizzeria? Неудобно? Максимально. Мы читаем код существенно больше, чем пишем. И хочется сразу понимать, что происходит, не играя в квесты «что имел в виду автор», «да как это работает» и «я снова ничего не понял». Без навыка давать хороший нейминг невозможно писать качественный и поддерживаемый код. Про нейминг говорят заодно, в рамках архитектуры и общих инженерных практик. В статье поговорим про него отдельно.

Как получается, что код становится мало понятным даже для его авторов? Почему нейминг так важен? Как придумывать названия, не применяя целые теории нейминга? Как лёгким процессом организовать работу с неймингом в команде? На все эти вопросы мы ответим в статье.

Читать далее

Фильтрация по списку НКЦКИ в pfSense

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

2 марта 2022 года Национальный координационный центр по компьютерным инцидентам (НКЦКИ) выпустил бюллетень со списком рекомендаций для противодействия угрозам безопасности информации. В дополнение к бюллетеню опубликованы списки IP адресов и DNS имён для блокировки. В данной статье будет описано как добавить данные списки в pfSense и настроить фильтрацию. Несмотря на то, что прошло достаточно времени с момента публикации списков, они ещё не потеряли своей актуальности, да и при выходе новых эта статья так же будет полезна. В статье не обсуждаются вопросы импортозамещения pfSense и схожие темы. Описано как настроить тем у кого всё работает, и кто не собирается прямо сейчас менять pfSense на другой файрвол. Подразумевается, что читатели обладают достаточным навыком работы с pfSense.

Читать далее

Простое шифрование БД SQlite

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

Так получилось, что я очень люблю использовать SQLite СУБД.


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


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


К примеру, я использовал SQLite в моем движке форума AsmBB о котором уже писал на Хабре. (Кстати, после этого он так и не упал).


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


И вот однажды я задумался как повысить и так неплохую безопасность проекта. И сразу подумал, что неплохо было бы сделать шифрование БД форума. Ведь если даже база и утечёт, то доступ к личным данным пользователей никто не получит.


Быстрый поиск по Интернету показал, что есть несколько расширений SQLite для шифрования БД. К сожалению, официальное расширение SEE несвободно и вообще продается за деньги.


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

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

Zettelkasten: как один немецкий учёный стал невероятно продуктивным

Время на прочтение18 мин
Количество просмотров454K
Изображение предоставлено автором. Основано на фотографии Патрика Томаса с Ансплэша

Это перевод статьи Дэвида Клира о методе ведения заметок Zettelkasten, благодаря которому немецкий социолог Никлас Луман написал более 70 книг и 400 научных статей. Стоит читать, если вы хотите создать собственную базу знаний, систематизировать идеи и перестать забывать важные мысли.

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

Digital art и искусственный интеллект — симбиоз цифр и искусства

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

В качестве предисловия оговорюсь, что на Хабре я впервые, решил представить свою дебют на этой платформе, так сказать. Речь здесь не пойдёт о рисовании картин с использованием AI и графических паттернов. Скорее наоборот, превращение классического изобразительного исксства в многочисленную последовательность нейронных сетей в итоговым кодом в заключительном виде. Расскажу предысторию. В начале этого года, случайным образом, попало в моё поле зрения одно заманчивое словосочетание - digital art. И так как я в теме crypto уже давненько, я не смел не поинтересоваться, каким образом искусство (будь то живопись или музыка) коррелирует с криптой, и как это происходит (и для чего))) на просторах блокчейна. В итоге ознакомления с этой идеей, и не только идеей, но и инфраструктурой NFT (Non-Fungible-Token, невзаимозаменяемый цифровой актив), я с радостью обнаружил что уже хочу создать что-то подобное, но в своём, авторском исполнении. Парой слов опишу, что зверёк по имени НФТ это хэшированное изображение в любом формате,  записанное в сети блокчейн в формате, являющегося аналогом ERC-721 в сети Ethereum (для тех кто ещё не в курсе темы). Задуманному быть конечно, но сказать легко, а вот сделать - труднее. Особенно, когда делаешь что-то впервые. Начал я с изучения подобных платформ на просторах всемирной паутины, начиная с крупнейших маркетплейсов opensea.io, makersplace.com,  и не очень крупных, pixeos.art, ghostmarket.io и много много других.

Кроме маркетплейсов, я обнаружил чисто minting-платформы, как правило тематические, т.е. они занимаются только созданием NFT карточек и как-правило одного направления. Криптокотики всякие (с них всё и началось!), Криптопанки и прочая фауна. Нашлось кроме всего пару аутсайдеров, которые вовсе создавали неформатные NFT, с прицелом на автоматическое масштабирование за счёт пользователей, к примеру на одной из платформ за NFT контент принимаются уникальные ссылки в интернете, на другой - регистрируются домены, а заодно и снимок с NFT. Не буду сильно углубляться в обозревание ежедневно растущего формата цифровых активов NFT, а лучше наконец-то перейду к своей задумке.

Читать далее: критерии распознавания арта

Intel ME. Как избежать восстания машин?

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


В прошлый раз мы рассказали об Intel Management Engine (ME) — подсистеме, которая встроена во все современные компьютерные платформы (десктопы, лэптопы, серверы, планшеты) с чипсетами компании Intel. Эта технология многими воспринимается как аппаратная «закладка», и на то есть причины. Достаточно сказать, что Intel ME является единственной средой исполнения, которая:
  • работает даже тогда, когда компьютер выключен (но электропитание подаётся);
  • имеет доступ ко всему содержимому оперативной памяти компьютера;
  • имеет внеполосный доступ к сетевому интерфейсу.


Ошарашенный присутствием такого компонента в компьютере, пользователь (получается, что именно «пользователь», а не «владелец») наверняка задавался вопросом: можно ли выключить Intel ME?

Эта статья целиком посвящена этому вопросу.

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

Есть ли жизнь без Nvidia? Запускаем TensorFlow на Radeon RX 580

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

На новом рабочем месте меня посадили за ПК, оборудованный процессором Ryzen 2600 и видеокартой Radeon RX 580. Попробовав обучать нейронные сети на процессоре, я понял, что это не дело: уж слишком медленным был процесс. После недолгих поисков я узнал, что существует как минимум 2 способа запуска современных библиотек машинного обучения на видеокартах Radeon: PlaidML и ROCm. Я попробовал оба и хочу поделиться результатами.

Читать далее
1
23 ...

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность