Как стать автором
Обновить
yvm @yvmread⁠-⁠only

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

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

Железячники vs. Программисты

Время на прочтение9 мин
Количество просмотров45K
imageВсем привет!

Я — один из основателей открытого проекта Embox, и по совместительству являюсь генеральным директором компании ООО “Ембокс”. Как не трудно догадаться, её основная цель — это оказание коммерческих услуг на базе нашего проекта.

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

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

Визуализация графов. Метод связывания ребер

Время на прочтение7 мин
Количество просмотров58K
Иногда полезно представить граф в графической форме, так чтобы была видна структура. Можно привести десятки примеров, где это может пригодиться: визуализация иерархии классов и пакетов исходного кода какой-нибудь программы, визуализация социального графа (тот же Twitter или Facebook) или графа цитирования (какие публикации на кого ссылаются) и т.д. Но вот незадача: количество ребер в графе зачастую настолько велико, что нарисованный граф просто невозможно разобрать. Взгляните на эту картинку:



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

Универсальный пульт на Arduino

Время на прочтение4 мин
Количество просмотров140K
Есть много статей в интернете о том, как сделать свой пульт к телевизору на Arduino, но мне понадобился универсальный пульт для управления телевизором и медиа-плеером. Главное преимущество моего универсального пульта в том, что кнопки в приложении для андроид телефона двух-целевые, а впрочем, смотрите на видео.


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

Как достать соседа или Караоке на GStreamer

Время на прочтение5 мин
Количество просмотров11K
Продолжаем освоение фреймворка GStreamer. Как и было обещано, сегодня рассмотрим подробнее работу с шиной и обработку сообщений различных типов. А в практическом разделе мы напишем небольшое консольное караоке. Итак, начнем.

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

Введение в FreeSWITCH, часть вторая

Время на прочтение4 мин
Количество просмотров37K
О FreeSWITCH
Первая часть

Номерной план



Итак, у FreeSWITCH можно подкрутить множество настроек, но основное действо будет происходить в номерном плане. Номерной план располагается в conf/dialplan/*. Как обычно препроцессинг собирает все файлы из этой папки в один. Номерной план делится на контексты (context). То есть следуя настройкам в SIP профиле, настройкам пользователя, выбирается соотвествующий контекст и звонок обрабатывается в соответствии с модулями (extension, переводится на русский как «добавочный номер», но не соответствует смыслу).

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

Отладка PHP приложений на удаленном хосте при помощи XDebug и vim в Linux

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

Введение


В PHP приложениях отладка при помощи var_dump, debug_backtrace и прочих полезных функций не всегда удобна, и возникает потребность в полноценном отладчике. Эта статья — для тех, кто по каким-либо причинам не хочет использовать IDE, поддерживающие отладку PHP приложений из коробки, вроде NetBeans или PhpStorm, а хочет использовать для этих целей vim, и при этом отладка происходит на удаленном хосте.
Читать дальше →

Прототип. От идеи до опытной партии. Литье в силикон

Время на прочтение2 мин
Количество просмотров182K
В прошлой статье я описал мой путь по созданию опытной партии изделия, в ней я литье в силикон отдал на аутсорс. Пока я ждал выполнения моего заказа, потихоньку сам начал осваивать это ремесло. Статья будет полезна тем, у кого допустим есть плата какого-нибудь девайса, но нету красивого корпуса, 3д-печать не подходит по характеристикам, а делать сразу промышленную пресс-форму очень дорого.


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

Шестерни и рейки на ЧПУ фрезере без дополнительной оснастки и модульной фрезы

Время на прочтение2 мин
Количество просмотров59K
Наверное, многие, просматривающие раздел «DIY или сделай Сам» сталкивались с необходимостью найти/подобрать подходящую пару шестерней или готовый редуктор под свой проект. А так же сталкивались с трудностями данного поиска.

Возможность изготовлять шестерни самостоятельно давно меня интересовала. Заводские методы нарезки шестерней модульными фрезами и пр. промышленными способами мало применимы в домашних условиях. А изготовить на заказ стоит безумные деньги за одну штуку или хотят партию от 1000 шт.
Читать дальше →

Видеонаблюдение загородом посредством 3G интернета

Время на прочтение8 мин
Количество просмотров117K
Появилась такая задача: Установить видеонаблюдение, в 15 км от города, где доступен только gprs интернет.
Условия:
  • Камерами можно будет управлять через интернет
  • Ограниченный бюджет
  • В городе есть 3G интернет но в области нет.
  • Сотовые операторы не дают «Белый и статический ip адрес».
  • Другого интернета нет.


Что бы решить данную задачу я решил построить такую сеть.
Взять самый дешевый сервер VDS. Недорогой роутер TP-LINK MR 3420, 3G модем от beeline, ip камеру. И построить такую сеть как на схеме.
Суть идеи такова: На сервере поднимается openvpn сервер, на роутере поднимается openvpn клиент, далее объединяем локальную сеть с сетью openvpn. Затем пробрасываем необходимые порты на сервере.


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

Как послать flash-SMS?

Время на прочтение6 мин
Количество просмотров50K
Flash-SMS – такая SMS, текст которой сразу выводится на экран телефона/смартфона пользователя вместо записи в память устройства. Пользователь её читает и решает, сохранять её в памяти или нет.
Читать дальше →

Хакаем Transcend WiFi SDHC карту памяти

Время на прочтение10 мин
Количество просмотров147K
Перевод немного вольный, но смысл не потерян. Я (переводчик) заинтересовался этой карточкой давно и почти сразу заказал её, сегодня забрал с почты и не могу нарадоваться, но хочется больше, чем дает Transcend, а карточка, между прочим, Linux сервер с WiFi! Очень много буковок.

С недавнего времени я стал счастливым обладателем карты памяти Transcend WiFi SD, которая позволяет мне передавать фотографии с моей «зеркалки» (которая вообще то Sony NEX, зато компактная) на любое устройство с WiFi за несколько секунд. А так как мне нравится делать фотографии и делиться с ними на лету, то SD карточка, умеющая без проводов передавать картинки на мой телефон, кажется прекрасным решением. И это было так! (хотя всё еще так). Мобильное приложение может… не, должно быть получше (зачем скачивать 7МБ картинку для просмотра, чтобы потом ЕЩЕ раз скачать её, нажав на «Скачать»?), но вообще оно делает своё дело!
Читать дальше →

Музыка как big data. Почему вместо качества звука надо задуматься об удобстве

Время на прочтение8 мин
Количество просмотров32K
Никогда еще музыкальная индустрия не была столь развита технически. Ассортимент, доступность, простота, дешевизна: в общем рай для меломана. Или ад. Никогда еще музыкальная индустрия не раздражала так сильно тех, кто приносит ей больше всего денег. Почему так? Много разных людей и компаний, преследуя свои, подчас диаметрально противоположные интересы, низвели музыку до статуса фонового шума, в котором почти отсутствует полезный сигнал. Имея на руках смартфон с дешевым, неограниченным, моментальным доступом к десяткам миллионов песен мы перестали музыку ценить. Или не перестали?

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

Тему этой «сложности» я затронул в предыдущем посте, но очень поверхностно. Несмотря на это, дискуссия в комментариях вышла весьма интересная и полезная. А поэтому – продолжим! Что если вынести за скобки и качество звука, и стоимость? Что если оценивать плеер, наушники, колонки и усилитель исключительно по тому, насколько удобно ими пользоваться, и насколько хорошо они соответствуют Основным Принципам моего меломанства? Такой подход очень интересен и, увы, нечасто встречается. Сразу скажу, что «удобство» — это тема не для одного поста, но с чего-то надо начинать. Начну с тех самых принципов.
Читать дальше →

STM32 и FreeRTOS. 1. Развлечение с потоками

Время на прочтение7 мин
Количество просмотров160K
Данный цикл из 5 статей рассчитан на тех, кому стало мало возможностей привычных «тинек» и ардуинок, но все попытки перейти на более мощные контроллеры оканчивались неудачей или не приносили столько удовольствия, сколько могли бы. Все ниженаписанное проговаривалось мной много раз на «ликбезе» программистов нашей студии (которые часто сознавались, что переход с «тинек» на «стмки» открывает столько возможностей, что попадаешь в ступор, не зная за что хвататься), поэтому смею надеяться, что польза будет всем. При прочтении подразумевается, что читающий — человек любопытный и сам смог найти и поставить Keil, STM32Cube и понажимать кнопки «ОК». Для практики я использую оценочную плату STM32F3DISCOVERY, ибо она дешевая, на ней стоит мощный процессор и есть куча светодиодиков.

Каждая статья рассчитана на «повторение» и «осмысление» где-то на один околовечерний час, ибо дом, семья или отдых…



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

Предупреждён — значит, вооружён. Часть 2

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


Чем больше народа, тем меньше кислорода




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

Концентрацию углекислого газа измеряют в пропромиллях — частей на миллион ppm (ppmv), миллиграммах на кубический метр или процентах.

Чтобы “поплавать” в значениях концентрации углекислого газа, можно почитать любую статью по обеспечению воздухообмена, пример “Сколько воздуха нужно человеку для комфорта?”

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

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

Espruino Pico: миниатюрная плата разработчика с JavaScript поможет быстро освоиться в мире электроники

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


Миниатюрная плата Espruino Pico для разработчика JavaScript — это интересное устройство, внутри которого есть все, что нужно для работы с электронными устройствами. Плата позволяет быстро настроить взаимодействие с самыми разными модулями и системами, без необходимости написания большого количества кода и его постоянной отладки.

Вместо этого используется JavaScript, в качестве управляющей «прослойки». Разработчики утверждают, что такое решение позволяет работать с железом напрямую, выставляя необходимые величины напряжения, и настраивая взаимодействие с внешними компонентами. От обычной АА батарейки чип может работать более 10 лет, такое низкое энергопотребления у платы.

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

Распределенная файловая система Ceph FS за 15 минут

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

Нам понадобится всего лишь несколько минут для того что бы поднять распределенную файловую систему Ceph FS
Читать дальше →

В поисках идеального файлового хранилища

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

Ранее мы рассматривали прототип масштабируемой read-only файловой системы. Удалось показать, что, используя предложенную архитектуру, можно построить файловую систему любой емкости, с гарантированным временем доступа, соизмеримым с таковым для доступа к файлу в пределах одного физического диска.
Далее постараемся разобраться, может ли подобный подход принести пользу при построении файловой системы общего назначения.
Читать дальше →

Ликбез: методы ресайза изображений

Время на прочтение7 мин
Количество просмотров128K
Почему изображение, масштабированное с бикубической интерполяцией, выглядит не как в Фотошопе. Почему одна программа ресайзит быстро, а другая — нет, хотя результат одинаковый. Какой метод ресайза лучше для увеличения, а какой для уменьшения. Что делают фильтры и чем они отличаются.

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


Этот человек сидит среди ромашек, чтобы привлечь ваше внимание к статье.
Читать дальше →

markdown-it — парсер markdown / CommonMark на стероидах

Время на прочтение2 мин
Количество просмотров14K
Не так давно было много шума об инициатике CommonMark по унификации маркдауна. Казалось бы, наконец-то в этой замечательной разметке наступит порядок. Но на практике не все так просто. Сейчас ведется работа над базовым синтаксисом, и до расширений дело дойдет не скоро. Ждать год с лишним могут не все. Но разработки спецификаций — это скорее научная работа. Нас же интересует практика — как приворачивать маркдаун к конкретным проектам.

Что же может потребоваться программисту от хорошего парсера маркдауна? Ну конечно же не скорость :). А нужна на самом деле возможность добавлять свои расширения синтаксиса. К сожалению, во всех реализациях парсеров, что я до этого встречал, логика разбора разметки приколочена намертво. Все что остается — ковырять гвоздиком конечный результат и надеяться что конфликтов не случится. Конечно, гарантировать при этом надежный выхлоп невозможно. Можно пойти другим путем — попробовать заслать патч в апстрим. Но тут нет ни каких гарантий, что синтаксис вашего расширения будет нужен кому-то еще кроме вас, и что ваш код будет принят.

Как же быть? К счастью, теперь у нас есть markdown-it!

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

Обзор шины SPI и разработка драйвера ведомого SPI устройства для embedded Linux (Часть первая, обзорная)

Время на прочтение13 мин
Количество просмотров185K
В этой статье я хочу провести краткий обзор шины SPI (интерфейса, широко распространённого во встраиваемой технике, используемого для подключения различных устройств) и попытаюсь описать процесс создания драйвера протокольного уровня SPI устройства для Linux. Данный документ не претендует на роль полного руководства, а скорее преследует цель указать нужное направление. Так как статья не вошла в размер одного топика, мне пришлось разбить её на две части.

0. Вместо введения


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

Для кого эта статья?
В первую очередь, для новичков, каковым являюсь и я. На форумах по embedded Linux очень часто можно встретить вопрос: «А как на этой плате работать с SPI?». Именно на него я и попытаюсь дать ответ. В качестве примера, я приведу код написанный для работы с моим тестовым SPI устройством.
Читать дальше →

Информация

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