Pull to refresh
10
0
Ал. Велиг. @Alvelig

User

Send message

Никогда не «не делай» того, о чем пожалеешь или умный дом с CCU.IO

Reading time12 min
Views119K
На хабре последнее время появляется много статей об автоматизации дома. Какие-то статьи с пространными размышлениями на тему умного дома, не несущие полезной нагрузки. Какие-то с конкретной реализацией на конкретном проприетарном железе, но им не хватает чего то для того, что бы быть установленными или запущенными в другом доме.

Хочу представить программную платформу автоматизации для дома на базе Node.js, которую можно скачать со всеми исходниками и установить прямо сейчас практически одним кликом (Windows) или одной командой (Linux/Debian).


Подробности
Total votes 84: ↑81 and ↓3+78
Comments88

Сверхбыстрое распознавание речи без серверов на реальном примере

Reading time10 min
Views331K

В этой статье я подробно расскажу и покажу, как правильно и быстро прикрутить распознавание русской речи на движке Pocketsphinx (для iOS порт OpenEars) на реальном Hello World примере управления домашней техникой.
Почему именно домашней техникой? Да потому что благодаря такому примеру можно оценить ту скорость и точность, которой можно добиться при использовании полностью локального распознавания речи без серверов типа Google ASR или Яндекс SpeechKit.
К статье я также прилагаю все исходники программы и саму сборку под Android.

Прикручиваем Pocketsphinx к своему Андроиду
Total votes 185: ↑182 and ↓3+179
Comments87

Шумопонижение в CMU Sphinx

Reading time11 min
Views17K
Можно смело заявить, что на сегодня CMU Sphinx стал лидером среди свободного софта для распознавания речи. Pocketsphinx поставляется вместе с Ubuntu, многообещающий проект Simon построен с широким его использованием, а структура корпуса Voxforge как бы намекает, что создан он для sphinxtrain.

Несмотря на бурное развитие самого Sphinx'а и методов распознавания речи вообще, каждый, кто пытался использовать его на практике, знает, насколько сложно получить вменяемый результат даже для простых задач. А все потому, что нельзя просто подключить дефолтные модели и ожидать, что система вас поймет. Требуется адаптировать акустику, построить релевантную языковую модель, найти оптимальные параметры и конфигурацию движка — вобщем, потратить недели времени, кропотливо снижая ошибку процент за процентом. Как человек, потративший эти самые недели, могу заверить, что и в этом случае вам ничего не гарантировано. Особенно, если вы хотите распознавать речь, записанную не гарнитурой, а встроенным микрофоном ноутбука, как это часто бывает.
Читать дальше →
Total votes 7: ↑6 and ↓1+5
Comments2

Частный опыт установки и настройки Asterisk с нуля

Reading time17 min
Views342K
Во-первых, дисклаймер

Настройке Asterisk посвящены сайты, форумы и целые порталы типа voip-info.org. Но всегда есть люди, для которых эта тема – дремучий лес, а запустить продукт надо «вчера». Ещё полтора месяца назад я про Asterisk знал только то что он есть. Данный труд призван лишь несколько облегчить жизнь тем, кто окажется в такой же ситуации после меня. В нём могут быть ошибки любой степени «чайниковости». Если вы гуру настройки Asterisk – укажите на ошибку, я поправлю, потомки будут вам благодарны.
Читать дальше →
Total votes 79: ↑75 and ↓4+71
Comments56

Поднимает телефонию с нуля: Asterisk, FreePBX, GSM-шлюз на Huawei E173 в Debian

Reading time8 min
Views214K


Сначала маленькая предыстория. Не так давно наша фирма практически лишилась городской связи, один телефонный оператор, что-то не поделил с другим и в результате между ними перестали проходить звонки. Было принято решение, раз уж так произошло полностью отказаться от обычной телефонной связи и полностью перейти на ip-телефонию.
Постановка задачи:
1) Организовать телефонную связь;
2) Запись разговоров;
3) Очередь звонков;
4) Голосовое меню;
5) GSM-шлюз, так-как должны обрабатываться и звонки с мобильных операторов.
6) Минимальная стоимость решения, так как ситуация форс-мажорная и бюджет выделен не был.

Никогда раньше я с телефонией не работал, задача встала срочная, попытаюсь подробно рассказать как ее решал лично я, про грабли на которые наступил, если что сделано не совсем оптимально или вообще криво буду благодарен за исправления и дополнения, и так поехали.
Читать дальше →
Total votes 39: ↑38 and ↓1+37
Comments26

Антифрод. Быстро, дешево… отлично (часть 1)

Reading time6 min
Views48K
Эта статья представляет собой описание эксперимента по созданию системы обнаружения мошеннических платежей по банковским картам.

В первой части статьи я расскажу почему вопрос мошеннических платежей (fraud) стоит так остро для всех участников рынка электронных платежей – от интернет-магазинов до банков – и в чем основные сложности, из-за которых стоимость разработки таких систем подчас является слишком высокой для многих участников ecommerce-рынка.

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

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

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

Get Started!


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

Не менее интенсивно растет количество мошеннических операций и разнообразие видов мошенничества. Россия, наряду с Англией, Францией, Германией, Испанией, входит в топ-5 европейский стран по годовому объему мошеннических операций с банковским картами. Общий объем потерь от мошенничества по картам в 2013 году в Европе превысило 1 млрд. евро. На Россию приходится 110 млн. евро, из них 2,4 млн. евро мошенничество при оплате через интернет.

Полная цепочка участников проведения online-платежа при покупке товара/услуги через интернет в общем случае выглядит приблизительно так:

Online Payment Flow

Читать дальше →
Total votes 19: ↑13 and ↓6+7
Comments41

Crowdin: обезболивающее при локализации

Reading time4 min
Views16K
О локализации без боли мечтает каждый, кто знает, что такое локализация. Особенно мечтает тот, кому нужно перевести свой продукт сразу на десяток языков. И тот, у кого в текстах сплошные термины. И еще сильнее тот, у кого постоянно выпускаются обновления с новыми строками, которые с тем же постоянством надо переводить, переводить, переводить…


Кадр из фильма Леонида Гайдая «Кавказская пленница, или Новые приключения Шурика»

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

Итак, мы выделили шесть основных сложностей локализации, от которых избавляет Crowdin:
Читать дальше →
Total votes 14: ↑13 and ↓1+12
Comments13

Плюсы и минусы заказной разработки без ТЗ

Reading time5 min
Views35K


В конце прошлого года к нам в компанию пришел заказ на небольшую автоматизацию. Товарищ моего шефа, предприниматель, уставший от обилия ошибок из-за человеческого фактора, захотел автоматизировать процесс подготовки макетов для последующей машинной обработки. Макеты выполнялись в Автокаде и Фотошопе. Задача показалась решаемой и интересной. Предприниматель получил положительный ответ. А что из этого вышло, читайте далее.
Читать дальше →
Total votes 25: ↑18 and ↓7+11
Comments42

Файловая система Linux полностью на tmpfs — скорость без компромиссов

Reading time4 min
Views121K

Предыстория


Так сложилось, что уже пять лет мой раздел ntfs с операционной системой Windows располагается на рамдиске. Решено это не аппаратным, а чисто программным способом, доступным на любом ПК с достаточным количеством оперативной памяти: рамдиск создается средствами загрузчика grub4dos, а Windows распознаёт его при помощи драйвера firadisk.

Однако до недавнего времени мне не был известен способ, как реализовать подобное для Linux. Нет, безусловно, существует огромное количество линуксовых LiveCD, загружающихся в память при помощи опций ядра toram, copy2ram и т. д., однако это не совсем то. Во-первых, это сжатые файловые системы, обычно squashfs, поэтому любое чтение с них сопровождается накладными расходами на распаковку, что вредит производительности. Во-вторых, это достаточно сложная каскадная система монтирования (так как squashfs — рид-онли система, а для функционирования ОС нужна запись), а мне хотелось по возможности простого способа, которым можно «вот так взять и превратить» любой установленный на жесткий диск Linux в загружаемый целиком в RAM.

Ниже я опишу такой способ, который был с успехом опробован. Для опытов был взят самый заслуженный дистрибутив Linux — Debian.
Читать дальше →
Total votes 83: ↑74 and ↓9+65
Comments167

Runscope: удобный тул для тестирования API

Reading time3 min
Views32K

Back-end не всегда функционирует так идеально, как указано в API-спецификации. Например, кто-нибудь забывает внести обязательный параметр в JSON-строку выдачи или вместо «0» решает вписать null. Если такие данные проникают в мобильное приложение, последствия могут быть самые неприятные.
Сегодня я расскажу об инструменте, который используется для выявления таких случаев. Это Runscope.
Читать дальше →
Total votes 35: ↑33 and ↓2+31
Comments8

Когнитивное сопротивление правил и инструкций

Reading time8 min
Views47K


У нас в университете было три преподавателя матанализа и аналитической геометрии. Первая читала нам учебник на лекциях и люто всех ненавидела. Второй доказывал всё сам и объяснял, что делает. Было весело, потому что иногда мы заходили в тупик и возвращались. Третий до кучи рассказывал байки и практические задачи на то, что объяснял. Угадайте, у кого средние результаты группы были лучше.

Я к тому, что в нашем мире любое чтение инструкции — это вынужденная мера. И если уж пользователю нужно что-то прочесть и осознать, лучше подать информацию быстро, понятно и в привязке к реальному миру.

Расскажу, как мы упрощаем понимание правил и инструкций к настольным играм. В целом, тот же набор механик подходит для улучшения ряда интерфейсов, практически любых технических текстов и вообще вещей, где разум инженера-архитектора встречается с разумом экзогенного пользователя.
Читать дальше →
Total votes 85: ↑82 and ↓3+79
Comments63

Делаем свою работу в Xcode чуточку эффективнее

Reading time2 min
Views21K
Разработка программных продуктов — очень интересный процесс, который нам всем очень-очень нравится, но есть некоторые вещи, которые слишком монотонны. Сегодня я бы хотел рассказать про то, как я упростил свой рабочий процесс в Xcode с помощью различных сторонних плагинов.

Интеграции :)

Заинтересованных прошу под кат
Читать дальше →
Total votes 23: ↑18 and ↓5+13
Comments32

Не совсем известные решения по защите ИТ-инфраструктуры бизнеса

Reading time9 min
Views51K


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

Я уже писал про профиль типовой направленной атаки на российское гражданское предприятие. Теперь расскажу о том, как меняется стратегия защиты в целом в нашей стране в последние годы, в частности, в связи со смещением векторов атак на 0-day и связанные с этим внедрения статических анализаторов кода прямо в IDE.

Плюс пара примеров на сладкое — вы узнаете, что может твориться в полностью изолированной от Интернета сети и на периметре банка.
Читать дальше →
Total votes 29: ↑24 and ↓5+19
Comments13

Антифрод. Функциональные и нефункциональные требования (часть 2)

Reading time6 min
Views27K
В первой части эксперимента было описано, почему проблема мошеннических платежей (fraud) стоит остро перед всеми участниками рынка online-платежей, какие сложности на пути создания собственной системы мониторинга мошеннических платежей (antifraud-системы) предстоит преодолеть, и почему для большинства мерчантов такие системы – дорогое удовольствие, за которое они не всегда готовы платить.

Еще одно, усложняющее разработку подобных систем, обстоятельство — то, что antifraud-система является business-critical системой и ее простой будет вести либо к остановке бизнес-процесса (приема оплаты), либо при некорректной работе системы к увеличению рисков финансовых и репутационных потерь для компании (интернет-магазина, банка).

Поэтому практики и подходы, перечисленные в статье применимы не только на стороне мерчанта, но на стороне других участников интернет-эквайринга – агрегаторов, платежных систем, банков. Более того, перечисленные в статье подходы зачастую являются закрытыми от сообщества best practices в соответствующих организациях.

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

Читать дальше →
Total votes 8: ↑7 and ↓1+6
Comments42

Очередной умный дом, в трех частях. Часть вторая, программно-серверная. +Бонус

Reading time4 min
Views58K
В первой части я рассказал про железную часть. Теперь настал черед рассказать о софте.

Итак, в начале было слово был четырехканальный выключатель света, с подключенными к нему разными датчиками. Физический интерфейс — RS485. Поверх RS485 реализован упрощенный вариант MODBUS ASCII. Реализованы только функции 03 и 06, в отличие от стандарта адресация байтовых регистров начинается с нуля. Плюс к тому добавлена поддержка широковещательных посылок, ответ на которые не выдается. Ими устанавливается время, либо отключаются все выходы. Через переходник RS485 — RS232 контроллер был подключен к COM порту.
Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments21

Reconnect — уязвимость в Facebook Login

Reading time2 min
Views36K
image

Все очень просто — если мы можем перелогинить пользователя в свой фейсбук то мы можем присоединить свой фейсбук к аккаунту жертвы на других вебсайтах. Жертва загружает нашу страничку и мы получаем доступ к аккаунту жертвы на Booking.com, Bit.ly, About.me, Stumbleupon, Angel.co, Mashable.com, Vimeo и куче других вебсайтов.
Читать дальше →
Total votes 85: ↑81 and ↓4+77
Comments19

Количественные CSS селекторы

Reading time7 min
Views91K
Вам когда-нибудь хотелось прямо в CSS коде посчитать, в меню 4 элемента или 10? Для четырех задать им ширину по 25%, а если набралось десять — прижать их друг к другу и уменьшить отступы?
Как выяснилось, CSS умеет работать с разным количеством элементов, позволяя избавиться от головных болей и лишнего кода на js.


Читать дальше →
Total votes 65: ↑61 and ↓4+57
Comments24

Основы Scala. 5 часов поедания мозгов

Reading time3 min
Views63K
Добрый день, уважаемое хабрасообщество!image

В конце ноября 2013 года мы с коллегой устроили встречу, на которой провели сеанс «интенсивного введения Scala в мозг добровольцев».

Выкладываю на суд общественности наше творчество и краткое описание «эксперимента».
Читать дальше →
Total votes 54: ↑52 and ↓2+50
Comments29

Искусственный рассвет

Reading time9 min
Views232K
Началось всё год назад. Перед Новым 2014 годом несколько пришел в упадок жизненный тонус. Процесс самокопания привел к следующей мысли:



— А, что ж так темно-то, Господи? © День радио.

Впрочем, для человека, живущего зимой по летнему времени — мысль вполне естественная.
Что же делать?
Total votes 187: ↑185 and ↓2+183
Comments87

О бесполезности геймификации в обучении

Reading time4 min
Views43K


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

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

От редакции блога: в посте отражено мнение о геймификации, отличающееся от широко распространённого.
Читать дальше →
Total votes 32: ↑21 and ↓11+10
Comments15

Information

Rating
Does not participate
Location
Providencia, Region Metropolitana, Чили
Registered
Activity