Pull to refresh
57
0
mish @mish

User

Send message

Работа каскада Хаара в OpenCV в картинках: теория и практика

Reading time7 min
Views76K


В прошлой статье мы подробно описали алгоритм распознавания номеров (ссылка), который заключается в получении текстового представления на заранее подготовленном изображении, содержащем рамку с номером + небольшие отступы для удобства распознавания. Мы лишь вскользь упомянули, что для выделения областей, где содержатся номера, использовался метод Виолы-Джонса. Данный метод уже описывался на хабре (ссылка, ссылка, ссылка, ссылка). Сегодня мы проиллюстрируем наглядно то, как он работает и коснёмся ранее необсужденных аспектов + в качестве бонуса будет показано, как подготовить вырезанные картинки с номерами на платформе iOS для последующего получения уже текстового представления номера.
Читать дальше →
Total votes 41: ↑40 and ↓1+39
Comments0

iOS tips and tricks: Динамический Default.png

Reading time2 min
Views3.4K
При разработке под iOS время от времени у заказчиков, да и у некоторых программистов возникает закономерный вопрос: «А можно ли каким-нибудь образом при старте приложения подменять картинку?».

Немного порыскав по интернету, и покопавшись в документации, то напрашивается ответ, что сделать это невозможно по следующим причинам:
  • Файл, который показывается при запуске приложения лежит внутри папки приложения, и, ак следовательно переписать его не является возможным
  • По аналогичной причине нельзя изменить файл Info.plist, в котором сохраняется относительный путь к файлу стартовым изображением

Однако, все же, это возможно сделать стандартными способами, без всякого рода Jailbreak'а. Впрочем, как и у каждого решения есть свои плюсы, минусы и особенности.

Читать дальше →
Total votes 7: ↑4 and ↓3+1
Comments10

Облачная платформа для чатов в мобильных приложениях

Reading time4 min
Views8.9K

Чат в приложении или игре – актуальная тема во все времена. Создано огромное количество всевозможных решений для их реализации, в т.ч. на основе стандарта XMPP. Однако все они, на мой взгляд, имеют достаточно высокий порог входа: требуется вникание в клиентский API, особенности настройки и поддержки сервера.

В случае с мобильными приложениями все еще хуже – простых в использовании решений, адаптированных под их особенности, нет. Наша команда в последний год в i-Free занимается разработкой мессенджера Salut (salut.im), который, к сожалению, пока не стал конкурентом для всем известных WhatsApp, Viber и проч. Тем не менее, в ходе работы над ним мы прошли очень интересный путь, и теперь многое знаем и умеем в разработке обмена сообщениями на мобильных устройствах. Созданный нами серверный бекенд оказался весьма производительным, надежным и масштабируемым, а клиент-серверный протокол – простым в реализации на клиенте. Поэтому мы решили сделать сервис Salut Cloud, который позволит разработчикам мобильных игр и приложений быстро, в течение нескольких часов, создавать в своем приложении полнофункциональные чаты.В этой статье я изложу концепцию нашего сервиса и прошу хабровчан дополнить его своими пожеланиями – что бы вам хотелось в нем увидеть.
Читать дальше →
Total votes 21: ↑21 and ↓0+21
Comments13

[видео] Как поставить человека на место: 10 реальных вопросов про давление в переговорах

Reading time2 min
Views229K
Видео про 8 способов противостояния формуле нужды оказалось неожиданно популярным, набрав 8,000 просмотров за два дня. Мы решили продолжить тему.

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

Мы отобрали 10 самых любопытных, на наш взгляд, вопросов в этой теме и снова заперли в студии Дмитрия Коткина, руководителя Санкт-Петербургской школы переговорщиков ШиП и нашего хорошего друга, чтобы он рассказал, что конкретно делать:



10 реальных ситуаций, которые удалось осветить — под катом:

Читать дальше →
Total votes 157: ↑138 and ↓19+119
Comments62

Отладка приложений с помощью dtrace

Reading time1 min
Views4.6K
27 февраля прошла одиннадцатая встреча Apple Developers Community, которую организуют e-Legion и JetBrains.

Уже спустя несколько дней мы готовы начать выкладывать видео с мероприятия.
И первая лекция — «Отладка приложений с помощью dtrace» Станислава Красноярова из Redsteep.


Презентация

Доклад о том, как можно использовать утилиту dtrace для отладки iOS-приложений. Эта утилита может быть полезна при отладке сложных случаев, когда необходимо задать какие-либо правила для фильтрации вызываемых функций.

Остальные видео с мероприятия будут выложены позднее. Подписывайтесь на блог, чтобы оставаться в курсе.
Total votes 28: ↑24 and ↓4+20
Comments0

С любовью к дизайнерам: внедряем веб-формы в мобильное приложение

Reading time5 min
Views12K
При разработке мобильного приложения для проекта, которому приходится работать с большим количеством внешних систем, неизбежно возникают ситуации, в которых приходится проявлять находчивость и смекалку. Особенно часто такие ситуации возникают при попытках реализовать программно полет мысли дизайнера с учетом технических особенностей таких систем. О том, как мы решаем такие задачи при работе над мобильным приложением Денег Mail.Ru, мы расскажем в этой статье.


Читать дальше →
Total votes 59: ↑42 and ↓17+25
Comments16

Как испортить безопасность паролей, следуя советам с Хабра

Reading time3 min
Views94K
В недавней статье «Как надо хешировать пароли и как не надо» было озвучено предложение использовать некий локальный параметр (его еще называют перцем), как еще один рубеж защиты паролей. Несмотря на то, что это решение создает больше проблем, чем решает, большинство комментаторов поддержали эту идею, а несогласных, как водится, заминусовали. Мир в моей голове рухнул и я решил написать эту статью.

Суть


Перец — такая глобальная случайная строка, которая дописывается ко всем паролям (помимо соли). Она секретна (в отличии от соли). Таким образом, получив базу, узнать пароли становится невозможно. И все, казалось бы, хорошо…
Читать дальше →
Total votes 278: ↑229 and ↓49+180
Comments135

Анализ источников трафика для повышения конверсии

Reading time9 min
Views36K
Google Analytics - мощный инструмент для анализа трафика В этой статье речь пойдет о том, как правильно анализировать источники трафика, например, с помощью инструментов Google Analytics или Yandex Metrica. Отключив источники с низкой либо нулевой конверсией, можно существенно поднять общую конверсию, снизить стоимость заказа и улучшить рентабельность интернет-рекламы.

Цель этой статьи — получить отзывы и замечания по описанным ниже методам, описать способы принятия обоснованных решений по блокировке некачественных источников трафика.
Читать дальше →
Total votes 7: ↑5 and ↓2+3
Comments12

Разработка приложений для Chrome: обзор

Reading time4 min
Views38K
На Хабре публиковалось немало статей о создании расширений для Chrome, но тема разработки Chrome приложений (они же Chrome apps) затрагивалась заметно реже. В последнее время она стала актуальнее из-за распространения устройств на ChromeOS. К тому же инфраструктура для создания приложений для Chrome стала более стабильной и удобной для использования. В этой статье я постараюсь ответить на основные вопросы: зачем вообще писать приложения для Chrome, чем они отличаются от расширений, веб-сервисов, десктопных приложений и т.п., а также как они разрабатываются, и какие на них накладываются ограничения. Если эта тема вызовет интерес, у статьи будут продолжения, затрагивающие более специальные вопросы.



Продолжение: Создание простого Chrome приложения
Читать дальше →
Total votes 38: ↑35 and ↓3+32
Comments34

Как статистика помогает делать Яндекс.Пробки лучше

Reading time4 min
Views25K
Как устроены Яндекс.Пробки? Откуда берутся исходные данные о дорожном движении? Как они превращаются в карту пробок? Всегда ли информация о пробках достоверна? Как это проверить? А главное, как сделать данные о пробках более точными? Для всего этого в Пробках используется статистика: наука одновременно сильная и коварная. В этой лекции аналитик Яндекс.Пробок Леонид Медников рассказывает студентам, как отличать достоверные результаты от случайных, и как статистика применяется в разных практических задачах.




Total votes 62: ↑52 and ↓10+42
Comments31

Дайджест интересных материалов из мира веб-разработки и IT за последнюю неделю №92 (12 — 18 января 2014)

Reading time7 min
Views44K
Предлагаем вашему вниманию подборку с ссылками на полезные ресурсы, интересные материалы и IT-новости


Читать дальше →
Total votes 67: ↑58 and ↓9+49
Comments5

Преодолеваем скрытые опасности KVO в Objective C

Reading time21 min
Views26K
The major difference between a thing that might go wrong and a thing that cannot possibly go wrong is that when a thing that cannot possibly go wrong goes wrong it usually turns out to be impossible to get at or repair.
— Douglas Adams


Objective C существует уже с 1983 года и является ровесником C++. Однако, в отличие от последнего он начал приобретать популярность только в 2008 году, после выхода iOS 2.0 — новой версии операционной системы для революционного iPhone, включавшей приложение AppStore, позволяющее пользователям приобретать приложения, создаваемые сторонними разработчиками.
Дальнейший успех Objective C обеспечивался не только популярность устройств на базе iOS и относительной легкостью продаж через AppStore, но и значительными усилиями компании Apple по совершенствованию как стандартных библиотек, так и самого языка.
Согласно рейтингу TIOBE к началу 2013 года Objective C обогнал по популярности C++ и занял третье место, уступая только C и Java.

На сегодняшний день Objective C включает и такие относительно старые функции как KVC и KVO, существовавшие еще за 4 года до выхода первого iPhone, и такие новые возможности как блоки (blocks, появившиеся в Mac OS 10.6 и iOS 4) и автоматический подсчет ссылок (ARC, доступный в Mac OS 10.7 и iOS 5), которые позволяют с легкостью решать задачи, вызывавшие серьезные трудности ранее.

KVO — это технология, позволяющая незамедлительно реагировать в одном объекте (наблюдателе) на изменения состояния другого объекта (наблюдаемого), без внесения знаний о типе наблюдателя в реализации наблюдаемого объекта. В Objective C, наряду с KVO, существует несколько способов решения этой задачи:

Читать дальше →
Total votes 15: ↑13 and ↓2+11
Comments6

Первым делом продвижение, ну а денежки потом

Reading time7 min
Views13K
Мобильное приложение создано, и уже можно повесить на шею лавровый венок, но вы, как здравый человек, понимаете, что одного создания недостаточно. Надо поработать над продвижением своего продукта в массы.
Мы не будем вам в сотый раз говорить о том, что мы вступили в посткомпьютерную эру и что мобильные приложения – это эффективный инструмент бизнеса. Все, кто заинтересовался продвижением мобильных приложений и так уже знает, что они популярны, удобны и современны.



2 000 000 Мобильных приложений выпущено
49 000 000 000 Загрузок приложений только из AppStore
1 500 000 Новых Android устройств активируется ежедневно
918 000 000 Смартфонов продано в 2013 году
100 200 000 Планшетов продано в 2013 году

Среди этого огромного количества приложений нужно занять место под солнцем и не затеряться в общем потоке. Приложение должно быть полезным для пользователей, чтобы удовлетворять их запросы. Качественные приложения добиваются большого успеха, их и продвигать гораздо легче.
Читать дальше →
Total votes 24: ↑16 and ↓8+8
Comments4

Синтезатор речи в iOS7

Reading time2 min
Views13K
В iOS7 встроили синтезатор речи, теперь заставить свое приложение говорить вопрос пары строчек кода.

За синтез речи отвечает класс AVSpeechSynthesizer Достаточно передать ему текст обернутый в класс AVSpeechUtterance и текст будет прочитан смартфоном.

Голос зависит от локали, в том числе поддерживается русский. Речь звучит четко и приятно.

var speechSynthesizer = new AVSpeechSynthesizer ();
var speechUtterance =
  new AVSpeechUtterance ("Shall we play a game?");
speechSynthesizer.SpeakUtterance (speechUtterance);


узнать подробности и послушать как говорит iPhone
Total votes 30: ↑25 and ↓5+20
Comments32

Несколько интересностей и полезностей для веб-разработчика (выпуск 5)

Reading time3 min
Views40K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

Stackedit



Шедевр среди Open Source редакторов! Основан на библиотеке разметки (Markdown) PageDown, которая используется в StackOverflow и других проектах StackExchange. Stackedit синхронизируется с Dropbox и Google Drive, а также сохраняет все документы в local storage, благодаря чему редактирование возможно и в онлайне и в оффлайне. Возможность импорта/экспорта/конвертация Markdown и HTML. Публикация в WordPress, Tubmlr, Blogger, Github, Gist и на любой SHH сервер. Статистика, работа в режиме realtime, поддержка различных синтаксисов (Prettify/Highlight.js), LaTeX, темы… Это просто великолепный продукт.


App.io позволяет запускать iOS приложения в браузере. Это уже тема мобильной разработки, но недавно я читал статью про Sprinty Driver и обратил внимание на то, что BeetlePlay разрабатывают демо-версии на Flash. Решил поделиться. Также советую фреймворк для создания анимаций в UIKit от IFTTT.

Читать дальше →
Total votes 70: ↑64 and ↓6+58
Comments22

Несколько интересностей и полезностей для веб-разработчика (выпуск 4)

Reading time3 min
Views41K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

Pace.js — это самый простой способ (документация здесь) добавить к вашему проекту прогресс бар. Для Pace существует несколько тем, которые описываются только на CSS. От Hubspot есть еще два универсальных проекта на GitHub: Vex и Messenger — «Dialogs for the 21st century» и «Alerts for the 21st century» соответственно. Рекомендую.

imageFlat UI Free 2.1
Популярный информационный ресурс Designmodo опубликовал на GitHub обширный набор элементов интерфейса в стилей трендового плоского дизайна. Об этом еще в марте писал хабраюзер ilya42. А на этой недели проект обновился до версии 2.1. Теперь в Flat UI есть поддержка Bootstrap 3, появился ряд новых элементов, иконок, обновилились шрифты. Количество старов уже больше 5000.

Framer
Потрясающее изобретение разработчика Koen Bok. Framer — это бесплатный инструмент для прототипирования интерактивных и анимационных интерфейсов. Приложение синхронизируется с Photoshop, нарезает слои макета на .png (конечно же для верстки придется немного порезать руками, но все зависит от педантичности дизайнера к макету) и все верстает на z-index и trasnform matrix3d. А интерактив и анимацию дизайнеры добавят с помощью этого простого синтаксиса прямо в браузере (к сожалению только Chrome). PSD.Logo, PSD.OverviewButton — это имена PNG файлов. Говоря о разработчике Framer, хочется также упомянуть про его проект Cactus — генератор статистических сайтов на Python использующий Django template.
Читать дальше →
Total votes 74: ↑70 and ↓4+66
Comments15

Бесплатный месяц на CodeSchool от NewRelic

Reading time2 min
Views17K
Популярный сервис мониторинга приложений NewRelic дарит всем новым пользователям месяц полного доступа к материалам CodeSchool. Регистрироваться здесь. Для получения купона нужно задеплоить абсолютно любое приложение — даже Hello World вполне годится.
Коротко о CodeSchool
Code School — это образовательный проект от Envy Labs, в рамках которого реализовано около 30 интерактивных онлайн-курсов в сфере IT. Основные направления (paths) на данный момент — Ruby/Rails, Javascript/jQuery, HTML/CSS/Design, iOS. Кроме того, есть дополнительные курсы, не входящие в основные направления и обозначенные как Electives, например — по Chrome DevTools и Git. Помимо интерактивных курсов ресурс предлагает десятки скринкастов той же тематики. В обычное время полный доступ ко всей этой красоте доступен за 25$ в месяц, хотя часть курсов предоставляется бесплатно.

Подробная инструкция по деплою hello_world.wsgi с использованием python/gunicorn под катом
Читать дальше →
Total votes 19: ↑18 and ↓1+17
Comments26

Несколько интересностей и полезностей для веб-разработчика (выпуск 3)

Reading time3 min
Views60K
Доброго времени суток, уважаемые хабравчане. С прошедшим вас днем программиста. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

Cloudconvert




Великолепный онлайн конвертер файлов, который поддерживает в общей сложности 140 форматов следующих типов: archive, audio, cad, document, ebook, image, presentation, spreadsheet, video. Синхронизируется с Dropbox и Google Drive, благодаря чему возможно использование на всех смартфонах. А самое приятное это то, что для данного сервиса существует функциональное и простое API.

Читать дальше →
Total votes 145: ↑134 and ↓11+123
Comments29

mogenerator для Core Data, о котором нужно знать

Reading time5 min
Views11K


Относительно недавно я узнал о mogenerator — замечательном приложении командной строки для генерации классов на основании объектного графа Core Data. И вот что, если вы о нем ещё не знаете, то обязательно стоит с ним познакомиться, использование этого приложения значительно упрощает изменение объектного графа Core Data. mogenerator генерирует по два класса на сущность, один для машинного использования, другой для обеспечения возможности добавления дополнительного функционала. Корректно настроив проект в XCode возможно производить эту генерацию автоматически перед сборкой.
В этой статье я опишу как можно использовать mogenerator с XCode 4 и некоторые полезные мелочи.
Читать дальше →
Total votes 6: ↑6 and ↓0+6
Comments3

Почему веб-приложения на мобильных платформах работают медленно

Reading time34 min
Views66K
От переводчика
Это перевод статьи Drew Crawford «Why mobile web apps are slow», опубликованной 09 июля 2013. Статья очень интересная, но большая — ошибки возможны — прошу простить и присылать замечания в личку.
Поскольку затронута острая тема, прошу заметить, что переводчик не обязательно разделяет мнение автора статьи!
При переводе текст слегка видоизменялся, поскольку прямой перевод не всегда понятно передает смысл. Для перевода термина «native code» был использован англицизм «нативный код», который понятнее и короче, чем «родной для платформы код». Термин «word processing» переводится как «верстка текста», хотя это немного сужает первоначальный смысл. Термин managed код («управляемый код») не был переведен, так как удачного перевод (на взгляд переводчика) не существует. Под «терминированием» приложения подразумевается его принудительное завершение операционной системой.
Повествование в статье ведется от первого лица: автора статьи.


Читать статью
Total votes 156: ↑150 and ↓6+144
Comments74

Information

Rating
Does not participate
Registered
Activity