Паттерн Visitor предлагает еще один способ отделить алгоритм обработки данных от самих данных. В этой статье я кратко опишу идею, стоящую за оригинальным паттерном, его С++ специфическую вариацию и приведу несколько простых примеров использования.
Иван @sploid
User
Обучение OpenCV каскада Хаара
8 min
199KTutorial
На хабре уже есть несколько статей и про то, что такое каскад Хаара (раз, два, три). Есть даже одна, где затронут процесс обучения, но в отношении описанной задачи. На тему обучения есть пара неплохих статей на английском (первая, вторая, третья), но, на мой взгляд, они путанные: либо рассказывают очень мало, либо слишком много и обо всём — выделить нужную мысль сложно.

В этой статье я попробую показать, как обучить каскад с нуля за несколько часов, натренировав на поиск простого предмета в видеопотоке (примером будет очаровательная сова с фотографии). Все обучающие выборки и программы будут приложены.
Зачем всё это нужно? Каскад Хаара это один из простейших способов распознавания классов объектов с большой скоростью работы. К ним относятся лица и руки людей, номера автомобилей, пешеходы. Детектором Хаара просто находить животных в кадре (кстати, удивительно, что я не видел ещё ни одной автоматической кормушки для синиц на raspberry pi). К тому же, готовые реализации OpenCV есть под большинство существующих систем (даже для blackfin'a встречал). Всё это делает Хаара одним из самых удобных методов, позволяющих решать задачи видеообработки даже людям, которые никогда не работали с обработкой видео.

В этой статье я попробую показать, как обучить каскад с нуля за несколько часов, натренировав на поиск простого предмета в видеопотоке (примером будет очаровательная сова с фотографии). Все обучающие выборки и программы будут приложены.
Зачем всё это нужно? Каскад Хаара это один из простейших способов распознавания классов объектов с большой скоростью работы. К ним относятся лица и руки людей, номера автомобилей, пешеходы. Детектором Хаара просто находить животных в кадре (кстати, удивительно, что я не видел ещё ни одной автоматической кормушки для синиц на raspberry pi). К тому же, готовые реализации OpenCV есть под большинство существующих систем (даже для blackfin'a встречал). Всё это делает Хаара одним из самых удобных методов, позволяющих решать задачи видеообработки даже людям, которые никогда не работали с обработкой видео.
+55
Использование эмоциональных иконок Emoji в коммитах на GitHub
1 min
18KTutorial

Некоторое время назад, сервис GitHub анонсировал возможность использовать эмоциональные иконки Emoji во всей своей GFM-разметке.
Мало кто знает, что эмоциональные иконки можно использовать не только в комментариях к pull requests и issues, но и в commit messages!
+12
Технологии становятся ближе к телу
4 min
11KС тех пор, как Google анонсировала очки дополненной реальности Glass многие производители начали всерьез интересоваться нательными гаджетами.
Как утверждают аналитики компании Markets and Markets нательная электроника станет новым большим прорывом в области вычислительной техники, создав новую волну электронных гаджетов, аналогичную глобальной смартфонной революции.
С чего все начиналось…
Сегменту wearable computers (подстрочник с английского «надеваемые компьютеры») два десятка лет. Отцом нательных компьютеров считается профессор Торонтского университета Стив Манн (Steve Mann). В 1970-х и 80-х годах он создал несколько нательных систем общего пользования, включая устройства считывания, биологической обратной связи и мультимедиа. В 1981 году он разработал мультимедийную компьютерную систему для крепления на спину с наголовным дисплеем для одного глаза. С тех пор Манн каждый день носит какой-нибудь нательный компьютер.
Как утверждают аналитики компании Markets and Markets нательная электроника станет новым большим прорывом в области вычислительной техники, создав новую волну электронных гаджетов, аналогичную глобальной смартфонной революции.
С чего все начиналось…

+2
Lock-free структуры данных. Внутри. Схемы управления памятью
28 min
53K
Как я упоминал в своих предыдущих заметках, основными трудностями при реализации lock-free структур данных являются ABA-проблема и удаление памяти. Я разделяю эти две проблемы, хоть они и связаны: дело в том, что существуют алгоритмы, решающие только одну из них.
В этой статье я дам обзор известных мне методов безопасного удаления памяти (safe memory reclamation) для lock-free контейнеров. Демонстрировать применение того или иного метода я буду на классической lock-free очереди Майкла-Скотта [MS98].
+69
iCity – виртуальный город, до которого нет дела никому. Post Mortem внутреннему стартапу
9 min
25KВсем привет. Статья будет о стартапе. Но не спешите морщиться. Статья будет о внутреннем стартапе – внутри материнской компании. Такие еще иногда называют спиноффами. Как можно догадаться из названия, я предлагаю почитать о том, с каким энтузиазмом я совершал ошибку за ошибкой в попытке создать внутренний стартап и что из этого вышло. Очень надеюсь на то, что кого-то предостерегу от подобного рода ошибок.
+29
Nextivity Cel-Fi RS2 black — интеллектуальный усилитель 3G-сигнала
11 min
83K
Наверняка каждый из нас не раз сталкивался с плохим качеством связи — низким уровнем 3G-сигнала. Для кого-то эта проблема некритична, но бывают случаи, когда стабильная связь жизненно важна. Если это ваш случай, рекомендую прочитать данную статью.
Покрытие в России все еще оставляет желать лучшего. Особенно это касается 3G-сетей. Даже на улицах города телефон цепляет 3G далеко не всегда, не говоря уже об офисах в многоэтажных бизнес-центрах, всевозможных подвальных и гаражных помещениях и других железобетонных конструкциях. Центральная часть России в основном равнинная, и за городом сигнал оператора распространяется без существенных помех, вопрос лишь в расстоянии до базовой станции. Однако, в местах с холмистым или горным рельефом либо при плотной городской застройке даже близость БС не дает гарантии уверенного приема.
Многие работают удаленно, отдыхая от города на дачах и в загородных домах. И в этом случае необходимым условием спокойной работы является наличие качественного покрытия, а также стабильного и быстрого интернет-канала.
В этой статье я хочу познакомить вас с абонентским терминалом Nextivity Cel-Fi RS2 black. Это сравнительно новое решение, используемое крупными международными операторами: Vodafone, AT&T, T-Mobile, Orange group и др., а так же одобренное и сертифицированное в России. Оно служит для увеличения зоны уверенного приёма-передачи голоса и данных по технологии 3G.
+21
Эффективная реализация Readers–writer lock на основе «Interlocked Variable Access»
4 min
10KВступление
Специфика проекта, в котором я работаю, такова, что с одной стороны не допускается использование сторонних библиотек (за небольшим исключением), а с другой акцент делается на очень глубокую оптимизацию кода. Вот и приходится зачастую изобретать велосипед в виде собственных реализаций.
В ходе данной публикации я хочу поделиться идеей реализации хорошо известного примитива синхронизации readers-writer lock на основе, так называемых атомарных операций. Как известно, readers-writer lock призван решать проблему синхронизации доступа к разделяемому ресурсу таким образом, чтобы избегать одновременных чтения и записи, но, при этом позволять параллельное чтение сколь угодно большому количеству потоков.
+10
Lock-free структуры данных. Основы: Модель памяти
18 min
103K
В предыдущей статье мы заглянули внутрь процессора, пусть и гипотетического. Мы выяснили, что для корректного выполнения параллельного кода процессору необходимо подсказывать, до каких пределов ему разрешено проводить свои внутренние оптимизации чтения/записи. Эти подсказки – барьеры памяти. Барьеры памяти позволяют в той или иной мере упорядочить обращения к памяти (точнее, кэшу, — процессор взаимодействует с внешним миром только через кэш). “Тяжесть” такого упорядочения может быть разной, — каждая архитектура может предоставлять целый набор барьеров “на выбор”. Используя те или иные барьеры памяти, мы можем построить разные модели памяти — набор гарантий, которые будут выполняться для наших программ.
В этой статье мы рассмотрим модель памяти C++11.
+66
Oriense. Разработка устройств помощи слепым и слабовидящим
4 min
16KИстория проекта уходит корнями в далекий 2006 год.
Тогда в питерский НИИ обратился активный член общества слепых с предложением создания устройства помощи слепым и слабовидящим.
Один из основателей нынешнего Oriense тогда заведовал отделом, который занимался в том числе зрением роботов и разрабатывал свою стереокамеру. На ней устройство и решили базировать: носимый компьютер обрабатывает информацию от двух камер и двух УЗ-сонаров и выдает подсказки в наушники с помощью голосового синтезатора.

Тогда в питерский НИИ обратился активный член общества слепых с предложением создания устройства помощи слепым и слабовидящим.
Один из основателей нынешнего Oriense тогда заведовал отделом, который занимался в том числе зрением роботов и разрабатывал свою стереокамеру. На ней устройство и решили базировать: носимый компьютер обрабатывает информацию от двух камер и двух УЗ-сонаров и выдает подсказки в наушники с помощью голосового синтезатора.

+45
Lock-free структуры данных. Извне: введение в libcds
14 min
31K
В этой статье я даю краткий обзор того, как применять библиотеку lock-free структур данных libcds. В реализацию я углубляться здесь не буду, — это просто взгляд извне, взгляд со стороны пользователя библиотеки.
Библиотека libcds имеет свою точку зрения на многие известные структуры данных. Отчасти это объясняется целевой областью – lock-free структуры данных довольно минималистичны по набору предоставляемых методов, — отчасти желанием выйти за ограничения и решения стандартной библиотеки STL. Что из этого получилось – решать пользователям libcds.
Кому интересно – добро пожаловать под кат
+49
Lock-free структуры данных. Основы: откуда пошли быть барьеры памяти
22 min
100KTranslation

Как только я заинтересовался lock-free алгоритмами, меня стал мучить вопрос – а откуда взялась необходимость в барьерах памяти, в «наведении порядка» в коде?
Конечно, прочитав несколько тысяч страниц руководств по конкретной архитектуре, мы найдем ответ. Но этот ответ будет годен для этой конкретной архитектуры. Есть ли общий? В конце концов, мы же хотим, чтобы наш код был портабелен. Да и модель памяти C++11 не заточена под конкретный процессор.
Наиболее приемлемый общий ответ дал мне мистер Paul McKenney в своей статье 2010 года Memory Barriers: a Hardware View of Software Hackers. Ценность его статьи – в общности: он построил некоторую упрощенную абстрактную архитектуру, на примере которой и разбирает, что такое барьер памяти и зачем он был введен.
Вообще, Paul McKenney – известная личность. Он является разработчиком и активным пропагандистом технологии RCU, которая активно используется в ядре Linux, а также реализована в последней версии libcds в качестве ещё одного подхода к безопасному освобождению памяти (вообще, о RCU я хотел бы рассказать отдельно). Также принимал участие в работе над моделью памяти C++11.
Статья большая, я даю перевод только первой половины. Я позволил себе добавить некоторые комментарии, [которые выделены в тексте так].
+111
Lock-free структуры данных. Основы: Атомарность и атомарные примитивы
15 min
112K
Построение lock-free структур данных зиждется на двух китах – атомарных операциях и способах упорядочения доступа к памяти. В этой статье речь пойдет об атомарности и атомарных примитивах.
Анонс. Спасибо за теплый прием Начал! Вижу, что тема lock-free интересна хабрасообществу, это меня радует. Я планировал построить цикл по академическому принципу, плавно переходя от основ к алгоритмам, попутно иллюстрируя текст кодом из libcds. Но часть читателей требует
А пока я судорожно готовлю начало Извне, — первая часть Основ. Статья во многом не о C++ (хотя и о нем тоже) и даже не о lock-free (хотя без atomic lock-free алгоритмы неработоспособны), а о реализации атомарных примитивов в современных процессорах и о базовых проблемах, возникающих при использовании таких примитивов.
Атомарность — это первый
+113
Metaio SDK: дополненная реальность стала полнее
3 min
30K
Вот уже течение 10 лет компания Metaio GmbH разрабатывает и совершенствует технологии дополненной реальности (ДР) для ПК и мобильных устройств. Одним из результатов этих титанических усилий стал Metaio SDK – набор инструментов для внедрения элементов ДР в приложения и программы, оптимизированный при поддержке и помощи Intel под ее платформы. Набор, между прочим, совершенно бесплатный! Предлагаем вам поближе познакомиться с этим продуктом и посмотреть, как он работает.
+43
Робот-автомобиль команды АВРОРА на “Робокросс-2013”
15 min
40K
Привет, Хабр!
Становится традицией публиковать отчёты команд после выступления на соревнованиях “Робокросс”.
В прошлом сезоне были отчёты команд НАМТ и MobRob, а сейчас, мне хотелось бы рассказать о работе нашей команды.
Я расскажу про то, как мы делали робота, и почему мы его сделали именно так. Надеюсь, это будет интересно участникам других команд, или просто увлекающимся подобной тематикой.
+92
Будущее игровой индустрии с hi-res 3D сканами людей и Oculus Rift
2 min
86KЭнтузиаст технологий виртуальной реальности Teddy, известный в определённых кругах адаптацией устройства Razer Hydra для работы с Unity Development Kit, помог другому этузиасту 3D сканирования Ли Перри-Смиту (Lee Perry-Smith), известному в определённых кругах своей студией для мгновенного бесконтактного 3D сканирования людей в высоком разрешении.
В результате получилось интересное демо, раскрывающее потрясающие возможности сотрудничества технологий виртуальной реальности и 3D сканирования (местами 16+).
В результате получилось интересное демо, раскрывающее потрясающие возможности сотрудничества технологий виртуальной реальности и 3D сканирования (местами 16+).
+106
SuperHot — новое слово в инди-играх, slow-mo и управлении временем
1 min
34KТрейлер игры скажет все за себя сам.
В двух словах: время идет только, пока вы двигаетесь. Braid-стайл, да. Разработчиков можно поддержать и проголосовать за их игру в Steam Greenlight. Чтобы сыграть в демо-версию, нужно установить Unity Web Player.
В двух словах: время идет только, пока вы двигаетесь. Braid-стайл, да. Разработчиков можно поддержать и проголосовать за их игру в Steam Greenlight. Чтобы сыграть в демо-версию, нужно установить Unity Web Player.
+68
Настольная игра, обучающая детей программированию
2 min
23KДля начала, хочу поздравить всех хабровчан с днем программиста!
О чем же писать в этот день, как не об игре, которая позволит воспитать из вашего ребенка юного Стива Джобса или Аду Лавлейс.
Robot Turtles — это игра от программиста из Google Дэна Шапиро.
Она предназначена для детей от трех до восьми лет, и в неё очень легко научиться играть. Ваши детки даже не будут подозревать, что в течение игры они будут строить настоящие алгоритмы и изучать основы программирования.

О чем же писать в этот день, как не об игре, которая позволит воспитать из вашего ребенка юного Стива Джобса или Аду Лавлейс.
Robot Turtles — это игра от программиста из Google Дэна Шапиро.
Она предназначена для детей от трех до восьми лет, и в неё очень легко научиться играть. Ваши детки даже не будут подозревать, что в течение игры они будут строить настоящие алгоритмы и изучать основы программирования.

+31
«МегаФон» запускает всероссийскую систему учёта в ЖКХ
6 min
72K
Тема ЖКХ общепризнанно считается одной из самых сложных для реформирования и далёкой от инноваций. Однако «МегаФон» решил изменить это. Центр инновационных разработок «МегаФона» компания Megalabs запускает абсолютно уникальный для России сервис в области ЖКХ: «Ресурс под контролем». Проект уже запущен в Москве и Московской области, а с сентября будет расширен на всю территорию России.
В двух словах: ежедневно «МегаФон» удалённо собирает и обрабатывает данные со всех счётчиков тепла, воды и света, предоставляя плательщикам возможность контролировать их и оплачивать онлайн. Благодаря этому такая процедура как снятие показаний счётчиков уходит в прошлое, а вместе с этим решается ещё ряд важных задач, которые в итоге позволяют наконец-то начать экономить на счетах за квартиру — что в последнее время особенно актуально.
+83
Хроническая усталость, апатия, сезонная «депрессия» и многое другое: тривиальная причина
8 min
687K
Казалось бы, работа у IT-шников несложная — вагоны не разгружаем, землю не роем и уставать физически не должны. Однако о дичайшей усталости людей занятых интеллектуальным трудом приходится слышать чаще, чем хотелось бы. После того как я приехал в Москву 3 года назад — я почему-то начал дичайше уставать на совершенно ровном месте, и ни я, ни врачи не могли найти причину. После 2-х лет поисков тривиальная и легко исправимая причина нашлась, и на мой взгляд — в группе риска находятся практически все люди, занимающиеся интеллектуальным трудом. Ситуация усугубляется двумя народными обычаями.
Итак, если у вас один из следующих симптомов (расположены в порядке усугубления ситуации) — прошу под кат. Как обратили внимание в комментариях — такой список располагает к самовнушению, так что не поддавайтесь :-)
1) Летом все ок, а зимой — апатия, ничего не хочется делать. Это любят называть сезонной «депрессией».
2) Утром все ок, а к вечеру на работе — мозги «не варят», ничего не хочется делать — только хабр и reddit листать. Приходите домой — и с дичайшей усталостью падаете в кресло. Сил хватает только лазить в интернете до ночи. Этот пункт — касается и работодателей, есть шанс, что люди вечером перестают работать не из-за своей лени.
3) Даже если вы просыпаетесь без будильника — вы не высыпаетесь.
4) Кофе и прочие стимуляторы — не дают бодрости, лишь делают вас злее.
5) Даже если вы спите «сколько влезет» — сны короткие и не запоминающиеся, или их нет вообще.
6) Вы замечаете, что даже 1 вещь вам иногда трудно удержать в голове. Мы можете забыть что вы сейчас хотели сделать.
7) Вы просыпаетесь уже с дичайшей усталостью
8) Вам кажется, что в комнате темно и все несколько не резкое.
+303
Information
- Rating
- Does not participate
- Location
- Москва, Москва и Московская обл., Россия
- Works in
- Date of birth
- Registered
- Activity