Search
Write a publication
Pull to refresh
21
0
Иван @sploid

User

Send message

Идиомы С++. Static visitor

Reading time5 min
Views26K
Паттерн Visitor предлагает еще один способ отделить алгоритм обработки данных от самих данных. В этой статье я кратко опишу идею, стоящую за оригинальным паттерном, его С++ специфическую вариацию и приведу несколько простых примеров использования.
Читать дальше →

Обучение OpenCV каскада Хаара

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

Использование эмоциональных иконок Emoji в коммитах на GitHub

Reading time1 min
Views18K


Некоторое время назад, сервис GitHub анонсировал возможность использовать эмоциональные иконки Emoji во всей своей GFM-разметке.

Мало кто знает, что эмоциональные иконки можно использовать не только в комментариях к pull requests и issues, но и в commit messages!
Читать дальше →

Технологии становятся ближе к телу

Reading time4 min
Views11K
С тех пор, как Google анонсировала очки дополненной реальности Glass многие производители начали всерьез интересоваться нательными гаджетами.

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

С чего все начиналось…

Сегменту wearable computers (подстрочник с английского «надеваемые компьютеры») два десятка лет. Отцом нательных компьютеров считается профессор Торонтского университета Стив Манн (Steve Mann). В 1970-х и 80-х годах он создал несколько нательных систем общего пользования, включая устройства считывания, биологической обратной связи и мультимедиа. В 1981 году он разработал мультимедийную компьютерную систему для крепления на спину с наголовным дисплеем для одного глаза. С тех пор Манн каждый день носит какой-нибудь нательный компьютер.
Читать дальше →

Lock-free структуры данных. Внутри. Схемы управления памятью

Reading time28 min
Views53K

Как я упоминал в своих предыдущих заметках, основными трудностями при реализации lock-free структур данных являются ABA-проблема и удаление памяти. Я разделяю эти две проблемы, хоть они и связаны: дело в том, что существуют алгоритмы, решающие только одну из них.
В этой статье я дам обзор известных мне методов безопасного удаления памяти (safe memory reclamation) для lock-free контейнеров. Демонстрировать применение того или иного метода я буду на классической lock-free очереди Майкла-Скотта [MS98].

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

iCity – виртуальный город, до которого нет дела никому. Post Mortem внутреннему стартапу

Reading time9 min
Views25K
Всем привет. Статья будет о стартапе. Но не спешите морщиться. Статья будет о внутреннем стартапе – внутри материнской компании. Такие еще иногда называют спиноффами. Как можно догадаться из названия, я предлагаю почитать о том, с каким энтузиазмом я совершал ошибку за ошибкой в попытке создать внутренний стартап и что из этого вышло. Очень надеюсь на то, что кого-то предостерегу от подобного рода ошибок.
Читать дальше →

Nextivity Cel-Fi RS2 black — интеллектуальный усилитель 3G-сигнала

Reading time11 min
Views83K
Nextivity Cel-Fi RS2 black (single band)

Наверняка каждый из нас не раз сталкивался с плохим качеством связи — низким уровнем 3G-сигнала. Для кого-то эта проблема некритична, но бывают случаи, когда стабильная связь жизненно важна. Если это ваш случай, рекомендую прочитать данную статью.

Покрытие в России все еще оставляет желать лучшего. Особенно это касается 3G-сетей. Даже на улицах города телефон цепляет 3G далеко не всегда, не говоря уже об офисах в многоэтажных бизнес-центрах, всевозможных подвальных и гаражных помещениях и других железобетонных конструкциях. Центральная часть России в основном равнинная, и за городом сигнал оператора распространяется без существенных помех, вопрос лишь в расстоянии до базовой станции. Однако, в местах с холмистым или горным рельефом либо при плотной городской застройке даже близость БС не дает гарантии уверенного приема.

Многие работают удаленно, отдыхая от города на дачах и в загородных домах. И в этом случае необходимым условием спокойной работы является наличие качественного покрытия, а также стабильного и быстрого интернет-канала.

В этой статье я хочу познакомить вас с абонентским терминалом Nextivity Cel-Fi RS2 black. Это сравнительно новое решение, используемое крупными международными операторами: Vodafone, AT&T, T-Mobile, Orange group и др., а так же одобренное и сертифицированное в России. Оно служит для увеличения зоны уверенного приёма-передачи голоса и данных по технологии 3G.

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

Эффективная реализация Readers–writer lock на основе «Interlocked Variable Access»

Reading time4 min
Views10K

Вступление


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

В ходе данной публикации я хочу поделиться идеей реализации хорошо известного примитива синхронизации readers-writer lock на основе, так называемых атомарных операций. Как известно, readers-writer lock призван решать проблему синхронизации доступа к разделяемому ресурсу таким образом, чтобы избегать одновременных чтения и записи, но, при этом позволять параллельное чтение сколь угодно большому количеству потоков.
Читать дальше →

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

Reading time18 min
Views103K

В предыдущей статье мы заглянули внутрь процессора, пусть и гипотетического. Мы выяснили, что для корректного выполнения параллельного кода процессору необходимо подсказывать, до каких пределов ему разрешено проводить свои внутренние оптимизации чтения/записи. Эти подсказки – барьеры памяти. Барьеры памяти позволяют в той или иной мере упорядочить обращения к памяти (точнее, кэшу, — процессор взаимодействует с внешним миром только через кэш). “Тяжесть” такого упорядочения может быть разной, — каждая архитектура может предоставлять целый набор барьеров “на выбор”. Используя те или иные барьеры памяти, мы можем построить разные модели памяти — набор гарантий, которые будут выполняться для наших программ.

В этой статье мы рассмотрим модель памяти C++11.
Читать дальше →

Oriense. Разработка устройств помощи слепым и слабовидящим

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


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

Lock-free структуры данных. Извне: введение в libcds

Reading time14 min
Views31K

В этой статье я даю краткий обзор того, как применять библиотеку lock-free структур данных libcds. В реализацию я углубляться здесь не буду, — это просто взгляд извне, взгляд со стороны пользователя библиотеки.

Библиотека libcds имеет свою точку зрения на многие известные структуры данных. Отчасти это объясняется целевой областью – lock-free структуры данных довольно минималистичны по набору предоставляемых методов, — отчасти желанием выйти за ограничения и решения стандартной библиотеки STL. Что из этого получилось – решать пользователям libcds.

Кому интересно – добро пожаловать под кат
Читать дальше →

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.
Статья большая, я даю перевод только первой половины. Я позволил себе добавить некоторые комментарии, [которые выделены в тексте так].
Передаю слово Полу

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

Reading time15 min
Views112K

Построение lock-free структур данных зиждется на двух китах – атомарных операциях и способах упорядочения доступа к памяти. В этой статье речь пойдет об атомарности и атомарных примитивах.

Анонс. Спасибо за теплый прием Начал! Вижу, что тема lock-free интересна хабрасообществу, это меня радует. Я планировал построить цикл по академическому принципу, плавно переходя от основ к алгоритмам, попутно иллюстрируя текст кодом из libcds. Но часть читателей требует зрелищ не мешкая показать, как пользоваться библиотекой, особо не рассусоливая. Я согласен, в этом есть свой резон. В конечном счете, и мне не так интересно, что там внутри boost, — опишите, как его применять! Поэтому свой эпический цикл я разделю на три части: Основы, Внутри и Извне. Каждая статья эпопеи будет относится к одной из частей. В Основах будет рассказываться о низкоуровневых вещах, вплоть до строения современных процессоров; это часть для почемучек вроде меня. Внутри будет освещать интересные алгоритмы и подходы в мире lock-free, — это скорее теория о том, как реализовать lock-free структуру данных, libcds будет неисчерпаемым источником C++ кода. В Извне будут статьи о практике применения libcds, — программные решения, советы и FAQ. Извне будет питаться вашими вопросами/замечаниями/предложениями, дорогие хабражители.

А пока я судорожно готовлю начало Извне, — первая часть Основ. Статья во многом не о C++ (хотя и о нем тоже) и даже не о lock-free (хотя без atomic lock-free алгоритмы неработоспособны), а о реализации атомарных примитивов в современных процессорах и о базовых проблемах, возникающих при использовании таких примитивов.
Атомарность — это первый круг ада низкий уровень из двух.
Читать дальше →

Metaio SDK: дополненная реальность стала полнее

Reading time3 min
Views30K

Вот уже течение 10 лет компания Metaio GmbH разрабатывает и совершенствует технологии дополненной реальности (ДР) для ПК и мобильных устройств. Одним из результатов этих титанических усилий стал Metaio SDK – набор инструментов для внедрения элементов ДР в приложения и программы, оптимизированный при поддержке и помощи Intel под ее платформы. Набор, между прочим, совершенно бесплатный! Предлагаем вам поближе познакомиться с этим продуктом и посмотреть, как он работает.
Узнать больше о Metaio SDK

Робот-автомобиль команды АВРОРА на “Робокросс-2013”

Reading time15 min
Views40K

Привет, Хабр!
Становится традицией публиковать отчёты команд после выступления на соревнованиях “Робокросс”.
В прошлом сезоне были отчёты команд НАМТ и MobRob, а сейчас, мне хотелось бы рассказать о работе нашей команды.

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

Будущее игровой индустрии с hi-res 3D сканами людей и Oculus Rift

Reading time2 min
Views86K
Энтузиаст технологий виртуальной реальности Teddy, известный в определённых кругах адаптацией устройства Razer Hydra для работы с Unity Development Kit, помог другому этузиасту 3D сканирования Ли Перри-Смиту (Lee Perry-Smith), известному в определённых кругах своей студией для мгновенного бесконтактного 3D сканирования людей в высоком разрешении.

В результате получилось интересное демо, раскрывающее потрясающие возможности сотрудничества технологий виртуальной реальности и 3D сканирования (местами 16+).



Хочу 18плюс!

SuperHot — новое слово в инди-играх, slow-mo и управлении временем

Reading time1 min
Views34K
Трейлер игры скажет все за себя сам.



В двух словах: время идет только, пока вы двигаетесь. Braid-стайл, да. Разработчиков можно поддержать и проголосовать за их игру в Steam Greenlight. Чтобы сыграть в демо-версию, нужно установить Unity Web Player.

Настольная игра, обучающая детей программированию

Reading time2 min
Views23K
Для начала, хочу поздравить всех хабровчан с днем программиста!
О чем же писать в этот день, как не об игре, которая позволит воспитать из вашего ребенка юного Стива Джобса или Аду Лавлейс.

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

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

«МегаФон» запускает всероссийскую систему учёта в ЖКХ

Reading time6 min
Views72K


Тема ЖКХ общепризнанно считается одной из самых сложных для реформирования и далёкой от инноваций. Однако «МегаФон» решил изменить это. Центр инновационных разработок «МегаФона» компания Megalabs запускает абсолютно уникальный для России сервис в области ЖКХ: «Ресурс под контролем». Проект уже запущен в Москве и Московской области, а с сентября будет расширен на всю территорию России.

В двух словах: ежедневно «МегаФон» удалённо собирает и обрабатывает данные со всех счётчиков тепла, воды и света, предоставляя плательщикам возможность контролировать их и оплачивать онлайн. Благодаря этому такая процедура как снятие показаний счётчиков уходит в прошлое, а вместе с этим решается ещё ряд важных задач, которые в итоге позволяют наконец-то начать экономить на счетах за квартиру — что в последнее время особенно актуально.
Читать дальше →

Хроническая усталость, апатия, сезонная «депрессия» и многое другое: тривиальная причина

Reading time8 min
Views687K
На хабре часто публикуют статьи о самоорганизации — нам всем хочется меньше прокрастинировать, и делать больше полезного. Но что если делать полезное мешает дичайшая усталость? Никакая организация задач усталость не уберет.

Казалось бы, работа у IT-шников несложная — вагоны не разгружаем, землю не роем и уставать физически не должны. Однако о дичайшей усталости людей занятых интеллектуальным трудом приходится слышать чаще, чем хотелось бы. После того как я приехал в Москву 3 года назад — я почему-то начал дичайше уставать на совершенно ровном месте, и ни я, ни врачи не могли найти причину. После 2-х лет поисков тривиальная и легко исправимая причина нашлась, и на мой взгляд — в группе риска находятся практически все люди, занимающиеся интеллектуальным трудом. Ситуация усугубляется двумя народными обычаями.

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

1) Летом все ок, а зимой — апатия, ничего не хочется делать. Это любят называть сезонной «депрессией».
2) Утром все ок, а к вечеру на работе — мозги «не варят», ничего не хочется делать — только хабр и reddit листать. Приходите домой — и с дичайшей усталостью падаете в кресло. Сил хватает только лазить в интернете до ночи. Этот пункт — касается и работодателей, есть шанс, что люди вечером перестают работать не из-за своей лени.
3) Даже если вы просыпаетесь без будильника — вы не высыпаетесь.
4) Кофе и прочие стимуляторы — не дают бодрости, лишь делают вас злее.
5) Даже если вы спите «сколько влезет» — сны короткие и не запоминающиеся, или их нет вообще.
6) Вы замечаете, что даже 1 вещь вам иногда трудно удержать в голове. Мы можете забыть что вы сейчас хотели сделать.
7) Вы просыпаетесь уже с дичайшей усталостью
8) Вам кажется, что в комнате темно и все несколько не резкое.
Читать дальше →

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity