• Исследование в Mathematica: Бенедикт Камбербэтч успешно пародирует других актеров, но может ли он одурачить компьютер?

    • Перевод
    Перевод поста Риты Крук (Rita Crook) "Benedict Cumberbatch Can Charm Humans, but Can He Fool a Computer?".

    Вышедший на этой неделе, весьма ожидаемый, в прокат фильм "Игра в имитацию" (The Imitation Game) рассказывает о жизни Алана Тьюринга (100-лет со дня рождения которого совпали с 22-м днем рождения системы Mathematica — подробнее см. пост Стивена Вольфрама Happy Birthday, Alan Turing). Центральной темой фильма являются машины Тьюринга. Интересно, что в 2007 году компания Wolfram Research объявила приз за доказательство универсальности 2,3 машины Тьюринга.

    Конечно же, промоушн-видео Бенедикта Камбербэтча, в котором он имитирует голоса и поведение других известных актеров многим понравилось. Но мне захотелось выяснить, сможет ли функционал Mathematica из области Machine Learning распознать его голос, или же он сможет «одурачить» и компьютер тоже.
    Читать дальше →
  • Медовый месяц менеджера: часть 3

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

      В предыдущих частях (1, 2) мы говорили о том. что рождается в головах людей при этом орг.изменении, как строить разговоры с теми, кого эта ситуация затрагивает и о 9 универсальных рецептах, которые позволяют легче пройти этот непростой период.
      Схемы разговоров при повышении
      Сегодня поговорим о встречах с заказчиком, коллегами-менеджерами и том, для чего нужны встречи 1:1.
      Читать дальше →
    • Enlarge your pension-3. Примеры. Все познается в сравнении

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

        На западе есть такой термин “портфель простака”, “портфель лежебоки”. Пусть я простак (это предположение недалеко от истины) и у меня нет экономического образования. Я выбираю, куда можно инвестировать. Какие рынки мне могут прийти в голову? Их не так-то много:
        Читать дальше →
      • Наследование комбинаторных парсеров на Julia

          Комбинаторные (монадические) парсеры достаточно хорошо известны (wikibooks). Они представляют из себя библиотеку маленьких парсеров, которые распознают простые элементы грамматики, и способы объединять несколько парсеров в один (комбинировать — от сюда и название). Монадические они потому что один из способов комбинирования, порождения парсера остатка текста на основе результата разбора начала, удовлетворяет условиям, накладываемым на математический объект «монада». В языке Haskell это позволяет воспользоваться мощным сервисом, предоставляемым языком и библиотеками. В других языках название «монадические» можно смело игнорировать — это не будет мешать их реализации и использованию, включая упомянутую выше операцию «bind».

          Проще всего комбинаторные парсеры реализуются в языках с поддержкой замыканий, но можно воспользоваться и классическим ООП (пример описан Rebecca Parsons в книге Мартина Фаулера «Предметно-ориентированные языки»).
          К преимуществам комбинаторных парсеров относится простота использования (запись на языке программирования практически не отличается от обычного описания грамматики), независимость от препроцессора (как yacc/bison, happy или ocamlyacc), возможность реализовать некоторые элементы, плохо укладывающиеся в контекстно-свободную грамматику, прямо на языке программирования общего назначения.

          К недостаткам — сложность составления сообщений об ошибке, неспособность работать с леворекурсивной грамматикой (приводит к зацикливанию), а так же то, что очень легко сделать этот парсер не эффективным по быстродействию и памяти. (Одна из причин — компилятор не может произвести оптимизацию в терминах грамматики, так как работает на уровне языка программирования. Но есть и другие тонкости, требующие внимания, если требуется эффективность.)
          Как альтернативу можно рассмотреть реализации в виде макросов (например OCaml streams parsers). В Perl6 поддержка грамматик встроена в язык.

          Наследование

          Персер конкретного языка состоит из множества более специализированных парсеров, ссылающихся друг на друга. В этом отношении парсеры напоминают методы некого объекта. Возникает желание порождать парсеры новых версий языков, подменяя отдельные подпарсеры (как это делается в паттерне проектирования «шаблонный метод» из ООП). Для экспериментов с этим подходом (а так же в порядке изучения очередного языка) я выбрал язык Julia — динамически-типизированном с особым подходом к наследованию (подобному CLOS из Common Lisp и R).
          В отличие от обычных комбинаторных парсеров, подход с наследованием является экспериментальным (хотя в некотором виде поддерживается библиотекой макросов OCaml и языком Perl6). Пока он порождает не очень читабельный код. Исходный код доступен на Github.
          Читать дальше →
        • Распределенные вычисления для поиска жилья

            Все слышали о distributed computing проектах, которые пытаются решать масштабные задачи, вроде поиска внеземной жизни, лекарств от СПИДа и рака, поиска простых чисел и уникальных решений для Судоку. Все это очень занимательно, но не более того, ведь практической пользы для человека, поделившегося ресурсами своего компьютера — никакой.

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

            Читать дальше →
          • Мой опыт корпоративных коммуникаций в Social Media

            • Tutorial


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

            Что такое СММ в В2В ИТ-сфере? По большому счету, это еще один канал связи компании с партнерами. Задача маркетинга в партнерском бизнесе сводится к двум вещам: а) завязывание контактов — лидогенерация, б) поддержка старых связей. Еще один способ напомнить партнерам о своем существовании. Конечно, в компании использовались стандартные медиа-инструменты: рассылка, рекламные макеты в ИТ-прессе и т.д. Но все эти каналы коммуникации использовались в основном по старинке. Например, в партнерской рассылке не было встроенной статистики, т.е. не было видно: сколько открыто писем, сколько попало в спам и т.д., т.е. в отношении рассылки было совершенно непонятно — что партнерам нравится, и что не нравится. Какие письма они читают, а какие они отправляют в корзину.

            Ясное дело, что это — не продажи. Это косвенно способствует продажам. Я ничего не продаю, продают те ребята, что каждый день в бою — поэтому все для них. Т.е. хочешь обзор — пожалуйста, хочешь вебинар — давай проведем, хочешь видео снять — снимем. Но обо всем по порядку.
            Читать дальше →
          • Как на самом деле работает протокол Биткоин

            • Перевод
            (Замечательное объяснение принципов работы сети Bitcoin авторства Michael Nielsen. Много текста, немного картинок. Обо всех корявостях перевода — в личку, буду исправлять по мере обнаружения)

            Много тысяч статей было написано для того, чтобы объяснить Биткоин — онлайн, одноранговую (p2p) валюту. Большинство из этих статей поверхностно рассказывают суть криптографического протокола, опуская многие детали. Даже те статьи, которые «копают» глубже, часто замалчивают важные моменты. Моя цель в этой публикации — объяснить основные идеи, лежащие в протоколе Биткоин в ясной, легкодоступной форме. Мы начнем с простых принципов, далее пойдем к широкому теоретическому пониманию, как работает протокол, а затем копнем глубже, рассматривая сырые (raw) данные в транзакции Биткоин.
            Читать дальше →
          • FAQ по программированию под Android от новичка, и для новичков

            Предисловие к FAQ.

            Программирование является моим хобби уже давно (правда на других языках и платформах), но до андроида руки дотянулись совсем недавно. Прошло несколько этапов, прежде чем я добрался до написания программ.
            Сначала была пара месяцев посвященных Java, на сайте с «Сгибателем».
            После, долгие попытки подружится с Eclipse, закончившиеся побегом на Android Studio.
            На данный момент выпущено 7 программ и две находятся в разработке.
            Данная подборка возникла как попытка структурирования и оптимизации полученной в процессе информации.
            Заранее извиняюсь за возможно некорректную терминологию – так как практикую обучение через создание, и в теоретической части есть пробелы.

            Надеюсь, что приведенные примеры окажутся полезными.
            Читать дальше →
          • Разговорное радио на коленке

              В определённый момент, страдая от лени обновлять новостной блог про OpenStreetMap, я решил сделать еженедельную передачу про проект. Вместо трёх часов вымучивания текста — часик пообсуждать со знакомыми участниками OSM новинки и актуальные вопросы. Отличная идея, порадовались и разошлись. Через полгода со словами «ну блин хватит бездельничать, давайте послезавтра звоните в скайп» я начал разбираться, как в этом вашем линуксе записать звук с микрофона и скайпа, одновременно передавая его в интернет. Эта история — про настройку PulseAudio, про скайп и мамбл, и про удивительный JACK. Оказалось, поднять собственное радио с гостями в эфире проще, чем нарисовать для него логотип.
              Читать дальше →
            • Где регистрировать домен. Сравнение цен

                До недавнего времени у меня было три проблемы с регистрацией доменов:

                • Выбрать домен и быстро проверить его занятость.
                  Любой регистратор доменных имен предлагает вам форму, в которую вы вводите желаемое слово, просит ее отправить, подождать несколько секунд, узнать свободно ли имя. Затем повторить. Если вы в высококонкурентной нише, где все словарные имена заняты, то провести за этим увлекательным занятием можно несколько часов. Эту проблему для меня несколько лет подряд решал domainr, который проверяет домены как только ты вводишь их названия.

                • Отложить несколько удачных доменов, чтобы после выбрать лучший.
                  Это невероятно, но практически ни один сервис, кроме namemesh, не дает добавить домены в избранное. К сожалению, он просит зарегистрироваться, как мы все это любим. На сайтах регистраторов задача решается при помощи корзины. Сначала добавляем все в заказ, затем выкидываем лишнее. Долго, неудобно, нет вариантов перед глазами.

                • Купить домен там, где его продают и где он дешевле.
                  Проблема аккредитации регистраторов касается в первую очередь newTLD-доменов (.bike, .restaurant, .tools и прочие). У вашего любимого регистратора легко может быть .travel, но отсуствовать .work. Узнать, кто может зарегистрировать для вас уже привычный домен .io нетривиальная задача, не говоря уже о том, чтобы найти место, где сделать это дешевле.

                  Задача регистратора в том, чтобы внести запись о домене в единую базу данных и предоставить набор сервисных услуг, связанных с адресом (DNS, SSL и прочие). Текущие реалии таковы, что почти все регистраторы предлагают одинаковые услуги, но берут за это совершенно разные деньги. И если разница в 300 рублей на покупку .ru-домена у разных регистраторов не особенно принципиальна, то зарегистрировать десяток typo-доменов в зоне .net может стоить от 3 000 до 13 000 рублей в зависимости от регистратора ($8.99 / 650 р / $34.99).

                Три недели назад была закончена работа над очередным проектом и я оказался в свободном плавании. Думая над тем, чем заниматься дальше, я просматривал накопившийся список идей. Хотелось сделать что-то простое, освоить пару новых технологий и решить насущную проблему. Внезапно, пазл сложился.
                Читать дальше →
              • Организация личной базы знаний в Evernote

                  knowlege_system

                  Я познакомился с Evernote лет пять назад, но первое время активно не использовал — у меня там были бессистемные блокноты для записи идей, документы, какие-то редкие фотографии, да и все. Задачи, которые я контролировал, хранил в Things, а контент — в Evernote. Примерно четыре года назад я начал формировать из контента личную базу знаний, раз в полгода её модифицируя. И вот уже как год я вношу только минорные изменения в структуру. Вот, что у меня получилось:
                  Читать дальше →
                • Советы и рецепты начинающему Android программисту

                  Добрый день, уважаемые хабраюзеры.

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

                  Поэтому в данном посте я предлагаю вашему вниманию сборник рецептов и советов, которые помогут быстрей и правильней создать Ваше приложение.
                  В бой!
                • В поисках криптостойкого ГПСЧ


                    Привет, %username%!

                    В сегодняшнем посте речь пойдет о криптостойкости генераторов псевдослучайных чисел (ГПСЧ).
                    Для начала определимся, что же такое криптостойкий ГПСЧ (КСГПСЧ).
                    КСГПСЧ должен удовлетворять «тесту на следующий бит». Смысл теста в следующем: не должно существовать полиномиального алгоритма, который, зная первые k битов случайной последовательности, сможет предсказать k+1 битов с вероятностью более 50 %.
                    Wikipedia

                    Возможно, кое-кто из читателей использовал такие ГПСЧ, как регистры сдвига с линейной обратной связью (РСЛОС) или любимый многими программистами Вихрь Мерсенна. Я постараюсь показать, что оба этих способа, несмотря на весьма хорошие статистические свойства и большие периоды, не соответствуют приведенному выше определению и их нельзя считать криптографически стойкими, а также предложу, в качестве альтернативы, два очень надежных ГПСЧ.
                    Читать дальше →
                  • Обзор наиболее интересных материалов по анализу данных и машинному обучению №16 (29 сентября — 5 октября 2014)


                      Представляю вашему вниманию очередной выпуск обзора наиболее интересных материалов, посвященных теме анализа данных и машинного обучения.
                      Читать дальше →
                      • +28
                      • 11,2k
                      • 1
                    • Новая языково-независимая NLP библиотека

                        Введение


                        Каждый, кто пришел в этот мир, проходил через путь познания языка. При этом человек обучается языку отнюдь не по правилам или грамматике. Даже, более того, каждый человек, будучи еще ребенком, сначала учит такое странное явление как язык, а уже позднее, с возрастом, начинает учить его правила (в садике и школе). Это объясняет забавный факт, каждый, кто изучает иностранный язык в зрелом возрасте, когда он уже менее склонен к изучению новых языков, знает о предмете своего изучения больше, чем большинство носителей этого языка.

                        Это простое наблюдение дает возможность предполагать, что для понимания языка вовсе не нужно иметь знания о нем. Достаточно лишь эмпирии (опыта), который можно почерпнуть от окружающих. Но именно об этом забывают практически все современные НЛП библиотеки, пытаясь построить все-обемлящую языковую модель.

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

                        А это значит, что для понимания сообщения на каком-либо языке нам не нужно ничего, кроме самого сообщения. При условии, что это сообщение достаточно большое. Именно эта идея и положена в основу библиотеки под названием AIF. За деталями прошу пожаловать под кат.
                        Читать дальше →
                      • Grape: не рельсами едиными


                          В этом посте я хотел бы познакомить вас с Grape — веб-фреймворком, написанным на ruby, предназначенным для быстрой и удобной разработки API, а также немного порассуждать о судьбе Rails в свете последних тенденций в веб-разработке.
                          Читать дальше →
                        • Как бороться с репостами или пара слов о перцептивных хешах

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

                          перцептивный хэш-алгоритмы описывают класс функций для генерации сравнимых хэшей. Они используют различные свойства изображения для построения индивидуального «отпечатка». В дальнейшем эти «отпечатки» можно сравнивать друг с другом.

                          Если хэши отличаются, значит, данные разные. Если хэши совпадают, то данные, скорее всего, одинаковые (поскольку существует вероятность коллизий, то одинаковые хэши не гарантируют совпадения данных). В этой статье речь пойдет о нескольких популярных методах построения перцептивный хешей изображения, а также о простом способе борьбы с коллизиями. Всем кому интересно, прошу под кат.
                          Читать дальше →
                        • Cardiwear: отечественная умная футболка-электрокардиограф



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

                            Не так давно появилась идея умной одежды, которая, кроме обычных функций, может работать в качестве мониторинга активности, пульсометра, шагомера. В этом есть смысл, поскольку концепция 2 в 1, умное устройство + одежда, часто имеет преимущество перед традиционной схемой ношения умных устройств. Пульсометр, фитнес-трекер и прочие устройства можно забыть, утопить или неправильно использовать. А вот собственную одежду забыть сложно.

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

                            Читать дальше →
                          • Знакомство с Content Delivery Network

                              Содержимое: что такое CDN? История возникновения. Зачем она нужна? Кому она нужна, а кому нет? Порог вхождения, стоимость, издержки. Основные технологии.

                              CDN — сокращение от content delivery network, то есть “сеть доставки контента”. Чаще всего это множество серверов с специализированным ПО, которые ускоряют доставку (“отдачу”) контента конечному пользователю. Сервера расположены по всему миру таким образом, чтобы время ответа посетителям сайта было минимальным. Под “контентом” чаще всего подразумевают видео и статические элементы веб-сайтов (не требующие выполнения кода на сервере или запросов в базу данных, такие как css/js), но к “контенту” относятся и совсем неожиданные вещи — например, игры в Стиме (использует CDN для отдачи игр), обновления для операционных систем и т.д.



                              Немного истории

                              Резкий рост Интернета в середине 90-х привёл к ситуации, что сервера тех лет не могли в одиночку выдержать нагрузку (много ли может отдать могучий двухпроцессорный сервер на базе Pentium Pro на частоте в 266 МГц с 128 мегабайтами памяти?). Лимит производительности серверов и потребность во всё большей и большей производительности породила ныне забытые слова: “ферма серверов”, “иерархическое кеширование”… Айтишный новояз удивительно чувствителен к возрасту — и слова вроде “servers farm” или “information superhighway” сейчас ассоциируются с тёплыми ламповыми CRT-мониторами, а не с прогрессом. В ходе разработки и внедрения разных решений была замечена одна важная особенность: есть два типа контента — статический и динамический.
                              Читать дальше →
                            • Инвестирование для чайников

                                Финансы для чайниковМногие из читателей хабра неплохо зарабатывают (я надеюсь) и имеют возможность покрывать не только текущие расходы, но и тратить деньги на что-то перспективное. Опять же, многие из нас задумываются — как отложить деньги на будущее, дабы они не «сгорели» со временем (задача минимум) и как заставить деньги делать деньги (задача среднемум средняя). И, снова, многие из нас мечтают, чтобы сбережения росли достаточно быстро, чтобы устроить себе пенсию не в 65 лет, а пораньше. Причем в идеале так, чтобы не надо было тратить все свое время на это, а заниматься любимым делом.

                                Этим вопросами я заинтересовался года два назад. Как оказалось, задача максимум решаема, а мечта о свободном времяпрепровождении до 60 лет вполне реальна. Более того, на Западе популярен подход «asset allocation», который позволяет тратить на вопрос инвестирования до часа в год и иметь на выходе результаты, сравнимые с профессиональными инвесторами. Причем необходимо всего лишь крепко разобраться в базовой информации и не погружаться в пучины технического и фундаментального анализа.

                                Как оказалось, этот подход доступен и в нашей стране, в нашей действительности. Результатами исследования я хочу поделиться с вами. Да, пока только исследования… Через 30 лет расскажу о результатах практики.

                                Сейчас я вижу, что, если бы я об этом задумался десять лет назад, я был бы уже на полпути к своей мечте! Как жаль, что я тогда думал только о компьютерах (ну… не только о них, но о финансах уж точно не думал!)… Впрочем, лучше позже, чем совсем-совсем позже.

                                P. S. Почему «Сделай сам»? Потому что вы сами можете накопить себе неплохие деньги — вы, а не банки, пенсионный фонд или финансовые компании!
                                UPD. P. P. S. Мои размышления базируются на статье Сергея Спирина «Портфель лежебоки, или как за 12 лет увеличить капитал в 118 раз». Собственно, от него я и узнал про эту инвестиционную стратегию. Я — IT-шник, а не финансист. Посему за подробностями от эксперта — к нему!
                                Детали, как водится, под катом!