Pull to refresh
0
@rigaread⁠-⁠only

User

Send message

Asterisk + UniMRCP + VoiceNavigator. Синтез и распознавание речи в Asterisk. Часть 3

Reading time13 min
Views6K
Часть 1
Часть 2
Часть 4

В предыдущей статье было рассказано о тегах синтеза и о построении грамматик распознавания.
В этой части мне хотелось бы показать построение конкретного голосового приложения в Asterisk. Чтобы не придумывать голосовое меню для магазина «Рога и копыта», решил поступить проще и найти на Хабре ранее реализованный пример, на котором можно наглядно показать преимущества использования синтеза и распознавания.

На Хабре нашелся вот этот пост, который когда-то довольно активно обсуждался. Автор предлагает прослушивать прогноз погоды по телефону, используя множество предзаписанных файлов и xml-информеры с сайта Gismeteo. Мне хотелось бы усовершенствовать данное приложение и показать, как синтез и распознавание облегчают жизнь при построении IVR и получении динамической информации.

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

STM32F1xx — лечимся от ардуинозависимости вместе

Reading time14 min
Views268K
Добрый день, уважаемые хабровчане!
После длительного перерыва, связанного с защитой дипломного проекта в Бауманке, я снова вернулся к написанию статей. Так как с недавнего времени я занялся 32-битными микроконтроллерами серии STM32F на ядре ARM Cortex-M3, об этом и пойдет мой рассказ. Мне статья поможет систематизировать знания об этих замечательных микроконтроллерах, а вам, я надеюсь, послужит одной из ступеней на пути к их использованию и развеет страхи и сомнения, которые всегда возникают после уютных 8-битных AVRок при упоминании страшных 32-битных монстров.
Итак, почему Cortex, чем же плохи АVR?
Читать дальше →

Шаблоны проектов на основе PasteScript

Reading time3 min
Views1.6K
С увеличением количества проектов встала проблема автоматизации создания каркаса под новые приложения. До недавнего времени новые проекты мы создавали путем копирования заготовленного шаблонного проекта и изменения различных настроек в разных местах проекта. Само собой это убивало достаточно много времени.

Попытки решить эту проблему вывели меня на проект под названием Python Paste. В общих чертах — это набор утилит для создания веб-приложений, к примеру можно создать свой фреймворк (в Pylons используют именно его). Помимо утилит для веба Python Paste содержит модуль Paste Script, с помощью которого можно создавать шаблоны-заготовки и на основе них генерировать проекты.
Читать дальше →

USB для AVR. Введение

Reading time4 min
Views89K

Речь пойдет об популярном интерфейсе USB, а именно как заюзать этот самый USB на простых микроконтроллерах AVR. Планирую написать несколько топиков с примерами кода и разъяснениями как со стороны микроконтроллера, так и со стороны компьютера. Конечно на просторах интернета полно всяческих примеров на данную тематику, но в лучшем случае это исходник в котором сам черт ногу сломит, да краткое, на страничку, его описание.

Начну с того, что ранее широко распространенные интерфейсы как COM, LPT, MIDI в настоящее время морально устарели, но ещё нередко присутствует на современных компьютерах и используется в промышленном и узкоспециализированном оборудовании. Так что для связи какой нибудь собственной железки с компьютером давно уже пора осваивать что-то другое. Как вариант ещё можно использовать всякие конверторы/переходники/эмуляторы, но они не всегда работают как оригинальный интерфейс, порождая массу проблем.

Всё хватит пустой болтовни, приступим к делу. Как использовать USB в собственных устройствах?
Читать дальше →

Бесконечный Mario на HTML5

Reading time1 min
Views9.6K
Если вам интересно изучить разработку игр на HTML5/JavaScript, можете посмотреть на Бесконечного Mario на HTML5 (временно не работает: привышен лимит у хостера; зеркало).

Игра является клоном этого проекта Minecraft: уровни генерируются до бесконечности, только там игра была на Java (тоже с исходниками), а здесь переписана на HTML5.

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

Если жизней не хватает, можете добавить через JS-консоль браузера:

Mario.MarioCharacter.Lives += 1024

Исходники на github: github.com/robertkleffner/mariohtml5

Как стать участником электронных торгов государственного заказа

Reading time5 min
Views1.4K
Во многих отраслях бизнеса получение государственного заказа является гарантией востребованности услуг и обеспечения сотрудников работой, стабильной прибыли и продвижения в рейтингах, своеобразной подушкой безопасности.

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

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

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

Chosen: сделай выпадающие списки более дружественными

Reading time1 min
Views55K
Плагин Chosen создан для оформления красивых и удобных выпадающих списков с помощью jQuery и Prototype. Для установки плагина достаточно просто скачать файлы и прописать одну строчку:

$(".chzn-select").chosen()
(версия для jQuery)

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

Поскольку Chosen заменяет стандартный элемент HTML, то не нужно беспокоиться, как он работает с браузерами без поддержки JavaScript. Также не нужно ничего менять в бэкенде: формы сабмиттятся как обычно, изменения только в пользовательском интерфейсе.

Некоторые форки:
Chosen для MooTools
Модуль Chosen для Drupal 7

Прогноз погоды своими руками

Reading time3 min
Views34K
Каждый из нас ругал синоптиков, когда оказывался под дождем, не имея в руках зонта. В топике я расскажу Вам как сделать прогноз погоды на основе модели WRF (Weather Research & Forecasting Model) на несколько суток вперед.
Читать дальше →

Прозрачное кэширование в nginx для всех и каждого

Reading time2 min
Views115K
Представим, что у нас есть сайт, на который регулярно дают ссылки с хабра.
Нам нужно подготовить его к резким всплескам посещаемости. Как это сделать?

С версии 0.8.46 в nginx появились опции, позволяющие легко и просто настроить прозрачное кэширование для анонимных пользователей.

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

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

Охранная система, проект умный дом (часть 2)

Reading time3 min
Views8.5K
охранная системаВ предыдущем посте был описан начальный этап создания охранной системы, с подробным описанием выбора и подключения датчиков к микроконтроллеру, передачи информации на компьютер и создание макета комнаты для тестирования и отладки самой системы. Прочитать об этом можно здесь на хабре и более подробно вот здесь, на сайте проекта. И в конце той статьи, мы поделились своими планами по поводу дальнейшего развития проекта, которые были скорректированы после некоторых комментариев (за это огромное спасибо).
Ниже, после хабраката будет небольшой рассказ, как можно использовать для оповещения — социальные ресурсы, а в частности twitter, а так же как сделать из подручных средств поворотную камеру, управляемую от микроконтроллера, ну и в конце будут итоги и планы по развитию.
Читать дальше →

Вставка изображения из буфера обмена в редактор TinyMCE

Reading time3 min
Views4.5K
Некоторое время назад у нас на проекте возникла необходимость вставить картинки из буфера обмена прямо в редактор. Задача оказалась нетривиальной, и простых решений не имела. По факту поиска в интернете было найдено всего два пути решения проблемы – либо менять редактор целиком на флешовый, что привело бы к переписыванию большой части проекта, либо – ява-аплет. Собственно, о последнем и пойдет речь ниже.

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

10 вещей, которые вы (возможно) не знали про App Engine

Reading time6 min
Views1.8K
Что может быть лучше, чем описание девяти классных фишек App Engine? Разумеется, описание десяти. Участвуя в обсуждениях в группах, мы заметили, что некоторые возможности App Engine часто остаются незамеченными, так что мы выбрали чуть меньше, чем одиннадцать интересных фактов, которые, возможно, просто позволят вам писать программы по другому. Но довольно слов, смотрим первую фишку:
Читать дальше →

Мешап из флагов: как узнать больше об экзотической стране

Reading time5 min
Views7.7K
Публикация спрайта флагов стран для вебстраниц дала идею для эксперимента над интерфейсным решением.

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



При строительстве использованы материалы:

Карты в вашем Android-приложении

Reading time3 min
Views11K


Довольно часто перед разработчиком мобильного приложения возникает необходимость отобразить что либо на карте. Какие же варианты есть у разработчика?

Я рассматривал два варианта.
Читать дальше →

metabus — платформа для построения тематических поисковых систем

Reading time7 min
Views1.6K
Всё началось с того, что в какой-то момент я понял: искать в интернете товары, услуги и места «реальной» жизни достаточно сложно. Да, практически всё можно найти через популярные интернет-поисковики, но когда начинаешь искать что-то из реальной жизни, привязанное к физическому адресу, то становится сложнее. А когда еще надо уточнить запрос, задать ряд характеристик, время работы, местоположение или цену товара, то становится еще сложнее. В итоге поиск сводится к ручному перебору множества страниц и массе потраченного времени. На каждую тематику есть свои ресурсы. Мы ищем киносеанс — идём на Афишу, электронику — выбираем на Маркете. Далее кто-то заказывает через интернет, а кто-то идет в ближайший магазин и покупает выбранное. Ищем банкомат — часто это приложение на твоем телефоне. В итоге получается множество сервисов, суть которых сводится к одному — поиску товаров, услуг и мест в реальной жизни. В тот момент мне захотелось единого, удобного сервиса, который бы всё это делал.

Как результат, спустя почти два года я наконец закончил разрабатывать проект. Как и задумывалось, получилась платформа, позволяющая искать любые товары, услуги и места. Все данные имеют свою структуру, что позволяет делать сложные запросы по множеству характеристик. Также все данные имеют геосоставляющую, что позволяет делать геоориентированные запросы. Запросы можно делать как одной фразой, например, «найти гостиницу с бассейном около Киевской», так и с помощью специальных фильтров.

metafind — пример такого поиска


Поиск начинается с единой строки поиска. В запросе можно указать адрес в свободной форме. Если адрес не указан, то будет произведена попытка геолокации. В результатах поиска выводятся сгруппированные по месту продажи товары, их цены, телефоны, адреса, время работы и специфичные для искомой тематики характеристики. Также в результатах содержатся карта и фильтр для уточнения запроса. Для примера, вот как выглядит поиск лекарств:


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

Chaply (приложение для создания соединений без внешнего IP)

Reading time2 min
Views5.3K
В настоящее время все мы живем в мире IPv4. И пока процесс перехода на IPv6 затягивается, IP адресов на всех не хватает. В силу отсутствия достаточного количества уникальных IPv4 адресов, большинство пользователей вынуждено получать доступ к Интернету через NAT устройства на стороне провайдера. С недостатками данного подхода сталкивались многие. Прежде всего, это сложности в организации P2P взаимодействия, в том числе игр. Если хочется запустить «свой» игровой сервер, то без внешнего IP, он будет доступен только из локальной сети, если таковая имеется. Для преодоления возникающих с NAT проблем, были разработаны специальные программы, такие как Hamachi, Garena и др. Теперь, после данного небольшого вступления, перейдем непосредственно к описанию проекта.
Читать дальше →

Размытие изображений по Гауссу с помощью SVG

Reading time6 min
Views16K


В этом топике я хотел бы рассказать, как добавить изображениям на веб странице эффект размытия по Гауссу без использования флеша. Статью я планировал написать еще год назад, и, к моему большому удивлению, меня никто не опередил, хотя тема достаточно проста и интересна как с точки зрения веб дизайна, так и с точки зрения клиентской разработки. Для создания эффекта будем использовать уже ставшую популярной технологию SVG, которая работает во всех последних версиях браузеров. Для IE8- воспользуемся CSS фильтрами (Blur в частности), которые работают только в продуктах Microsoft. Для начала, предлагаю ознакомиться с итоговым вариантом здесь (наведите на любое изображение). Скрипт представлен в виде jQuery плагина, но выдернуть его для использования вне jQuery не составит труда.

Очевидно, целью работы являетя не только размытие картинки, а и анимация этого размытия.

Из простейшего примерамы видим, что интенсивность размытия зависит от атрибута stdDeviation в теге feGaussianBlur.
Читать дальше →

Разработка IFrame приложения для ВКонтакта

Reading time9 min
Views18K
Несмотря на то, что данная социалка «горячо любима» аудиторией хабра, я всё же решил рискнуть и опубликовать небольшие заметки посвящённые разработке приложений на Джанге под неё.

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

Под катом:
  • django-vkontakte-iframe и vkontakte
  • Загрузка приложения на стену
  • Флеш-заглушка
  • Сессия в горячо любимом IE
  • Все «flashVars» передаются GET запросом
  • Работа во фрейме
  • Доступ к информации пользователя
  • Проверка валидности вёрстки
  • JSLint ваш друг и товарищ
  • Генерирование миниатюр
  • Модерация через прокси-модель
  • Импорт настроек
  • Оптимизация

На правах рекламы: Приложение называется «Коллекционер» и предназначено для людей занимающихся коллекционированием монет, марок, карт и других предметов. В данный момент наполнен лишь каталог карт MTG, но в будущем будут созданы и наполнены каталоги для других предметов. Разумеется, мы с радостью выслушаем все ваши предложения и конструктивную критику.
Читать дальше →

Ускорение тестирования Django-проектов

Reading time6 min
Views5.1K
Вопросу тестирования Django-приложений уделено много внимания в различных статьях, в том числе и на Хабре. Почти в каждой из них хотя бы пара предложений посвящена способам и хакам для ускорения прохождения тестов, и поэтому сказать что-то принципиально новое здесь непросто.

В проекте панели управления хостингом, разработкой которой я занимаюсь значительную часть времени своей работы в NetAngels, насчитывается 120 таблиц и при тестировании загружается порядка 500 объектов из fixtures. Нельзя сказать, что это пугающе много, однако создание всех таблиц, добавление индексов и загрузка объектов при каждом запуске теста довольно сильно напрягают, особенно, если запускается всего один или пара тестов.

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

Information

Rating
Does not participate
Registered
Activity