Search
Write a publication
Pull to refresh
0
Сергей @sav6622read⁠-⁠only

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

Send message

Несколько советов по OpenMP

Reading time3 min
Views32K
image

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

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

1. Именуйте критические секции

В очередь, сукины дети, в очередь! //М. А. Булгаков «Собачье сердце»

С помощью директивы critical мы можем указать участок кода, который будет исполняться только одним потоком в один момент времени. Если один из потоков начал выполнение критической секции с данным именем, то остальные потоки, начавшие выполнение этой же секции, будут заблокированы. Они будут ждать своей очереди. Как только первый поток завершит выполнение секции, один из заблокированных потоков войдет в нее. Выбор следующего потока, который будет выполнять критическую секцию, будет случайным.
Читать дальше →

Датчики и микроконтроллеры. Часть 1. Матчасть

Reading time19 min
Views215K
В эпоху готовых отладочных плат и тысяч готовых модулей к ним, где достаточно взять пару блоков, соединить их вместе, и получить нужный результат, далеко не каждый понимает основы схемотехники, почему и как это работает, а главное — что надо делать, если это работает не так.
Как раз открылся хаб Схемотехника, так что, как говорил Бьюфорд Бешеный Пёс Таннен
Здание суда уже строят, значит, пора кого-то вешать.

В этом цикле я расскажу о датчиках — как о немаловажном элементе системы управления неким объектом или тех. процессом.

Все свое повествование я буду вести касаемо практических вопросов реализации цифровых систем управления на базе микроконтроллеров.

Руководство не претендует на всеобщий обхват вопроса.
Хотя после того, как мой конспект перелез за 20 страниц текста, я решил разбить статью на следующие части:
  • Часть 1. Мат. часть. В ней мы рассмотрим датчик, не привязанный к какому-то конкретному измеряемому параметру. Рассмотрим передаточные функции и динамические характеристики датчика, разберемся с его возможными подключениями.
  • Часть 2. Датчики климат-контроля. В ней я рассмотрю особенности работы с датчиками температуры, влажности, давления и газового состава
  • Часть 3. Датчики электрических величин. В ней я коснусь измерения тока и напряжения

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

Мой интернет вещей: Гостевой замок

Reading time17 min
Views80K
Так сложились обстоятельства, что имеется у меня однокомнатная квартира, в которой я не живу, а сдавать ее «обычным способом» мне не интересно. Попробовал я ее сдать через сервис Airbnb, понравилось. И не то, что бы это выгоднее, но точно интереснее, процесс захватывает. Но я не об этом…

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

Как я уменьшил Docker образ на 98.8% при помощи fanotify

Reading time8 min
Views23K
Предлагаю читателям «Хабрахабра» перевод публикации «How I shrunk a Docker image by 98.8% – featuring fanotify».

Несколько недель назад я делал внутренний доклад о Docker. Во время презентации один из админов спросил простой на первый взгляд вопрос: «Есть ли что-то вроде „программы похудения для Docker образов“»?

Для решения этой проблемы вы можете найти несколько вполне адекватных подходов в интернете, вроде удаления директорий кэша, временных файлов, уменьшение разных избыточных пакетов, если не всего образа. Но если подумать, действительно ли нам необходима полностью рабочая Linux система? Какие файлы нам действительно необходимы в отдельно взятом образе? Для Go binary я нашел радикальный и довольно эффективный подход. Он был собран статически, почти без внешних зависимостей. Конечный образ — 6.12 МB.
Читать дальше →

Первые шаги к умной бане

Reading time4 min
Views28K
В своих первых статьях на хабре мы пообещали рассказывать о конкретных проектах, в которых применяется наша система. Идей очень много, но начать мы решили с рассказа об одном из наших внутренних DIY-проектов:

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


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

Создание входа AUX магнитоле Kenwood GX806EF2 захватом шины i2c

Reading time5 min
Views62K
image

Герой заметки — магнитола Kenwood GX806EF2 — славна тем, что устанавливалась в очень большое число экспортных японских автомобилей (взять хотя бы Subaru Forester) и не имеет ни входа AUX для подключения внешних источников звука, ни возможности воспроизвести MP3-файлы с CD-дисков (с внешних накопителей тоже). Магнитола вышла весьма утилитарной для своего времени (2004-2007 года), несмотря на CD-чейнджер на 6 CD. CD-audio, FM/AM-тюнер, и всё, но кассетоприемника, к слову, уже нет.

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

Закон Мура для Google Compute Engine: больше мощностей за те же деньги

Reading time3 min
Views11K
И снова доброе утро для всех пользователей облачных продуктов!

С 18 мая 2015 вычисления и запуск продуктов в Google Compute Engine стали еще выгоднее:
  • Снижены цены на облачные инстансы (Google Compute Engine Instance):
  • Появился новый тип «вытесняемых» (preemptive) инстансов, которые можно использовать для пакетной обработки данных в течение короткого времени по очень низкой фиксированной цене.

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

Робот-пылесос своими руками

Reading time4 min
Views141K
Поделюсь опытом создания дешевого робота-пылесоса из подручных средств и всемогущего китайского магазина. Изначально планировал просто изучить среду Arduino, но это изучение переросло в пылесос.

Необходимые детали:
— много плотного картона (бесплатно);
аналог arduino (210 р);
— маленькая макетка (80 р);
— 2 уз-дальномера (300 р);
— контроллер моторов — H-мост (80 р);
2 мотор-редуктора с колесом (600 р);
— блок аккумуляторов на +18v и контроллер заряда;
— пара метров витой пары;
— турбина от пылесоса;
— компьютерный кулер.
Читать дальше →

SoC: поднимаем простой DMA на FPGA

Reading time14 min
Views55K


День добрый! В прошлой статье я описывал, как «поднять» с нуля SoC от Altera.
Мы остановились на том, что измерили пропускную способность между CPU и FPGA, когда копирование выполняется процессором.

В этом раз мы пойдем немного дальше и реализуем примитивный DMA в FPGA.
Кому интересно — добро пожаловать под кат.
Тут интересно

Раз плюнуть: обзор и результаты генетического теста Атлас и дайджест основных ДНК-тестов в России и мире

Reading time5 min
Views86K
«Домашний» ДНК — бизнес относительно молодой. Большинство компаний предоставляют типовую услугу, состоящую из 3 базовых элементов: пробирка для сбора материала, курьер, доступ к личному кабинету с расшифровкой данных о наследственных рисках и предрасположенностях к заболеваниям.

Сегодня я покажу скриншоты результатов генетического теста «Атлас», нашего партнера, и быстро перечислю основных крупных игроков этого рынка у «них» и у «нас».



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



Что оказалось в нашем личном кабинете — под катом.
Читать дальше →

Как я в облака ходил

Reading time4 min
Views31K
Понадобилось не так давно в целях развертывания сервиса для тестирования получить в свое распоряжение виртуальную машину в облаке. Желательно бесплатно. И надолго.

Пошерстил множество ресурсов, в том числе Хабр. И не нашел подробного обзора «чего, как и почем». Так родилась идея написания этой статьи по результатам самостоятельного поиска. Многие провайдеры облачных вычислений (cloud computing) предоставляют бесплатные «пробники» на определенный период. По крупицам отыскивая информацию в поисковых выдачах, нашел и опробовал нескольких из провайдеров.

В статье речь пойдет о том, как получить в свое распоряжение виртуальную машину (или несколько) от таких провайдеров как Google, Microsoft, HP и в перспективе другие. Будет также небольшое сравнение.
Читать дальше →

Высокоточная синхронизация времени для измерения задержки в ethernet сетях

Reading time4 min
Views21K


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

Для чего это надо


Я работаю в российской компании НТЦ-Метротек, которая разрабатывает и выпускает кучу всякой аппаратуры (свичи, тестеры, балансировщики и т.д.) для систем связи, в том числе и тестеры для ethernet-сетей. Например, вот такой. Одним из параметров, измеряемых этим прибором, является задержка прохождения пакета в тестируемой сети. Ха, скажет читатель Хабрахабра — задержку можно и ping'ом померить. Так-то оно и есть, но при разной загруженности сети может быть разная задержка. Наш прибор может измерять задержку с точностью до нескольких наносекунд и при этом создавать нагрузку до 10 Гб/с.
Читать дальше →

Удаленный запуск в PyCharm Community Edition

Reading time4 min
Views28K
PyCharm — самая удобная, на мой взгляд, IDE для Python'a от авторов великолепного PhpStorm. В отличие от средства разработки на PHP, имеет бесплатную версию с несколько урезанным функционалом, в частности без шикарного модуля для запуска и отладки скриптов на удаленном сервере. Тем не менее, стандартных возможностей хватает и для создания настольных windows-приложений, и для скриптинга, и для серверного кода.

Критичной эта особенность стала в тот момент, когда мне захотелось писать скрипты на ПК и получать результат их выполнения на Raspberry Pi без копирования и запуска вручную. Дальше мой рецепт для Windows 8.1 (только запуск).
Читать дальше →

Black Swift: использование EJTAG

Reading time13 min
Views14K

Моя предыдущая публикация EJTAG: аттракцион для хакеров хотя и была тепло встречена общественностью, имела некоторые недочёты: к примеру, была продемонстрирована уж слишком низкая производительность передачи по EJTAG (аж целых 2 КБ/с!).
К сожалению, я умудрился привести интерфейс JTAG платы MR3020 в полную негодность (был оторван провод TDI вместе с кусочком SMD-резистора R16). Так как устранить поломку не удалось, то недочёты остались неисправленными.
Несколько дней назад я получил от руководителя проекта Black Swift Дмитрия Жеребкова плату Black Swift Pro с адаптером. Плата Black Swift Pro во многом аналогична MR3020, а значит у меня появилась возможность написать публикацию про EJTAG на Black Swift и устранить прошлые недочёты!
Читать дальше →

EJTAG: аттракцион для хакеров

Reading time12 min
Views27K


Кампания по продвижению нанокомпьютера black swift в самом разгаре (см. также публикацию на habrahabr). black swift построен на базе SoC Atheros AR9331, что позволило сделать его с одной стороны крошечными, недорогим, и малопотребляющим, а с другой стороны в распоряжении пользователя находится процессорное ядро MIPS 24Kc, работающее на частоте до 400 МГц.
Недавно на форуме black-swift.ru был задан вопрос
Есть потребность в документации по использованию JTAG-интерфейса в устройстве. Можно ли ожидать чего-нибудь в этом направлении?

В данной публикации я вставлю свои пять копеек приведу конкретный простой сценарий использования JTAG-интерфейса SoC Atheros AR9331 для отладки программного обеспечения.
Публикация может быть интересна не только разработчикам ПО для AR9331, но и всем интересующимся внутрисхемной отладкой на процессорах с архитектурой MIPS при помощи свободного ПО.
Читать дальше →

Быстрое обнаружение поддерживаемых SNMP-устройством MIB-модулей

Reading time5 min
Views22K
При внедрении систем мониторинга и управления IT-инфраструктурой часто приходится сталкиваться с «нестандартными» устройствами. Нередко про такое устройство наверняка известно только то, что оно поддерживает SNMP. Подключение его к проекту придется начать с ответа на вопрос о том, какую информацию о себе оно предоставляет. Обычно для этого проводится полный опрос устройства, и полученные данные анализируются на предмет выявления полезной информации… Но тут, как говорится, есть нюансы. В этой заметке я расскажу об одном таком — о разработанном нами алгоритме быстрого определения «поддерживаемых» устройством MIB-модулей.
Читать дальше →

Ассемблер для задач симуляции. Часть 2: ядро симуляции

Reading time10 min
Views12K
HCF, n. Mnemonic for ‘Halt and Catch Fire’, any of several undocumented and semi-mythical machine instructions with destructive side-effects <...>
Jargon File
В предыдущем посте я начал рассказ об областях применения ассемблера при разработке программных моделей вычислительных систем — симуляторов. Я описал работу программного декодера, а также порассуждал о методе тестирования симулятора с помощью юнит-тестов.
В этой статье будет рассказано, зачем программисту нужны знания о структуре машинного кода при создании не менее важной компоненты симулятора — ядра, отвечающего за моделирования отдельных инструкций.
До сих пор обсуждение в основном касалось ассемблера гостевой системы. Пришло время рассказать об ассемблере хозяйском.
Читать дальше →

Аппаратный зал (про инфраструктуру спутниковой сети и осциллограф)

Reading time12 min
Views30K
В прошлом посте я показывал, как выглядит земная станция спутниковой связи снаружи. Теперь давайте немного посмотрим на теорию, плюс спустимся вниз в аппаратный зал. Кабели ПЧ, которые мы видели в контейнерах, приходят сюда. Ну, или уходят отсюда, у нас же «приём» и «передача».



Всё начинается и заканчивается антенной:



Антенна, кроме, собственно, зеркала и облучающей системы, имеет в своём составе волноводные тракты, МШУ и (по варианту) систему автосопровождения, антиобледенения, осушки волноводного тракта. Осторожно, трафик.
Читать дальше →

Reverse Engineering ESP8266 — часть 1

Reading time5 min
Views70K
Поддавшись общей волне энтузиазма относительно систем «Умный дом», а также имея профильное образование инженера АСУ ТП, с удовольствием занимаюсь данной темой в виде хобби. В этой статье поделюсь с вами своим опытом реверс-инжиниринга популярного модуля ESP8266.


Содержание


  1. Введение
  2. Архитектура ESP8266
  3. Инструменты
  4. Загрузка прошивки для исследования
    • ELF
    • Системная прошивка модуля
    • Пользовательская прошивка
  5. Ассемблер Xtensa
    • Регистры
    • Базовые операторы
    • Функции
    • Условные переходы
  6. Заключение
  7. Ссылки

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

Быстрая нейронная сеть для каждого

Reading time3 min
Views226K
Данная статья продемонстрирует возможность легко написать свою нейронную сеть на языке Javа. Дабы не изобретать велосипед, возьмем уже хорошо проработанную библиотеку Fast Artificial Neural Network. Использование нейронных сетей в своих Java-проектах — реально. Часто можно услышать упреки в адрес Java касательно скорости выполнения. Хотя разница не так велика — подробно об этом можно узнать в публикации «Производительность C++ vs. Java vs. PHP vs. Python. Тест «в лоб»». Мы будем использовать обертку вокруг библиотеки FANN.
Читать дальше →

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity