В данной статье представлен алгоритм распознавания пола, обладающий точностью 93.1% [1]. Статья не требует каких-либо предварительных знаний в области обработки изображений или машинного обучения. После прочтения статьи читатель будет в состоянии выполнить рассмотренный алгоритм самостоятельно.
/devel
Подразделение Intel выпустило версию Android, оптимизированную под чипы Intel (c поддержкой UEFI)
1 min
68K
Команда разработчиков из Open Source Technology Center компании Intel представила предварительную версию Android, оптимизированную под соответствующие чипы Intel. Другими словами, появилась версия Android, которую можно запустить на десктопном ПК, ноутбуке или планшете, на которых вы обычно работаете с Windows. Кроме того, есть и инструмент, позволяющий запускать и Windows 8, и Android на одном и том же компьютере.
+34
Опрос. Выравниваете ли код по столбцам?
1 min
23KПосле очередного спора внутри нашей компании решили вынести холивар на хабр.
Собственно, какой из вариантов форматирования кода предпочитаете использовать?
Выравниваю код
Не выравниваю код
В примере фигурирует присваивание значений, но тоже самое относится к ассоциативным массивам, словарям и т.п.
Собственно, какой из вариантов форматирования кода предпочитаете использовать?
Выравниваю код
foo = 'bar'
habrahabr = 'Hello, world!'
Не выравниваю код
foo = 'bar'
habrahabr = 'Hello, world!'
В примере фигурирует присваивание значений, но тоже самое относится к ассоциативным массивам, словарям и т.п.
+14
Сетка в дизайне интерфейсов для Windows Phone: строгий учитель или добрый помощник? (Часть 1)
6 min
16KПродолжаем публиковать статьи по следам Design Camp. Сегодня у нас на очереди доклад Егора Гилева (yegorg), который на момент кампа работал в компании Парксис, но в феврале 2013 г. ушел в свободное плавание и теперь вместе с ещё одним сооснователем студии Турбомилк Денисом Кортуновым работает над собственными проектами. Статья приведена как есть и отображает авторскую точку зрения на дизайн приложений под Windows Phone.
Я работаю дизайнером User Experience в компании Parcsis. В том виде, в каком она существует сегодня, она образовалась в результате слияния двух компаний: Parcsis и Турбомилк. Parcsis — это в некотором роде инкубатор, запускающий собственные интернет-проекты. Турбомилк — всемирно известная в узких кругах студия дизайна интерфейсов. Я являюсь сооснователем Турбомилка. Около полутора лет назад мы объединились, и команда дизайнеров Турбомилка стала отделом UX-дизайна объединённой компании.
В компании я слыву чудаком. Считается, что дизайнер должен работать на большом алюминевом маке и владеть айфоном, желательно последнего поколения. Я работаю на ноутбуке-трансформере с Windows 8, который купил в первый же день продаж Windows 8 в России. Телефоном у меня служит белая Lumia 710 — пока еще на Windows Phone 7.5. Вы не ошибётесь, если предположите, что я люблю Windows. Особенно новый интерфейс Windows, который раньше назывался Метро. Я его нежно люблю и как пользователь, и как дизайнер интерфейсов.
Возвращаясь к нашей компании. Один из основных проектов Парксиса называется «Право.ru». Этот проект в себя включает много всего интересного, но для сегодняшнего нашего разговора нам важна только одна его часть — та, которая является справочно-правовой системой, доступной как в вебе, так и на мобильных устройствах. Теперь и на Windows Phone:

Как вы понимаете, когда мы решили сделать мобильное приложение Право.ру для Windows Phone 7, задача по созданию его интерфейса естественным образом попала ко мне, чему я был очень рад. Во-первых, потому что мне было приятно его рисовать, а во-вторых, потому что это дало мне возможность разобраться с руководством по дизайну интерфейсов для Windows Phone в целом, и с правилами работы с сеткой в частности.
Я работаю дизайнером User Experience в компании Parcsis. В том виде, в каком она существует сегодня, она образовалась в результате слияния двух компаний: Parcsis и Турбомилк. Parcsis — это в некотором роде инкубатор, запускающий собственные интернет-проекты. Турбомилк — всемирно известная в узких кругах студия дизайна интерфейсов. Я являюсь сооснователем Турбомилка. Около полутора лет назад мы объединились, и команда дизайнеров Турбомилка стала отделом UX-дизайна объединённой компании.
В компании я слыву чудаком. Считается, что дизайнер должен работать на большом алюминевом маке и владеть айфоном, желательно последнего поколения. Я работаю на ноутбуке-трансформере с Windows 8, который купил в первый же день продаж Windows 8 в России. Телефоном у меня служит белая Lumia 710 — пока еще на Windows Phone 7.5. Вы не ошибётесь, если предположите, что я люблю Windows. Особенно новый интерфейс Windows, который раньше назывался Метро. Я его нежно люблю и как пользователь, и как дизайнер интерфейсов.
Возвращаясь к нашей компании. Один из основных проектов Парксиса называется «Право.ru». Этот проект в себя включает много всего интересного, но для сегодняшнего нашего разговора нам важна только одна его часть — та, которая является справочно-правовой системой, доступной как в вебе, так и на мобильных устройствах. Теперь и на Windows Phone:

Как вы понимаете, когда мы решили сделать мобильное приложение Право.ру для Windows Phone 7, задача по созданию его интерфейса естественным образом попала ко мне, чему я был очень рад. Во-первых, потому что мне было приятно его рисовать, а во-вторых, потому что это дало мне возможность разобраться с руководством по дизайну интерфейсов для Windows Phone в целом, и с правилами работы с сеткой в частности.
+20
Неочевидные способы защиты от malware
7 min
50KВ спорах и обсуждениях того, как защитить свой компьютер от зловредов сломано немало копий и на эту тему можно найти множество книг и статей, причем бОльшая часть из них просто дублируют друг друга, рассказывая одно и тоже разными словами. Тому, кто интересуется информационной безопасностью крайне сложно в таких обсуждениях и статьях встретить о защите что-то новое, чего раньше он не знал или просто не задумывался над этим… но, насколько это ни самонадеянно звучит, я все-таки постараюсь пробудить у вас хоть капельку интереса к этой избитой теме и расскажу именно о неочевидных способах защиты, опустив старческое брюзжание о том, что нужно вовремя обновлять плагины к браузерам, не переходить по левым ссылкам и т.д
В этой небольшой заметке о некоторых интересных особенностях функционирования зловредов я призываю вас отказаться от антивируса и от других способов самозащиты — обновлений, настройки программ и внимательности при переходе по ссылкам и запуске приложений… к слову «призываю» добавляем частицу «НЕ» и все будет на своих местах.
В этой небольшой заметке о некоторых интересных особенностях функционирования зловредов я призываю вас отказаться от антивируса и от других способов самозащиты — обновлений, настройки программ и внимательности при переходе по ссылкам и запуске приложений… к слову «призываю» добавляем частицу «НЕ» и все будет на своих местах.
+65
Использование zRam для увеличения количества доступной памяти под Linux
3 min
143K

Уже 2 месяца использую на своих компьютерах модуль zRam и хочу поделиться результатами. На практике он позволил мне не используя раздел подкачки, и не получая видимого замедления работы компьютера увеличить размер оперативной памяти в 2.5-3 раза. На сервере виртуалок тот же подход позволил очень ощутимо увеличить отзывчивость при нехватке памяти.
Заинтересовавшихся прошу под кат.
+113
Энтропия и деревья принятия решений
8 min
122KДеревья принятия решений являются удобным инструментом в тех случаях, когда требуется не просто классифицировать данные, но ещё и объяснить почему тот или иной объект отнесён к какому-либо классу.
Давайте сначала, для полноты картины, рассмотрим природу энтропии и некоторые её свойства. Затем, на простом примере, увидим каким образом использование энтропии помогает при создании классификаторов. После чего, в общих чертах сформулируем алгоритм построения дерева принятия решений и его особенности.
Давайте сначала, для полноты картины, рассмотрим природу энтропии и некоторые её свойства. Затем, на простом примере, увидим каким образом использование энтропии помогает при создании классификаторов. После чего, в общих чертах сформулируем алгоритм построения дерева принятия решений и его особенности.
+80
Windows Azure Summit: как это было (+много фото)
3 min
4K20 февраля в Москве прошла большая облачная конференция Windows Azure Summit, в ходе которой участники конференции прослушали более двадцати технических и бизнес-докладов.

Темы облачных вычислений и платформы Windows Azure сегодня пользуются большим спросом, так что нам пришлось закрыть регистрацию на конференцию еще за несколько месяцев до ее начала. Всего же на мероприятие пришло около 600 человек и еще более 21000 посмотрели ее онлайн.
В этом посте я хотел бы вспомнить как проходила конференция и рассказать об этом тем, кто был и кому не посчастливилось быть на площадке Digital October в день проведения Windows Azure Summit.
Для начала небольшое видео о том “как это было” (ролик доступен здесь в любом формате):

Темы облачных вычислений и платформы Windows Azure сегодня пользуются большим спросом, так что нам пришлось закрыть регистрацию на конференцию еще за несколько месяцев до ее начала. Всего же на мероприятие пришло около 600 человек и еще более 21000 посмотрели ее онлайн.
В этом посте я хотел бы вспомнить как проходила конференция и рассказать об этом тем, кто был и кому не посчастливилось быть на площадке Digital October в день проведения Windows Azure Summit.
Для начала небольшое видео о том “как это было” (ролик доступен здесь в любом формате):
+2
PowerMock (+Mockito): новый взгляд на unit-тестирование
6 min
64KTutorial

Качественный код невозможен без тестов. А качественные тесты — без моков. В создании моков нам давно помогают различные полезные библиотечки, наподобие EasyMock или Mockito. В своей практике я использую Mockito, как самое гибкое, красивое и функциональное средство. Но, к сожалению, Mockito тоже не стал серебрянной пулей. Ограничением всегда являлись final классы, private поля и методы, static методы и многое другое. И приходилось выбирать: или красивый дизайн, или качественное покрытие тестами. Меня, как приверженца красивой архитектуры и качественных тестов, такой расклад не устраивал. И вот совсем недавно я наткнулся на замечательную библиотечку — PowerMock, которая удовлетворила практически все мои запросы. За исключением одного, но об этом позже.
+15
Экспорт фотоальбомов из ВКонтакта
4 min
85KПреамбула
Дело было вечером, делать было нечего и тут мне в голову пришла мысль: «Как же мне выгрузить все фотографии из ВКонтакта на компьютер?» Недолго думая, я написал утилиту для этого и решил поделиться с общественностью, возможно я не один такой.
Поехали
В качестве инструмента для работы с API, путём кратких поисков, была выбрана библиотека vk_api. Для работы с сетью она использует Requests, поэтому и эта библиотека требуется для запуска.
Пощупать
GitHub Pages проекта
+42
Видео лекций курса «Операционные системы» с Алексеем Брагиным в МГТУ им. Баумана
1 min
82KМесяц назад здесь было объявлено, что
Алексей Брагин теперь читает авторский курс лекций об операционных системах. С тех пор Алексей успел провести уже несколько занятий, которые были записаны на видео. Думаю, вполне логичным шагом будет поделиться этими записями с сообществом. Что нам стоит поступить так же как, к примеру, сделал MIT?
Прошу принять во внимание, что это пилотный проект. А так конструктивная критика приветствуется, пожелания принимаются.
Приносим извинения за качество звука, смотреть лучше в HD и погромче.

Прошу принять во внимание, что это пилотный проект. А так конструктивная критика приветствуется, пожелания принимаются.
Приносим извинения за качество звука, смотреть лучше в HD и погромче.
+81
Важнейшие $in'ы: производительность MongoDB в диапазонах
3 min
12KTutorial
Translation
Перевод этой статьи уже есть на хабре, но он ужасен и содержит ложную информацию.
Приветствую, искатели приключений! Путешествуя по территории индексации MongoDB хотя бы некоторое время, вы, возможно, познакомились с таким правилом: если ваш запрос содержит сортировку/порядок (orderby) – добавьте сортируемое поле в конец индекса который используется для запроса.
Во многих случаях когда запрос содержит равенство (то есть поиск конкретного значения, например, {“name”: “Charlie”}) данная мантра бывает весьма полезной.
Запрос
Индекс
Такая комбинация будет не такой эффективной, как может показаться, не смотря на то, что индекс соответствует правилу. В этом запросе есть ловушка, в которую вы с легкостью попадете следуя общепринятому мнению.
Приветствую, искатели приключений! Путешествуя по территории индексации MongoDB хотя бы некоторое время, вы, возможно, познакомились с таким правилом: если ваш запрос содержит сортировку/порядок (orderby) – добавьте сортируемое поле в конец индекса который используется для запроса.
Во многих случаях когда запрос содержит равенство (то есть поиск конкретного значения, например, {“name”: “Charlie”}) данная мантра бывает весьма полезной.
Запрос
db.drivers.find({"country": {"$in": ["A", "G"]}}).sort({"carsOwned": 1})
Индекс
{"country": 1, "carsOwned": 1}
Такая комбинация будет не такой эффективной, как может показаться, не смотря на то, что индекс соответствует правилу. В этом запросе есть ловушка, в которую вы с легкостью попадете следуя общепринятому мнению.
+38
Оптимизация сборки крупного проекта
4 min
25KС проблемой увеличения времени сборки проекта сталкиваются практически все разработчики как минимум раз в год. Сборка — дело небыстрое, что особенно неприятно при использовании практики Continuous Integration с ее постоянными пересборками и сопутствующими активностями. Длительная сборка сводит на нет все плюсы непрерывной интеграции, а простое увеличение вычислительных мощностей не всегда дает желаемый эффект.
В процессе разработки и дальнейшего развития крупного разнородного проекта мы также столкнулись с проблемами оптимизации. Но должны же быть способы уменьшить время сборки? Мы решили найти способ решения этой задачи. Собрать за 60 секунд!..

О том, чего в итоге удалось добиться, и пойдет речь в нашем топике.
В процессе разработки и дальнейшего развития крупного разнородного проекта мы также столкнулись с проблемами оптимизации. Но должны же быть способы уменьшить время сборки? Мы решили найти способ решения этой задачи. Собрать за 60 секунд!..

О том, чего в итоге удалось добиться, и пойдет речь в нашем топике.
+44
Flat UI — бесплатный набор плоских элементов веб-интерфейса [обновлено]
1 min
85K
Можно спорить о преимуществах и недостатках такого дизайна, но игнорировать его нельзя — мода есть мода, так что этому набору наверняка найдётся место в колллекции большинства веб-дизайнеров. Кроме файлов изображений и стилей, набор включает шрифт Lato польского дизайнера Лукаша Джеджича и подобранные дизайнерами образцы цветовых сочетаний. Демо Flat-UI можно посмотреть здесь.
UPD: в данный момент доступ к репозиторию Flat UI закрыт по требованию компании LayerVault, которая считает, что Designmodo нарушила её авторские права. В Designmodo отрицают какое-либо заимствование и утверждают, что Flat UI — полностью оригинальная разработка.
+72
Генератор абстракций — видеообзор
1 min
36KГенератор абстракций (видеообзор)
Привет, Хабрахабр!
Не для широких масс, но для любителей программирования и графики решился я опубликовать сей пост.

+83
Облачная поддержка для приложений на Android
2 min
10KХорошие новости для разработчиков мобильных приложений для платформы Android. В облачной платформе Windows Azure Mobile Services добавлена инструментальная поддержка Android к уже существующей поддержке Windows 8, Windows Phone и iOS. Выпущенный Android SDK распространяется с открытым исходным кодом и доступен на GitHub вместе со всеми другими SDK.

Теперь разработчики приложений для Android могут воспользоваться Windows Azure Mobile Services для получения поддержки следующих функций бесплатно (до 10 мобильных приложений) и без вложений в собственную инфраструктуру:
Используя Windows Azure Mobile Services сегодня можно получить единый облачный бэкенд для поддержки всех популярных мобильных платформ без вложений в инфраструктуру для максимально быстрого старта и последующего масштабирования.

Теперь разработчики приложений для Android могут воспользоваться Windows Azure Mobile Services для получения поддержки следующих функций бесплатно (до 10 мобильных приложений) и без вложений в собственную инфраструктуру:
- доступ к реляционному хранилищу с динамической схемой данных;
- интегрированная система аутентификации на базе Microsoft Account, Facebook, Google и Twitter;
- пуш-уведомления для ваших приложений для Android (и всех других платформ одновременно);
- отправка SMS и почтовых сообщений из облака через сервисы SendGrid и Twilio;
- облачное масштабирование от бесплатного уровня до высоких нагрузок.
Используя Windows Azure Mobile Services сегодня можно получить единый облачный бэкенд для поддержки всех популярных мобильных платформ без вложений в инфраструктуру для максимально быстрого старта и последующего масштабирования.
+23
Знакомство с libuniset — библиотекой для создания АСУ
7 min
11KВ данной статье речь пойдёт об открытой библиотеке для построения распределённых систем управления — libuniset, написанной на языке C++ под ОС Linux. Будет дан общий обзор основных понятий, элементов и концепций, используемых в библиотеке.
Основной целью библиотеки libuniset является предоставление готовых «кубиков» для построения распределённых автоматизированных систем управления (АСУ). В любой АСУ можно выделить такие основные направления как:
В libuniset сделана попытка создать готовые для использования, согласованные и взаимодействующие между собой компоненты для всех указанных направлений, и при этом создать достаточно универсальную и легко расширяемую библиотеку.
Типичным проектом с использованием данной библиотеки является проект,
Основной целью библиотеки libuniset является предоставление готовых «кубиков» для построения распределённых автоматизированных систем управления (АСУ). В любой АСУ можно выделить такие основные направления как:
- ввод/вывод;
- сетевой обмен;
- процессы управления (алгоритмы);
- хранение данных;
- работа с БД.
В libuniset сделана попытка создать готовые для использования, согласованные и взаимодействующие между собой компоненты для всех указанных направлений, и при этом создать достаточно универсальную и легко расширяемую библиотеку.
Типичным проектом с использованием данной библиотеки является проект,
+6
Чем плох свой Open Source проект
3 min
73KВсе мы знаем как хорошо и похвально принимать участие в разработке открытых проектов.
К тому же потом можно мерятся количеством коммитов в rails и зарплату попросить побольше.
А что если вы решили написать свой open source проект?
К тому же потом можно мерятся количеством коммитов в rails и зарплату попросить побольше.
А что если вы решили написать свой open source проект?
+269
Differential Evolution: генетический алгоритм оптимизации функции
5 min
41KНа Хабре присутствует множество статей, посвященных эволюционным алгоритмам вообще и генетическим алгоритмам в частности. В таких статьях обычно более или менее подробно описывается общая структура и идеология генетического алгоритма, а затем приводится пример его использования. Каждый такой пример включает в себя какой-то выбранный автором вариант процедуры скрещивания особей, мутации и отбора, причем в большинстве случаев для каждой новой задачи приходится придумывать свой вариант этих процедур. Кстати, даже выбор представления элемента пространства решений вектором генов очень сильно влияет на качество получаемого алгоритма и по сути является искусством.
В то же время очень многие практические задачи легко сводятся к оптимизационной задаче на поиск минимума функции n вещественных переменных и для такого типового варианта хотелось бы иметь готовый надежный генетический алгоритм. Поскольку даже определение операторов скрещивания и мутации для векторов, состоящих из вещественных чисел, оказывается не совсем тривиальным, то «изготовление» нового алгоритма для каждой такой задачи оказывается особенно трудоемким.
Под катом приводится краткое описание одного из самых известных генетических алгоритмов вещественной оптимизации — алгоритма дифференциальной эволюции (Differential Evolution, DE). Для сложных задач оптимизации функции n переменных этот алгоритм обладает настолько хорошими свойствами, что зачастую может рассматриваться как готовый «строительный блок» при решении многих задач идентификации и распознавания образов.
В то же время очень многие практические задачи легко сводятся к оптимизационной задаче на поиск минимума функции n вещественных переменных и для такого типового варианта хотелось бы иметь готовый надежный генетический алгоритм. Поскольку даже определение операторов скрещивания и мутации для векторов, состоящих из вещественных чисел, оказывается не совсем тривиальным, то «изготовление» нового алгоритма для каждой такой задачи оказывается особенно трудоемким.
Под катом приводится краткое описание одного из самых известных генетических алгоритмов вещественной оптимизации — алгоритма дифференциальной эволюции (Differential Evolution, DE). Для сложных задач оптимизации функции n переменных этот алгоритм обладает настолько хорошими свойствами, что зачастую может рассматриваться как готовый «строительный блок» при решении многих задач идентификации и распознавания образов.
+23
Прототипы JavaScript — программистам на C/C++/C#/Java
10 min
31KTutorial
JavaScript отличается от многих других «объектно-ориентированных» языков программирования тем, что в нём объекты есть, а классов — нет. Вместо классов в JavaScript есть прототипные цепочки и некоторые другие хитрости, которые требуют времени на осмысление. Перед профессиональными программистами в других языках при переходе на JavaScript встаёт проблема быстрого вхождения в его объектную модель.
Этот текст написан для того, чтобы дать начинающему или эпизодическому разработчику на JavaScript представление о способах создания объектов в JavaScript, от простого «структурного», как в языке C, к более «объектно-ориентированному», как в C++/C#/Java.
Статья может быть рекомендована как новичкам в программировании, так и бэкенд-программистам, пишущим на JavaScript только эпизодически.
Этот текст написан для того, чтобы дать начинающему или эпизодическому разработчику на JavaScript представление о способах создания объектов в JavaScript, от простого «структурного», как в языке C, к более «объектно-ориентированному», как в C++/C#/Java.
Статья может быть рекомендована как новичкам в программировании, так и бэкенд-программистам, пишущим на JavaScript только эпизодически.
+22
Information
- Rating
- Does not participate
- Registered
- Activity