Search
Write a publication
Pull to refresh
-1
0
Юрий Лунев @bitterman

Embedded Linux

Send message

РОБОТ на базе: android, arduino, bluetooth. Начало

Reading time17 min
Views188K
Создание робота, даже простенького с ограниченным функционалом, довольно интересная и увлекательная задача. В последнее время любительская робототехника переживает настоящий бум, ей начали увлекаться даже те люди, которые от электроники очень далеки (к ним отношусь и я). Прошло то время, когда нужно было сидеть ночами с паяльником, или травить платы. Все стало гораздо проще, нужно лишь купить Arduino, комплект проводков, сенсоры, датчики, моторчики и вперед к сборке своего первого робота. Таким образом, фокус разработчиков — любителей сместился с электроники и механической части к программированию.
Данная серия статей будет содержать информацию для быстрого старта по созданию своего первого робота, от покупки необходимых деталей до его запуска в наш мир.
Читать дальше →

«Boost.Asio C++ Network Programming». Глава 1: Приступая к работе с Boost.Asio

Reading time15 min
Views244K
Привет Хабралюди!
Это мой первый пост, поэтому не судите строго. Я хочу начать вольный перевод книги John Torjo «Boost.Asio C++ Network Programming» вот ссылка на нее.

Содержание:


Во-первых разберем что есть Boost.Asio, как его собрать, а так же несколько примеров. Вы узнаете, что Boost.Asio больше, чем сетевая библиотека. Так же вы узнаете о самом важном классе, который находится в самом сердце Boost.Asio — io_service.

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

Qt: шаблон для корректной работы с потоками — более качественная реализация

Reading time7 min
Views34K
В своей предыдущей статье я затронул тему грамотной реализации потоков в Qt и предложил свой вариант. В комментариях мне подсказали более верное направление. Попробовал сделать — получилось и вправду легко и красиво! Я хотел было исправить старую статью, но Хабр повис — и все потерялось. В итоге я решил написать новую версию.
Смотрим новую версию!

3 режима команды git reset: --soft, --mixed(по умолчанию), --hard

Reading time2 min
Views295K
К моему удивлению на целом хабрахабре нет ни одного поста где бы было понятно написано про 3 вида git reset. Например, во второй по релевантности статье по запросу «git reset» автор пишет что «данное действие может быть двух видов: мягкого(soft reset) и жесткого(hard reset)». Режим --mixed, используемый по умолчанию, почему-то не удостоился упоминания.

Ничего удивительного, что часто видишь непонимание работы этой команды. Под катом коротко и ясно расскажу о всех трёх режимах git reset, после прочтения топика неясностей остаться не должно.
Читать дальше →

Как работает Stack Overflow — железо

Reading time5 min
Views79K
Хотелось бы сказать, что Stack Overflow — масштабный проект, но это не так. Я имею ввиду мы добились многого, но я не могу назвать наш проект “большим”, ещё рано. Давайте я приведу в пример некоторые цифры — с какой нагрузкой мы имеем дело сейчас. Срез статистики за 24 часа от 12 ноября 2013 года. Это обычный будний день. Отмечу, что здесь представлена информация только по нашим собственным вычислительным мощностям, без CDN.


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

Отладка самолета? Это очень просто!

Reading time13 min
Views119K
Некоторое время назад мне пришлось очень плотно поучаствовать в приемо-сдаточных испытаниях самолета. Эти испытания были основной частью процесса передачи свежеизготовленного, самого (по моему мнению) технически продвинутого на настоящий момент времени бизнес-джета от производителя заказчику. Казалось бы, причем здесь тестирование, разработка, да и вообще тематика Хабра? Желающие узнать это могут перевернуть страницу и прочитать довольно много текста, причем вообще без картинок.
Читать дальше →

Десятка лучших консольных команд

Reading time2 min
Views198K
imageВ данном посте я расскажу о наиболее интересных командах, которые могут быть очень полезны при работе в консоли. Однозначных критериев определения какая команда лучше другой — нет, каждый сам для своих условий выбирает лучшее. Я решил построить список команд на основе наиболее рейтинговых приемов работы с консолью от commandlinefu.com, кладовой консольных команд. Результат выполнения одной из таких команд под Linux приведен на картинке. Если заинтересовало, прошу под кат.
Узнать больше

Lock-free структуры данных. Основы: откуда пошли быть барьеры памяти

Reading time22 min
Views100K

Как только я заинтересовался lock-free алгоритмами, меня стал мучить вопрос – а откуда взялась необходимость в барьерах памяти, в «наведении порядка» в коде?
Конечно, прочитав несколько тысяч страниц руководств по конкретной архитектуре, мы найдем ответ. Но этот ответ будет годен для этой конкретной архитектуры. Есть ли общий? В конце концов, мы же хотим, чтобы наш код был портабелен. Да и модель памяти C++11 не заточена под конкретный процессор.
Наиболее приемлемый общий ответ дал мне мистер Paul McKenney в своей статье 2010 года Memory Barriers: a Hardware View of Software Hackers. Ценность его статьи – в общности: он построил некоторую упрощенную абстрактную архитектуру, на примере которой и разбирает, что такое барьер памяти и зачем он был введен.
Вообще, Paul McKenney – известная личность. Он является разработчиком и активным пропагандистом технологии RCU, которая активно используется в ядре Linux, а также реализована в последней версии libcds в качестве ещё одного подхода к безопасному освобождению памяти (вообще, о RCU я хотел бы рассказать отдельно). Также принимал участие в работе над моделью памяти C++11.
Статья большая, я даю перевод только первой половины. Я позволил себе добавить некоторые комментарии, [которые выделены в тексте так].
Передаю слово Полу

OpenStreetMap переходит на Leaflet вместо OpenLayers

Reading time1 min
Views22K
Долгое время основной сайт OpenStreetMap использовал джаваскриптовую библиотеку OpenLayers в качестве средства для отображения географических карт на сайте с возможностью их увеличения, уменьшения и перетаскивания мышью, а также выбора «слоёв» (карт и меток).

Вчера (23 ноября) сайт OpenStreetMap перешёл к использованию библиотеки Leaflet, которая умеет всё то же сáмое, при этом отличаясь лучшей поддержкою мобильных устройств, и небольшим размером, и неплохим API.

Это светлый день для Владимира Агафонкина (Mourner), создателя Leaflet, и для всех тех, кто помогал этому проекту с открытым исходным кодом — присылал свой код, помогал идеями, тестировал.

Да и всем пользователям OpenStreetMap будет теперь поудобнее.

Особенности встраивания в ключевые механизмы ядра Linux с использованием LSM

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

Среди способов встраивания в ядро Linux стоит отметить способ, основанный на использовании фреймворка Linux Security Modules (далее, LSM), предназначенного для интеграции различных моделей безопасности, служащих целью расширения базовой дискреционной модели безопасности Linux (DAC).
Читать дальше →

Дерек Сиверс: «Метод интервального повторения — лучший способ изучения языков программирования»

Reading time6 min
Views115K
Краткая справка: в 1998 году Дерек Сиверс основал компанию CD Baby и превратил ее в крупнейшего онлайн-продавца независимой музыки. В 2008-ом вырученные от продажи компании $22 миллиона Дерек передал в благотворительный траст на нужды музыкального образования.
Речи Дерека на TED просмотрели более 5 миллионов раз, а его собственная книга занимала первую строку в чарте книг для предпринимателей на Amazon.
Сам себя Дерек считает «вечным учеником».


Я уже год использую этот метод обучения и могу сказать, что он – самый эффективный из тех, с которыми мне довелось столкнуться за 14 лет изучения программирования.
Читать дальше →

Мониторим всё: расширение агентов Windows и Linux при помощи скриптов

Reading time10 min
Views155K
Если нам нужно мониторить состояние серверов и прочих компьютеризированных рабочих мест при помощи Zabbix, то это можно сделать двумя способами.

Первый способ — это при помощи SNMP-запросов, с отправкой которых Zabbix замечательно справляется. Так можно вытащить и загрузку сетевых интерфейсов, и загрузку процессора, памяти. Поверх этого, производители сервера могут выдать нам по SNMP еще много информации о состоянии железа.

Второй заключается в использовании Zabbix агента, который мы будем запускать на наблюдаемой системе. Список наблюдаемых параметров включает в себя как и такие простые вещи, как загрузка процессора, использование памяти, так и более хитрые, такие как чтение текстовых лог-файлов с поддержкой ротации или отслеживание факта изменения любого файла. Можно даже в качестве параметра использовать вывод любой произвольной команды на системе. Возможности Zabbix агента растут от версии к версии.

image

Что делать, если того, что мы хотим контролировать через Zabbix нет в списке возможностей Zabbix агента? Ждать пока это имплементируют разработчики в следующем релизе? Не обязательно.
Что же делать?

Замечательное выступление настоящего программиста

Reading time1 min
Views150K
Не нашёл на хабре — спешу поделиться. Восхитительное выступление Александра Соловьёва ingspree на конференции JavaScript Frameworks Day 2013. На видео ниже просто набор отрывков из него, желающим посмотреть полностью — сюда.

Опубликованы профессиональные стандарты РФ для программистов, админов БД и других профессий

Reading time1 min
Views89K
В рамках федеральной программы, инициированной указом президента РФ №597 от 7 мая 2012 г., ведётся разработка новых профессиональных стандартов в области ИТ. На днях опубликованы черновики профстандартов админа БД, программиста, руководителя проектов в области информационных технологий, руководителя разработки программного обеспечения и т.д.

11-13 сентября 2013 года пройдут открытые вебинары с подробным обсуждением первой версии каждого из разрабатываемых профессиональных стандартов.
Читать дальше →

Создание видео редактора — полезные рецепты avconv (ffmpeg)

Reading time8 min
Views27K


Недавно потребовалось написать небольшой видеоредактор с веб-интерфейсом.
До этого изредка доводилось пользоваться командами типа
ffmpeg -i file.avi file.mp3

в основном для конвертации из одного формата в другой. Все всегда было более менее гладко и сложно было представить, сколько на самом деле существует всяких нюансов для работы с видео и аудио.
Но начнем с начала. С некоторых пор моя ubuntu начала выдавать:
*** THIS PROGRAM IS DEPRECATED ***
This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.

В целом, пока это использовалось по-мелочам, это было не особо важно, но закладывать уже устаревающую фичу в проект как-то «не оно». Пришлось гуглить что к чему и выяснилось, что проект ffmpeg некоторое время назад раскололся и часть разработчиков занялась созданием библиотеки libav, которая и включена в настоящее время в ubuntu по-умолчанию. Разумеется, совместимость передовых фич была принесена в жертву первой. Заодно и с переименованием проекта исполняемый файл ffmpeg был переименован в avconv, о чём и было вышеупомянутое предупреждение.

Под катом небольшая выжимка основных фич, которые пригодились.
Читать дальше →

Реализация мьютекса вне ОС на примере микроконтроллера AVR и шины TWI

Reading time20 min
Views12K
Решил однажды для себя я соорудить погодную станцию. Датчики там разные, в том числе на шине I2C. И как годится, обычно вначале, сделал все на флагах ожидания. Но путь настоящего джедая иной, и было решено все повесить на прерывания. Вот тут и начался геморрой. Проблема, с которой я столкнулся это обработка нескольких подряд идущих запросов. Например датчик давления BMP085 для дальнейшей работы с ним, требует вытянуть из его EEPROM 11 калибровочных констант:


О том как я пришел к решению и последовательность хода мыслей изложены ниже.
Осторожно! Много текста, кода и картинок

История и настоящее информатизации общеобразовательных учреждений маленьких городов

Reading time3 min
Views14K

Часть первая: СССР


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

Естественно всё началось с аналоговых средств. Не буду в них вникать особо, ибо к ним относятся такие вещи, как от тетради и заканчивая диапроекторами и магнитофонами. О младших из них и упоминать не стоит, ну а старшие(по классности) из них-это диаскопы, радиолы, эпидиаскопы, киноаппараты и им подобные. Собственно в СССР их был целый зоопарк, а поставки были централизованные. Здесь я позволю выставить картинку самого древнего и редкого агрегата:

image

Не пугайтесь. Это не фотонная пушка и не альфа-версия далека. Это — эпидиаскоп 1971 года выпуска с 500 ватной лампой накаливания(кстати, до сих пор живая).
Читать дальше →

Конкуренция внутри команды убивает командный дух

Reading time7 min
Views88K
В современной экономике принято считать, что конкуренция оказывает исключительно благотворное влияние на рынок. Она не даёт создаться монополии, не даёт ценам на товар или услугу превысить некие разумные пределы, заставляет производителя постоянно совершенствовать продукт, не останавливаться на достигнутом, чтобы не отстать от конкурентов.

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

Примеры из жизни


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

Понятно, что сотрудники этих отделов ненавидят друг друга лютой ненавистью (умело подогреваемой руководством) и воспринимают друг друга врагами.

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

Другой пример, уже из IT. Один топ-менеджер одной очень большой компании однажды придумал мерять сотрудников по рангам. Работаешь лучше других – получаешь премию. Работаешь хуже остальных – нагоняй от начальства и прочую немилость.
Читать, почему это плохо

Шифрования сообщений вконтакте методом AES для браузеров Chrome и Firefox

Reading time2 min
Views73K
image

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

Подключаем «Электронное правительство» в Ubuntu

Reading time4 min
Views39K
image
Родное правительство заботится о гражданах и старается предоставить им возможность как можно меньше лично встречаться с собственными представителями. Для этих целей создан портал «Госуслуги», для этого был (есть) проект УЭК, карта «Электронное правительство» (выпускают несколько банков), идут разговоры об электронных паспортах на базе SIM-карт и т.д. и т.п. О том, как заставить «Электронное правительство» работать в Ubuntu, читайте ниже.

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

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

Information

Rating
Does not participate
Location
Таганрог, Ростовская обл., Россия
Registered
Activity