Обновить
-1
0
Антон Нехаев@nehaev

Архитектор, консультант

Отправить сообщение

У вас много денег? Мы все равно к вам не пойдем!

Время на прочтение2 мин
Охват и читатели33K
Это ответ на статью У Вас много денег? Тогда мы идем к Вам!

Хотел бы разобрать ситуацию с поиском и наймом персонала более подробно, возможно это для кого то эта информация будет новой.
Для начала попробуем сформулировать основную проблему (см. исходную статью): «Нужно найти грамотных, профессиональных и лояльных разработчиков PHP, с глубоким знанием, ну или хотя бы пониманием работы приложений и СУБД в условиях высоких нагрузок в Днепропетровске. Сумма вознаграждения ограничена 2,5 К $».
Как вам такая задача? По силам?
Читать дальше →

Кадры решают всё или о биче современных компаний

Время на прочтение18 мин
Охват и читатели133K
image
Хотелось бы немного рассказать о тех ошибках, которые очень опасно совершать особенно сейчас, особенно в странах или городах золотого миллиарда. Думаю каждый работающий или сталкивающийся с деятельностью большой или не очень компании (или гос структуры) как и я удивляется на сколько же всё не эффективно и поражается как при таком раздолбайстве и пофигизме шестерёнок машина всё еще работает.
Читать дальше →

IBM анонсирует новые проекты внедрения технологий Watson и открытие штаб-квартиры Watson Group в Нью-Йорке

Время на прочтение8 мин
Охват и читатели9.2K


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

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

Анализ существующих подходов к распознаванию лиц

Время на прочтение14 мин
Охват и читатели158K
С завидной регулярностью на Хабре появляются статьи, рассказывающие о тех или иных методах распознавания лиц. Мы решили не просто поддержать эту замечательную тему, но выложить наш внутренний документ, который освещает пусть и не все, но многие подходы к распознаванию лиц, их сильные и слабые места. Он был составлен Андреем Гусаком, нашим инженером, для молодых сотрудников отдела машинного зрения, в образовательных, так сказать, целях. Сегодня предлагаем его все желающим. В конце статьи – впечатляющих размеров список литературы для самых любознательных.
Читать дальше →

Юридические аспекты использования ЭВМ

Время на прочтение17 мин
Охват и читатели8.7K
Ответственный сотрудник должен обладать информацией о законных основаниях обладания организацией правами на ПО, что позволит ему иметь «фундамент» при общении с правоохранительными органами по принципу: «если всё законно, то опасаться нечего».

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



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

Распределённые вычисления: немного теории

Время на прочтение9 мин
Охват и читатели60K
Девять лет назад я начал «в свободное от основной работы время» преподавать компьютерные дисциплины в одном из университетов Санкт-Петербурга. И только сравнительно недавно к своему удивлению обнаружил, что в наших вузах практически отсутствуют курсы с фокусом на проблематику распределённых вычислений. И даже на Хабре эта тема не раскрыта в достаточной мере! Надо прямо сейчас исправлять ситуацию.

Этой теме я и хотел посвятить статью или даже серию статей. Но потом решил выложить своё учебное пособие по основам распределённых вычислений, вышедшее в свет в этом году (читай, небольшую книгу объемом 155 страниц). В итоге получился гибрид – статья со ссылкой на книгу. Книга распространяется бесплатно и доступна в электронном виде.

Вместо пролога. Приступив к тексту статьи, я в очередной раз задумался, а зачем программисту нужно знать теоретические основы распределённых вычислений. Этот вопрос я неоднократно слышал (и продолжаю слышать) от студентов и специалистов, уже работающих в области ИТ. Действительно, зачем, например, знать, что «множество событий распределённого вычисления упорядочено частично, а не линейно»? В чем, так сказать, каждодневная практическая польза этого фундаментального знания?

Должен признать, что у меня нет готового заученного ответа, который я могу выдать не задумываясь. Поэтому каждый раз приходится напрягаться извилинами, и каждый раз ответы и аргументы получаются разными. Вот и сейчас всё как впервые…
Читать дальше →

Нефункциональные требования к программному обеспечению. Часть 1

Время на прочтение10 мин
Охват и читатели396K

Введение


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

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

итак, все о НФТ

Несколько интересностей и полезностей для веб-разработчика #24

Время на прочтение5 мин
Охват и читатели59K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

Webhook


image

Webhook — это платформа для создания сайтов. Важно не путать со статическими генераторами, потому что это именно «CMS builder». Проект успешно завершил кампанию на Kickstarter 14 мая этого года, где смог собрать сумму в два раза большую, чем было необходимо. А буквально недавно состоялся релиз первой версии продукта. Webhook построен с использованием NodeJS, Grunt и Firebase для реалтайма, работает на Windows, Linux и Mac, внутри целая система виджетов со множеством вариаций на выходе, «Django-like templating» с помощью Swig JS, кроссплатформенная админ панель и еще целый ряд плюсов.
Читать дальше →

Поиск оптимальной аудио-системы распознавания речи на базе открытого исходного кода

Время на прочтение12 мин
Охват и читатели46K

Содержание:


1. Поиск и анализ цветового пространства оптимального для построения выделяющихся объектов на заданном классе изображений
2. Определение доминирующих признаков классификации и разработка математической модели изображений мимики"
3. Синтез оптимального алгоритма распознавания мимики
4. Реализация и апробация алгоритма распознавания мимики
5. Создание тестовой базы данных изображений губ пользователей в различных состояниях для увеличения точности работы системы
6. Поиск оптимальной аудио-системы распознавания речи на базе открытого исходного кода
7. Поиск оптимальной системы аудио распознавания речи с закрытым исходным кодом, но имеющими открытые API, для возможности интеграции
8. Эксперимент интеграции видео расширения в систему аудио-распознавания речи с протоколом испытаний

Вместо введения


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

image

Цели:


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

Задачи:


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

Введение


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

Типы лицензий


Большинство современных продуктов имеют два самых распространенных типа лицензий:
• Проприетарный (собственнический) тип, когда продукт является частной собственностью авторов и правообладателей и не удовлетворяющий критериям свободного ПО (наличия открытого программного кода недостаточно). Правообладатель проприетарного ПО сохраняет за собой монополию на его использование, копирование и модификацию, полностью или в существенных моментах. Обычно полуприетарным называют любое несвободное ПО, включая полусвободное.
• Свободные лицензии (open-source software) — программное обеспечение с открытым исходным кодом. Исходный код таких программ доступен для просмотра, изучения и изменения, что позволяет пользователю принять участие в доработке самой открытой программы, использовать код для создания новых программ и исправления в них ошибок — через заимствование исходного кода, если это позволяет совместимость лицензий, или через изучение использованных алгоритмов, структур данных, технологий, методик и интерфейсов (поскольку исходный код может существенно дополнять документацию, а при отсутствии таковой сам служит документацией).

Среди рассматриваемых систем распознавания речи с открытым исходным кодом нам встретились 2 вида сублицензий BSD и GPL. Рассмотрим их более подробно
Читать дальше →

15 малоизвестных команд Linux

Время на прочтение3 мин
Охват и читатели321K
Каждому разработчику в определенной степени следует овладеть навыками работы в терминале. Физически находиться у компьютера не всегда возможно, поэтому приходится подключаться удаленно. И действительно, GUI-программы вполне могут с этим с правиться, но зачастую они работают медленнее, чем получение доступа через тот же терминал (в конце концов, это лишь обмен текстом).
Читать дальше →

Вероятностные модели: от наивного Байеса к LDA, часть 1

Время на прочтение6 мин
Охват и читатели38K
Продолжаем разговор. Прошлая статья была переходной от предыдущего цикла о графических моделях вообще (часть 1, часть 2, часть 3, часть 4) к новому мини-циклу о тематическом моделировании: мы поговорили о сэмплировании как методе вывода в графических моделях. А теперь мы начинаем путь к модели латентного размещения Дирихле (latent Dirichlet allocation) и к тому, как все эти чудесные алгоритмы сэмплирования применяются на практике. Сегодня – часть первая, в которой мы поймём, куда есть смысл обобщать наивный байесовский классификатор, и заодно немного поговорим о кластеризации.


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

8 ловушек программирования

Время на прочтение13 мин
Охват и читатели225K


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

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

Обзор наиболее интересных материалов по анализу данных и машинному обучению №2 (16 — 23 июня 2014)

Время на прочтение4 мин
Охват и читатели13K

В очередном обзоре наиболее интересных материалов, посвященных теме анализа данных и машинного обучения, достаточно большое внимание уделено популярному набору алгоритмов машинного обучения Deep Learning и его практическому применению. Несколько статей посвящено тому какие есть пути для собственного развития как специалиста по анализу данных и машинному обучению. Также несколько статей касаются такой темы как Data Engineering и рассматривают такие популярные продукты как Cassandra и Apache Kafka. Но начинается данный выпуск с обзора стартующих в ближайшее онлайн-курсов, связанных с темой анализа данных и машинного обучения.
Читать дальше →

SIP через WebRTC на продакшне. Как мы к этому шли и какие проблемы решали

Время на прочтение5 мин
Охват и читатели53K
Доброго времени суток всем!

Я уже писал о своем опыте работы с WebRTC тут, но учитывая то, что в последнее время всё больше статей на эту тему появляется на хабре и то, что я давно хотел написать о том, как мы добились стабильной работы SIP телефонии через WebRTC на продакшне, я решил написать через что мы прошли.

А прошли мы через многое: боль, панику, истерики, кучу матов и пожелания добра мейнтейнерам.
Сейчас же это всё в прошлом. Мы избавились от всех костылей, которые мы делали, и сделали так, чтобы операторы звонили и всё работало стабильно.
В статье, я как можно подробнее описал все проблемы, с которыми мы сталкивались, используя как можно меньше кода и конфигов.

Кому интересно, прошу под кат.
Читать дальше →

Распознавание речи в Asterisk с использованием Yandex SpeechKit HTTP API

Время на прочтение2 мин
Охват и читатели34K


Статья написана по мотивам Синтез и распознавание речи от Google для Asterisk, с не большими изменениями. Для распознавания речи используется платформа Yandex SpeechKit HTTP API.
Читать дальше →

Лямбда-выражения в Java 8

Время на прочтение19 мин
Охват и читатели469K
В новой версии Java 8 наконец-то появились долгожданные лямбда-выражения. Возможно, это самая важная новая возможность последней версии; они позволяют писать быстрее и делают код более ясным, а также открывают дверь в мир функционального программирования. В этой статье я расскажу, как это работает.

Java задумывалась как объектно-ориентированный язык в 90-е годы, когда объектно-ориентированное программирование было главной парадигмой в разработке приложений. Задолго до этого было объектно-ориентированное программирование, были функциональные языки программирования, такие, как Lisp и Scheme, но их преимущества не были оценены за пределами академической среды. В последнее время функциональное программирование сильно выросло в значимости, потому что оно хорошо подходит для параллельного программирования и программирования, основанного на событиях («reactive»). Это не значит, что объектная ориентированность – плохо. Наоборот, вместо этого, выигрышная стратегия – смешивать объектно-ориентированное программирование и функциональное. Это имеет смысл, даже если вам не нужна параллельность. Например, библиотеки коллекций могут получить мощное API, если язык имеет удобный синтаксис для функциональных выражений.

Главным улучшением в Java 8 является добавление поддержки функциональных программных конструкций к его объектно-ориентированной основе.
Читать дальше →

Макросы и квазицитаты в Scala 2.11.0

Время на прочтение8 мин
Охват и читатели14K
Не так давно состоялся релиз Scala 2.11.0. Одним из примечательных нововведений этой версии являются квазицитаты — удобный механизм для описания синтаксических деревьев Scala с помощью разбираемых во время компиляции строк; очевидно, что в первую очередь этот механизм предназначен для использования совместно с макросами.

Удивительно, но на хабре пока тему макросов в Scala рассматривают не слишком-то активно; последний пост
с серьёзным рассмотрением макросов был аж целый год назад.

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

История появления Амперки

Время на прочтение18 мин
Охват и читатели74K

Хабраридерам, привет!

У блога нашей компании вскоре истекает оплаченный период. Мы определённо до его конца не успеем подготовить какой-нибудь интересный и небанальный материал о DIY-электронике. Поэтому, пользуясь случаем, расскажу лучше о том, как появилась Амперка, и как мы пришли к тому, что имеем сейчас и почему мы вечно ничего не успеваем.

Итак, если вам интересна история появления одного малого бизнеса, прошу под кат.

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

Конструирование типов в Scala

Время на прочтение5 мин
Охват и читатели9.8K
При построении многослойных («enterprise») систем часто оказывается, что создаются ValueObject'ы (или case class'ы), в которых хранится информация о каком-либо экземпляре сущности, обрабатываемом системой. Например, класс

case class Person(name: String, address: Address)


Такой способ представления данных в системе обладает как положительными свойствами:
  • строго типизированный доступ к данным,
  • возможность привязки метаинформации к свойствам с помощью аннотаций,


так и некоторыми недостатками:
  • если сущностей много, то таких классов также становится довольно много, а их обработка требует много однотипного кода (copy-paste);
  • потребности отдельных слоёв системы в метаинформации могут быть представлены аннотациями к свойствам этого объекта, но возможности аннотаций ограничены и требуют использования reflection'а;
  • если требуется представить данные не обо всех свойствах объекта сразу, то созданные классы использовать затруднительно;
  • затруднительно также представить изменение значения свойства (delta).


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

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

Видеозаписи докладов конференции AI&BigData Lab

Время на прочтение2 мин
Охват и читатели10K


Команда проекта GeeksLab 12 апреля 2014 года в Одессе провела конференцию «Al&BigData Lab», которая была посвящена большим данным и искусственному интеллекту.

Презентации и видеозаписи докладов под катом.
Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Бэкенд разработчик, Архитектор программного обеспечения
Ведущий
Java
Scala